diff --git a/DEPS b/DEPS
index 937667f1..b079da2 100644
--- a/DEPS
+++ b/DEPS
@@ -305,15 +305,15 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
-  'src_internal_revision': '95496cacbb6d27a923918e1b7c1ef143b79c45b5',
+  'src_internal_revision': '601621ad463530e5e1acc47d248ce98e2f313e42',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling Skia
   # and whatever else without interference from each other.
-  'skia_revision': '71d865c5211edc45e856f002b5fbbe562dadc91c',
+  'skia_revision': '51b8c1cc715ab028802bbb739add0927235cf461',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
-  'v8_revision': 'b9064e7bb2f9169485b10997c4b0ce0ed63979e0',
+  'v8_revision': '3bd53fa98e3db67d83a448339a56ee2ee7bf4af0',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ANGLE
   # and whatever else without interference from each other.
@@ -400,7 +400,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling devtools-frontend
   # and whatever else without interference from each other.
-  'devtools_frontend_revision': '0aa77da4b42c85eaed588ad00f3bb2a6b2e5d966',
+  'devtools_frontend_revision': '3561fee2b4ee353389e0060e384bdc218d3dd298',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libprotobuf-mutator
   # and whatever else without interference from each other.
@@ -424,7 +424,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
-  'dawn_revision': 'e9493e836fedc06290c333df9a17c0280d5b1475',
+  'dawn_revision': 'c77a135a468ff0d9baafa5f39a43731d8e6b2324',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -824,12 +824,12 @@
 
   'src/clank': {
     'url': Var('chrome_git') + '/clank/internal/apps.git' + '@' +
-    'f6fa912194623b9de9c57191b6f3dfafba58aa33',
+    '99c421b0cdf59c0e49866f025179e694f92fd59e',
     'condition': 'checkout_android and checkout_src_internal',
   },
 
   'src/docs/website': {
-    'url': Var('chromium_git') + '/website.git' + '@' + '3ce3da4ea55fa8171b47eb66bda0a051269ba232',
+    'url': Var('chromium_git') + '/website.git' + '@' + 'd229894872d2789308455cc9a689a956a6a40e34',
   },
 
   'src/ios/third_party/earl_grey2/src': {
@@ -1183,7 +1183,7 @@
   # Tools used when building Chrome for Chrome OS. This affects both the Simple
   # Chrome workflow, as well as the chromeos-chrome ebuild.
   'src/third_party/chromite': {
-      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'e2b86e44a8f0dda3b5ef536950ebf2c0d2021680',
+      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'eacd3aac0c2cd69a4040c450f09a6d8133b38791',
       'condition': 'checkout_chromeos',
   },
 
@@ -1218,13 +1218,13 @@
   },
 
   'src/third_party/depot_tools':
-    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'ccc34d2b44d8520f9b4c2697001f36444c78cd66',
+    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'e72395e5f2b481bf91a444bc30c4dc732971ad78',
 
   'src/third_party/devtools-frontend/src':
     Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'),
 
   'src/third_party/devtools-frontend-internal': {
-      'url': Var('chrome_git') + '/devtools/devtools-internal.git' + '@' + 'cf91b12b6ad5caa04d7c7eb818b6e5ac063118ed',
+      'url': Var('chrome_git') + '/devtools/devtools-internal.git' + '@' + 'a73d0db98fe40725ba61520c25e04a7bfefc5646',
     'condition': 'checkout_src_internal',
   },
 
@@ -1689,7 +1689,7 @@
     Var('pdfium_git') + '/pdfium.git' + '@' +  Var('pdfium_revision'),
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' + '72cd237dbedb3812a44305f923a1f149c108cf38',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' + '7e1ff250095383dbac1d56a8ed4f9e3c04e5dccd',
 
   'src/third_party/perl': {
       'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3',
@@ -1834,7 +1834,7 @@
       'dep_type': 'cipd',
   },
 
-  'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@e55b4f78bcf354ebb7d6a4d48d4bd33713f3daba',
+  'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@04fa239099325005373f80c850175c958b01bdae',
 
   'src/third_party/vulkan_memory_allocator':
     Var('chromium_git') + '/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git' + '@' + '56300b29fbfcc693ee6609ddad3fdd5b7a449a21',
@@ -1874,7 +1874,7 @@
     Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '149e02ab793f6a323a5ea4a3d2f52547aefc1434',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + '03bc3a0fa67e274efb4518da005f4c5b77c607e9',
+    Var('webrtc_git') + '/src.git' + '@' + 'ad9c4773f46a829945aa4a62d7621543ae0e7242',
 
   # Wuffs' canonical repository is at github.com/google/wuffs, but we use
   # Skia's mirror of Wuffs, the same as in upstream Skia's DEPS file.
@@ -2008,7 +2008,7 @@
     'packages': [
       {
         'package': 'chromeos_internal/apps/media_app/app',
-        'version': 'it51OzLS9K0nv1Oe7mPXLOaOWNbYZAdw1v9wiv-QwGQC',
+        'version': 'S8cXaSjIZIQtLXX2xxhn5Q4iKPVYqc1waan-Z-WUHMUC',
       },
     ],
     'condition': 'checkout_chromeos and checkout_src_internal',
@@ -4031,7 +4031,7 @@
 
   'src/ios_internal':  {
       'url': Var('chrome_git') + '/chrome/ios_internal.git' + '@' +
-        '168b6e55102803c4082f5404acae97f0ceb0430d',
+        'ecf8e2050b8a7009150675fc1b259f808bc8be22',
       'condition': 'checkout_ios and checkout_src_internal',
   },
 
diff --git a/android_webview/browser/DEPS b/android_webview/browser/DEPS
index 211f71960..70e92d6 100644
--- a/android_webview/browser/DEPS
+++ b/android_webview/browser/DEPS
@@ -108,6 +108,7 @@
   "+third_party/blink/public/common/page_state/page_state.h",
   "+third_party/blink/public/common/permissions/permission_utils.h",
   "+third_party/blink/public/common/storage_key/storage_key.h",
+  "+third_party/blink/public/common/tokens/tokens.h",
   "+third_party/blink/public/common/user_agent/user_agent_metadata.h",
   "+third_party/blink/public/mojom/loader/resource_load_info.mojom-shared.h",
   "+third_party/blink/public/mojom/origin_trial_feature/origin_trial_feature.mojom-shared.h",
diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc
index fc17627..013ac5e6 100644
--- a/android_webview/browser/aw_content_browser_client.cc
+++ b/android_webview/browser/aw_content_browser_client.cc
@@ -161,8 +161,9 @@
   bool OnMessageReceived(const IPC::Message& message) override;
 
   // mojom::RenderMessageFilter overrides:
-  void SubFrameCreated(int parent_render_frame_id,
-                       int child_render_frame_id) override;
+  void SubFrameCreated(
+      const blink::LocalFrameToken& parent_frame_token,
+      const blink::LocalFrameToken& child_frame_token) override;
 
  private:
   ~AwContentsMessageFilter() override;
@@ -180,11 +181,12 @@
   return false;
 }
 
-void AwContentsMessageFilter::SubFrameCreated(int parent_render_frame_id,
-                                              int child_render_frame_id) {
+void AwContentsMessageFilter::SubFrameCreated(
+    const blink::LocalFrameToken& parent_frame_token,
+    const blink::LocalFrameToken& child_frame_token) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
-  AwContentsIoThreadClient::SubFrameCreated(process_id_, parent_render_frame_id,
-                                            child_render_frame_id);
+  AwContentsIoThreadClient::SubFrameCreated(process_id_, parent_frame_token,
+                                            child_frame_token);
 }
 
 }  // anonymous namespace
diff --git a/android_webview/browser/aw_contents_io_thread_client.cc b/android_webview/browser/aw_contents_io_thread_client.cc
index 8f2e1a4..d2613cfc 100644
--- a/android_webview/browser/aw_contents_io_thread_client.cc
+++ b/android_webview/browser/aw_contents_io_thread_client.cc
@@ -54,7 +54,7 @@
 
 namespace {
 
-typedef map<content::GlobalRenderFrameHostId, JavaObjectWeakGlobalRef>
+typedef map<content::GlobalRenderFrameHostToken, JavaObjectWeakGlobalRef>
     RenderFrameHostToWeakGlobalRefType;
 
 typedef pair<base::flat_set<RenderFrameHost*>, JavaObjectWeakGlobalRef>
@@ -72,10 +72,10 @@
 class RfhToIoThreadClientMap {
  public:
   static RfhToIoThreadClientMap* GetInstance();
-  void Set(content::GlobalRenderFrameHostId rfh_id,
+  void Set(const content::GlobalRenderFrameHostToken& rfh_token,
            const JavaObjectWeakGlobalRef& client);
   absl::optional<JavaObjectWeakGlobalRef> Get(
-      content::GlobalRenderFrameHostId rfh_id);
+      const content::GlobalRenderFrameHostToken& rfh_token);
 
   absl::optional<JavaObjectWeakGlobalRef> Get(int frame_tree_node_id);
 
@@ -87,8 +87,8 @@
  private:
   base::Lock map_lock_;
   // We maintain two maps simultaneously so that we can always get the correct
-  // JavaObjectWeakGlobalRef, even when only HostIdPair or FrameTreeNodeId is
-  // available.
+  // JavaObjectWeakGlobalRef, even when only GlobalRenderFrameHostToken or
+  // FrameTreeNodeId is available.
   RenderFrameHostToWeakGlobalRefType rfh_to_weak_global_ref_;
   FrameTreeNodeToWeakGlobalRefType frame_tree_node_to_weak_global_ref_;
 };
@@ -102,17 +102,18 @@
   return g_instance_.Pointer();
 }
 
-void RfhToIoThreadClientMap::Set(content::GlobalRenderFrameHostId rfh_id,
-                                 const JavaObjectWeakGlobalRef& client) {
+void RfhToIoThreadClientMap::Set(
+    const content::GlobalRenderFrameHostToken& rfh_token,
+    const JavaObjectWeakGlobalRef& client) {
   base::AutoLock lock(map_lock_);
-  rfh_to_weak_global_ref_[rfh_id] = client;
+  rfh_to_weak_global_ref_[rfh_token] = client;
 }
 
 absl::optional<JavaObjectWeakGlobalRef> RfhToIoThreadClientMap::Get(
-    content::GlobalRenderFrameHostId rfh_id) {
+    const content::GlobalRenderFrameHostToken& rfh_token) {
   base::AutoLock lock(map_lock_);
   RenderFrameHostToWeakGlobalRefType::iterator iterator =
-      rfh_to_weak_global_ref_.find(rfh_id);
+      rfh_to_weak_global_ref_.find(rfh_token);
   if (iterator == rfh_to_weak_global_ref_.end()) {
     return absl::nullopt;
   } else {
@@ -135,7 +136,7 @@
 void RfhToIoThreadClientMap::Set(RenderFrameHost* rfh,
                                  const JavaObjectWeakGlobalRef& client) {
   int frame_tree_node_id = rfh->GetFrameTreeNodeId();
-  content::GlobalRenderFrameHostId rfh_id = rfh->GetGlobalId();
+  auto rfh_token = rfh->GetGlobalFrameToken();
   base::AutoLock lock(map_lock_);
 
   // If this FrameTreeNodeId already has an associated JavaObjectWeakGlobalRef,
@@ -150,12 +151,12 @@
 
   // Always add the entry to the HostIdPair map, since entries are 1:1 with
   // RenderFrameHosts.
-  rfh_to_weak_global_ref_[rfh_id] = client;
+  rfh_to_weak_global_ref_[rfh_token] = client;
 }
 
 void RfhToIoThreadClientMap::Erase(RenderFrameHost* rfh) {
   int frame_tree_node_id = rfh->GetFrameTreeNodeId();
-  content::GlobalRenderFrameHostId rfh_id = rfh->GetGlobalId();
+  auto rfh_token = rfh->GetGlobalFrameToken();
   base::AutoLock lock(map_lock_);
   HostsAndWeakGlobalRefPair& current_entry =
       frame_tree_node_to_weak_global_ref_[frame_tree_node_id];
@@ -169,7 +170,7 @@
 
   // Always safe to remove the entry from the HostIdPair map, since entries are
   // 1:1 with RenderFrameHosts.
-  rfh_to_weak_global_ref_.erase(rfh_id);
+  rfh_to_weak_global_ref_.erase(rfh_token);
 }
 
 // ClientMapEntryUpdater ------------------------------------------------------
@@ -233,10 +234,10 @@
 }
 
 // static
-std::unique_ptr<AwContentsIoThreadClient> AwContentsIoThreadClient::FromID(
-    content::GlobalRenderFrameHostId render_frame_host_id) {
+std::unique_ptr<AwContentsIoThreadClient> AwContentsIoThreadClient::FromToken(
+    const content::GlobalRenderFrameHostToken& global_frame_token) {
   return WrapOptionalWeakRef(
-      RfhToIoThreadClientMap::GetInstance()->Get(render_frame_host_id));
+      RfhToIoThreadClientMap::GetInstance()->Get(global_frame_token));
 }
 
 std::unique_ptr<AwContentsIoThreadClient> AwContentsIoThreadClient::FromID(
@@ -246,18 +247,16 @@
 }
 
 // static
-void AwContentsIoThreadClient::SubFrameCreated(int render_process_id,
-                                               int parent_render_frame_id,
-                                               int child_render_frame_id) {
-  content::GlobalRenderFrameHostId parent_rfh_id(render_process_id,
-                                                 parent_render_frame_id);
-  content::GlobalRenderFrameHostId child_rfh_id(render_process_id,
-                                                child_render_frame_id);
+void AwContentsIoThreadClient::SubFrameCreated(
+    int child_id,
+    const blink::LocalFrameToken& parent_frame_token,
+    const blink::LocalFrameToken& child_frame_token) {
   RfhToIoThreadClientMap* map = RfhToIoThreadClientMap::GetInstance();
-  absl::optional<JavaObjectWeakGlobalRef> opt_delegate_weak_ref =
-      map->Get(parent_rfh_id);
+  absl::optional<JavaObjectWeakGlobalRef> opt_delegate_weak_ref = map->Get(
+      content::GlobalRenderFrameHostToken(child_id, parent_frame_token));
   if (opt_delegate_weak_ref) {
-    map->Set(child_rfh_id, opt_delegate_weak_ref.value());
+    map->Set(content::GlobalRenderFrameHostToken(child_id, child_frame_token),
+             opt_delegate_weak_ref.value());
   } else {
     // It is possible to not find a mapping for the parent rfh_id if the WebView
     // is in the process of being destroyed, and the mapping has already been
diff --git a/android_webview/browser/aw_contents_io_thread_client.h b/android_webview/browser/aw_contents_io_thread_client.h
index 0f106ad0..b1e33b1 100644
--- a/android_webview/browser/aw_contents_io_thread_client.h
+++ b/android_webview/browser/aw_contents_io_thread_client.h
@@ -75,11 +75,11 @@
   CacheMode GetCacheMode() const;
 
   // This will attempt to fetch the AwContentsIoThreadClient for the given
-  // RenderFrameHost id.
+  // blink::LocalFrameToken.
   // This method can be called from any thread.
   // A null std::unique_ptr is a valid return value.
-  static std::unique_ptr<AwContentsIoThreadClient> FromID(
-      content::GlobalRenderFrameHostId render_frame_host_id);
+  static std::unique_ptr<AwContentsIoThreadClient> FromToken(
+      const content::GlobalRenderFrameHostToken& global_frame_token);
 
   // This map is useful when browser side navigations are enabled as
   // render_frame_ids will not be valid anymore for some of the navigations.
@@ -87,9 +87,9 @@
       int frame_tree_node_id);
 
   // Called on the IO thread when a subframe is created.
-  static void SubFrameCreated(int render_process_id,
-                              int parent_render_frame_id,
-                              int child_render_frame_id);
+  static void SubFrameCreated(int child_id,
+                              const blink::LocalFrameToken& parent_frame_token,
+                              const blink::LocalFrameToken& child_frame_token);
 
   // This method is called on the IO thread only.
   using ShouldInterceptRequestResponseCallback =
diff --git a/android_webview/browser/aw_cookie_access_policy.cc b/android_webview/browser/aw_cookie_access_policy.cc
index 6183435..fb76b58 100644
--- a/android_webview/browser/aw_cookie_access_policy.cc
+++ b/android_webview/browser/aw_cookie_access_policy.cc
@@ -46,16 +46,17 @@
 }
 
 bool AwCookieAccessPolicy::GetShouldAcceptThirdPartyCookies(
-    int render_process_id,
-    int render_frame_id,
+    base::optional_ref<const content::GlobalRenderFrameHostToken>
+        global_frame_token,
     int frame_tree_node_id) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
-  const content::GlobalRenderFrameHostId rfh_id(render_process_id,
-                                                render_frame_id);
-  std::unique_ptr<AwContentsIoThreadClient> io_thread_client =
-      (frame_tree_node_id != content::RenderFrameHost::kNoFrameTreeNodeId)
-          ? AwContentsIoThreadClient::FromID(frame_tree_node_id)
-          : AwContentsIoThreadClient::FromID(rfh_id);
+  std::unique_ptr<AwContentsIoThreadClient> io_thread_client;
+  if (frame_tree_node_id != content::RenderFrameHost::kNoFrameTreeNodeId) {
+    io_thread_client = AwContentsIoThreadClient::FromID(frame_tree_node_id);
+  } else if (global_frame_token.has_value()) {
+    io_thread_client =
+        AwContentsIoThreadClient::FromToken(global_frame_token.value());
+  }
 
   if (!io_thread_client) {
     return false;
@@ -66,12 +67,11 @@
 bool AwCookieAccessPolicy::AllowCookies(
     const GURL& url,
     const net::SiteForCookies& site_for_cookies,
-    int render_process_id,
-    int render_frame_id) {
+    base::optional_ref<const content::GlobalRenderFrameHostToken>
+        global_frame_token) {
   DCHECK_CURRENTLY_ON(BrowserThread::IO);
   bool third_party = GetShouldAcceptThirdPartyCookies(
-      render_process_id, render_frame_id,
-      content::RenderFrameHost::kNoFrameTreeNodeId);
+      global_frame_token, content::RenderFrameHost::kNoFrameTreeNodeId);
   return CanAccessCookies(url, site_for_cookies, third_party);
 }
 
diff --git a/android_webview/browser/aw_cookie_access_policy.h b/android_webview/browser/aw_cookie_access_policy.h
index 569c38d..f965405 100644
--- a/android_webview/browser/aw_cookie_access_policy.h
+++ b/android_webview/browser/aw_cookie_access_policy.h
@@ -7,6 +7,9 @@
 
 #include "base/no_destructor.h"
 #include "base/synchronization/lock.h"
+#include "base/types/optional_ref.h"
+#include "content/public/browser/global_routing_id.h"
+#include "third_party/blink/public/common/tokens/tokens.h"
 
 class GURL;
 
@@ -31,19 +34,21 @@
   void SetShouldAcceptCookies(bool allow);
 
   // Can we read/write third party cookies?
-  // |render_process_id| and |render_frame_id| must be valid.
+  // `frame_tree_node_id` or `global_frame_token` must be valid.
   // Navigation requests are not associated with a renderer process. In this
-  // case, |frame_tree_node_id| must be valid instead. Can only be called from
+  // case, `frame_tree_node_id` must be valid instead. Can only be called from
   // the IO thread.
-  bool GetShouldAcceptThirdPartyCookies(int render_process_id,
-                                        int render_frame_id,
-                                        int frame_tree_node_id);
+  bool GetShouldAcceptThirdPartyCookies(
+      base::optional_ref<const content::GlobalRenderFrameHostToken>
+          global_frame_token,
+      int frame_tree_node_id);
 
   // Whether or not to allow cookies for requests with these parameters.
-  bool AllowCookies(const GURL& url,
-                    const net::SiteForCookies& site_for_cookies,
-                    int render_process_id,
-                    int render_frame_id);
+  bool AllowCookies(
+      const GURL& url,
+      const net::SiteForCookies& site_for_cookies,
+      base::optional_ref<const content::GlobalRenderFrameHostToken>
+          global_frame_token);
 
  private:
   friend class base::NoDestructor<AwCookieAccessPolicy>;
diff --git a/android_webview/browser/network_service/aw_proxying_restricted_cookie_manager.cc b/android_webview/browser/network_service/aw_proxying_restricted_cookie_manager.cc
index d0a8672..e0727c9 100644
--- a/android_webview/browser/network_service/aw_proxying_restricted_cookie_manager.cc
+++ b/android_webview/browser/network_service/aw_proxying_restricted_cookie_manager.cc
@@ -13,6 +13,7 @@
 #include "base/memory/ptr_util.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
+#include "content/public/browser/render_frame_host.h"
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "mojo/public/cpp/bindings/remote.h"
 #include "mojo/public/cpp/bindings/self_owned_receiver.h"
@@ -58,11 +59,18 @@
     mojo::PendingReceiver<network::mojom::RestrictedCookieManager> receiver) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
 
+  std::optional<content::GlobalRenderFrameHostToken> frame_token;
+  if (!is_service_worker) {
+    if (auto* rfh = content::RenderFrameHost::FromID(process_id, frame_id)) {
+      frame_token = rfh->GetGlobalFrameToken();
+    }
+  }
+
   content::GetIOThreadTaskRunner({})->PostTask(
       FROM_HERE,
       base::BindOnce(
           &AwProxyingRestrictedCookieManager::CreateAndBindOnIoThread,
-          std::move(underlying_rcm), is_service_worker, process_id, frame_id,
+          std::move(underlying_rcm), is_service_worker, frame_token,
           std::move(receiver)));
 }
 
@@ -190,13 +198,12 @@
     mojo::PendingRemote<network::mojom::RestrictedCookieManager>
         underlying_restricted_cookie_manager,
     bool is_service_worker,
-    int process_id,
-    int frame_id)
+    const std::optional<const content::GlobalRenderFrameHostToken>&
+        global_frame_token)
     : underlying_restricted_cookie_manager_(
           std::move(underlying_restricted_cookie_manager)),
       is_service_worker_(is_service_worker),
-      process_id_(process_id),
-      frame_id_(frame_id) {
+      global_frame_token_(global_frame_token) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
 }
 
@@ -204,12 +211,12 @@
 void AwProxyingRestrictedCookieManager::CreateAndBindOnIoThread(
     mojo::PendingRemote<network::mojom::RestrictedCookieManager> underlying_rcm,
     bool is_service_worker,
-    int process_id,
-    int frame_id,
+    const std::optional<const content::GlobalRenderFrameHostToken>&
+        global_frame_token,
     mojo::PendingReceiver<network::mojom::RestrictedCookieManager> receiver) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
   auto wrapper = base::WrapUnique(new AwProxyingRestrictedCookieManager(
-      std::move(underlying_rcm), is_service_worker, process_id, frame_id));
+      std::move(underlying_rcm), is_service_worker, global_frame_token));
   mojo::MakeSelfOwnedReceiver(std::move(wrapper), std::move(receiver));
 }
 
@@ -222,7 +229,7 @@
     return AwCookieAccessPolicy::GetInstance()->GetShouldAcceptCookies();
   } else {
     return AwCookieAccessPolicy::GetInstance()->AllowCookies(
-        url, site_for_cookies, process_id_, frame_id_);
+        url, site_for_cookies, global_frame_token_);
   }
 }
 
diff --git a/android_webview/browser/network_service/aw_proxying_restricted_cookie_manager.h b/android_webview/browser/network_service/aw_proxying_restricted_cookie_manager.h
index ab68a85..0f0aad02 100644
--- a/android_webview/browser/network_service/aw_proxying_restricted_cookie_manager.h
+++ b/android_webview/browser/network_service/aw_proxying_restricted_cookie_manager.h
@@ -5,9 +5,11 @@
 #ifndef ANDROID_WEBVIEW_BROWSER_NETWORK_SERVICE_AW_PROXYING_RESTRICTED_COOKIE_MANAGER_H_
 #define ANDROID_WEBVIEW_BROWSER_NETWORK_SERVICE_AW_PROXYING_RESTRICTED_COOKIE_MANAGER_H_
 
+#include <optional>
 #include <string>
 
 #include "base/memory/weak_ptr.h"
+#include "content/public/browser/global_routing_id.h"
 #include "mojo/public/cpp/bindings/remote.h"
 #include "services/network/public/mojom/restricted_cookie_manager.mojom.h"
 
@@ -94,22 +96,21 @@
       mojo::PendingRemote<network::mojom::RestrictedCookieManager>
           underlying_restricted_cookie_manager,
       bool is_service_worker,
-      int process_id,
-      int frame_id);
+      const std::optional<const content::GlobalRenderFrameHostToken>&
+          global_frame_token);
 
   static void CreateAndBindOnIoThread(
       mojo::PendingRemote<network::mojom::RestrictedCookieManager>
           underlying_rcm,
       bool is_service_worker,
-      int process_id,
-      int frame_id,
+      const std::optional<const content::GlobalRenderFrameHostToken>&
+          global_frame_token,
       mojo::PendingReceiver<network::mojom::RestrictedCookieManager> receiver);
 
   mojo::Remote<network::mojom::RestrictedCookieManager>
       underlying_restricted_cookie_manager_;
   bool is_service_worker_;
-  int process_id_;
-  int frame_id_;
+  std::optional<const content::GlobalRenderFrameHostToken> global_frame_token_;
 
   base::WeakPtrFactory<AwProxyingRestrictedCookieManager> weak_factory_{this};
 };
diff --git a/android_webview/browser/network_service/aw_proxying_url_loader_factory.cc b/android_webview/browser/network_service/aw_proxying_url_loader_factory.cc
index d4a97a6..d724f1f 100644
--- a/android_webview/browser/network_service/aw_proxying_url_loader_factory.cc
+++ b/android_webview/browser/network_service/aw_proxying_url_loader_factory.cc
@@ -967,7 +967,7 @@
       AwCookieAccessPolicy::GetInstance()->GetShouldAcceptCookies();
   bool third_party_cookie_policy =
       AwCookieAccessPolicy::GetInstance()->GetShouldAcceptThirdPartyCookies(
-          /*render_process_id=*/0, MSG_ROUTING_NONE, frame_tree_node_id_);
+          std::nullopt, frame_tree_node_id_);
   if (!global_cookie_policy) {
     options |= network::mojom::kURLLoadOptionBlockAllCookies;
   } else if (!third_party_cookie_policy && !request.url.SchemeIsFile()) {
diff --git a/android_webview/browser/safe_browsing/aw_url_checker_delegate_impl.cc b/android_webview/browser/safe_browsing/aw_url_checker_delegate_impl.cc
index 6dc58e3..eef29ee 100644
--- a/android_webview/browser/safe_browsing/aw_url_checker_delegate_impl.cc
+++ b/android_webview/browser/safe_browsing/aw_url_checker_delegate_impl.cc
@@ -112,17 +112,14 @@
 bool AwUrlCheckerDelegateImpl::ShouldSkipRequestCheck(
     const GURL& original_url,
     int frame_tree_node_id,
-    int render_process_id,
-    int render_frame_id,
+    int child_id,
+    base::optional_ref<const base::UnguessableToken> render_frame_token,
     bool originated_from_service_worker) {
   JNIEnv* env = base::android::AttachCurrentThread();
   if (Java_AwSafeBrowsingSafeModeAction_isSafeBrowsingDisabled(env)) {
     return true;
   }
 
-  const content::GlobalRenderFrameHostId rfh_id(render_process_id,
-                                                render_frame_id);
-
   std::unique_ptr<AwContentsIoThreadClient> client;
   if (originated_from_service_worker) {
     if (!Java_AwSafeBrowsingConfigHelper_getSafeBrowsingEnabledByManifest(
@@ -130,10 +127,12 @@
       // Skip the check if safe browsing is disabled in the app's manifest.
       return true;
     }
-  } else if (!rfh_id) {
+  } else if (!render_frame_token.has_value()) {
     client = AwContentsIoThreadClient::FromID(frame_tree_node_id);
   } else {
-    client = AwContentsIoThreadClient::FromID(rfh_id);
+    client =
+        AwContentsIoThreadClient::FromToken(content::GlobalRenderFrameHostToken(
+            child_id, blink::LocalFrameToken(render_frame_token.value())));
   }
 
   // If Safe Browsing is disabled by the app, skip the check. Default to
diff --git a/android_webview/browser/safe_browsing/aw_url_checker_delegate_impl.h b/android_webview/browser/safe_browsing/aw_url_checker_delegate_impl.h
index 0e898fd..5d79927c 100644
--- a/android_webview/browser/safe_browsing/aw_url_checker_delegate_impl.h
+++ b/android_webview/browser/safe_browsing/aw_url_checker_delegate_impl.h
@@ -63,11 +63,12 @@
   bool IsUrlAllowlisted(const GURL& url) override;
   void SetPolicyAllowlistDomains(
       const std::vector<std::string>& allowlist_domains) override;
-  bool ShouldSkipRequestCheck(const GURL& original_url,
-                              int frame_tree_node_id,
-                              int render_process_id,
-                              int render_frame_id,
-                              bool originated_from_service_worker) override;
+  bool ShouldSkipRequestCheck(
+      const GURL& original_url,
+      int frame_tree_node_id,
+      int child_id,
+      base::optional_ref<const base::UnguessableToken> render_frame_token,
+      bool originated_from_service_worker) override;
   void NotifySuspiciousSiteDetected(
       const base::RepeatingCallback<content::WebContents*()>&
           web_contents_getter) override;
diff --git a/android_webview/common/BUILD.gn b/android_webview/common/BUILD.gn
index 2fa05e1..81aa03e0 100644
--- a/android_webview/common/BUILD.gn
+++ b/android_webview/common/BUILD.gn
@@ -74,6 +74,7 @@
   public_deps = [
     "//mojo/public/mojom/base",
     "//skia/public/mojom",
+    "//third_party/blink/public/mojom/tokens",
     "//ui/gfx/geometry/mojom",
     "//url/mojom:url_mojom_gurl",
   ]
diff --git a/android_webview/common/mojom/render_message_filter.mojom b/android_webview/common/mojom/render_message_filter.mojom
index 00be722..2e7fcc5 100644
--- a/android_webview/common/mojom/render_message_filter.mojom
+++ b/android_webview/common/mojom/render_message_filter.mojom
@@ -4,9 +4,12 @@
 
 module android_webview.mojom;
 
+import "third_party/blink/public/mojom/tokens/tokens.mojom";
+
 // An extension to content.mojom.RenderMessageFilter and implemented in Browser.
 interface RenderMessageFilter {
 
   // Called when a subframe is created.
-  SubFrameCreated(int32 parent_render_frame_id, int32 child_render_frame_id);
+  SubFrameCreated(blink.mojom.LocalFrameToken parent_frame_token,
+                  blink.mojom.LocalFrameToken child_frame_token);
 };
diff --git a/android_webview/renderer/aw_content_renderer_client.cc b/android_webview/renderer/aw_content_renderer_client.cc
index 30ac51b..c51db90 100644
--- a/android_webview/renderer/aw_content_renderer_client.cc
+++ b/android_webview/renderer/aw_content_renderer_client.cc
@@ -43,6 +43,7 @@
 #include "third_party/blink/public/platform/web_url.h"
 #include "third_party/blink/public/platform/web_url_request.h"
 #include "third_party/blink/public/web/web_frame.h"
+#include "third_party/blink/public/web/web_local_frame.h"
 #include "third_party/blink/public/web/web_navigation_type.h"
 #include "third_party/blink/public/web/web_security_policy.h"
 #include "url/gurl.h"
@@ -159,8 +160,9 @@
   if (main_frame && main_frame != render_frame) {
     // Avoid any race conditions from having the browser's UI thread tell the IO
     // thread that a subframe was created.
-    GetRenderMessageFilter()->SubFrameCreated(main_frame->GetRoutingID(),
-                                              render_frame->GetRoutingID());
+    GetRenderMessageFilter()->SubFrameCreated(
+        main_frame->GetWebFrame()->GetLocalFrameToken(),
+        render_frame->GetWebFrame()->GetLocalFrameToken());
   }
 
 #if BUILDFLAG(ENABLE_SPELLCHECK)
diff --git a/android_webview/renderer/aw_url_loader_throttle_provider.cc b/android_webview/renderer/aw_url_loader_throttle_provider.cc
index 1762b75..fa9a6260 100644
--- a/android_webview/renderer/aw_url_loader_throttle_provider.cc
+++ b/android_webview/renderer/aw_url_loader_throttle_provider.cc
@@ -48,7 +48,7 @@
 
 blink::WebVector<std::unique_ptr<blink::URLLoaderThrottle>>
 AwURLLoaderThrottleProvider::CreateThrottles(
-    int render_frame_id,
+    base::optional_ref<const blink::LocalFrameToken> local_frame_token,
     const blink::WebURLRequest& request) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
@@ -67,7 +67,7 @@
       safe_browsing_.Bind(std::move(safe_browsing_remote_));
     throttles.emplace_back(
         std::make_unique<safe_browsing::RendererURLLoaderThrottle>(
-            safe_browsing_.get(), render_frame_id));
+            safe_browsing_.get(), local_frame_token));
   }
 
   return throttles;
diff --git a/android_webview/renderer/aw_url_loader_throttle_provider.h b/android_webview/renderer/aw_url_loader_throttle_provider.h
index e6987ab..44346963 100644
--- a/android_webview/renderer/aw_url_loader_throttle_provider.h
+++ b/android_webview/renderer/aw_url_loader_throttle_provider.h
@@ -31,7 +31,7 @@
   // blink::URLLoaderThrottleProvider implementation.
   std::unique_ptr<blink::URLLoaderThrottleProvider> Clone() override;
   blink::WebVector<std::unique_ptr<blink::URLLoaderThrottle>> CreateThrottles(
-      int render_frame_id,
+      base::optional_ref<const blink::LocalFrameToken> local_frame_token,
       const blink::WebURLRequest& request) override;
   void SetOnline(bool is_online) override;
 
diff --git a/android_webview/renderer/aw_websocket_handshake_throttle_provider.cc b/android_webview/renderer/aw_websocket_handshake_throttle_provider.cc
index df6b255..c6214d9 100644
--- a/android_webview/renderer/aw_websocket_handshake_throttle_provider.cc
+++ b/android_webview/renderer/aw_websocket_handshake_throttle_provider.cc
@@ -49,7 +49,7 @@
 
 std::unique_ptr<blink::WebSocketHandshakeThrottle>
 AwWebSocketHandshakeThrottleProvider::CreateThrottle(
-    int render_frame_id,
+    base::optional_ref<const blink::LocalFrameToken> local_frame_token,
     scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   if (safe_browsing_remote_) {
@@ -57,7 +57,7 @@
                         std::move(task_runner));
   }
   return std::make_unique<safe_browsing::WebSocketSBHandshakeThrottle>(
-      safe_browsing_.get(), render_frame_id);
+      safe_browsing_.get(), local_frame_token);
 }
 
 }  // namespace android_webview
diff --git a/android_webview/renderer/aw_websocket_handshake_throttle_provider.h b/android_webview/renderer/aw_websocket_handshake_throttle_provider.h
index 2f40b2a..1d62668 100644
--- a/android_webview/renderer/aw_websocket_handshake_throttle_provider.h
+++ b/android_webview/renderer/aw_websocket_handshake_throttle_provider.h
@@ -34,7 +34,7 @@
   std::unique_ptr<blink::WebSocketHandshakeThrottleProvider> Clone(
       scoped_refptr<base::SingleThreadTaskRunner> task_runner) override;
   std::unique_ptr<blink::WebSocketHandshakeThrottle> CreateThrottle(
-      int render_frame_id,
+      base::optional_ref<const blink::LocalFrameToken> local_frame_token,
       scoped_refptr<base::SingleThreadTaskRunner> task_runner) override;
 
  private:
diff --git a/android_webview/ui/grit_resources_allowlist.txt b/android_webview/ui/grit_resources_allowlist.txt
index cfe385f..6a13304 100644
--- a/android_webview/ui/grit_resources_allowlist.txt
+++ b/android_webview/ui/grit_resources_allowlist.txt
@@ -11,7 +11,6 @@
 IDR_WEBUI_JS_CR_JS
 IDR_WEBUI_JS_ASSERT_JS
 IDR_WEBUI_JS_UTIL_JS
-IDR_WEBUI_JS_UTIL_TS_JS
 IDR_WEBUI_JS_PROMISE_RESOLVER_JS
 IDR_WEBUI_MOJO_MOJO_PUBLIC_JS_BINDINGS_JS
 IDR_MOJO_BINDINGS_JS
diff --git a/ash/BUILD.gn b/ash/BUILD.gn
index 825baef1..4b8d06a6 100644
--- a/ash/BUILD.gn
+++ b/ash/BUILD.gn
@@ -1366,8 +1366,6 @@
     "system/bluetooth/bluetooth_device_list_item_view.h",
     "system/bluetooth/bluetooth_device_status_ui_handler.cc",
     "system/bluetooth/bluetooth_device_status_ui_handler.h",
-    "system/bluetooth/bluetooth_disabled_detailed_view.cc",
-    "system/bluetooth/bluetooth_disabled_detailed_view.h",
     "system/bluetooth/bluetooth_feature_pod_controller.cc",
     "system/bluetooth/bluetooth_feature_pod_controller.h",
     "system/bluetooth/bluetooth_notification_controller.cc",
@@ -2171,8 +2169,6 @@
     "system/unified/feature_pod_button.h",
     "system/unified/feature_pod_controller_base.cc",
     "system/unified/feature_pod_controller_base.h",
-    "system/unified/feature_pods_container_view.cc",
-    "system/unified/feature_pods_container_view.h",
     "system/unified/feature_tile.cc",
     "system/unified/feature_tile.h",
     "system/unified/feature_tiles_container_view.cc",
@@ -2189,12 +2185,8 @@
     "system/unified/managed_device_tray_item_view.h",
     "system/unified/notification_counter_view.cc",
     "system/unified/notification_counter_view.h",
-    "system/unified/notification_hidden_view.cc",
-    "system/unified/notification_hidden_view.h",
     "system/unified/notification_icons_controller.cc",
     "system/unified/notification_icons_controller.h",
-    "system/unified/page_indicator_view.cc",
-    "system/unified/page_indicator_view.h",
     "system/unified/power_button.cc",
     "system/unified/power_button.h",
     "system/unified/quick_settings_footer.cc",
@@ -2215,16 +2207,12 @@
     "system/unified/tasks_bubble_view.h",
     "system/unified/tasks_combobox_model.cc",
     "system/unified/tasks_combobox_model.h",
-    "system/unified/top_shortcuts_view.cc",
-    "system/unified/top_shortcuts_view.h",
     "system/unified/unified_notifier_settings_controller.cc",
     "system/unified/unified_notifier_settings_controller.h",
     "system/unified/unified_slider_bubble_controller.cc",
     "system/unified/unified_slider_bubble_controller.h",
     "system/unified/unified_slider_view.cc",
     "system/unified/unified_slider_view.h",
-    "system/unified/unified_system_info_view.cc",
-    "system/unified/unified_system_info_view.h",
     "system/unified/unified_system_tray.cc",
     "system/unified/unified_system_tray.h",
     "system/unified/unified_system_tray_bubble.cc",
@@ -2233,8 +2221,6 @@
     "system/unified/unified_system_tray_controller.h",
     "system/unified/unified_system_tray_model.cc",
     "system/unified/unified_system_tray_model.h",
-    "system/unified/unified_system_tray_view.cc",
-    "system/unified/unified_system_tray_view.h",
     "system/unified/user_chooser_detailed_view_controller.cc",
     "system/unified/user_chooser_detailed_view_controller.h",
     "system/unified/user_chooser_view.cc",
@@ -2617,8 +2603,6 @@
     "wm/snap_group/snap_group.h",
     "wm/snap_group/snap_group_controller.cc",
     "wm/snap_group/snap_group_controller.h",
-    "wm/snap_group/snap_group_expanded_menu_view.cc",
-    "wm/snap_group/snap_group_expanded_menu_view.h",
     "wm/splitview/auto_snap_controller.cc",
     "wm/splitview/auto_snap_controller.h",
     "wm/splitview/split_view_constants.h",
@@ -3661,12 +3645,10 @@
     "system/tray/tri_view_unittest.cc",
     "system/unified/classroom_bubble_view_unittest.cc",
     "system/unified/date_tray_unittest.cc",
-    "system/unified/feature_pods_container_view_unittest.cc",
     "system/unified/feature_tile_unittest.cc",
     "system/unified/feature_tiles_container_view_unittest.cc",
     "system/unified/notification_counter_view_unittest.cc",
     "system/unified/notification_icons_controller_unittest.cc",
-    "system/unified/page_indicator_view_unittest.cc",
     "system/unified/power_button_unittest.cc",
     "system/unified/quick_settings_footer_unittest.cc",
     "system/unified/quick_settings_header_unittest.cc",
@@ -3675,7 +3657,6 @@
     "system/unified/screen_capture_tray_item_view_unittest.cc",
     "system/unified/tasks_bubble_view_unittest.cc",
     "system/unified/tasks_combobox_model_unittest.cc",
-    "system/unified/unified_system_info_view_unittest.cc",
     "system/unified/unified_system_tray_controller_unittest.cc",
     "system/unified/unified_system_tray_unittest.cc",
     "system/unified/user_chooser_detailed_view_controller_unittest.cc",
diff --git a/ash/ash_prefs.cc b/ash/ash_prefs.cc
index 888039f..e5dc0fe 100644
--- a/ash/ash_prefs.cc
+++ b/ash/ash_prefs.cc
@@ -66,7 +66,6 @@
 #include "ash/system/session/logout_button_tray.h"
 #include "ash/system/session/logout_confirmation_controller.h"
 #include "ash/system/unified/quick_settings_footer.h"
-#include "ash/system/unified/top_shortcuts_view.h"
 #include "ash/system/unified/unified_system_tray_controller.h"
 #include "ash/system/usb_peripheral/usb_peripheral_notification_controller.h"
 #include "ash/touch/touch_devices_controller.h"
@@ -200,11 +199,7 @@
   LoginExpandedPublicAccountView::RegisterLocalStatePrefs(registry);
   LockStateController::RegisterPrefs(registry);
   quick_pair::Mediator::RegisterLocalStatePrefs(registry);
-  if (ash::features::IsQsRevampEnabled()) {
-    QuickSettingsFooter::RegisterLocalStatePrefs(registry);
-  } else {
-    TopShortcutsView::RegisterLocalStatePrefs(registry);
-  }
+  QuickSettingsFooter::RegisterLocalStatePrefs(registry);
   KeyboardBacklightColorController::RegisterPrefs(registry);
   BatterySaverController::RegisterLocalStatePrefs(registry);
   PowerSoundsController::RegisterLocalStatePrefs(registry);
diff --git a/ash/ash_strings.grd b/ash/ash_strings.grd
index 36500a8..db42653 100644
--- a/ash/ash_strings.grd
+++ b/ash/ash_strings.grd
@@ -310,9 +310,6 @@
         <ph name="network">$2<ex>Connected to Google-A, Median signal</ex></ph>
       </message>
       <message name="IDS_ASH_QUICK_SETTINGS_BUBBLE_ACCESSIBLE_DESCRIPTION" desc="The accessible description of the quick settings bubble and the information in it.">
-        Quick Settings, Press search + left to access the notification center.
-      </message>
-      <message name="IDS_ASH_REVAMPED_QUICK_SETTINGS_BUBBLE_ACCESSIBLE_DESCRIPTION" desc="The accessible description of the revamped quick settings bubble and the information in it.">
         Quick Settings
       </message>
       <message name="IDS_ASH_QUICK_SETTINGS_BUBBLE_A11Y_SETTINGS_ACCESSIBLE_DESCRIPTION" desc="The accessible description for accessibility settings accessed through the accessibility feature pod.">
@@ -1390,9 +1387,6 @@
       <message name="IDS_ASH_STATUS_TRAY_HELP" desc="The accessible text for the help button.">
         Help
       </message>
-      <message name="IDS_ASH_STATUS_TRAY_DATE" desc="The date displayed on ash system bubble, Depending on launguage, please choose the best separator(eg ',') between abbreviated weekday and date">
-        <ph name="short_weekday">$1<ex>Fri</ex></ph>, <ph name="date">$2<ex>Aug 31, 2012</ex></ph>
-      </message>
       <message name="IDS_ASH_STATUS_TRAY_DATE_TIME" desc="The time displayed on ash system tray, Depending on launguage, please choose the best separator(eg ',') between abbreviated date and time">
         <ph name="date">$1<ex>Aug 31</ex></ph>, <ph name="time">$2<ex>03:00</ex></ph>
       </message>
@@ -5070,15 +5064,6 @@
       <message name="IDS_ASH_MESSAGE_CENTER_FOOTER_LOCKSCREEN" desc="The label in the footer of the message center on lock screen">
         Unlock device to view your notifications
       </message>
-      <message name="IDS_ASH_MESSAGE_CENTER_LOCKSCREEN_UNIFIED" desc="The label in the message center area on lock screen.">
-        Notifications are hidden.
-      </message>
-      <message name="IDS_ASH_MESSAGE_CENTER_LOCKSCREEN_CHANGE" desc="The label in the button in the message center area on lock screen. This button is to open the setting of the lock scren notification.">
-        Change
-      </message>
-      <message name="IDS_ASH_MESSAGE_CENTER_LOCKSCREEN_CHANGE_TOOLTIP" desc="The tooltip text for Change button to open the setting of lock screen notification.">
-        Change the lock-screen notification settings
-      </message>
       <message name="IDS_ASH_MESSAGE_CENTER_NO_MESSAGES" desc="The message displayed in the message center when there are no notifications.">
         All done
       </message>
@@ -5179,10 +5164,6 @@
         Calendar, <ph name="current_month_year">$1<ex>Wednesday, August 17, 2022</ex></ph>
       </message>
 
-      <message name="IDS_ASH_CALENDAR_ENTRY_ACCESSIBLE_DESCRIPTION" desc="The accessible description of the calendar entry button.">
-       <ph name="current_time">$1<ex>Tuesday, August 31, 2021 at 11:25:12 AM</ex></ph>, Press enter key to open Calendar view
-      </message>
-
       <message name="IDS_ASH_CALENDAR_TITLE" desc="The label used as the title of the unified system tray calendar view.">
         Calendar
       </message>
@@ -5686,9 +5667,6 @@
       <message name="IDS_ASH_MESSAGE_CENTER_UNLOCK_TO_PERFORM_ACTION_WITH_USER_ID" desc="The short message to encourage user to unlock the device so that ChromeOS can perform the notification action selected by user after unlocking.">
         Unlock device as <ph name="login_id">$1<ex>example@gmail.com</ex></ph> to perform the notification action
       </message>
-      <message name="IDS_ASH_MESSAGE_CENTER_UNLOCK_TO_CHANGE_SETTING" desc="The short message to encourage user to unlock the device to change the lock screen notification setting, so that ChromeOS can show the setting window after unlocking.">
-        To see notifications on your lock screen, unlock to change the setting
-      </message>
 
       <!-- Media Notification -->
       <message name="IDS_ASH_MEDIA_NOTIFICATION_ACTION_PREVIOUS_TRACK" desc="The button to trigger media playback to go to the previous track.">
diff --git a/ash/ash_strings_grd/IDS_ASH_CALENDAR_ENTRY_ACCESSIBLE_DESCRIPTION.png.sha1 b/ash/ash_strings_grd/IDS_ASH_CALENDAR_ENTRY_ACCESSIBLE_DESCRIPTION.png.sha1
deleted file mode 100644
index b16eb30..0000000
--- a/ash/ash_strings_grd/IDS_ASH_CALENDAR_ENTRY_ACCESSIBLE_DESCRIPTION.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-f1e17f22d50bbacb0252fb395913043eba44301b
\ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_ASH_MESSAGE_CENTER_UNLOCK_TO_CHANGE_SETTING.png.sha1 b/ash/ash_strings_grd/IDS_ASH_MESSAGE_CENTER_UNLOCK_TO_CHANGE_SETTING.png.sha1
deleted file mode 100644
index 6aebe0c..0000000
--- a/ash/ash_strings_grd/IDS_ASH_MESSAGE_CENTER_UNLOCK_TO_CHANGE_SETTING.png.sha1
+++ /dev/null
@@ -1 +0,0 @@
-e09cf86b689a4c2f1b897737df6f9a229b66944f
\ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_ASH_REVAMPED_QUICK_SETTINGS_BUBBLE_ACCESSIBLE_DESCRIPTION.png.sha1 b/ash/ash_strings_grd/IDS_ASH_QUICK_SETTINGS_BUBBLE_ACCESSIBLE_DESCRIPTION.png.sha1
similarity index 100%
rename from ash/ash_strings_grd/IDS_ASH_REVAMPED_QUICK_SETTINGS_BUBBLE_ACCESSIBLE_DESCRIPTION.png.sha1
rename to ash/ash_strings_grd/IDS_ASH_QUICK_SETTINGS_BUBBLE_ACCESSIBLE_DESCRIPTION.png.sha1
diff --git a/ash/capture_mode/capture_mode_camera_controller.cc b/ash/capture_mode/capture_mode_camera_controller.cc
index 014e210..8f923a5 100644
--- a/ash/capture_mode/capture_mode_camera_controller.cc
+++ b/ash/capture_mode/capture_mode_camera_controller.cc
@@ -14,7 +14,6 @@
 #include "ash/capture_mode/capture_mode_metrics.h"
 #include "ash/capture_mode/capture_mode_session.h"
 #include "ash/capture_mode/capture_mode_util.h"
-#include "ash/constants/ash_features.h"
 #include "ash/public/cpp/capture_mode/capture_mode_delegate.h"
 #include "ash/public/cpp/shell_window_ids.h"
 #include "ash/root_window_controller.h"
diff --git a/ash/capture_mode/capture_mode_camera_unittests.cc b/ash/capture_mode/capture_mode_camera_unittests.cc
index 8dd0fbe..87b4d64d 100644
--- a/ash/capture_mode/capture_mode_camera_unittests.cc
+++ b/ash/capture_mode/capture_mode_camera_unittests.cc
@@ -4125,15 +4125,16 @@
                                          CaptureModeSource::kWindow));
 
 // -----------------------------------------------------------------------------
-// CameraPreviewWithQsRevampTest:
+// CameraPreviewWithNotificationTest:
 
-class CameraPreviewWithQsRevampTest : public CaptureModeCameraTest {
+class CameraPreviewWithNotificationTest : public CaptureModeCameraTest {
  public:
-  CameraPreviewWithQsRevampTest() : scoped_feature_list_(features::kQsRevamp) {}
-  CameraPreviewWithQsRevampTest(const CameraPreviewWithQsRevampTest&) = delete;
-  CameraPreviewWithQsRevampTest& operator=(
-      const CameraPreviewWithQsRevampTest&) = delete;
-  ~CameraPreviewWithQsRevampTest() override = default;
+  CameraPreviewWithNotificationTest() = default;
+  CameraPreviewWithNotificationTest(const CameraPreviewWithNotificationTest&) =
+      delete;
+  CameraPreviewWithNotificationTest& operator=(
+      const CameraPreviewWithNotificationTest&) = delete;
+  ~CameraPreviewWithNotificationTest() override = default;
 
   // CaptureModeCameraTest:
   void SetUp() override {
@@ -4144,12 +4145,9 @@
     test_api->AddNotification();
     ASSERT_TRUE(test_api->IsTrayShown());
   }
-
- private:
-  base::test::ScopedFeatureList scoped_feature_list_;
 };
 
-TEST_F(CameraPreviewWithQsRevampTest,
+TEST_F(CameraPreviewWithNotificationTest,
        AvoidCollisionWithNotificationBubbleShownFirst) {
   NotificationCenterTray* notification_center_tray =
       GetPrimaryNotificationCenterTray();
@@ -4179,7 +4177,7 @@
             CameraPreviewSnapPosition::kBottomRight);
 }
 
-TEST_F(CameraPreviewWithQsRevampTest,
+TEST_F(CameraPreviewWithNotificationTest,
        AvoidCollisionWithCameraPreviewShownFirst) {
   StartCaptureSession(CaptureModeSource::kFullscreen, CaptureModeType::kVideo);
   auto* camera_controller = GetCameraController();
@@ -4697,14 +4695,11 @@
   EXPECT_EQ(camera_controller->available_cameras().size(), 1u);
 }
 
-class CaptureModePrivacyIndicatorsTest
-    : public CaptureModeCameraTest,
-      public testing::WithParamInterface<bool> {
+class CaptureModePrivacyIndicatorsTest : public CaptureModeCameraTest {
  public:
   CaptureModePrivacyIndicatorsTest() {
     scoped_feature_list_.InitWithFeatureStates(
-        {{features::kPrivacyIndicators, true},
-         {features::kQsRevamp, IsQsRevampEnabled()}});
+        {{features::kPrivacyIndicators, true}});
   }
   CaptureModePrivacyIndicatorsTest(const CaptureModePrivacyIndicatorsTest&) =
       delete;
@@ -4734,18 +4729,11 @@
         ->privacy_indicators_view();
   }
 
-  // TODO(b/305075031) clean up after the flag is removed.
-  bool IsQsRevampEnabled() const { return true; }
-
  private:
   base::test::ScopedFeatureList scoped_feature_list_;
 };
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         CaptureModePrivacyIndicatorsTest,
-                         testing::Bool());
-
-TEST_P(CaptureModePrivacyIndicatorsTest, CameraPrivacyIndicators) {
+TEST_F(CaptureModePrivacyIndicatorsTest, CameraPrivacyIndicators) {
   ui::ScopedAnimationDurationScaleMode animation_scale(
       ui::ScopedAnimationDurationScaleMode::NORMAL_DURATION);
 
@@ -4793,7 +4781,7 @@
       capture_mode_privacy_notification_id));
 }
 
-TEST_P(CaptureModePrivacyIndicatorsTest, DuringRecordingPrivacyIndicators) {
+TEST_F(CaptureModePrivacyIndicatorsTest, DuringRecordingPrivacyIndicators) {
   ui::ScopedAnimationDurationScaleMode animation_scale(
       ui::ScopedAnimationDurationScaleMode::NORMAL_DURATION);
 
diff --git a/ash/components/arc/mojom/BUILD.gn b/ash/components/arc/mojom/BUILD.gn
index 4835c222..30177f9 100644
--- a/ash/components/arc/mojom/BUILD.gn
+++ b/ash/components/arc/mojom/BUILD.gn
@@ -367,7 +367,6 @@
 mojom("camera_intent") {
   sources = [ "camera_intent.mojom" ]
   webui_module_path = "/ash/components/arc/mojom"
-  use_typescript_sources = true
 
   # Since this is a dependency of the very large target above that is still
   # generating legacy JS bindings/closure targets, generate legacy bindings
diff --git a/ash/constants/ash_features.cc b/ash/constants/ash_features.cc
index 17867586..ef858c4 100644
--- a/ash/constants/ash_features.cc
+++ b/ash/constants/ash_features.cc
@@ -1701,12 +1701,6 @@
              "LockScreenNotifications",
              base::FEATURE_DISABLED_BY_DEFAULT);
 
-// Enables lock screen media controls UI and use of media keys on the lock
-// screen.
-BASE_FEATURE(kLockScreenMediaControls,
-             "LockScreenMediaControls",
-             base::FEATURE_ENABLED_BY_DEFAULT);
-
 // Feature to allow MAC address randomization to be enabled for WiFi networks.
 BASE_FEATURE(kMacAddressRandomization,
              "MacAddressRandomization",
@@ -2551,13 +2545,6 @@
 // Controls whether the snap group feature is enabled or not.
 BASE_FEATURE(kSnapGroup, "SnapGroup", base::FEATURE_DISABLED_BY_DEFAULT);
 
-// Controls whether to create the snap group automatically when two windows are
-// snapped if true. Otherwise, the user has to explicitly lock the two windows
-// when both are snapped via cliking on the lock button when hovering the mouse
-// over the shared edge of the two snapped windows.
-constexpr base::FeatureParam<bool> kAutomaticallyLockGroup{
-    &kSnapGroup, "AutomaticLockGroup", true};
-
 // Resets the speak-on-mute opt-in nudge relevant prefs to their default
 // settings, so the nudge can be shown again for debugging purposes.
 BASE_FEATURE(kSpeakOnMuteOptInNudgePrefsReset,
diff --git a/ash/constants/ash_features.h b/ash/constants/ash_features.h
index be336f6..709b856 100644
--- a/ash/constants/ash_features.h
+++ b/ash/constants/ash_features.h
@@ -530,7 +530,6 @@
 BASE_DECLARE_FEATURE(kLockScreenHideSensitiveNotificationsSupport);
 COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kLockScreenInlineReply);
 COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kLockScreenNotifications);
-COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kLockScreenMediaControls);
 COMPONENT_EXPORT(ASH_CONSTANTS)
 COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kMacAddressRandomization);
 COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kMediaAppPdfA11yOcr);
@@ -770,8 +769,6 @@
 COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kSmdsSupportEuiccUpload);
 COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kSmdsDbusMigration);
 COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kSnapGroup);
-COMPONENT_EXPORT(ASH_CONSTANTS)
-extern const base::FeatureParam<bool> kAutomaticallyLockGroup;
 COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kSnoopingProtection);
 COMPONENT_EXPORT(ASH_CONSTANTS)
 BASE_DECLARE_FEATURE(kSpeakOnMuteOptInNudgePrefsReset);
diff --git a/ash/login/login_screen_controller.cc b/ash/login/login_screen_controller.cc
index 24aa91b..73257425 100644
--- a/ash/login/login_screen_controller.cc
+++ b/ash/login/login_screen_controller.cc
@@ -195,6 +195,12 @@
 }
 
 void LoginScreenController::OnFocusPod(const AccountId& account_id) {
+  session_manager::SessionState session_state =
+      Shell::Get()->session_controller()->GetSessionState();
+  if (session_state == session_manager::SessionState::LOGGED_IN_NOT_ACTIVE) {
+    // b/308840749 do not propagate OnFocusPod while a user is mid login.
+    return;
+  }
   GetModel()->NotifyFocusPod(account_id);
   if (!client_) {
     return;
diff --git a/ash/login/ui/lock_contents_view_unittest.cc b/ash/login/ui/lock_contents_view_unittest.cc
index 4189737..caadf38 100644
--- a/ash/login/ui/lock_contents_view_unittest.cc
+++ b/ash/login/ui/lock_contents_view_unittest.cc
@@ -2270,9 +2270,6 @@
 // Tests that media controls do not show on lock screen when auth is disabled
 // after media session changes to playing.
 TEST_F(LockContentsViewUnitTest, DisableAuthAfterMediaSessionChanged) {
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitAndEnableFeature(features::kLockScreenMediaControls);
-
   auto* contents = new LockContentsView(
       mojom::TrayActionState::kNotAvailable, LockScreen::ScreenType::kLock,
       DataDispatcher(),
@@ -2301,9 +2298,6 @@
 // Tests that media controls do not show on lock screen when auth is disabled
 // before media session changes to playing.
 TEST_F(LockContentsViewUnitTest, DisableAuthBeforeMediaSessionChanged) {
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitAndEnableFeature(features::kLockScreenMediaControls);
-
   auto* contents = new LockContentsView(
       mojom::TrayActionState::kNotAvailable, LockScreen::ScreenType::kLock,
       DataDispatcher(),
@@ -2330,9 +2324,6 @@
 }
 
 TEST_F(LockContentsViewUnitTest, DisableAuthAllowMediaControls) {
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitAndEnableFeature(features::kLockScreenMediaControls);
-
   auto* contents = new LockContentsView(
       mojom::TrayActionState::kNotAvailable, LockScreen::ScreenType::kLock,
       DataDispatcher(),
@@ -2855,10 +2846,6 @@
 }
 
 TEST_F(LockContentsViewUnitTest, LockScreenMediaControlsShownIfMediaPlaying) {
-  // Enable media controls.
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitAndEnableFeature(features::kLockScreenMediaControls);
-
   // Build lock screen with 1 user.
   auto* contents = new LockContentsView(
       mojom::TrayActionState::kNotAvailable, LockScreen::ScreenType::kLock,
@@ -2878,10 +2865,6 @@
 }
 
 TEST_F(LockContentsViewUnitTest, LockScreenMediaControlsHiddenAfterDelay) {
-  // Enable media controls.
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitAndEnableFeature(features::kLockScreenMediaControls);
-
   // Build lock screen with 1 user.
   auto* contents = new LockContentsView(
       mojom::TrayActionState::kNotAvailable, LockScreen::ScreenType::kLock,
@@ -2918,10 +2901,6 @@
 
 TEST_F(LockContentsViewUnitTest,
        MediaControlsHiddenIfScreenLockedWhileMediaPaused) {
-  // Enable media controls.
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitAndEnableFeature(features::kLockScreenMediaControls);
-
   // Build lock screen with 1 user.
   auto* contents = new LockContentsView(
       mojom::TrayActionState::kNotAvailable, LockScreen::ScreenType::kLock,
@@ -2941,10 +2920,6 @@
 }
 
 TEST_F(LockContentsViewUnitTest, KeepMediaControlsShownWithinDelay) {
-  // Enable media controls.
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitAndEnableFeature(features::kLockScreenMediaControls);
-
   // Build lock screen with 1 user.
   auto* contents = new LockContentsView(
       mojom::TrayActionState::kNotAvailable, LockScreen::ScreenType::kLock,
@@ -2972,10 +2947,6 @@
 }
 
 TEST_F(LockContentsViewUnitTest, LockScreenMediaControlsHiddenNoMedia) {
-  // Enable media controls.
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitAndEnableFeature(features::kLockScreenMediaControls);
-
   // Build lock screen with 1 user.
   auto* contents = new LockContentsView(
       mojom::TrayActionState::kNotAvailable, LockScreen::ScreenType::kLock,
@@ -2993,10 +2964,6 @@
 }
 
 TEST_F(LockContentsViewUnitTest, ShowMediaControlsIfPausedAndAlreadyShowing) {
-  // Enable media controls.
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitAndEnableFeature(features::kLockScreenMediaControls);
-
   // Build lock screen with 1 user.
   auto* contents = new LockContentsView(
       mojom::TrayActionState::kNotAvailable, LockScreen::ScreenType::kLock,
@@ -3022,10 +2989,6 @@
 
 TEST_F(LockContentsViewUnitTest,
        LockScreenMediaControlsHiddenIfPreferenceDisabled) {
-  // Enable media controls.
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitAndEnableFeature(features::kLockScreenMediaControls);
-
   // Disable user preference for media controls.
   PrefService* prefs =
       Shell::Get()->session_controller()->GetLastActiveUserPrefService();
@@ -3050,10 +3013,6 @@
 }
 
 TEST_F(LockContentsViewUnitTest, MediaControlsHiddenOnLoginScreen) {
-  // Enable media controls.
-  base::test::ScopedFeatureList feature_list;
-  feature_list.InitAndEnableFeature(features::kLockScreenMediaControls);
-
   // Build login screen with 1 user.
   auto* contents = new LockContentsView(
       mojom::TrayActionState::kNotAvailable, LockScreen::ScreenType::kLogin,
diff --git a/ash/login/ui/lock_screen_media_controls_view_unittest.cc b/ash/login/ui/lock_screen_media_controls_view_unittest.cc
index f91d3429..98224d9 100644
--- a/ash/login/ui/lock_screen_media_controls_view_unittest.cc
+++ b/ash/login/ui/lock_screen_media_controls_view_unittest.cc
@@ -119,9 +119,6 @@
   void SetUp() override {
     set_start_session(true);
 
-    // Enable media controls.
-    feature_list.InitAndEnableFeature(features::kLockScreenMediaControls);
-
     LoginTestBase::SetUp();
 
     lock_contents_view_ = new LockContentsView(
diff --git a/ash/media/media_controller_impl.cc b/ash/media/media_controller_impl.cc
index 46e4606..0d02663 100644
--- a/ash/media/media_controller_impl.cc
+++ b/ash/media/media_controller_impl.cc
@@ -54,10 +54,9 @@
 bool MediaControllerImpl::AreLockScreenMediaKeysEnabled() const {
   PrefService* prefs =
       Shell::Get()->session_controller()->GetPrimaryUserPrefService();
-  DCHECK(prefs);
+  CHECK(prefs);
 
-  return base::FeatureList::IsEnabled(features::kLockScreenMediaControls) &&
-         prefs->GetBoolean(prefs::kLockScreenMediaControlsEnabled) &&
+  return prefs->GetBoolean(prefs::kLockScreenMediaControlsEnabled) &&
          !media_controls_dismissed_;
 }
 
diff --git a/ash/media/media_controller_unittest.cc b/ash/media/media_controller_unittest.cc
index dc54a01..d0bcc00 100644
--- a/ash/media/media_controller_unittest.cc
+++ b/ash/media/media_controller_unittest.cc
@@ -95,28 +95,6 @@
   std::unique_ptr<media_session::test::TestMediaController> controller_;
 };
 
-class MediaControllerLockScreenEnabledTest : public MediaControllerTest {
- public:
-  MediaControllerLockScreenEnabledTest() {
-    scoped_feature_list_.InitAndEnableFeature(
-        features::kLockScreenMediaControls);
-  }
-
- private:
-  base::test::ScopedFeatureList scoped_feature_list_;
-};
-
-class MediaControllerLockScreenDisabledTest : public MediaControllerTest {
- public:
-  MediaControllerLockScreenDisabledTest() {
-    scoped_feature_list_.InitAndDisableFeature(
-        features::kLockScreenMediaControls);
-  }
-
- private:
-  base::test::ScopedFeatureList scoped_feature_list_;
-};
-
 TEST_F(MediaControllerTest, EnableMediaKeysWhenUnlocked) {
   EXPECT_EQ(0, controller()->suspend_count());
   EXPECT_EQ(0, controller()->resume_count());
@@ -137,7 +115,7 @@
   EXPECT_EQ(1, controller()->seek_forward_count());
 }
 
-TEST_F(MediaControllerLockScreenEnabledTest, EnableLockScreenMediaKeys) {
+TEST_F(MediaControllerTest, EnableLockScreenMediaKeys) {
   PrefService* prefs =
       Shell::Get()->session_controller()->GetLastActiveUserPrefService();
   prefs->SetBoolean(prefs::kLockScreenMediaControlsEnabled, true);
@@ -146,23 +124,7 @@
       Shell::Get()->media_controller()->AreLockScreenMediaKeysEnabled());
 }
 
-TEST_F(MediaControllerLockScreenDisabledTest,
-       DisableLockScreenMediaKeysIfFeatureDisabled) {
-  PrefService* prefs =
-      Shell::Get()->session_controller()->GetPrimaryUserPrefService();
-  prefs->SetBoolean(prefs::kLockScreenMediaControlsEnabled, true);
-
-  EXPECT_FALSE(
-      Shell::Get()->media_controller()->AreLockScreenMediaKeysEnabled());
-
-  prefs->SetBoolean(prefs::kLockScreenMediaControlsEnabled, false);
-
-  EXPECT_FALSE(
-      Shell::Get()->media_controller()->AreLockScreenMediaKeysEnabled());
-}
-
-TEST_F(MediaControllerLockScreenEnabledTest,
-       DisableLockScreenMediaKeysIfPreferenceDisabled) {
+TEST_F(MediaControllerTest, DisableLockScreenMediaKeysIfPreferenceDisabled) {
   PrefService* prefs =
       Shell::Get()->session_controller()->GetPrimaryUserPrefService();
   prefs->SetBoolean(prefs::kLockScreenMediaControlsEnabled, false);
@@ -171,8 +133,7 @@
       Shell::Get()->media_controller()->AreLockScreenMediaKeysEnabled());
 }
 
-TEST_F(MediaControllerLockScreenEnabledTest,
-       EnableMediaKeysWhenLockedAndControlsEnabled) {
+TEST_F(MediaControllerTest, EnableMediaKeysWhenLockedAndControlsEnabled) {
   PrefService* prefs =
       Shell::Get()->session_controller()->GetPrimaryUserPrefService();
   prefs->SetBoolean(prefs::kLockScreenMediaControlsEnabled, true);
@@ -198,8 +159,7 @@
   EXPECT_EQ(1, controller()->seek_forward_count());
 }
 
-TEST_F(MediaControllerLockScreenEnabledTest,
-       DisableMediaKeysWhenLockedAndControlsDisabled) {
+TEST_F(MediaControllerTest, DisableMediaKeysWhenLockedAndControlsDisabled) {
   PrefService* prefs =
       Shell::Get()->session_controller()->GetPrimaryUserPrefService();
   prefs->SetBoolean(prefs::kLockScreenMediaControlsEnabled, false);
diff --git a/ash/public/mojom/BUILD.gn b/ash/public/mojom/BUILD.gn
index bea43456..aa7ad6f9 100644
--- a/ash/public/mojom/BUILD.gn
+++ b/ash/public/mojom/BUILD.gn
@@ -44,7 +44,6 @@
 # files for all dependencies (and their dependencies) in //ash/public/mojom.
 mojom("accelerator_info") {
   disable_variants = true
-  use_typescript_sources = true
   generate_legacy_js_bindings = true
 
   webui_module_path = "/"
@@ -63,7 +62,6 @@
 mojom("input_device_settings") {
   disable_variants = true
   webui_module_path = "/"
-  use_typescript_sources = true
   generate_legacy_js_bindings = true
 
   sources = [ "input_device_settings.mojom" ]
@@ -84,7 +82,6 @@
 # files for all dependencies (and their dependencies) in //ash/public/mojom.
 mojom("accelerator_configuration") {
   disable_variants = true
-  use_typescript_sources = true
   generate_legacy_js_bindings = true
 
   webui_module_path = "/"
@@ -99,7 +96,6 @@
 # files for all dependencies (and their dependencies) in //ash/public/mojom.
 mojom("accelerator_keys") {
   disable_variants = true
-  use_typescript_sources = true
   generate_legacy_js_bindings = true
 
   webui_module_path = "/"
@@ -131,7 +127,6 @@
 # files for all dependencies (and their dependencies) in //ash/public/mojom.
 mojom("accelerator_actions") {
   disable_variants = true
-  use_typescript_sources = true
   generate_legacy_js_bindings = true
 
   webui_module_path = "/"
diff --git a/ash/style/ash_color_provider_source.cc b/ash/style/ash_color_provider_source.cc
index 3c5a626..e3c8874 100644
--- a/ash/style/ash_color_provider_source.cc
+++ b/ash/style/ash_color_provider_source.cc
@@ -20,6 +20,18 @@
       GetColorProviderKey());
 }
 
+const ui::RendererColorMap AshColorProviderSource::GetRendererColorMap(
+    ui::ColorProviderKey::ColorMode color_mode,
+    ui::ColorProviderKey::ForcedColors forced_colors) const {
+  auto key = GetColorProviderKey();
+  key.color_mode = color_mode;
+  key.forced_colors = forced_colors;
+  ui::ColorProvider* color_provider =
+      ui::ColorProviderManager::Get().GetColorProviderFor(key);
+  CHECK(color_provider);
+  return ui::CreateRendererColorMap(*color_provider);
+}
+
 void AshColorProviderSource::OnNativeThemeUpdated(
     ui::NativeTheme* observed_theme) {
   DCHECK(native_theme_observation_.IsObservingSource(observed_theme));
diff --git a/ash/style/ash_color_provider_source.h b/ash/style/ash_color_provider_source.h
index bbd8147..9361fff0 100644
--- a/ash/style/ash_color_provider_source.h
+++ b/ash/style/ash_color_provider_source.h
@@ -28,6 +28,10 @@
   // ui::ColorProviderSource:
   const ui::ColorProvider* GetColorProvider() const override;
 
+  const ui::RendererColorMap GetRendererColorMap(
+      ui::ColorProviderKey::ColorMode color_mode,
+      ui::ColorProviderKey::ForcedColors forced_colors) const override;
+
   // ui::NativeThemeObserver:
   void OnNativeThemeUpdated(ui::NativeTheme* observed_theme) override;
 
diff --git a/ash/style/mojom/BUILD.gn b/ash/style/mojom/BUILD.gn
index ab59e43..1b2635655 100644
--- a/ash/style/mojom/BUILD.gn
+++ b/ash/style/mojom/BUILD.gn
@@ -10,5 +10,4 @@
   sources = [ "color_scheme.mojom" ]
 
   webui_module_path = ""
-  use_typescript_sources = true
 }
diff --git a/ash/system/accessibility/accessibility_detailed_view_pixeltest.cc b/ash/system/accessibility/accessibility_detailed_view_pixeltest.cc
index 2d6e7d9..266438b 100644
--- a/ash/system/accessibility/accessibility_detailed_view_pixeltest.cc
+++ b/ash/system/accessibility/accessibility_detailed_view_pixeltest.cc
@@ -6,7 +6,6 @@
 #include "ash/system/unified/unified_system_tray.h"
 #include "ash/system/unified/unified_system_tray_bubble.h"
 #include "ash/system/unified/unified_system_tray_controller.h"
-#include "ash/system/unified/unified_system_tray_view.h"
 #include "ash/test/ash_test_base.h"
 #include "ash/test/pixel/ash_pixel_differ.h"
 #include "ash/test/pixel/ash_pixel_test_init_params.h"
diff --git a/ash/system/accessibility/autoclick_menu_bubble_controller.cc b/ash/system/accessibility/autoclick_menu_bubble_controller.cc
index 11d55aa1..d06dd91f 100644
--- a/ash/system/accessibility/autoclick_menu_bubble_controller.cc
+++ b/ash/system/accessibility/autoclick_menu_bubble_controller.cc
@@ -14,7 +14,6 @@
 #include "ash/system/tray/tray_background_view.h"
 #include "ash/system/tray/tray_bubble_view.h"
 #include "ash/system/tray/tray_constants.h"
-#include "ash/system/unified/unified_system_tray_view.h"
 #include "ash/wm/collision_detection/collision_detection_utils.h"
 #include "ash/wm/work_area_insets.h"
 #include "ash/wm/workspace/workspace_layout_manager.h"
diff --git a/ash/system/accessibility/autoclick_scroll_bubble_controller.cc b/ash/system/accessibility/autoclick_scroll_bubble_controller.cc
index 0c3850d..e06bef7 100644
--- a/ash/system/accessibility/autoclick_scroll_bubble_controller.cc
+++ b/ash/system/accessibility/autoclick_scroll_bubble_controller.cc
@@ -11,7 +11,6 @@
 #include "ash/strings/grit/ash_strings.h"
 #include "ash/system/tray/tray_background_view.h"
 #include "ash/system/tray/tray_constants.h"
-#include "ash/system/unified/unified_system_tray_view.h"
 #include "ash/wm/collision_detection/collision_detection_utils.h"
 #include "ash/wm/work_area_insets.h"
 #include "ash/wm/workspace/workspace_layout_manager.h"
diff --git a/ash/system/accessibility/select_to_speak/select_to_speak_menu_bubble_controller.cc b/ash/system/accessibility/select_to_speak/select_to_speak_menu_bubble_controller.cc
index 160de90..c72b5c0 100644
--- a/ash/system/accessibility/select_to_speak/select_to_speak_menu_bubble_controller.cc
+++ b/ash/system/accessibility/select_to_speak/select_to_speak_menu_bubble_controller.cc
@@ -13,7 +13,6 @@
 #include "ash/system/accessibility/select_to_speak/select_to_speak_constants.h"
 #include "ash/system/tray/tray_background_view.h"
 #include "ash/system/tray/tray_constants.h"
-#include "ash/system/unified/unified_system_tray_view.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/compositor/layer.h"
 #include "ui/views/border.h"
diff --git a/ash/system/accessibility/select_to_speak/select_to_speak_speed_bubble_controller.cc b/ash/system/accessibility/select_to_speak/select_to_speak_speed_bubble_controller.cc
index 37ad5fd..b492c26f 100644
--- a/ash/system/accessibility/select_to_speak/select_to_speak_speed_bubble_controller.cc
+++ b/ash/system/accessibility/select_to_speak/select_to_speak_speed_bubble_controller.cc
@@ -15,7 +15,6 @@
 #include "ash/system/accessibility/select_to_speak/select_to_speak_speed_view.h"
 #include "ash/system/tray/tray_background_view.h"
 #include "ash/system/tray/tray_constants.h"
-#include "ash/system/unified/unified_system_tray_view.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/compositor/layer.h"
 #include "ui/wm/public/activation_client.h"
diff --git a/ash/system/accessibility/switch_access/switch_access_menu_bubble_controller.cc b/ash/system/accessibility/switch_access/switch_access_menu_bubble_controller.cc
index 8b233af..34a880b 100644
--- a/ash/system/accessibility/switch_access/switch_access_menu_bubble_controller.cc
+++ b/ash/system/accessibility/switch_access/switch_access_menu_bubble_controller.cc
@@ -11,7 +11,6 @@
 #include "ash/system/accessibility/switch_access/switch_access_menu_view.h"
 #include "ash/system/tray/tray_background_view.h"
 #include "ash/system/tray/tray_constants.h"
-#include "ash/system/unified/unified_system_tray_view.h"
 #include "ash/wm/collision_detection/collision_detection_utils.h"
 #include "ui/accessibility/ax_enums.mojom.h"
 #include "ui/compositor/layer.h"
diff --git a/ash/system/bluetooth/bluetooth_detailed_view.h b/ash/system/bluetooth/bluetooth_detailed_view.h
index 062fead..87997e2 100644
--- a/ash/system/bluetooth/bluetooth_detailed_view.h
+++ b/ash/system/bluetooth/bluetooth_detailed_view.h
@@ -88,7 +88,7 @@
 
   // Returns the main content view which contains a list of child views that
   // make up the list of connected and previously connected bluetooth devices,
-  // including their headers and any separators.
+  // including their headers.
   virtual views::View* device_list() = 0;
 
  protected:
diff --git a/ash/system/bluetooth/bluetooth_detailed_view_impl_pixeltest.cc b/ash/system/bluetooth/bluetooth_detailed_view_impl_pixeltest.cc
index a183215..66a88c2 100644
--- a/ash/system/bluetooth/bluetooth_detailed_view_impl_pixeltest.cc
+++ b/ash/system/bluetooth/bluetooth_detailed_view_impl_pixeltest.cc
@@ -4,7 +4,6 @@
 
 #include <string>
 
-#include "ash/constants/ash_features.h"
 #include "ash/system/tray/tray_detailed_view.h"
 #include "ash/system/unified/quick_settings_view.h"
 #include "ash/system/unified/unified_system_tray.h"
@@ -14,11 +13,9 @@
 #include "ash/test/ash_test_helper.h"
 #include "ash/test/pixel/ash_pixel_differ.h"
 #include "ash/test/pixel/ash_pixel_test_init_params.h"
-#include "base/test/scoped_feature_list.h"
 #include "chromeos/ash/services/bluetooth_config/fake_device_cache.h"
 #include "chromeos/ash/services/bluetooth_config/public/mojom/cros_bluetooth_config.mojom.h"
 #include "chromeos/ash/services/bluetooth_config/scoped_bluetooth_config_test_helper.h"
-#include "chromeos/constants/chromeos_features.h"
 
 namespace ash {
 namespace {
@@ -44,9 +41,7 @@
 // Pixel tests for the quick settings Bluetooth detailed view.
 class BluetoothDetailedViewImplPixelTest : public AshTestBase {
  public:
-  BluetoothDetailedViewImplPixelTest() {
-    feature_list_.InitWithFeatures({chromeos::features::kJelly}, {});
-  }
+  BluetoothDetailedViewImplPixelTest() = default;
 
   // AshTestBase:
   absl::optional<pixel_test::InitParams> CreatePixelTestInitParams()
@@ -62,9 +57,6 @@
         ->fake_device_cache()
         ->SetPairedDevices(std::move(paired_devices));
   }
-
- private:
-  base::test::ScopedFeatureList feature_list_;
 };
 
 TEST_F(BluetoothDetailedViewImplPixelTest, Basics) {
diff --git a/ash/system/bluetooth/bluetooth_device_list_controller_impl.cc b/ash/system/bluetooth/bluetooth_device_list_controller_impl.cc
index e357cf7..a16f6892 100644
--- a/ash/system/bluetooth/bluetooth_device_list_controller_impl.cc
+++ b/ash/system/bluetooth/bluetooth_device_list_controller_impl.cc
@@ -4,14 +4,11 @@
 
 #include "ash/system/bluetooth/bluetooth_device_list_controller_impl.h"
 
-#include "ash/constants/ash_features.h"
 #include "ash/strings/grit/ash_strings.h"
 #include "ash/system/bluetooth/bluetooth_detailed_view.h"
 #include "ash/system/bluetooth/bluetooth_device_list_item_view.h"
-#include "ash/system/tray/tray_popup_utils.h"
 #include "base/check.h"
 #include "ui/gfx/paint_vector_icon.h"
-#include "ui/views/controls/separator.h"
 #include "ui/views/view.h"
 
 namespace ash {
@@ -50,7 +47,6 @@
     bool enabled) {
   if (is_bluetooth_enabled_ && !enabled) {
     device_id_to_view_map_.clear();
-    device_list_separator_ = nullptr;
     connected_sub_header_ = nullptr;
     no_device_connected_sub_header_ = nullptr;
     previously_connected_sub_header_ = nullptr;
@@ -95,26 +91,6 @@
     RemoveAndResetViewIfExists(&connected_sub_header_);
   }
 
-  // QsRevamp does not use a separator.
-  if (!features::IsQsRevampEnabled()) {
-    // The separator between the connected and previously connected devices.
-    if (!connected.empty() && !previously_connected.empty()) {
-      if (!device_list_separator_) {
-        device_list_separator_ =
-            bluetooth_detailed_view_->device_list()->AddChildView(
-                TrayPopupUtils::CreateListSubHeaderSeparator());
-      }
-      bluetooth_detailed_view_->device_list()->ReorderChildView(
-          device_list_separator_, index);
-
-      // Increment |index| since this position was taken by
-      // |device_list_separator_|.
-      index++;
-    } else {
-      RemoveAndResetViewIfExists(&device_list_separator_);
-    }
-  }
-
   // The previously connected devices.
   if (!previously_connected.empty()) {
     previously_connected_sub_header_ = CreateSubHeaderIfMissingAndReorder(
diff --git a/ash/system/bluetooth/bluetooth_device_list_controller_impl.h b/ash/system/bluetooth/bluetooth_device_list_controller_impl.h
index 7fd857f..82109ae 100644
--- a/ash/system/bluetooth/bluetooth_device_list_controller_impl.h
+++ b/ash/system/bluetooth/bluetooth_device_list_controller_impl.h
@@ -16,7 +16,6 @@
 #include "chromeos/ash/services/bluetooth_config/public/mojom/cros_bluetooth_config.mojom.h"
 
 namespace views {
-class Separator;
 class View;
 }  // namespace views
 
@@ -72,9 +71,6 @@
       device_id_to_view_map_;
   // This field is not a raw_ptr<> because it was filtered by the rewriter
   // for: #addr-of
-  RAW_PTR_EXCLUSION views::Separator* device_list_separator_ = nullptr;
-  // This field is not a raw_ptr<> because it was filtered by the rewriter
-  // for: #addr-of
   RAW_PTR_EXCLUSION views::View* connected_sub_header_ = nullptr;
   // This field is not a raw_ptr<> because it was filtered by the rewriter
   // for: #addr-of
diff --git a/ash/system/bluetooth/bluetooth_device_list_controller_unittest.cc b/ash/system/bluetooth/bluetooth_device_list_controller_unittest.cc
index 59532a48..b99a00d1 100644
--- a/ash/system/bluetooth/bluetooth_device_list_controller_unittest.cc
+++ b/ash/system/bluetooth/bluetooth_device_list_controller_unittest.cc
@@ -8,18 +8,15 @@
 #include <string>
 #include <vector>
 
-#include "ash/constants/ash_features.h"
 #include "ash/strings/grit/ash_strings.h"
 #include "ash/system/bluetooth/bluetooth_detailed_view.h"
 #include "ash/system/bluetooth/bluetooth_device_list_item_view.h"
 #include "ash/system/bluetooth/fake_bluetooth_detailed_view.h"
 #include "ash/system/tray/tri_view.h"
 #include "ash/test/ash_test_base.h"
-#include "base/test/scoped_feature_list.h"
 #include "chromeos/ash/services/bluetooth_config/public/mojom/cros_bluetooth_config.mojom.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/views/controls/label.h"
-#include "ui/views/controls/separator.h"
 
 namespace ash {
 
@@ -35,13 +32,9 @@
 
 }  // namespace
 
-class BluetoothDeviceListControllerTest
-    : public AshTestBase,
-      public testing::WithParamInterface<bool> {
+class BluetoothDeviceListControllerTest : public AshTestBase {
  public:
   void SetUp() override {
-    scoped_feature_list_.InitWithFeatureState(features::kQsRevamp,
-                                              IsQsRevampEnabled());
     AshTestBase::SetUp();
 
     fake_bluetooth_detailed_view_ =
@@ -68,14 +61,6 @@
         IDS_ASH_STATUS_TRAY_BLUETOOTH_NO_DEVICE_CONNECTED));
   }
 
-  const views::Separator* FindSeparator() {
-    for (const auto* view : device_list()->children()) {
-      if (!std::strcmp("Separator", view->GetClassName()))
-        return static_cast<const views::Separator*>(view);
-    }
-    return nullptr;
-  }
-
   PairedBluetoothDevicePropertiesPtr BuildDeviceProperties(
       const std::string& id) {
     PairedBluetoothDevicePropertiesPtr device_properties =
@@ -116,20 +101,6 @@
       const size_t connected_index =
           device_list()->GetIndexOf(connected_sub_header).value();
       EXPECT_EQ(0u, connected_index);
-
-      // QsRevamp does not use a separator.
-      if (!features::IsQsRevampEnabled()) {
-        const views::Separator* device_list_separator = FindSeparator();
-        EXPECT_TRUE(device_list_separator);
-
-        const size_t previously_connected_index =
-            device_list()->GetIndexOf(previously_connected_sub_header).value();
-        const size_t separator_index =
-            device_list()->GetIndexOf(device_list_separator).value();
-        EXPECT_EQ(connected_device_count + 1, separator_index);
-        EXPECT_EQ(separator_index + 1, previously_connected_index);
-      }
-
       return;
     }
 
@@ -163,9 +134,6 @@
                               ->notify_device_list_changed_call_count());
   }
 
-  // TODO(b/305075031) clean up after the flag is removed.
-  bool IsQsRevampEnabled() { return true; }
-
   views::View* device_list() {
     return static_cast<BluetoothDetailedView*>(
                fake_bluetooth_detailed_view_.get())
@@ -198,16 +166,9 @@
   std::unique_ptr<FakeBluetoothDetailedView> fake_bluetooth_detailed_view_;
   std::unique_ptr<BluetoothDeviceListControllerImpl>
       bluetooth_device_list_controller_impl_;
-
- private:
-  base::test::ScopedFeatureList scoped_feature_list_;
 };
 
-INSTANTIATE_TEST_SUITE_P(All,
-                         BluetoothDeviceListControllerTest,
-                         testing::Bool());
-
-TEST_P(BluetoothDeviceListControllerTest,
+TEST_F(BluetoothDeviceListControllerTest,
        HasCorrectSubHeaderWithNoPairedDevices) {
   CheckNotifyDeviceListChangedCount(/*call_count=*/0u);
 
@@ -224,7 +185,7 @@
   EXPECT_TRUE(no_device_connected_sub_header);
 }
 
-TEST_P(BluetoothDeviceListControllerTest,
+TEST_F(BluetoothDeviceListControllerTest,
        HasCorrectDeviceListOrderWithPairedAndPreviouslyPairedDevices) {
   CheckNotifyDeviceListChangedCount(/*call_count=*/0u);
 
@@ -282,18 +243,15 @@
   // here is a combination of the following views (all are optional):
   // *  Connected device header
   // *  Connected device list
-  // *  Separator
   // *  Previously connected device header
   // *  Previously connected device list
   const int connected_header_count = FindConnectedSubHeader() ? 1 : 0;
   const int previously_connected_header_count =
       FindPreviouslyConnectedSubHeader() ? 1 : 0;
-  const int separator_count = FindSeparator() ? 1 : 0;
   const size_t device_count =
       connected_list.size() + previously_connected_list.size();
-  const auto expected_device_list_size = connected_header_count +
-                                         previously_connected_header_count +
-                                         separator_count + device_count;
+  const auto expected_device_list_size =
+      connected_header_count + previously_connected_header_count + device_count;
   EXPECT_EQ(expected_device_list_size, device_list()->children().size());
 
   CheckDeviceListOrdering(
@@ -301,7 +259,7 @@
       /*previously_connected_device_count=*/previously_connected_list.size());
 }
 
-TEST_P(BluetoothDeviceListControllerTest, ExistingDeviceViewsAreUpdated) {
+TEST_F(BluetoothDeviceListControllerTest, ExistingDeviceViewsAreUpdated) {
   CheckNotifyDeviceListChangedCount(/*call_count=*/0u);
 
   bluetooth_device_list_controller()->UpdateBluetoothEnabledState(true);
@@ -334,7 +292,7 @@
                first_item->device_properties()->nickname.value().c_str());
 }
 
-TEST_P(BluetoothDeviceListControllerTest,
+TEST_F(BluetoothDeviceListControllerTest,
        DeviceListIsClearedWhenBluetoothBecomesDisabled) {
   CheckNotifyDeviceListChangedCount(/*call_count=*/0u);
 
diff --git a/ash/system/bluetooth/bluetooth_device_list_item_battery_view.cc b/ash/system/bluetooth/bluetooth_device_list_item_battery_view.cc
index 07af0404..b5e37f8 100644
--- a/ash/system/bluetooth/bluetooth_device_list_item_battery_view.cc
+++ b/ash/system/bluetooth/bluetooth_device_list_item_battery_view.cc
@@ -11,7 +11,6 @@
 #include "ash/system/tray/unfocusable_label.h"
 #include "base/check.h"
 #include "base/strings/string_number_conversions.h"
-#include "chromeos/constants/chromeos_features.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/metadata/metadata_impl_macros.h"
 #include "ui/chromeos/styles/cros_tokens_color_mappings.h"
@@ -72,15 +71,9 @@
   }
 
   ui::ColorId color_id;
-  if (chromeos::features::IsJellyEnabled()) {
     color_id = new_battery_percentage >= kPositiveBatteryPercentageCutoff
                    ? cros_tokens::kCrosSysPositive
                    : cros_tokens::kCrosSysError;
-  } else {
-    color_id = new_battery_percentage >= kPositiveBatteryPercentageCutoff
-                   ? kColorAshTextColorSecondary
-                   : kColorAshTextColorAlert;
-  }
 
   label_->SetText(l10n_util::GetStringFUTF16(
       message_id, base::NumberToString16(new_battery_percentage)));
diff --git a/ash/system/bluetooth/bluetooth_device_list_item_view.cc b/ash/system/bluetooth/bluetooth_device_list_item_view.cc
index 500fecc7..db70793 100644
--- a/ash/system/bluetooth/bluetooth_device_list_item_view.cc
+++ b/ash/system/bluetooth/bluetooth_device_list_item_view.cc
@@ -9,7 +9,6 @@
 
 #include "ash/resources/vector_icons/vector_icons.h"
 #include "ash/strings/grit/ash_strings.h"
-#include "ash/style/ash_color_id.h"
 #include "ash/style/typography.h"
 #include "ash/system/bluetooth/bluetooth_device_list_item_battery_view.h"
 #include "ash/system/bluetooth/bluetooth_device_list_item_multiple_battery_view.h"
@@ -19,7 +18,6 @@
 #include "base/notreached.h"
 #include "base/strings/strcat.h"
 #include "chromeos/ash/services/bluetooth_config/public/cpp/cros_bluetooth_config_util.h"
-#include "chromeos/constants/chromeos_features.h"
 #include "chromeos/strings/grit/chromeos_strings.h"
 #include "chromeos/ui/vector_icons/vector_icons.h"
 #include "mojo/public/cpp/bindings/clone_traits.h"
@@ -194,32 +192,24 @@
   const DeviceType& device_type =
       device_properties_->device_properties->device_type;
 
-  AddIconAndLabel(
-      ui::ImageModel::FromVectorIcon(
-          GetDeviceIcon(device_type),
-          chromeos::features::IsJellyEnabled()
-              ? static_cast<ui::ColorId>(cros_tokens::kCrosSysOnSurface)
-              : kColorAshIconColorPrimary),
-      GetPairedDeviceName(device_properties_));
-  if (chromeos::features::IsJellyEnabled()) {
-    text_label()->SetEnabledColorId(cros_tokens::kCrosSysOnSurface);
-    TypographyProvider::Get()->StyleLabel(ash::TypographyToken::kCrosButton2,
-                                          *text_label());
-  }
+  AddIconAndLabel(ui::ImageModel::FromVectorIcon(
+                      GetDeviceIcon(device_type),
+                      static_cast<ui::ColorId>(cros_tokens::kCrosSysOnSurface)),
+                  GetPairedDeviceName(device_properties_));
+  text_label()->SetEnabledColorId(cros_tokens::kCrosSysOnSurface);
+  TypographyProvider::Get()->StyleLabel(ash::TypographyToken::kCrosButton2,
+                                        *text_label());
 
   UpdateAccessibleName(device_index, total_device_count);
 
   // Adds an icon to indicate that the device supports profiles or services that
   // are disabled or blocked by enterprise policy.
   if (device_properties->device_properties->is_blocked_by_policy) {
-    AddRightIcon(
-        ui::ImageModel::FromVectorIcon(
-            chromeos::kEnterpriseIcon,
-            chromeos::features::IsJellyEnabled()
-                ? static_cast<ui::ColorId>(cros_tokens::kCrosSysOnSurface)
-                : kColorAshIconColorBlocked,
-            kEnterpriseManagedIconSizeDip),
-        /*icon_size=*/kEnterpriseManagedIconSizeDip);
+    AddRightIcon(ui::ImageModel::FromVectorIcon(
+                     chromeos::kEnterpriseIcon,
+                     static_cast<ui::ColorId>(cros_tokens::kCrosSysOnSurface),
+                     kEnterpriseManagedIconSizeDip),
+                 /*icon_size=*/kEnterpriseManagedIconSizeDip);
   }
 
   const DeviceConnectionState& connection_state =
diff --git a/ash/system/bluetooth/bluetooth_disabled_detailed_view.cc b/ash/system/bluetooth/bluetooth_disabled_detailed_view.cc
deleted file mode 100644
index e6f93d66..0000000
--- a/ash/system/bluetooth/bluetooth_disabled_detailed_view.cc
+++ /dev/null
@@ -1,67 +0,0 @@
-// Copyright 2021 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ash/system/bluetooth/bluetooth_disabled_detailed_view.h"
-
-#include <memory>
-
-#include "ash/constants/ash_features.h"
-#include "ash/resources/vector_icons/vector_icons.h"
-#include "ash/strings/grit/ash_strings.h"
-#include "ash/style/ash_color_id.h"
-#include "ash/style/color_util.h"
-#include "ash/system/tray/tray_popup_utils.h"
-#include "base/check.h"
-#include "third_party/skia/include/core/SkColor.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/base/models/image_model.h"
-#include "ui/gfx/paint_vector_icon.h"
-#include "ui/views/controls/image_view.h"
-#include "ui/views/controls/label.h"
-#include "ui/views/layout/box_layout.h"
-
-namespace ash {
-namespace {
-
-using views::BoxLayout;
-using views::ImageView;
-using views::Label;
-
-// The desired label baseline. Top padding is added that is equal to the
-// difference between this value and the actual label baseline value.
-const int kDesiredLabelBaselineY = 20;
-
-}  // namespace
-
-BluetoothDisabledDetailedView::BluetoothDisabledDetailedView() {
-  DCHECK(!features::IsQsRevampEnabled());
-  std::unique_ptr<BoxLayout> box_layout =
-      std::make_unique<BoxLayout>(BoxLayout::Orientation::kVertical);
-  box_layout->set_main_axis_alignment(BoxLayout::MainAxisAlignment::kCenter);
-  SetLayoutManager(std::move(box_layout));
-
-  ImageView* image_view =
-      AddChildView(std::make_unique<ImageView>(ui::ImageModel::FromVectorIcon(
-          kSystemMenuBluetoothDisabledIcon, kColorAshButtonIconDisabledColor)));
-  image_view->SetVerticalAlignment(ImageView::Alignment::kTrailing);
-
-  Label* label = AddChildView(std::make_unique<Label>(
-      l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_BLUETOOTH_DISABLED)));
-  TrayPopupUtils::SetLabelFontList(
-      label, TrayPopupUtils::FontStyle::kDetailedViewLabel);
-  label->SetBorder(views::CreateEmptyBorder(gfx::Insets::TLBR(
-      kDesiredLabelBaselineY - label->GetBaseline(), 0, 0, 0)));
-  label->SetEnabledColorId(kColorAshTextColorPrimary);
-
-  // Make top padding of the icon equal to the height of the label so that the
-  // icon is vertically aligned to center of the container.
-  image_view->SetBorder(views::CreateEmptyBorder(
-      gfx::Insets::TLBR(label->GetPreferredSize().height(), 0, 0, 0)));
-}
-
-const char* BluetoothDisabledDetailedView::GetClassName() const {
-  return "BluetoothDisabledDetailedView";
-}
-
-}  // namespace ash
diff --git a/ash/system/bluetooth/bluetooth_disabled_detailed_view.h b/ash/system/bluetooth/bluetooth_disabled_detailed_view.h
deleted file mode 100644
index 22e4b25..0000000
--- a/ash/system/bluetooth/bluetooth_disabled_detailed_view.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ASH_SYSTEM_BLUETOOTH_BLUETOOTH_DISABLED_DETAILED_VIEW_H_
-#define ASH_SYSTEM_BLUETOOTH_BLUETOOTH_DISABLED_DETAILED_VIEW_H_
-
-#include "ash/ash_export.h"
-#include "ui/views/view.h"
-
-namespace views {
-class View;
-}  // namespace views
-
-namespace ash {
-
-// This class encapsulates the logic of configuring the view shown for the
-// detailed Bluetooth page within the quick settings when Bluetooth is disabled.
-class ASH_EXPORT BluetoothDisabledDetailedView : public views::View {
- public:
-  BluetoothDisabledDetailedView();
-  BluetoothDisabledDetailedView(const BluetoothDisabledDetailedView&) = delete;
-  BluetoothDisabledDetailedView& operator=(
-      const BluetoothDisabledDetailedView&) = delete;
-  ~BluetoothDisabledDetailedView() override = default;
-
- private:
-  // views::View:
-  const char* GetClassName() const override;
-};
-
-}  // namespace ash
-
-#endif  // ASH_SYSTEM_BLUETOOTH_BLUETOOTH_DISABLED_DETAILED_VIEW_H_
diff --git a/ash/system/bluetooth/bluetooth_feature_pod_controller_unittest.cc b/ash/system/bluetooth/bluetooth_feature_pod_controller_unittest.cc
index e52a1cbc..ea4c9dc9 100644
--- a/ash/system/bluetooth/bluetooth_feature_pod_controller_unittest.cc
+++ b/ash/system/bluetooth/bluetooth_feature_pod_controller_unittest.cc
@@ -18,7 +18,6 @@
 #include "ash/system/unified/unified_system_tray.h"
 #include "ash/system/unified/unified_system_tray_bubble.h"
 #include "ash/system/unified/unified_system_tray_controller.h"
-#include "ash/system/unified/unified_system_tray_view.h"
 #include "ash/test/ash_test_base.h"
 #include "ash/test/ash_test_helper.h"
 #include "base/i18n/number_formatting.h"
@@ -214,10 +213,6 @@
         ->unified_system_tray_controller();
   }
 
-  UnifiedSystemTrayView* tray_view() {
-    return GetPrimaryUnifiedSystemTray()->bubble()->unified_view();
-  }
-
   size_t GetTryToShowSurveyCount() {
     return fake_trigger_impl_->try_to_show_survey_count();
   }
diff --git a/ash/system/channel_indicator/channel_indicator_quick_settings_view.h b/ash/system/channel_indicator/channel_indicator_quick_settings_view.h
index 143c2fb3..3975d26 100644
--- a/ash/system/channel_indicator/channel_indicator_quick_settings_view.h
+++ b/ash/system/channel_indicator/channel_indicator_quick_settings_view.h
@@ -14,7 +14,7 @@
 namespace ash {
 
 // ChannelIndicatorQuickSettingsView contains all of the views included in the
-// channel indicator UI that resides in UnifiedSystemInfoView.
+// channel indicator UI that resides in `QuickSettingsHeader`.
 class ASH_EXPORT ChannelIndicatorQuickSettingsView : public views::View {
  public:
   METADATA_HEADER(ChannelIndicatorQuickSettingsView);
diff --git a/ash/system/input_device_settings/input_device_settings_metrics_manager_unittest.cc b/ash/system/input_device_settings/input_device_settings_metrics_manager_unittest.cc
index 4fd52aa..18a4f1a 100644
--- a/ash/system/input_device_settings/input_device_settings_metrics_manager_unittest.cc
+++ b/ash/system/input_device_settings/input_device_settings_metrics_manager_unittest.cc
@@ -610,7 +610,136 @@
   graphics_tablet.device_key = kGraphicsTabletId;
   graphics_tablet.settings = mojom::GraphicsTabletSettings::New();
 
-  // Pen button_remappings
+  graphics_tablet.settings->tablet_button_remappings.push_back(
+      mojom::ButtonRemapping::New("tablet-vkey",
+                                  mojom::Button::NewVkey(ui::VKEY_B),
+                                  mojom::RemappingAction::NewAcceleratorAction(
+                                      AcceleratorAction::kMediaStop)));
+  graphics_tablet.settings->tablet_button_remappings.push_back(
+      mojom::ButtonRemapping::New(
+          "tablet-right-button",
+          mojom::Button::NewCustomizableButton(
+              mojom::CustomizableButton::kRight),
+          mojom::RemappingAction::NewStaticShortcutAction(
+              mojom::StaticShortcutAction::kPaste)));
+  mojom::RemappingActionPtr key_event_for_tablet =
+      mojom::RemappingAction::NewKeyEvent(mojom::KeyEvent::New(
+          ui::KeyboardCode::VKEY_Z, (int)ui::DomCode::US_Z,
+          (int)ui::DomKey::FromCharacter('Z'),
+          (int)ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN, /*key_display=*/""));
+  graphics_tablet.settings->tablet_button_remappings.push_back(
+      mojom::ButtonRemapping::New("tablet-vkey-keyevent",
+                                  mojom::Button::NewVkey(ui::VKEY_E),
+                                  key_event_for_tablet->Clone()));
+
+  base::HistogramTester histogram_tester;
+  SimulateUserLogin(kUser1);
+  manager_.get()->RecordGraphicsTabletInitialMetrics(graphics_tablet);
+
+  // AcceleratorAction button remappings:
+  histogram_tester.ExpectTotalCount(
+      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
+      "AcceleratorAction.Initial",
+      /*expected_count=*/1);
+  histogram_tester.ExpectBucketCount(
+      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
+      "AcceleratorAction.Initial",
+      /*sample=*/AcceleratorAction::kMediaStop,
+      /*expected_count=*/1u);
+
+  // KeyEvent button remappings:
+  histogram_tester.ExpectTotalCount(
+      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
+      "KeyEvent.Initial",
+      /*expected_count=*/1);
+  histogram_tester.ExpectBucketCount(
+      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
+      "KeyEvent.Initial",
+      /*sample=*/
+      GetEncodedShortcut(key_event_for_tablet->get_key_event()->modifiers,
+                         key_event_for_tablet->get_key_event()->vkey),
+      /*expected_count=*/1u);
+
+  // StaticShortcutAction button remappings:
+  histogram_tester.ExpectTotalCount(
+      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
+      "StaticShortcutAction.Initial",
+      /*expected_count=*/1);
+  histogram_tester.ExpectBucketCount(
+      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
+      "StaticShortcutAction.Initial",
+      /*sample=*/mojom::StaticShortcutAction::kPaste,
+      /*expected_count=*/1u);
+  histogram_tester.ExpectBucketCount(
+      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
+      "StaticShortcutAction.Initial",
+      /*sample=*/mojom::StaticShortcutAction::kCopy,
+      /*expected_count=*/0u);
+
+  // Call RecordGraphicsTabletInitialMetrics with the same user and same
+  // graphics tablet, ExpectTotalCount for the metric won't increase.
+  manager_.get()->RecordGraphicsTabletInitialMetrics(graphics_tablet);
+  histogram_tester.ExpectTotalCount(
+      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
+      "AcceleratorAction.Initial",
+      /*expected_count=*/1u);
+  histogram_tester.ExpectTotalCount(
+      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
+      "KeyEvent.Initial",
+      /*expected_count=*/1u);
+  histogram_tester.ExpectTotalCount(
+      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
+      "StaticShortcutAction.Initial",
+      /*expected_count=*/1u);
+
+  // Call RecordGraphicsTabletInitialMetrics with the different user but same
+  // graphics tablet, ExpectTotalCount for the metric will increase.
+  SimulateUserLogin(kUser2);
+  manager_.get()->RecordGraphicsTabletInitialMetrics(graphics_tablet);
+  histogram_tester.ExpectTotalCount(
+      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
+      "AcceleratorAction.Initial",
+      /*expected_count=*/2u);
+  histogram_tester.ExpectTotalCount(
+      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
+      "KeyEvent.Initial",
+      /*expected_count=*/2u);
+  histogram_tester.ExpectTotalCount(
+      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
+      "StaticShortcutAction.Initial",
+      /*expected_count=*/2u);
+
+  // Call record changed settings metrics.
+  const auto old_setting = graphics_tablet.settings->Clone();
+  graphics_tablet.settings->tablet_button_remappings.at(0)->name =
+      "renamed vkey";
+  graphics_tablet.settings->tablet_button_remappings.at(1)->name =
+      "renamed customizable button";
+  manager_.get()->RecordGraphicsTabletChangedMetrics(graphics_tablet,
+                                                     *old_setting);
+  // Test tablet button remappings.
+  histogram_tester.ExpectUniqueSample(
+      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping.Name.Changed."
+      "Vkey",
+      /*sample=*/ui::KeyboardCode::VKEY_B,
+      /*expected_bucket_count=*/1u);
+  histogram_tester.ExpectBucketCount(
+      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping.Name.Changed."
+      "CustomizableButton",
+      /*sample=*/mojom::CustomizableButton::kRight,
+      /*expected_count=*/1u);
+  histogram_tester.ExpectBucketCount(
+      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping.Name.Changed."
+      "CustomizableButton",
+      /*sample=*/mojom::CustomizableButton::kMiddle,
+      /*expected_count=*/0u);
+}
+
+TEST_F(InputDeviceSettingsMetricsManagerTest, RecordGraphicsTabletPenSettings) {
+  mojom::GraphicsTablet graphics_tablet;
+  graphics_tablet.device_key = kGraphicsTabletId;
+  graphics_tablet.settings = mojom::GraphicsTabletSettings::New();
+
   graphics_tablet.settings->pen_button_remappings.push_back(
       mojom::ButtonRemapping::New("pen-vkey",
                                   mojom::Button::NewVkey(ui::VKEY_C),
@@ -633,34 +762,11 @@
                                   mojom::Button::NewVkey(ui::VKEY_B),
                                   key_event_for_pen->Clone()));
 
-  // Tablet button_remappings
-  graphics_tablet.settings->tablet_button_remappings.push_back(
-      mojom::ButtonRemapping::New("tablet-vkey",
-                                  mojom::Button::NewVkey(ui::VKEY_B),
-                                  mojom::RemappingAction::NewAcceleratorAction(
-                                      AcceleratorAction::kMediaStop)));
-  graphics_tablet.settings->tablet_button_remappings.push_back(
-      mojom::ButtonRemapping::New(
-          "tablet-right-button",
-          mojom::Button::NewCustomizableButton(
-              mojom::CustomizableButton::kRight),
-          mojom::RemappingAction::NewStaticShortcutAction(
-              mojom::StaticShortcutAction::kPaste)));
-  mojom::RemappingActionPtr key_event_for_tablet =
-      mojom::RemappingAction::NewKeyEvent(mojom::KeyEvent::New(
-          ui::KeyboardCode::VKEY_Z, (int)ui::DomCode::US_Z,
-          (int)ui::DomKey::FromCharacter('Z'),
-          (int)ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN, /*key_display=*/""));
-  graphics_tablet.settings->tablet_button_remappings.push_back(
-      mojom::ButtonRemapping::New("pen-vkey-keyevent",
-                                  mojom::Button::NewVkey(ui::VKEY_E),
-                                  key_event_for_tablet->Clone()));
-
   base::HistogramTester histogram_tester;
   SimulateUserLogin(kUser1);
   manager_.get()->RecordGraphicsTabletInitialMetrics(graphics_tablet);
 
-  // AcceleratorAction button remappings (pen):
+  // AcceleratorAction button remappings:
   histogram_tester.ExpectTotalCount(
       "ChromeOS.Settings.Device.GraphicsTabletPen.ButtonRemapping."
       "AcceleratorAction.Initial",
@@ -670,18 +776,8 @@
       "AcceleratorAction.Initial",
       /*sample=*/AcceleratorAction::kBrightnessDown,
       /*expected_count=*/1u);
-  // AcceleratorAction button remappings (tablet):
-  histogram_tester.ExpectTotalCount(
-      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
-      "AcceleratorAction.Initial",
-      /*expected_count=*/1);
-  histogram_tester.ExpectBucketCount(
-      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
-      "AcceleratorAction.Initial",
-      /*sample=*/AcceleratorAction::kMediaStop,
-      /*expected_count=*/1u);
 
-  // KeyEvent button remappings (pen):
+  // KeyEvent button remappings:
   histogram_tester.ExpectTotalCount(
       "ChromeOS.Settings.Device.GraphicsTabletPen.ButtonRemapping."
       "KeyEvent.Initial",
@@ -693,20 +789,8 @@
       GetEncodedShortcut(key_event_for_pen->get_key_event()->modifiers,
                          key_event_for_pen->get_key_event()->vkey),
       /*expected_count=*/1u);
-  // KeyEvent button remappings (tablet):
-  histogram_tester.ExpectTotalCount(
-      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
-      "KeyEvent.Initial",
-      /*expected_count=*/1);
-  histogram_tester.ExpectBucketCount(
-      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
-      "KeyEvent.Initial",
-      /*sample=*/
-      GetEncodedShortcut(key_event_for_tablet->get_key_event()->modifiers,
-                         key_event_for_tablet->get_key_event()->vkey),
-      /*expected_count=*/1u);
 
-  // StaticShortcutAction button remappings (pen):
+  // StaticShortcutAction button remappings:
   histogram_tester.ExpectTotalCount(
       "ChromeOS.Settings.Device.GraphicsTabletPen.ButtonRemapping."
       "StaticShortcutAction.Initial",
@@ -722,22 +806,6 @@
       /*sample=*/mojom::StaticShortcutAction::kPaste,
       /*expected_count=*/0u);
 
-  // StaticShortcutAction button remappings (tablet):
-  histogram_tester.ExpectTotalCount(
-      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
-      "StaticShortcutAction.Initial",
-      /*expected_count=*/1);
-  histogram_tester.ExpectBucketCount(
-      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
-      "StaticShortcutAction.Initial",
-      /*sample=*/mojom::StaticShortcutAction::kPaste,
-      /*expected_count=*/1u);
-  histogram_tester.ExpectBucketCount(
-      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
-      "StaticShortcutAction.Initial",
-      /*sample=*/mojom::StaticShortcutAction::kCopy,
-      /*expected_count=*/0u);
-
   // Call RecordGraphicsTabletInitialMetrics with the same user and same
   // graphics tablet, ExpectTotalCount for the metric won't increase.
   manager_.get()->RecordGraphicsTabletInitialMetrics(graphics_tablet);
@@ -746,25 +814,13 @@
       "AcceleratorAction.Initial",
       /*expected_count=*/1u);
   histogram_tester.ExpectTotalCount(
-      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
-      "AcceleratorAction.Initial",
-      /*expected_count=*/1u);
-  histogram_tester.ExpectTotalCount(
       "ChromeOS.Settings.Device.GraphicsTabletPen.ButtonRemapping."
       "KeyEvent.Initial",
       /*expected_count=*/1u);
   histogram_tester.ExpectTotalCount(
-      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
-      "KeyEvent.Initial",
-      /*expected_count=*/1u);
-  histogram_tester.ExpectTotalCount(
       "ChromeOS.Settings.Device.GraphicsTabletPen.ButtonRemapping."
       "StaticShortcutAction.Initial",
       /*expected_count=*/1u);
-  histogram_tester.ExpectTotalCount(
-      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
-      "StaticShortcutAction.Initial",
-      /*expected_count=*/1u);
 
   // Call RecordGraphicsTabletInitialMetrics with the different user but same
   // graphics tablet, ExpectTotalCount for the metric will increase.
@@ -775,38 +831,21 @@
       "AcceleratorAction.Initial",
       /*expected_count=*/2u);
   histogram_tester.ExpectTotalCount(
-      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
-      "AcceleratorAction.Initial",
-      /*expected_count=*/2u);
-  histogram_tester.ExpectTotalCount(
       "ChromeOS.Settings.Device.GraphicsTabletPen.ButtonRemapping."
       "KeyEvent.Initial",
       /*expected_count=*/2u);
   histogram_tester.ExpectTotalCount(
-      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
-      "KeyEvent.Initial",
-      /*expected_count=*/2u);
-  histogram_tester.ExpectTotalCount(
       "ChromeOS.Settings.Device.GraphicsTabletPen.ButtonRemapping."
       "StaticShortcutAction.Initial",
       /*expected_count=*/2u);
-  histogram_tester.ExpectTotalCount(
-      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping."
-      "StaticShortcutAction.Initial",
-      /*expected_count=*/2u);
 
   // Call record changed settings metrics.
   const auto old_setting = graphics_tablet.settings->Clone();
   graphics_tablet.settings->pen_button_remappings.at(0)->name = "renamed vkey";
   graphics_tablet.settings->pen_button_remappings.at(1)->name =
       "renamed customizable button";
-  graphics_tablet.settings->tablet_button_remappings.at(0)->name =
-      "renamed vkey";
-  graphics_tablet.settings->tablet_button_remappings.at(1)->name =
-      "renamed customizable button";
   manager_.get()->RecordGraphicsTabletChangedMetrics(graphics_tablet,
                                                      *old_setting);
-  // Test pen button remappings.
   histogram_tester.ExpectUniqueSample(
       "ChromeOS.Settings.Device.GraphicsTabletPen.ButtonRemapping.Name."
       "Changed.Vkey",
@@ -822,23 +861,6 @@
       "Changed.CustomizableButton",
       /*sample=*/mojom::CustomizableButton::kRight,
       /*expected_count=*/0u);
-
-  // Test tablet button remappings.
-  histogram_tester.ExpectUniqueSample(
-      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping.Name.Changed."
-      "Vkey",
-      /*sample=*/ui::KeyboardCode::VKEY_B,
-      /*expected_bucket_count=*/1u);
-  histogram_tester.ExpectBucketCount(
-      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping.Name.Changed."
-      "CustomizableButton",
-      /*sample=*/mojom::CustomizableButton::kRight,
-      /*expected_count=*/1u);
-  histogram_tester.ExpectBucketCount(
-      "ChromeOS.Settings.Device.GraphicsTablet.ButtonRemapping.Name.Changed."
-      "CustomizableButton",
-      /*sample=*/mojom::CustomizableButton::kMiddle,
-      /*expected_count=*/0u);
 }
 
 TEST_F(InputDeviceSettingsMetricsManagerTest, RecordModifierRemappingMetrics) {
diff --git a/ash/system/message_center/ash_message_center_lock_screen_controller.h b/ash/system/message_center/ash_message_center_lock_screen_controller.h
index 75a9b60d..772d123d 100644
--- a/ash/system/message_center/ash_message_center_lock_screen_controller.h
+++ b/ash/system/message_center/ash_message_center_lock_screen_controller.h
@@ -44,15 +44,6 @@
   bool IsScreenLocked() const override;
 
  private:
-  FRIEND_TEST_ALL_PREFIXES(UnifiedSystemTrayControllerTest,
-                           NotificationHiddenView_ModeShow);
-  FRIEND_TEST_ALL_PREFIXES(UnifiedSystemTrayControllerTest,
-                           NotificationHiddenView_ModeHide);
-  FRIEND_TEST_ALL_PREFIXES(UnifiedSystemTrayControllerTest,
-                           NotificationHiddenView_ModeHideSensitive);
-  FRIEND_TEST_ALL_PREFIXES(UnifiedSystemTrayControllerTest,
-                           NotificationHiddenView_ModeProhibited);
-
   // Modes of the lock screen notification.
   enum class Mode { PROHIBITED, HIDE, SHOW, HIDE_SENSITIVE };
 
diff --git a/ash/system/network/network_detailed_network_view_pixeltest.cc b/ash/system/network/network_detailed_network_view_pixeltest.cc
index 14b5bf0..09df826 100644
--- a/ash/system/network/network_detailed_network_view_pixeltest.cc
+++ b/ash/system/network/network_detailed_network_view_pixeltest.cc
@@ -107,7 +107,7 @@
   // Show the detailed view.
   system_tray->bubble()
       ->unified_system_tray_controller()
-      ->ShowNetworkDetailedView(/*force=*/true);
+      ->ShowNetworkDetailedView();
   TrayDetailedView* detailed_view =
       system_tray->bubble()
           ->quick_settings_view()
diff --git a/ash/system/network/network_feature_pod_controller.cc b/ash/system/network/network_feature_pod_controller.cc
index db3efc8..5d96524 100644
--- a/ash/system/network/network_feature_pod_controller.cc
+++ b/ash/system/network/network_feature_pod_controller.cc
@@ -208,7 +208,7 @@
   // well as when the network technology cannot be toggled, e.g. ethernet.
   if (!was_enabled || !can_toggle) {
     TrackDiveInUMA();
-    tray_controller_->ShowNetworkDetailedView(/*force=*/!can_toggle);
+    tray_controller_->ShowNetworkDetailedView();
   }
 }
 
@@ -216,7 +216,7 @@
   TrackDiveInUMA();
 
   SetNetworkTypeEnabled(true);
-  tray_controller_->ShowNetworkDetailedView(/*force=*/true);
+  tray_controller_->ShowNetworkDetailedView();
 }
 
 void NetworkFeaturePodController::PropagateThemeChanged() {
diff --git a/ash/system/network/network_feature_pod_controller_unittest.cc b/ash/system/network/network_feature_pod_controller_unittest.cc
index 75aea2f..6151747 100644
--- a/ash/system/network/network_feature_pod_controller_unittest.cc
+++ b/ash/system/network/network_feature_pod_controller_unittest.cc
@@ -19,7 +19,6 @@
 #include "ash/system/unified/unified_system_tray_bubble.h"
 #include "ash/system/unified/unified_system_tray_controller.h"
 #include "ash/system/unified/unified_system_tray_model.h"
-#include "ash/system/unified/unified_system_tray_view.h"
 #include "ash/test/ash_test_base.h"
 #include "base/strings/stringprintf.h"
 #include "base/test/metrics/histogram_tester.h"
@@ -320,10 +319,6 @@
         ->unified_system_tray_controller();
   }
 
-  UnifiedSystemTrayView* unified_view() {
-    return GetPrimaryUnifiedSystemTray()->bubble()->unified_view();
-  }
-
   QuickSettingsView* quick_settings_view() {
     return GetPrimaryUnifiedSystemTray()->bubble()->quick_settings_view();
   }
diff --git a/ash/system/privacy_screen/privacy_screen_toast_controller.cc b/ash/system/privacy_screen/privacy_screen_toast_controller.cc
index d62aa32d..a98eb33a 100644
--- a/ash/system/privacy_screen/privacy_screen_toast_controller.cc
+++ b/ash/system/privacy_screen/privacy_screen_toast_controller.cc
@@ -15,7 +15,6 @@
 #include "ash/system/tray/tray_utils.h"
 #include "ash/system/unified/unified_system_tray.h"
 #include "ash/system/unified/unified_system_tray_bubble.h"
-#include "ash/system/unified/unified_system_tray_view.h"
 #include "base/functional/bind.h"
 
 namespace ash {
diff --git a/ash/system/time/unified_calendar_view_controller.h b/ash/system/time/unified_calendar_view_controller.h
index 11b747a..498f7da 100644
--- a/ash/system/time/unified_calendar_view_controller.h
+++ b/ash/system/time/unified_calendar_view_controller.h
@@ -37,7 +37,7 @@
   // Unowned, the object that instantiated us.
   const raw_ptr<UnifiedSystemTrayController, ExperimentalAsh> tray_controller_;
 
-  // Owned by UnifiedSystemTrayView's detailed_view_container_.
+  // Owned by `QuickSettingsView`'s detailed_view_container_.
   raw_ptr<CalendarView, DanglingUntriaged | ExperimentalAsh> view_ = nullptr;
 };
 
diff --git a/ash/system/tray/tray_bubble_view.cc b/ash/system/tray/tray_bubble_view.cc
index c54cfda..34dcb54e 100644
--- a/ash/system/tray/tray_bubble_view.cc
+++ b/ash/system/tray/tray_bubble_view.cc
@@ -19,7 +19,6 @@
 #include "ash/style/system_shadow.h"
 #include "ash/system/tray/system_tray_notifier.h"
 #include "ash/system/tray/tray_constants.h"
-#include "ash/system/unified/unified_system_tray_view.h"
 #include "base/memory/raw_ptr.h"
 #include "chromeos/constants/chromeos_features.h"
 #include "third_party/skia/include/core/SkCanvas.h"
diff --git a/ash/system/tray/tray_constants.h b/ash/system/tray/tray_constants.h
index 0c025a1..118b27e 100644
--- a/ash/system/tray/tray_constants.h
+++ b/ash/system/tray/tray_constants.h
@@ -122,11 +122,7 @@
 // Threshold to ignore update on the slider value.
 constexpr float kAudioSliderIgnoreUpdateThreshold = 0.01;
 
-// Duration for the collapse / expand animation in ms.
-constexpr int kSystemMenuCollapseExpandAnimationDurationMs = 500;
-
 constexpr auto kUnifiedMenuItemPadding = gfx::Insets::TLBR(0, 16, 16, 16);
-constexpr auto kUnifiedSystemInfoViewPadding = gfx::Insets::TLBR(0, 16, 16, 16);
 constexpr int kSliderChildrenViewSpacing = 8;
 
 // Constants used in the QuickSettingsSlider of the `QuickSettingsView`.
@@ -223,9 +219,6 @@
 constexpr int kFeatureTileMinRows = 1;
 constexpr int kFeatureTileHeight = 64;
 
-// Height of the page indicator view.
-constexpr int kPageIndicatorViewMaxHeight = 20;
-
 // Constants used in system tray page transition animations.
 constexpr double kCollapseThreshold = 0.3;
 
diff --git a/ash/system/tray/tray_event_filter_unittest.cc b/ash/system/tray/tray_event_filter_unittest.cc
index bc391a0..6e190cb5 100644
--- a/ash/system/tray/tray_event_filter_unittest.cc
+++ b/ash/system/tray/tray_event_filter_unittest.cc
@@ -401,8 +401,7 @@
   auto* bubble = system_tray->bubble();
 
   // Show the network detailed view.
-  bubble->unified_system_tray_controller()->ShowNetworkDetailedView(
-      /*force=*/true);
+  bubble->unified_system_tray_controller()->ShowNetworkDetailedView();
 
   // Click on the info button in the network detailed view so that a transient
   // bubble is opened.
diff --git a/ash/system/tray/tray_popup_utils.cc b/ash/system/tray/tray_popup_utils.cc
index 3ff3b1a..475b162d 100644
--- a/ash/system/tray/tray_popup_utils.cc
+++ b/ash/system/tray/tray_popup_utils.cc
@@ -279,14 +279,6 @@
       host, std::make_unique<HighlightPathGenerator>(ink_drop_style));
 }
 
-views::Separator* TrayPopupUtils::CreateListSubHeaderSeparator() {
-  views::Separator* separator = new views::Separator();
-  separator->SetColorId(ui::kColorAshSystemUIMenuSeparator);
-  separator->SetBorder(views::CreateEmptyBorder(gfx::Insets::TLBR(
-      kMenuSeparatorVerticalPadding - views::Separator::kThickness, 0, 0, 0)));
-  return separator;
-}
-
 views::Separator* TrayPopupUtils::CreateListItemSeparator(bool left_inset) {
   views::Separator* separator = new views::Separator();
   separator->SetColorId(ui::kColorAshSystemUIMenuSeparator);
diff --git a/ash/system/tray/tray_popup_utils.h b/ash/system/tray/tray_popup_utils.h
index 777375d2..5c2ca91 100644
--- a/ash/system/tray/tray_popup_utils.h
+++ b/ash/system/tray/tray_popup_utils.h
@@ -156,11 +156,6 @@
       views::View* host,
       TrayPopupInkDropStyle ink_drop_style);
 
-  // Create a horizontal separator line to be drawn between rows in a detailed
-  // view above the sub-header rows. Caller assumes ownership of the returned
-  // view.
-  static views::Separator* CreateListSubHeaderSeparator();
-
   // Creates and returns a horizontal separator line to be drawn between rows
   // in a detailed view. If |left_inset| is true, then the separator is inset on
   // the left by the width normally occupied by an icon. Caller assumes
diff --git a/ash/system/unified/feature_pod_controller_base.h b/ash/system/unified/feature_pod_controller_base.h
index 2a89d29..0888b70 100644
--- a/ash/system/unified/feature_pod_controller_base.h
+++ b/ash/system/unified/feature_pod_controller_base.h
@@ -16,7 +16,7 @@
 
 // Base class for controllers of feature pod buttons.
 // To add a new feature pod button, implement this class, and add to the list in
-// UnifiedSystemTrayController::InitFeaturePods().
+// UnifiedSystemTrayController::InitFeatureTiles().
 class ASH_EXPORT FeaturePodControllerBase {
  public:
   virtual ~FeaturePodControllerBase() {}
diff --git a/ash/system/unified/feature_pods_container_view.cc b/ash/system/unified/feature_pods_container_view.cc
deleted file mode 100644
index eaf29a15..0000000
--- a/ash/system/unified/feature_pods_container_view.cc
+++ /dev/null
@@ -1,405 +0,0 @@
-// Copyright 2018 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ash/system/unified/feature_pods_container_view.h"
-
-#include "ash/public/cpp/pagination/pagination_controller.h"
-#include "ash/public/cpp/pagination/pagination_model.h"
-#include "ash/system/tray/tray_constants.h"
-#include "ash/system/unified/feature_pod_button.h"
-#include "ash/system/unified/unified_system_tray_controller.h"
-#include "base/ranges/algorithm.h"
-
-namespace ash {
-
-FeaturePodsContainerView::FeaturePodsContainerView(
-    UnifiedSystemTrayController* controller,
-    bool initially_expanded)
-    : controller_(controller),
-      pagination_model_(controller->model()->pagination_model()),
-      expanded_amount_(initially_expanded ? 1.0 : 0.0),
-      feature_pod_rows_(kUnifiedFeaturePodMaxRows) {
-  pagination_model_->AddObserver(this);
-}
-
-FeaturePodsContainerView::~FeaturePodsContainerView() {
-  DCHECK(pagination_model_);
-  pagination_model_->RemoveObserver(this);
-}
-
-void FeaturePodsContainerView::SetExpandedAmount(double expanded_amount) {
-  DCHECK(0.0 <= expanded_amount && expanded_amount <= 1.0);
-  if (expanded_amount_ == expanded_amount)
-    return;
-  expanded_amount_ = expanded_amount;
-
-  int visible_index = 0;
-  for (auto* view : children()) {
-    FeaturePodButton* button = static_cast<FeaturePodButton*>(view);
-    // When collapsing from page 1, buttons below the second row fade out
-    // while the rest move up into a single row for the collapsed state.
-    // When collapsing from page > 1, each row of buttons fades out one by one
-    // and once expanded_amount is less than kCollapseThreshold we begin to
-    // fade in the single row of buttons for the collapsed state.
-    if (expanded_amount_ > 0.0 && expanded_amount_ < kCollapseThreshold &&
-        pagination_model_->selected_page() > 0) {
-      button->SetExpandedAmount(1.0 - expanded_amount,
-                                true /* fade_icon_button */);
-    } else if (visible_index > kUnifiedFeaturePodMaxItemsInCollapsed) {
-      int row =
-          (visible_index / kUnifiedFeaturePodItemsInRow) % feature_pod_rows_;
-      double button_expanded_amount =
-          expanded_amount
-              ? std::min(1.0, expanded_amount +
-                                  (0.25 * (feature_pod_rows_ - row - 1)))
-              : expanded_amount;
-      button->SetExpandedAmount(button_expanded_amount,
-                                true /* fade_icon_button */);
-    } else {
-      button->SetExpandedAmount(expanded_amount, false /* fade_icon_button */);
-    }
-    if (view->GetVisible())
-      visible_index++;
-  }
-  UpdateChildVisibility();
-  // We have to call Layout() explicitly here.
-  Layout();
-}
-
-int FeaturePodsContainerView::GetExpandedHeight() const {
-  const int visible_count = GetVisibleCount();
-
-  // floor(visible_count / kUnifiedFeaturePodItemsInRow)
-  int number_of_lines = (visible_count + kUnifiedFeaturePodItemsInRow - 1) /
-                        kUnifiedFeaturePodItemsInRow;
-
-  number_of_lines = std::min(number_of_lines, feature_pod_rows_);
-
-  return kUnifiedFeaturePodBottomPadding +
-         (kUnifiedFeaturePodVerticalPadding + kUnifiedFeaturePodSize.height()) *
-             std::max(0, number_of_lines - 1) +
-         kUnifiedFeaturePodSize.height() + kUnifiedFeaturePodTopPadding;
-}
-
-int FeaturePodsContainerView::GetCollapsedHeight() const {
-  return 2 * kUnifiedFeaturePodCollapsedVerticalPadding +
-         kUnifiedFeaturePodCollapsedSize.height();
-}
-
-gfx::Size FeaturePodsContainerView::CalculatePreferredSize() const {
-  return gfx::Size(
-      kTrayMenuWidth,
-      static_cast<int>(GetCollapsedHeight() * (1.0 - expanded_amount_) +
-                       GetExpandedHeight() * expanded_amount_));
-}
-
-void FeaturePodsContainerView::ChildVisibilityChanged(View* child) {
-  // ChildVisibilityChanged can change child visibility using
-  // SetVisibleByContainer() in UpdateChildVisibility(), so we have to prevent
-  // reentrancy.
-  if (changing_visibility_)
-    return;
-
-  // Visibility change is caused by the child's SetVisible(), so update actual
-  // visibility and propagate the container size change to the parent.
-  UpdateChildVisibility();
-  PreferredSizeChanged();
-  Layout();
-  SchedulePaint();
-}
-
-void FeaturePodsContainerView::ViewHierarchyChanged(
-    const views::ViewHierarchyChangedDetails& details) {
-  UpdateChildVisibility();
-}
-
-void FeaturePodsContainerView::Layout() {
-  UpdateCollapsedSidePadding();
-  CalculateIdealBoundsForFeaturePods();
-  for (size_t i = 0; i < visible_buttons_.view_size(); ++i) {
-    auto* button = visible_buttons_.view_at(i);
-    button->SetBoundsRect(visible_buttons_.ideal_bounds(i));
-  }
-}
-
-const char* FeaturePodsContainerView::GetClassName() const {
-  return "FeaturePodsContainerView";
-}
-
-void FeaturePodsContainerView::UpdateChildVisibility() {
-  DCHECK(!changing_visibility_);
-  changing_visibility_ = true;
-
-  int visible_count = 0;
-  for (auto* view : children()) {
-    auto* child = static_cast<FeaturePodButton*>(view);
-    bool visible = IsButtonVisible(child, visible_count);
-    child->SetVisibleByContainer(visible);
-    if (visible) {
-      if (!visible_buttons_.GetIndexOfView(child).has_value())
-        visible_buttons_.Add(child, visible_count);
-      ++visible_count;
-    } else {
-      if (auto index = visible_buttons_.GetIndexOfView(child);
-          index.has_value()) {
-        visible_buttons_.Remove(index.value());
-      }
-    }
-  }
-  UpdateTotalPages();
-  changing_visibility_ = false;
-}
-
-bool FeaturePodsContainerView::IsButtonVisible(FeaturePodButton* button,
-                                               int index) {
-  return button->visible_preferred() &&
-         (expanded_amount_ > 0.0 ||
-          index < kUnifiedFeaturePodMaxItemsInCollapsed);
-}
-
-int FeaturePodsContainerView::GetVisibleCount() const {
-  return base::ranges::count_if(children(), [](const auto* v) {
-    return static_cast<const FeaturePodButton*>(v)->visible_preferred();
-  });
-}
-
-void FeaturePodsContainerView::EnsurePageWithButton(views::View* button) {
-  auto index = visible_buttons_.GetIndexOfView(button->parent());
-  if (!index.has_value())
-    return;
-
-  int tiles_per_page = GetTilesPerPage();
-  size_t first_index = pagination_model_->selected_page() * tiles_per_page;
-  size_t last_index =
-      ((pagination_model_->selected_page() + 1) * tiles_per_page) - 1;
-  if (index.value() < first_index || index.value() > last_index) {
-    int page = ((index.value() + 1) / tiles_per_page) +
-               ((index.value() + 1) % tiles_per_page ? 1 : 0) - 1;
-
-    pagination_model_->SelectPage(page, true /*animate*/);
-  }
-}
-
-void FeaturePodsContainerView::SelectedPageChanged(int old_selected,
-                                                   int new_selected) {
-  InvalidateLayout();
-  PaginationModelObserver::SelectedPageChanged(old_selected, new_selected);
-}
-
-gfx::Point FeaturePodsContainerView::GetButtonPosition(
-    int visible_index) const {
-  int row = visible_index / kUnifiedFeaturePodItemsInRow;
-  int column = visible_index % kUnifiedFeaturePodItemsInRow;
-  int x = kUnifiedFeaturePodHorizontalSidePadding +
-          (kUnifiedFeaturePodSize.width() +
-           kUnifiedFeaturePodHorizontalMiddlePadding) *
-              column;
-  int y = kUnifiedFeaturePodTopPadding + (kUnifiedFeaturePodSize.height() +
-                                          kUnifiedFeaturePodVerticalPadding) *
-                                             row;
-
-  // Only feature pods visible in the collapsed state (i.e. the first 5 pods)
-  // move during expansion/collapse. Otherwise, the button position will always
-  // be constant.
-  if (expanded_amount_ == 1.0 ||
-      visible_index > kUnifiedFeaturePodMaxItemsInCollapsed ||
-      (pagination_model_->selected_page() > 0 &&
-       expanded_amount_ >= kCollapseThreshold)) {
-    return gfx::Point(x, y);
-  }
-
-  int collapsed_x =
-      collapsed_side_padding_ + (kUnifiedFeaturePodCollapsedSize.width() +
-                                 kUnifiedFeaturePodCollapsedHorizontalPadding) *
-                                    visible_index;
-  int collapsed_y = kUnifiedFeaturePodCollapsedVerticalPadding;
-
-  // When fully collapsed or collapsing from a different page to the first
-  // page, just return the collapsed position.
-  if (expanded_amount_ == 0.0 || (expanded_amount_ < kCollapseThreshold &&
-                                  pagination_model_->selected_page() > 0))
-    return gfx::Point(collapsed_x, collapsed_y);
-
-  // Button width is different between expanded and collapsed states.
-  // During the transition, expanded width is used, so it should be adjusted.
-  collapsed_x -= (kUnifiedFeaturePodSize.width() -
-                  kUnifiedFeaturePodCollapsedSize.width()) /
-                 2;
-
-  return gfx::Point(
-      x * expanded_amount_ + collapsed_x * (1.0 - expanded_amount_),
-      y * expanded_amount_ + collapsed_y * (1.0 - expanded_amount_));
-}
-
-int FeaturePodsContainerView::CalculateRowsFromHeight(int height) {
-  int available_height =
-      height - kUnifiedFeaturePodBottomPadding - kUnifiedFeaturePodTopPadding;
-  int row_height =
-      kUnifiedFeaturePodSize.height() + kUnifiedFeaturePodVerticalPadding;
-
-  // Only use the max number of rows when there is enough space
-  // to show the fully expanded message center and quick settings.
-  if (available_height > (kUnifiedFeaturePodMaxRows * row_height) &&
-      available_height - (kUnifiedFeaturePodMaxRows * row_height) >
-          kMessageCenterCollapseThreshold) {
-    return kUnifiedFeaturePodMaxRows;
-  }
-
-  // Use 1 less than the max number of rows when there is enough
-  // space to show the message center in the collapsed state along
-  // with the expanded quick settings.
-  int feature_pod_rows = kUnifiedFeaturePodMaxRows - 1;
-  if (available_height > (feature_pod_rows * row_height) &&
-      available_height - (feature_pod_rows * row_height) >
-          kStackedNotificationBarHeight) {
-    return feature_pod_rows;
-  }
-
-  return kUnifiedFeaturePodMinRows;
-}
-
-void FeaturePodsContainerView::SetMaxHeight(int max_height) {
-  int feature_pod_rows = CalculateRowsFromHeight(max_height);
-
-  if (feature_pod_rows_ != feature_pod_rows) {
-    feature_pod_rows_ = feature_pod_rows;
-    UpdateTotalPages();
-  }
-}
-
-void FeaturePodsContainerView::UpdateCollapsedSidePadding() {
-  const int visible_count =
-      std::min(GetVisibleCount(), kUnifiedFeaturePodMaxItemsInCollapsed);
-
-  int contents_width =
-      visible_count * kUnifiedFeaturePodCollapsedSize.width() +
-      (visible_count - 1) * kUnifiedFeaturePodCollapsedHorizontalPadding;
-
-  collapsed_side_padding_ = (kTrayMenuWidth - contents_width) / 2;
-  DCHECK(collapsed_side_padding_ > 0);
-}
-
-void FeaturePodsContainerView::AddFeaturePodButton(FeaturePodButton* button) {
-  size_t view_size = visible_buttons_.view_size();
-  if (IsButtonVisible(button, view_size)) {
-    visible_buttons_.Add(button, view_size);
-  }
-  AddChildView(button);
-
-  UpdateTotalPages();
-}
-
-const gfx::Vector2d FeaturePodsContainerView::CalculateTransitionOffset(
-    int page_of_view) const {
-  gfx::Size grid_size = CalculatePreferredSize();
-
-  // If there is a transition, calculates offset for current and target page.
-  const int current_page = pagination_model_->selected_page();
-  const PaginationModel::Transition& transition =
-      pagination_model_->transition();
-  const bool is_valid =
-      pagination_model_->is_valid_page(transition.target_page);
-
-  // Transition to previous page means negative offset.
-  const int direction = transition.target_page > current_page ? -1 : 1;
-
-  int x_offset = 0;
-  int y_offset = 0;
-
-  // Page size including padding pixels. A tile.x + page_width means the same
-  // tile slot in the next page.
-  const int page_width = grid_size.width() + kUnifiedFeaturePodsPageSpacing;
-  if (page_of_view < current_page)
-    x_offset = -page_width;
-  else if (page_of_view > current_page)
-    x_offset = page_width;
-
-  if (is_valid) {
-    if (page_of_view == current_page ||
-        page_of_view == transition.target_page) {
-      x_offset += transition.progress * page_width * direction;
-    }
-  }
-
-  return gfx::Vector2d(x_offset, y_offset);
-}
-
-void FeaturePodsContainerView::CalculateIdealBoundsForFeaturePods() {
-  for (size_t i = 0; i < visible_buttons_.view_size(); ++i) {
-    gfx::Rect tile_bounds;
-    gfx::Size child_size;
-    // When we are on the first page we calculate bounds for an expanded tray
-    // when expanded_amount is greater than zero. However, when not on the first
-    // page, we only calculate bounds for an expanded tray until expanded_amount
-    // is above kCollapseThreshold. Below kCollapseThreshold we return collapsed
-    // bounds.
-    if ((expanded_amount_ > 0.0 && pagination_model_->selected_page() == 0) ||
-        expanded_amount_ >= kCollapseThreshold) {
-      child_size = kUnifiedFeaturePodSize;
-
-      // Flexibly give more height if the child view doesn't fit into the
-      // default height, so that label texts won't be broken up in the middle.
-      child_size.set_height(std::max(
-          child_size.height(),
-          visible_buttons_.view_at(i)->GetHeightForWidth(child_size.height())));
-
-      tile_bounds =
-          gfx::Rect(GetButtonPosition(i % GetTilesPerPage()), child_size);
-      // TODO(amehfooz): refactor this logic so that the ideal_bounds are set
-      // once when the transition starts and the actual feature pod bounds are
-      // interpolated using the ideal_bounds as the transition progresses.
-      tile_bounds.Offset(CalculateTransitionOffset(i / GetTilesPerPage()));
-    } else {
-      child_size = kUnifiedFeaturePodCollapsedSize;
-      tile_bounds = gfx::Rect(GetButtonPosition(i), child_size);
-    }
-
-    visible_buttons_.set_ideal_bounds(i, tile_bounds);
-  }
-}
-
-int FeaturePodsContainerView::GetTilesPerPage() const {
-  return kUnifiedFeaturePodItemsInRow * feature_pod_rows_;
-}
-
-void FeaturePodsContainerView::UpdateTotalPages() {
-  int total_pages = 0;
-
-  size_t total_visible = visible_buttons_.view_size();
-  int tiles_per_page = GetTilesPerPage();
-
-  if (!visible_buttons_.view_size() || !tiles_per_page) {
-    total_pages = 0;
-  } else {
-    total_pages = (total_visible / tiles_per_page) +
-                  (total_visible % tiles_per_page ? 1 : 0);
-  }
-  pagination_model_->SetTotalPages(total_pages);
-}
-
-void FeaturePodsContainerView::TransitionChanged() {
-  const PaginationModel::Transition& transition =
-      pagination_model_->transition();
-  if (pagination_model_->is_valid_page(transition.target_page))
-    Layout();
-}
-
-void FeaturePodsContainerView::OnGestureEvent(ui::GestureEvent* event) {
-  if (controller_->pagination_controller()->OnGestureEvent(*event,
-                                                           GetContentsBounds()))
-    event->SetHandled();
-}
-
-void FeaturePodsContainerView::OnScrollEvent(ui::ScrollEvent* event) {
-  controller_->pagination_controller()->OnScroll(
-      gfx::Vector2d(event->x_offset(), event->y_offset()), event->type());
-  event->SetHandled();
-}
-
-bool FeaturePodsContainerView::OnMouseWheel(const ui::MouseWheelEvent& event) {
-  return controller_->pagination_controller()->OnScroll(event.offset(),
-                                                        event.type());
-}
-
-}  // namespace ash
diff --git a/ash/system/unified/feature_pods_container_view.h b/ash/system/unified/feature_pods_container_view.h
deleted file mode 100644
index 7cf4089d..0000000
--- a/ash/system/unified/feature_pods_container_view.h
+++ /dev/null
@@ -1,139 +0,0 @@
-// Copyright 2018 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ASH_SYSTEM_UNIFIED_FEATURE_PODS_CONTAINER_VIEW_H_
-#define ASH_SYSTEM_UNIFIED_FEATURE_PODS_CONTAINER_VIEW_H_
-
-#include "ash/ash_export.h"
-#include "ash/public/cpp/pagination/pagination_model_observer.h"
-#include "base/memory/raw_ptr.h"
-#include "ui/views/view.h"
-#include "ui/views/view_model.h"
-
-namespace ash {
-
-class FeaturePodButton;
-class PaginationModel;
-class UnifiedSystemTrayController;
-
-// Container of feature pods buttons in the middle of UnifiedSystemTrayView.
-// The container has number of buttons placed in 3x3 plane at regular distances.
-// FeaturePodButtons implements these individual buttons.
-// The container also implements collapsed state where the top 5 buttons are
-// horizontally placed and others are hidden.
-class ASH_EXPORT FeaturePodsContainerView : public views::View,
-                                            public PaginationModelObserver {
- public:
-  FeaturePodsContainerView(UnifiedSystemTrayController* controller,
-                           bool initially_expanded);
-
-  FeaturePodsContainerView(const FeaturePodsContainerView&) = delete;
-  FeaturePodsContainerView& operator=(const FeaturePodsContainerView&) = delete;
-
-  ~FeaturePodsContainerView() override;
-
-  // Add a FeaturePodButton as a child view and if it's visible add it to the
-  // view structure and update the pagination model.
-  void AddFeaturePodButton(FeaturePodButton* button);
-
-  // Change the expanded state. 0.0 if collapsed, and 1.0 if expanded.
-  // Otherwise, it shows intermediate state. If collapsed, all the buttons are
-  // horizontally placed.
-  void SetExpandedAmount(double expanded_amount);
-
-  // Set the number of rows of feature pods based on the max height the
-  // container can have.
-  void SetMaxHeight(int max_height);
-
-  // Get height of the view when |expanded_amount| is set to 1.0.
-  int GetExpandedHeight() const;
-
-  // Get the height of the view when |expanded_amount| is set to 0.0.
-  int GetCollapsedHeight() const;
-
-  // Returns the number of children that prefer to be visible.
-  int GetVisibleCount() const;
-
-  // Make sure button is visible by switching page if needed.
-  void EnsurePageWithButton(views::View* button);
-
-  // PaginationModelObserver
-  void SelectedPageChanged(int old_selected, int new_selected) override;
-
-  // views::View:
-  gfx::Size CalculatePreferredSize() const override;
-  void ChildVisibilityChanged(View* child) override;
-  void ViewHierarchyChanged(
-      const views::ViewHierarchyChangedDetails& details) override;
-  void Layout() override;
-  void OnGestureEvent(ui::GestureEvent* event) override;
-  void OnScrollEvent(ui::ScrollEvent* event) override;
-  bool OnMouseWheel(const ui::MouseWheelEvent& event) override;
-  const char* GetClassName() const override;
-
-  int row_count() const { return feature_pod_rows_; }
-
- private:
-  friend class FeaturePodsContainerViewTest;
-
-  // Calculate the current position of the button from |visible_index| and
-  // |expanded_amount_|.
-  gfx::Point GetButtonPosition(int visible_index) const;
-
-  void UpdateChildVisibility();
-
-  // Update |collapsed_state_padding_|.
-  void UpdateCollapsedSidePadding();
-
-  // Calculates the ideal bounds for all feature pods.
-  void CalculateIdealBoundsForFeaturePods();
-
-  // Calculate the number of feature pod rows based on available height.
-  int CalculateRowsFromHeight(int height);
-
-  // Calculates the offset for |page_of_view| based on current page and
-  // transition target page.
-  const gfx::Vector2d CalculateTransitionOffset(int page_of_view) const;
-
-  // Returns true if button at provided index is visible.
-  bool IsButtonVisible(FeaturePodButton* button, int index);
-
-  // Returns the number of tiles per page.
-  int GetTilesPerPage() const;
-
-  // Updates page splits for feature pod buttons.
-  void UpdateTotalPages();
-
-  // PaginationModelObserver:
-  void TransitionChanged() override;
-
-  const raw_ptr<UnifiedSystemTrayController,
-                DanglingUntriaged | ExperimentalAsh>
-      controller_;
-
-  // Owned by UnifiedSystemTrayModel.
-  const raw_ptr<PaginationModel, ExperimentalAsh> pagination_model_;
-
-  // The last |expanded_amount| passed to SetExpandedAmount().
-  double expanded_amount_;
-
-  // Number of rows of feature pods to display. Updated based on the available
-  // max height for FeaturePodsContainer.
-  int feature_pod_rows_ = 0;
-
-  // Horizontal side padding in dip for collapsed state.
-  int collapsed_side_padding_ = 0;
-
-  // Used for preventing reentrancy issue in ChildVisibilityChanged. Should be
-  // always false if FeaturePodsContainerView is not in the call stack.
-  bool changing_visibility_ = false;
-
-  // A view model that contains all visible feature pod buttons.
-  // Used to calculate required number of pages.
-  views::ViewModelT<FeaturePodButton> visible_buttons_;
-};
-
-}  // namespace ash
-
-#endif  // ASH_SYSTEM_UNIFIED_FEATURE_PODS_CONTAINER_VIEW_H_
diff --git a/ash/system/unified/feature_pods_container_view_unittest.cc b/ash/system/unified/feature_pods_container_view_unittest.cc
deleted file mode 100644
index 01b01be..0000000
--- a/ash/system/unified/feature_pods_container_view_unittest.cc
+++ /dev/null
@@ -1,463 +0,0 @@
-// Copyright 2018 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ash/system/unified/feature_pods_container_view.h"
-
-#include "ash/constants/quick_settings_catalogs.h"
-#include "ash/public/cpp/pagination/pagination_controller.h"
-#include "ash/public/cpp/pagination/pagination_model.h"
-#include "ash/system/tray/tray_constants.h"
-#include "ash/system/unified/feature_pod_button.h"
-#include "ash/system/unified/feature_pod_controller_base.h"
-#include "ash/system/unified/unified_system_tray_controller.h"
-#include "ash/system/unified/unified_system_tray_model.h"
-#include "ash/test/ash_test_base.h"
-#include "base/memory/scoped_refptr.h"
-#include "ui/accessibility/ax_enums.mojom.h"
-#include "ui/accessibility/ax_node_data.h"
-#include "ui/views/test/views_test_utils.h"
-#include "ui/views/view_observer.h"
-
-namespace ash {
-
-class FeaturePodsContainerViewTest : public NoSessionAshTestBase,
-                                     public FeaturePodControllerBase,
-                                     public views::ViewObserver {
- public:
-  FeaturePodsContainerViewTest() = default;
-
-  FeaturePodsContainerViewTest(const FeaturePodsContainerViewTest&) = delete;
-  FeaturePodsContainerViewTest& operator=(const FeaturePodsContainerViewTest&) =
-      delete;
-
-  ~FeaturePodsContainerViewTest() override = default;
-
-  // AshTestBase:
-  void SetUp() override {
-    AshTestBase::SetUp();
-    model_ = base::MakeRefCounted<UnifiedSystemTrayModel>(nullptr);
-    controller_ = std::make_unique<UnifiedSystemTrayController>(model_.get());
-    container_ = std::make_unique<FeaturePodsContainerView>(
-        controller_.get(), true /* initially_expanded */);
-    container_->AddObserver(this);
-    preferred_size_changed_count_ = 0;
-  }
-
-  void TearDown() override {
-    controller_.reset();
-    container_.reset();
-    model_.reset();
-    NoSessionAshTestBase::TearDown();
-  }
-
-  // FeaturePodControllerBase:
-  std::unique_ptr<FeatureTile> CreateTile(bool compact) override {
-    return nullptr;
-  }
-
-  void OnIconPressed() override {}
-
-  QsFeatureCatalogName GetCatalogName() override {
-    return QsFeatureCatalogName::kUnknown;
-  }
-
-  // views::ViewObserver:
-  void OnViewPreferredSizeChanged(views::View* observed_view) override {
-    ++preferred_size_changed_count_;
-  }
-
- protected:
-  void AddButton(FeaturePodButton* button) {
-    buttons_.push_back(button);
-    container()->AddChildView(button);
-  }
-
-  void AddButtons(int count) {
-    for (int i = 0; i < count; ++i)
-      AddButton(new FeaturePodButton(this));
-    container()->SetBoundsRect(gfx::Rect(container_->GetPreferredSize()));
-    views::test::RunScheduledLayout(container());
-  }
-
-  FeaturePodsContainerView* container() { return container_.get(); }
-
-  PaginationModel* pagination_model() { return model_->pagination_model(); }
-
-  UnifiedSystemTrayController* controller() { return controller_.get(); }
-
-  int preferred_size_changed_count() const {
-    return preferred_size_changed_count_;
-  }
-
-  std::vector<FeaturePodButton*> buttons_;
-
- private:
-  std::unique_ptr<FeaturePodsContainerView> container_;
-  scoped_refptr<UnifiedSystemTrayModel> model_;
-  std::unique_ptr<UnifiedSystemTrayController> controller_;
-  int preferred_size_changed_count_ = 0;
-};
-
-TEST_F(FeaturePodsContainerViewTest, ExpandedAndCollapsed) {
-  const int kNumberOfAddedButtons = kUnifiedFeaturePodItemsInRow * 3;
-  EXPECT_LT(kUnifiedFeaturePodMaxItemsInCollapsed, kNumberOfAddedButtons);
-
-  AddButtons(kNumberOfAddedButtons);
-
-  // In expanded state, buttons are laid out in plane.
-  EXPECT_LT(buttons_[0]->x(), buttons_[1]->x());
-  EXPECT_EQ(buttons_[0]->y(), buttons_[1]->y());
-  // If the row exceeds kUnifiedFeaturePodItemsInRow, the next button is placed
-  // right under the first button.
-  EXPECT_EQ(buttons_[0]->x(), buttons_[kUnifiedFeaturePodItemsInRow]->x());
-  EXPECT_LT(buttons_[0]->y(), buttons_[kUnifiedFeaturePodItemsInRow]->y());
-  // All buttons are visible.
-  for (auto* button : buttons_)
-    EXPECT_TRUE(button->GetVisible());
-
-  container()->SetExpandedAmount(0.0);
-
-  // In collapsed state, all buttons are laid out horizontally.
-  for (int i = 1; i < kUnifiedFeaturePodMaxItemsInCollapsed; ++i)
-    EXPECT_EQ(buttons_[0]->y(), buttons_[i]->y());
-
-  // Buttons exceed kUnifiedFeaturePodMaxItemsInCollapsed are invisible.
-  for (int i = 0; i < kNumberOfAddedButtons; ++i) {
-    EXPECT_EQ(i < kUnifiedFeaturePodMaxItemsInCollapsed,
-              buttons_[i]->GetVisible());
-  }
-}
-
-TEST_F(FeaturePodsContainerViewTest, HiddenButtonRemainsHidden) {
-  AddButtons(kUnifiedFeaturePodMaxItemsInCollapsed);
-  // The button is invisible in expanded state.
-  buttons_.front()->SetVisible(false);
-  container()->SetExpandedAmount(0.0);
-  EXPECT_FALSE(buttons_.front()->GetVisible());
-  container()->SetExpandedAmount(1.0);
-  EXPECT_FALSE(buttons_.front()->GetVisible());
-}
-
-TEST_F(FeaturePodsContainerViewTest, BecomeVisibleInCollapsed) {
-  AddButtons(kUnifiedFeaturePodMaxItemsInCollapsed);
-  // The button is invisible in expanded state.
-  buttons_.back()->SetVisible(false);
-  container()->SetExpandedAmount(0.0);
-  // The button becomes visible in collapsed state.
-  buttons_.back()->SetVisible(true);
-  // As the container still has remaining space, the button will be visible.
-  EXPECT_TRUE(buttons_.back()->GetVisible());
-}
-
-TEST_F(FeaturePodsContainerViewTest, StillHiddenInCollapsed) {
-  AddButtons(kUnifiedFeaturePodMaxItemsInCollapsed + 1);
-  // The button is invisible in expanded state.
-  buttons_.back()->SetVisible(false);
-  container()->SetExpandedAmount(0.0);
-  // The button becomes visible in collapsed state.
-  buttons_.back()->SetVisible(true);
-  // As the container doesn't have remaining space, the button won't be visible.
-  EXPECT_FALSE(buttons_.back()->GetVisible());
-
-  container()->SetExpandedAmount(1.0);
-  // The button becomes visible in expanded state.
-  EXPECT_TRUE(buttons_.back()->GetVisible());
-}
-
-TEST_F(FeaturePodsContainerViewTest, DifferentButtonBecomeVisibleInCollapsed) {
-  AddButtons(kUnifiedFeaturePodMaxItemsInCollapsed + 1);
-  container()->SetExpandedAmount(0.0);
-  // The last button is not visible as it doesn't have enough space.
-  EXPECT_FALSE(buttons_.back()->GetVisible());
-  // The first button becomes invisible.
-  buttons_.front()->SetVisible(false);
-  // The last button now has the space for it.
-  EXPECT_TRUE(buttons_.back()->GetVisible());
-}
-
-TEST_F(FeaturePodsContainerViewTest, SizeChangeByExpanding) {
-  // SetExpandedAmount() should not trigger PreferredSizeChanged().
-  AddButtons(kUnifiedFeaturePodItemsInRow * 3 - 1);
-  EXPECT_EQ(0, preferred_size_changed_count());
-  container()->SetExpandedAmount(0.0);
-  container()->SetExpandedAmount(0.5);
-  container()->SetExpandedAmount(1.0);
-  EXPECT_EQ(0, preferred_size_changed_count());
-}
-
-TEST_F(FeaturePodsContainerViewTest, SizeChangeByVisibility) {
-  // Visibility change should trigger PreferredSizeChanged().
-  AddButtons(kUnifiedFeaturePodItemsInRow * 2 + 1);
-  EXPECT_EQ(0, preferred_size_changed_count());
-  // The first button becomes invisible.
-  buttons_.front()->SetVisible(false);
-  EXPECT_EQ(1, preferred_size_changed_count());
-  // The first button becomes visible.
-  buttons_.front()->SetVisible(true);
-  EXPECT_EQ(2, preferred_size_changed_count());
-}
-
-TEST_F(FeaturePodsContainerViewTest, NumberOfPagesChanged) {
-  const int kNumberOfPages = 8;
-
-  AddButtons(kUnifiedFeaturePodItemsInRow * kUnifiedFeaturePodMaxRows *
-             kNumberOfPages);
-
-  // Adding buttons to fill kNumberOfPages should cause the the same number of
-  // pages to be created.
-  EXPECT_EQ(kNumberOfPages, pagination_model()->total_pages());
-
-  // Adding an additional button causes a new page to be added.
-  AddButtons(1);
-  EXPECT_EQ(pagination_model()->total_pages(), kNumberOfPages + 1);
-}
-
-TEST_F(FeaturePodsContainerViewTest, PaginationTransition) {
-  const int kNumberOfPages = 8;
-
-  AddButtons(kUnifiedFeaturePodItemsInRow * kUnifiedFeaturePodMaxRows *
-             kNumberOfPages);
-
-  // Position of a button should slide to the left during a page
-  // transition to the next page.
-  gfx::Rect current_bounds;
-  gfx::Rect initial_bounds = buttons_[0]->bounds();
-  gfx::Rect previous_bounds = initial_bounds;
-
-  PaginationModel::Transition transition(
-      pagination_model()->selected_page() + 1, 0);
-
-  for (double i = 0.1; i <= 1.0; i += 0.1) {
-    transition.progress = i;
-    pagination_model()->SetTransition(transition);
-
-    current_bounds = buttons_[0]->bounds();
-
-    EXPECT_LT(current_bounds.x(), previous_bounds.x());
-    EXPECT_EQ(current_bounds.y(), previous_bounds.y());
-
-    previous_bounds = current_bounds;
-  }
-
-  // Button Position after page switch should move to the left by a page offset.
-  int page_offset = container()->CalculatePreferredSize().width() +
-                    kUnifiedFeaturePodsPageSpacing;
-  gfx::Rect final_bounds =
-      gfx::Rect(initial_bounds.x() - page_offset, initial_bounds.y(),
-                initial_bounds.width(), initial_bounds.height());
-  pagination_model()->SelectPage(1, false);
-  views::test::RunScheduledLayout(container());
-  EXPECT_EQ(final_bounds, buttons_[0]->bounds());
-}
-
-TEST_F(FeaturePodsContainerViewTest, PaginationDynamicRows) {
-  const int kNumberOfFeaturePods = kUnifiedFeaturePodItemsInRow * 3;
-  const int padding =
-      kUnifiedFeaturePodTopPadding + kUnifiedFeaturePodBottomPadding;
-  int row_height =
-      kUnifiedFeaturePodSize.height() + kUnifiedFeaturePodVerticalPadding;
-  int min_height_for_three_rows = kUnifiedFeaturePodMaxRows * row_height +
-                                  padding + kMessageCenterCollapseThreshold;
-
-  AddButtons(kNumberOfFeaturePods);
-
-  // Expect 1 row of feature pods even if there is 0 height.
-  container()->SetMaxHeight(0);
-  int expected_number_of_pages =
-      kNumberOfFeaturePods / kUnifiedFeaturePodItemsInRow;
-  if (kNumberOfFeaturePods % kUnifiedFeaturePodItemsInRow)
-    expected_number_of_pages += 1;
-  EXPECT_EQ(expected_number_of_pages, pagination_model()->total_pages());
-
-  // Expect 2 rows of feature pods when there is enough height to display them
-  // but less than enough to display 3 rows.
-  container()->SetMaxHeight(min_height_for_three_rows - 1);
-  expected_number_of_pages =
-      kNumberOfFeaturePods / (2 * kUnifiedFeaturePodItemsInRow);
-  if (kNumberOfFeaturePods % (2 * kUnifiedFeaturePodItemsInRow))
-    expected_number_of_pages += 1;
-  EXPECT_EQ(expected_number_of_pages, pagination_model()->total_pages());
-
-  // Expect 3 rows of feature pods at max even when the max height is very
-  // large.
-  container()->SetMaxHeight(min_height_for_three_rows + 1);
-  expected_number_of_pages =
-      kNumberOfFeaturePods / (3 * kUnifiedFeaturePodItemsInRow);
-  if (kNumberOfFeaturePods % (3 * kUnifiedFeaturePodItemsInRow))
-    expected_number_of_pages += 1;
-  EXPECT_EQ(expected_number_of_pages, pagination_model()->total_pages());
-}
-
-TEST_F(FeaturePodsContainerViewTest, PaginationGestureHandling) {
-  const int kNumberOfPages = 8;
-
-  AddButtons(kUnifiedFeaturePodItemsInRow * kUnifiedFeaturePodMaxRows *
-             kNumberOfPages);
-
-  gfx::Point container_origin = container()->GetBoundsInScreen().origin();
-  ui::GestureEvent swipe_left_begin(
-      container_origin.x(), container_origin.y(), 0, base::TimeTicks(),
-      ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_BEGIN, -1, 0));
-  ui::GestureEvent swipe_left_update(
-      container_origin.x(), container_origin.y(), 0, base::TimeTicks(),
-      ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_UPDATE, -1000, 0));
-  ui::GestureEvent swipe_right_begin(
-      container_origin.x(), container_origin.y(), 0, base::TimeTicks(),
-      ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_BEGIN, 1, 0));
-  ui::GestureEvent swipe_right_update(
-      container_origin.x(), container_origin.y(), 0, base::TimeTicks(),
-      ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_UPDATE, 1000, 0));
-  ui::GestureEvent swipe_end(container_origin.x(), container_origin.y(), 0,
-                             base::TimeTicks(),
-                             ui::GestureEventDetails(ui::ET_GESTURE_END));
-
-  int previous_page = pagination_model()->selected_page();
-
-  // Swipe left takes to next page
-  for (int i = 0; i < kNumberOfPages - 1; i++) {
-    // Simulate swipe left
-    container()->OnGestureEvent(&swipe_left_begin);
-    container()->OnGestureEvent(&swipe_left_update);
-    container()->OnGestureEvent(&swipe_end);
-
-    int current_page = pagination_model()->selected_page();
-    // Expect next page
-    EXPECT_EQ(previous_page + 1, current_page);
-    previous_page = current_page;
-  }
-
-  // Swipe left on last page does nothing
-  container()->OnGestureEvent(&swipe_left_begin);
-  container()->OnGestureEvent(&swipe_left_update);
-  container()->OnGestureEvent(&swipe_end);
-
-  EXPECT_EQ(previous_page, pagination_model()->selected_page());
-
-  // Swipe right takes to previous page
-  for (int i = 0; i < kNumberOfPages - 1; i++) {
-    // Simulate swipe right
-    container()->OnGestureEvent(&swipe_right_begin);
-    container()->OnGestureEvent(&swipe_right_update);
-    container()->OnGestureEvent(&swipe_end);
-
-    int current_page = pagination_model()->selected_page();
-    // Expect previous page
-    EXPECT_EQ(previous_page - 1, current_page);
-    previous_page = current_page;
-  }
-
-  // Swipe right on first page does nothing
-  container()->OnGestureEvent(&swipe_right_begin);
-  container()->OnGestureEvent(&swipe_right_update);
-  container()->OnGestureEvent(&swipe_end);
-
-  EXPECT_EQ(previous_page, pagination_model()->selected_page());
-}
-
-TEST_F(FeaturePodsContainerViewTest, PaginationScrollHandling) {
-  const int kNumberOfPages = 8;
-  const int num_fingers = 2;
-
-  AddButtons(kUnifiedFeaturePodItemsInRow * kUnifiedFeaturePodMaxRows *
-             kNumberOfPages);
-
-  EXPECT_EQ(kNumberOfPages, pagination_model()->total_pages());
-
-  gfx::Point container_origin = container()->GetBoundsInScreen().origin();
-
-  ui::ScrollEvent fling_up_start(ui::ET_SCROLL_FLING_START, container_origin,
-                                 base::TimeTicks(), 0, 0, 100, 0, 10,
-                                 num_fingers);
-
-  ui::ScrollEvent fling_down_start(ui::ET_SCROLL_FLING_START, container_origin,
-                                   base::TimeTicks(), 0, 0, -100, 0, 10,
-                                   num_fingers);
-
-  ui::ScrollEvent fling_cancel(ui::ET_SCROLL_FLING_CANCEL, container_origin,
-                               base::TimeTicks(), 0, 0, 0, 0, 0, num_fingers);
-
-  int previous_page = pagination_model()->selected_page();
-
-  // Scroll down takes to next page
-  for (int i = 0; i < kNumberOfPages - 1; i++) {
-    // Simulate Scroll left
-    container()->OnScrollEvent(&fling_down_start);
-    container()->OnScrollEvent(&fling_cancel);
-    pagination_model()->FinishAnimation();
-
-    int current_page = pagination_model()->selected_page();
-    // Expect next page
-    EXPECT_EQ(previous_page + 1, current_page);
-    previous_page = current_page;
-  }
-
-  // Scroll up takes to previous page
-  for (int i = 0; i < kNumberOfPages - 1; i++) {
-    // Simulate Scroll up
-    container()->OnScrollEvent(&fling_up_start);
-    container()->OnScrollEvent(&fling_cancel);
-    pagination_model()->FinishAnimation();
-
-    int current_page = pagination_model()->selected_page();
-    // Expect previous page
-    EXPECT_EQ(previous_page - 1, current_page);
-    previous_page = current_page;
-  }
-}
-
-TEST_F(FeaturePodsContainerViewTest, PaginationMouseWheelHandling) {
-  const int kNumberOfPages = 8;
-
-  AddButtons(kUnifiedFeaturePodItemsInRow * kUnifiedFeaturePodMaxRows *
-             kNumberOfPages);
-
-  gfx::Point container_origin = container()->GetBoundsInScreen().origin();
-  ui::MouseWheelEvent wheel_up(gfx::Vector2d(0, 1000), container_origin,
-                               container_origin, base::TimeTicks(), 0, 0);
-
-  ui::MouseWheelEvent wheel_down(gfx::Vector2d(0, -1000), container_origin,
-                                 container_origin, base::TimeTicks(), 0, 0);
-
-  int previous_page = pagination_model()->selected_page();
-
-  // Mouse wheel down takes to next page
-  for (int i = 0; i < kNumberOfPages - 1; i++) {
-    // Simulate mouse wheel down
-    container()->OnMouseWheel(wheel_down);
-    pagination_model()->FinishAnimation();
-
-    int current_page = pagination_model()->selected_page();
-    // Expect next page
-    EXPECT_EQ(previous_page + 1, current_page);
-    previous_page = current_page;
-  }
-
-  // Mouse wheel up takes to previous page
-  for (int i = 0; i < kNumberOfPages - 1; i++) {
-    // Simulate mouse wheel up
-    container()->OnMouseWheel(wheel_up);
-    pagination_model()->FinishAnimation();
-
-    int current_page = pagination_model()->selected_page();
-    // Expect previous page
-    EXPECT_EQ(previous_page - 1, current_page);
-    previous_page = current_page;
-  }
-}
-
-TEST_F(FeaturePodsContainerViewTest, NonTogglableButton) {
-  // Add one togglable and one non-tobblable button.
-  AddButton(new FeaturePodButton(this, /*is_togglable=*/false));
-  AddButtons(1);
-
-  // Non-togglable buttons should be labelled as a regular button for
-  // accessibility and vice versa.
-  ui::AXNodeData ax_node_data;
-  buttons_[0]->icon_button()->GetAccessibleNodeData(&ax_node_data);
-  EXPECT_EQ(ax_node_data.role, ax::mojom::Role::kButton);
-  buttons_[1]->icon_button()->GetAccessibleNodeData(&ax_node_data);
-  EXPECT_EQ(ax_node_data.role, ax::mojom::Role::kToggleButton);
-}
-
-}  // namespace ash
diff --git a/ash/system/unified/notification_hidden_view.cc b/ash/system/unified/notification_hidden_view.cc
deleted file mode 100644
index 46fb68d..0000000
--- a/ash/system/unified/notification_hidden_view.cc
+++ /dev/null
@@ -1,103 +0,0 @@
-// Copyright 2018 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ash/system/unified/notification_hidden_view.h"
-
-#include "ash/bubble/bubble_constants.h"
-#include "ash/login/login_screen_controller.h"
-#include "ash/shell.h"
-#include "ash/strings/grit/ash_strings.h"
-#include "ash/style/ash_color_provider.h"
-#include "ash/style/pill_button.h"
-#include "ash/system/message_center/ash_message_center_lock_screen_controller.h"
-#include "ash/system/message_center/message_center_constants.h"
-#include "ash/system/tray/tray_constants.h"
-#include "base/functional/bind.h"
-#include "base/functional/callback_helpers.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/message_center/lock_screen/lock_screen_controller.h"
-#include "ui/message_center/message_center.h"
-#include "ui/message_center/message_center_impl.h"
-#include "ui/views/background.h"
-#include "ui/views/border.h"
-#include "ui/views/controls/label.h"
-#include "ui/views/layout/box_layout.h"
-#include "ui/views/layout/fill_layout.h"
-
-namespace ash {
-
-namespace {
-
-void ShowLockScreenNotificationSettings() {
-  ash::Shell::Get()
-      ->login_screen_controller()
-      ->ShowLockScreenNotificationSettings();
-}
-
-SkColor GetBackgroundColor() {
-  return AshColorProvider::Get()->GetControlsLayerColor(
-      AshColorProvider::ControlsLayerType::kControlBackgroundColorInactive);
-}
-
-}  // namespace
-
-NotificationHiddenView::NotificationHiddenView()
-    : container_(AddChildView(std::make_unique<views::View>())),
-      label_(container_->AddChildView(std::make_unique<views::Label>())) {
-  label_->SetAutoColorReadabilityEnabled(false);
-  label_->SetText(
-      l10n_util::GetStringUTF16(IDS_ASH_MESSAGE_CENTER_LOCKSCREEN_UNIFIED));
-  label_->SetHorizontalAlignment(gfx::HorizontalAlignment::ALIGN_LEFT);
-  label_->SetLineHeight(kUnifiedNotificationHiddenLineHeight);
-  label_->SetBorder(
-      views::CreateEmptyBorder(kUnifiedNotificationHiddenPadding));
-
-  container_->SetBackground(views::CreateRoundedRectBackground(
-      GetBackgroundColor(), kBubbleCornerRadius));
-
-  auto* layout =
-      container_->SetLayoutManager(std::make_unique<views::BoxLayout>(
-          views::BoxLayout::Orientation::kHorizontal));
-  layout->SetFlexForView(label_, 1);
-
-  // Shows the "Change" button, unless the locks screen notification is
-  // prohibited by policy or flag.
-  if (AshMessageCenterLockScreenController::IsAllowed()) {
-    change_button_ = container_->AddChildView(std::make_unique<PillButton>(
-        base::BindRepeating(&NotificationHiddenView::ChangeButtonPressed,
-                            base::Unretained(this)),
-        l10n_util::GetStringUTF16(IDS_ASH_MESSAGE_CENTER_LOCKSCREEN_CHANGE),
-        PillButton::Type::kDefaultWithoutIcon, /*icon=*/nullptr,
-        kNotificationPillButtonHorizontalSpacing));
-    change_button_->SetTooltipText(l10n_util::GetStringUTF16(
-        IDS_ASH_MESSAGE_CENTER_LOCKSCREEN_CHANGE_TOOLTIP));
-  }
-
-  SetBorder(views::CreateEmptyBorder(kUnifiedNotificationCenterSpacing));
-  SetLayoutManager(std::make_unique<views::FillLayout>());
-}
-
-const char* NotificationHiddenView::GetClassName() const {
-  return "NotificationHiddenView";
-}
-
-void NotificationHiddenView::OnThemeChanged() {
-  views::View::OnThemeChanged();
-  label_->SetEnabledColor(AshColorProvider::Get()->GetContentLayerColor(
-      AshColorProvider::ContentLayerType::kTextColorPrimary));
-  container_->background()->SetNativeControlColor(GetBackgroundColor());
-}
-
-void NotificationHiddenView::ChangeButtonPressed() {
-  // TODO(yoshiki): Refactor LockScreenController and remove the static cast.
-  // TODO(yoshiki): Show the setting after unlocking.
-  static_cast<message_center::MessageCenterImpl*>(
-      message_center::MessageCenter::Get())
-      ->lock_screen_controller()
-      ->DismissLockScreenThenExecute(
-          base::BindOnce(&ShowLockScreenNotificationSettings),
-          base::DoNothing(), IDS_ASH_MESSAGE_CENTER_UNLOCK_TO_CHANGE_SETTING);
-}
-
-}  // namespace ash
diff --git a/ash/system/unified/notification_hidden_view.h b/ash/system/unified/notification_hidden_view.h
deleted file mode 100644
index 0c7446c..0000000
--- a/ash/system/unified/notification_hidden_view.h
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2018 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ASH_SYSTEM_UNIFIED_NOTIFICATION_HIDDEN_VIEW_H_
-#define ASH_SYSTEM_UNIFIED_NOTIFICATION_HIDDEN_VIEW_H_
-
-#include "base/memory/raw_ptr.h"
-#include "ui/views/view.h"
-
-namespace views {
-class Button;
-class Label;
-}
-
-namespace ash {
-
-// A view to show the message that notifications are hidden on the lock screen
-// by the setting or the flag. This may show the button to encourage the user
-// to change the lock screen notification setting if the condition permits.
-class NotificationHiddenView : public views::View {
- public:
-  NotificationHiddenView();
-
-  NotificationHiddenView(const NotificationHiddenView&) = delete;
-  NotificationHiddenView& operator=(const NotificationHiddenView&) = delete;
-
-  ~NotificationHiddenView() override = default;
-
-  // views::View:
-  const char* GetClassName() const override;
-  void OnThemeChanged() override;
-
-  views::Button* change_button_for_testing() { return change_button_; }
-
- private:
-  void ChangeButtonPressed();
-
-  const raw_ptr<views::View, ExperimentalAsh> container_;
-  const raw_ptr<views::Label, ExperimentalAsh> label_;
-  raw_ptr<views::Button, ExperimentalAsh> change_button_ = nullptr;
-};
-
-}  // namespace ash
-
-#endif  // ASH_SYSTEM_UNIFIED_NOTIFICATION_HIDDEN_VIEW_H_
diff --git a/ash/system/unified/page_indicator_view.cc b/ash/system/unified/page_indicator_view.cc
deleted file mode 100644
index fa3ac58..0000000
--- a/ash/system/unified/page_indicator_view.cc
+++ /dev/null
@@ -1,221 +0,0 @@
-// Copyright 2019 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ash/system/unified/page_indicator_view.h"
-
-#include <algorithm>
-#include <memory>
-#include <utility>
-
-#include "ash/app_list/app_list_metrics.h"
-#include "ash/public/cpp/pagination/pagination_model.h"
-#include "ash/strings/grit/ash_strings.h"
-#include "ash/style/ash_color_provider.h"
-#include "ash/style/color_util.h"
-#include "ash/style/style_util.h"
-#include "ash/system/tray/tray_popup_utils.h"
-#include "ash/system/unified/unified_system_tray_controller.h"
-#include "base/functional/bind.h"
-#include "base/i18n/number_formatting.h"
-#include "base/metrics/histogram_macros.h"
-#include "third_party/skia/include/core/SkPath.h"
-#include "ui/accessibility/ax_enums.mojom.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/compositor/layer.h"
-#include "ui/gfx/animation/throb_animation.h"
-#include "ui/gfx/canvas.h"
-#include "ui/gfx/geometry/insets.h"
-#include "ui/gfx/geometry/skia_conversions.h"
-#include "ui/views/animation/ink_drop.h"
-#include "ui/views/background.h"
-#include "ui/views/controls/button/button.h"
-#include "ui/views/controls/highlight_path_generator.h"
-#include "ui/views/layout/box_layout.h"
-
-namespace ash {
-
-namespace {
-
-constexpr int kUnifiedPageIndicatorButtonRadius = 3;
-constexpr int kInkDropRadius = 3 * kUnifiedPageIndicatorButtonRadius;
-
-}  // namespace
-
-// Button internally used in PageIndicatorView. Each button
-// stores a page number which it switches to if pressed.
-class PageIndicatorView::PageIndicatorButton : public views::Button {
- public:
-  PageIndicatorButton(UnifiedSystemTrayController* controller, int page)
-      : views::Button(base::BindRepeating(
-            &UnifiedSystemTrayController::HandlePageSwitchAction,
-            base::Unretained(controller),
-            page)) {
-    SetFocusBehavior(views::View::FocusBehavior::ACCESSIBLE_ONLY);
-    views::InstallFixedSizeCircleHighlightPathGenerator(this, kInkDropRadius);
-
-    const gfx::Point center = GetLocalBounds().CenterPoint();
-    const gfx::Rect bounds(center.x() - kInkDropRadius,
-                           center.y() - kInkDropRadius, 2 * kInkDropRadius,
-                           2 * kInkDropRadius);
-    StyleUtil::SetUpInkDropForButton(this, GetLocalBounds().InsetsFrom(bounds),
-                                     /*highlight_on_hover=*/true,
-                                     /*highlight_on_focus=*/false);
-  }
-
-  PageIndicatorButton(const PageIndicatorButton&) = delete;
-  PageIndicatorButton& operator=(const PageIndicatorButton&) = delete;
-
-  ~PageIndicatorButton() override {}
-
-  void SetSelected(bool selected) {
-    if (selected == selected_)
-      return;
-
-    selected_ = selected;
-    SchedulePaint();
-    if (selected)
-      NotifyAccessibilityEvent(ax::mojom::Event::kAlert, true);
-  }
-
-  // views::View:
-  gfx::Size CalculatePreferredSize() const override {
-    return gfx::Size(kInkDropRadius * 2, kInkDropRadius * 2);
-  }
-
-  // views::Button:
-  const char* GetClassName() const override { return "PageIndicatorView"; }
-
-  // views::Button:
-  void PaintButtonContents(gfx::Canvas* canvas) override {
-    gfx::Rect rect(GetContentsBounds());
-
-    const SkColor selected_color =
-        AshColorProvider::Get()->GetContentLayerColor(
-            AshColorProvider::ContentLayerType::kIconColorPrimary);
-    cc::PaintFlags flags;
-    flags.setAntiAlias(true);
-    flags.setStyle(cc::PaintFlags::kFill_Style);
-    flags.setColor(selected_ ? selected_color
-                             : ColorUtil::GetDisabledColor(selected_color));
-    canvas->DrawCircle(rect.CenterPoint(), kUnifiedPageIndicatorButtonRadius,
-                       flags);
-  }
-
-  // views::Button:
-  void OnThemeChanged() override {
-    views::Button::OnThemeChanged();
-    StyleUtil::ConfigureInkDropAttributes(
-        this, StyleUtil::kBaseColor | StyleUtil::kInkDropOpacity |
-                  StyleUtil::kHighlightOpacity);
-    SchedulePaint();
-  }
-
-  bool selected() const { return selected_; }
-
- protected:
-  // views::Button:
-  void NotifyClick(const ui::Event& event) override {
-    Button::NotifyClick(event);
-    views::InkDrop::Get(this)->GetInkDrop()->AnimateToState(
-        views::InkDropState::ACTION_TRIGGERED);
-  }
-
- private:
-  bool selected_ = false;
-};
-
-PageIndicatorView::PageIndicatorView(UnifiedSystemTrayController* controller,
-                                     bool initially_expanded)
-    : controller_(controller),
-      model_(controller->model()->pagination_model()),
-      expanded_amount_(initially_expanded ? 1 : 0),
-      buttons_container_(new views::View) {
-  SetVisible(initially_expanded);
-
-  buttons_container_->SetLayoutManager(std::make_unique<views::BoxLayout>(
-      views::BoxLayout::Orientation::kHorizontal, gfx::Insets()));
-  buttons_container_->SetPaintToLayer();
-  buttons_container_->layer()->SetFillsBoundsOpaquely(false);
-
-  AddChildView(buttons_container_.get());
-
-  TotalPagesChanged(0, model_->total_pages());
-
-  DCHECK(model_);
-  model_->AddObserver(this);
-}
-
-PageIndicatorView::~PageIndicatorView() {
-  model_->RemoveObserver(this);
-}
-
-gfx::Size PageIndicatorView::CalculatePreferredSize() const {
-  return gfx::Size(kTrayMenuWidth, kPageIndicatorViewMaxHeight);
-}
-
-void PageIndicatorView::Layout() {
-  gfx::Rect rect(GetContentsBounds());
-
-  gfx::Size buttons_container_size(buttons_container_->GetPreferredSize());
-  rect.ClampToCenteredSize(buttons_container_size);
-  buttons_container_->SetBoundsRect(rect);
-}
-
-const char* PageIndicatorView::GetClassName() const {
-  return "PageIndicatorView";
-}
-
-void PageIndicatorView::SetExpandedAmount(double expanded_amount) {
-  DCHECK(0.0 <= expanded_amount && expanded_amount <= 1.0);
-  SetVisible(expanded_amount > 0.0);
-  expanded_amount_ = expanded_amount;
-  // TODO(amehfooz): Confirm animation curve with UX.
-  buttons_container_->layer()->SetOpacity(
-      std::max(0., 6 * expanded_amount_ - 5.));
-  if (CalculatePreferredSize() != size())
-    InvalidateLayout();
-}
-
-int PageIndicatorView::GetExpandedHeight() {
-  return buttons_container_->GetPreferredSize().height();
-}
-
-void PageIndicatorView::TotalPagesChanged(int previous_page_count,
-                                          int new_page_count) {
-  DCHECK(model_);
-
-  buttons_container_->RemoveAllChildViews();
-  for (int i = 0; i < model_->total_pages(); ++i) {
-    PageIndicatorButton* button = new PageIndicatorButton(controller_, i);
-    button->SetAccessibleName(l10n_util::GetStringFUTF16(
-        IDS_APP_LIST_PAGE_SWITCHER, base::FormatNumber(i + 1),
-        base::FormatNumber(model_->total_pages())));
-    button->SetSelected(i == model_->selected_page());
-    buttons_container_->AddChildView(button);
-  }
-  buttons_container_->SetVisible(model_->total_pages() > 1);
-  Layout();
-}
-
-PageIndicatorView::PageIndicatorButton* PageIndicatorView::GetButtonByIndex(
-    int index) {
-  return static_cast<PageIndicatorButton*>(
-      buttons_container_->children().at(index));
-}
-
-void PageIndicatorView::SelectedPageChanged(int old_selected,
-                                            int new_selected) {
-  size_t total_children = buttons_container_->children().size();
-
-  if (old_selected >= 0 && static_cast<size_t>(old_selected) < total_children)
-    GetButtonByIndex(old_selected)->SetSelected(false);
-  if (new_selected >= 0 && static_cast<size_t>(new_selected) < total_children)
-    GetButtonByIndex(new_selected)->SetSelected(true);
-}
-
-bool PageIndicatorView::IsPageSelectedForTesting(int index) {
-  return GetButtonByIndex(index)->selected();
-}
-
-}  // namespace ash
diff --git a/ash/system/unified/page_indicator_view.h b/ash/system/unified/page_indicator_view.h
deleted file mode 100644
index a47f1f7..0000000
--- a/ash/system/unified/page_indicator_view.h
+++ /dev/null
@@ -1,73 +0,0 @@
-// Copyright 2019 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ASH_SYSTEM_UNIFIED_PAGE_INDICATOR_VIEW_H_
-#define ASH_SYSTEM_UNIFIED_PAGE_INDICATOR_VIEW_H_
-
-#include "ash/ash_export.h"
-#include "ash/public/cpp/pagination/pagination_model_observer.h"
-#include "base/memory/raw_ptr.h"
-#include "ui/views/view.h"
-
-namespace ash {
-
-class PaginationModel;
-class UnifiedSystemTrayController;
-
-// PageIndicatorView represents its underlying PaginationModel with a button
-// strip. Each page in the PaginationModel has a button in the strip and
-// when the button is clicked, the corresponding page becomes selected.
-class ASH_EXPORT PageIndicatorView : public views::View,
-                                     public PaginationModelObserver {
- public:
-  PageIndicatorView(UnifiedSystemTrayController* controller,
-                    bool initially_expanded);
-
-  PageIndicatorView(const PageIndicatorView&) = delete;
-  PageIndicatorView& operator=(const PageIndicatorView&) = delete;
-
-  ~PageIndicatorView() override;
-
-  // Change the expanded state. 0.0 if collapsed, and 1.0 if expanded.
-  // Otherwise, it shows an intermediate state while animating.
-  void SetExpandedAmount(double expanded_amount);
-
-  // Returns the height of this view when the tray is fully expanded.
-  int GetExpandedHeight();
-
-  // views::View:
-  gfx::Size CalculatePreferredSize() const override;
-  void Layout() override;
-  const char* GetClassName() const override;
-
- private:
-  friend class PageIndicatorViewTest;
-
-  class PageIndicatorButton;
-
-  // PaginationModelObserver:
-  void TotalPagesChanged(int previous_page_count, int new_page_count) override;
-  void SelectedPageChanged(int old_selected, int new_selected) override;
-
-  bool IsPageSelectedForTesting(int index);
-  views::View* buttons_container() { return buttons_container_; }
-
-  PageIndicatorButton* GetButtonByIndex(int index);
-
-  const raw_ptr<UnifiedSystemTrayController,
-                DanglingUntriaged | ExperimentalAsh>
-      controller_;
-
-  // Owned by UnifiedSystemTrayModel.
-  const raw_ptr<PaginationModel, ExperimentalAsh> model_;
-
-  double expanded_amount_;
-
-  // Owned by views hierarchy.
-  raw_ptr<views::View, ExperimentalAsh> buttons_container_;
-};
-
-}  // namespace ash
-
-#endif  // ASH_SYSTEM_UNIFIED_PAGE_INDICATOR_VIEW_H_
diff --git a/ash/system/unified/page_indicator_view_unittest.cc b/ash/system/unified/page_indicator_view_unittest.cc
deleted file mode 100644
index 99157f0..0000000
--- a/ash/system/unified/page_indicator_view_unittest.cc
+++ /dev/null
@@ -1,114 +0,0 @@
-// Copyright 2019 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ash/system/unified/page_indicator_view.h"
-
-#include "ash/public/cpp/pagination/pagination_model.h"
-#include "ash/session/test_session_controller_client.h"
-#include "ash/system/unified/unified_system_tray_controller.h"
-#include "ash/system/unified/unified_system_tray_model.h"
-#include "ash/system/unified/unified_system_tray_view.h"
-#include "ash/test/ash_test_base.h"
-#include "base/memory/scoped_refptr.h"
-
-namespace ash {
-
-namespace {
-int kPageCount = 10;
-}
-
-class PageIndicatorViewTest : public NoSessionAshTestBase {
- public:
-  PageIndicatorViewTest() = default;
-
-  PageIndicatorViewTest(const PageIndicatorViewTest&) = delete;
-  PageIndicatorViewTest& operator=(const PageIndicatorViewTest&) = delete;
-
-  ~PageIndicatorViewTest() override = default;
-
-  void SetUp() override {
-    NoSessionAshTestBase::SetUp();
-
-    model_ = base::MakeRefCounted<UnifiedSystemTrayModel>(nullptr);
-    controller_ = std::make_unique<UnifiedSystemTrayController>(model_.get());
-
-    unified_view_ = std::make_unique<UnifiedSystemTrayView>(
-        controller_.get(), true /* initially_expanded */);
-  }
-
-  void TearDown() override {
-    controller_.reset();
-    unified_view_.reset();
-    model_.reset();
-    NoSessionAshTestBase::TearDown();
-  }
-
- protected:
-  int GetButtonCount() {
-    return page_indicator_view()->buttons_container()->children().size();
-  }
-
-  bool IsPageSelected(int index) {
-    return page_indicator_view()->IsPageSelectedForTesting(index);
-  }
-
-  PaginationModel* pagination_model() { return model_->pagination_model(); }
-  PageIndicatorView* page_indicator_view() {
-    return unified_view_->page_indicator_view_for_test();
-  }
-  UnifiedSystemTrayView* unified_view() { return unified_view_.get(); }
-
- private:
-  scoped_refptr<UnifiedSystemTrayModel> model_;
-  std::unique_ptr<UnifiedSystemTrayController> controller_;
-  std::unique_ptr<UnifiedSystemTrayView> unified_view_;
-};
-
-// Number of buttons is equal to total pages in PaginationModel.
-TEST_F(PageIndicatorViewTest, ButtonForEachPage) {
-  for (int i = 0; i < kPageCount; i++) {
-    pagination_model()->SetTotalPages(i);
-    EXPECT_EQ(i, GetButtonCount());
-  }
-}
-
-// Single button corresponding to page in PaginationModel is set to selected.
-TEST_F(PageIndicatorViewTest, SelectPage) {
-  pagination_model()->SetTotalPages(kPageCount);
-
-  for (int i = 0; i < kPageCount; i++) {
-    pagination_model()->SelectPage(i, false /* animate */);
-    EXPECT_TRUE(IsPageSelected(i));
-    for (int j = 0; j < kPageCount; j++) {
-      if (i == j)
-        continue;
-
-      EXPECT_FALSE(IsPageSelected(j));
-    }
-  }
-}
-
-TEST_F(PageIndicatorViewTest, ExpandAndCollapse) {
-  int cur_height;
-  int prev_height;
-  double expanded_increments[] = {0.90, 0.75, 0.5, 0.25, 0.10};
-
-  pagination_model()->SetTotalPages(kPageCount);
-
-  // PageIndicatorView has decreasing height as the expanded amount is
-  // decreased.
-  prev_height = page_indicator_view()->GetContentsBounds().height();
-  for (double i : expanded_increments) {
-    unified_view()->SetExpandedAmount(i);
-    cur_height = page_indicator_view()->GetContentsBounds().height();
-    EXPECT_GE(prev_height, cur_height);
-    prev_height = cur_height;
-  }
-
-  // PageIndicatorView has zero height when collapsed.
-  unified_view()->SetExpandedAmount(0.00);
-  EXPECT_EQ(page_indicator_view()->GetContentsBounds().height(), 0);
-}
-
-}  // namespace ash
diff --git a/ash/system/unified/quick_settings_view.cc b/ash/system/unified/quick_settings_view.cc
index 5323c2c14..30d1320 100644
--- a/ash/system/unified/quick_settings_view.cc
+++ b/ash/system/unified/quick_settings_view.cc
@@ -14,13 +14,10 @@
 #include "ash/system/tray/tray_constants.h"
 #include "ash/system/tray/tray_detailed_view.h"
 #include "ash/system/unified/detailed_view_controller.h"
-#include "ash/system/unified/feature_pod_button.h"
 #include "ash/system/unified/feature_tile.h"
 #include "ash/system/unified/feature_tiles_container_view.h"
-#include "ash/system/unified/page_indicator_view.h"
 #include "ash/system/unified/quick_settings_footer.h"
 #include "ash/system/unified/quick_settings_header.h"
-#include "ash/system/unified/unified_system_info_view.h"
 #include "ash/system/unified/unified_system_tray_controller.h"
 #include "base/functional/bind.h"
 #include "base/memory/raw_ptr.h"
@@ -302,12 +299,6 @@
   pagination_view_->SetVisible(new_page_count > 1);
 }
 
-void QuickSettingsView::OnGestureEvent(ui::GestureEvent* event) {
-  if (event->type() == ui::ET_SCROLL_FLING_START) {
-    controller_->Fling(event->details().velocity_y());
-  }
-}
-
 BEGIN_METADATA(QuickSettingsView, views::View)
 END_METADATA
 
diff --git a/ash/system/unified/quick_settings_view.h b/ash/system/unified/quick_settings_view.h
index 473b1b13..31c4408 100644
--- a/ash/system/unified/quick_settings_view.h
+++ b/ash/system/unified/quick_settings_view.h
@@ -100,9 +100,6 @@
   // PaginationModelObserver:
   void TotalPagesChanged(int previous_page_count, int new_page_count) override;
 
-  // views::View:
-  void OnGestureEvent(ui::GestureEvent* event) override;
-
   FeatureTilesContainerView* feature_tiles_container() {
     return feature_tiles_container_;
   }
diff --git a/ash/system/unified/system_tray_test_api.cc b/ash/system/unified/system_tray_test_api.cc
index a3eac09..26ec5f4 100644
--- a/ash/system/unified/system_tray_test_api.cc
+++ b/ash/system/unified/system_tray_test_api.cc
@@ -59,10 +59,6 @@
   return GetTray()->IsBubbleShown();
 }
 
-bool SystemTrayTestApi::IsTrayBubbleExpanded() {
-  return GetTray()->bubble_->controller_->IsExpanded();
-}
-
 void SystemTrayTestApi::ShowBubble() {
   GetTray()->ShowBubble();
 }
@@ -71,14 +67,6 @@
   GetTray()->CloseBubble();
 }
 
-void SystemTrayTestApi::CollapseBubble() {
-  GetTray()->EnsureQuickSettingsCollapsed(true /*animate*/);
-}
-
-void SystemTrayTestApi::ExpandBubble() {
-  GetTray()->EnsureBubbleExpanded();
-}
-
 void SystemTrayTestApi::ShowAccessibilityDetailedView() {
   GetTray()->ShowBubble();
   GetTray()->bubble_->controller_->ShowAccessibilityDetailedView();
@@ -86,7 +74,7 @@
 
 void SystemTrayTestApi::ShowNetworkDetailedView() {
   GetTray()->ShowBubble();
-  GetTray()->bubble_->controller_->ShowNetworkDetailedView(true /* force */);
+  GetTray()->bubble_->controller_->ShowNetworkDetailedView();
 }
 
 AccessibilityDetailedView* SystemTrayTestApi::GetAccessibilityDetailedView() {
diff --git a/ash/system/unified/top_shortcuts_view.cc b/ash/system/unified/top_shortcuts_view.cc
deleted file mode 100644
index a3e560ea..0000000
--- a/ash/system/unified/top_shortcuts_view.cc
+++ /dev/null
@@ -1,330 +0,0 @@
-// Copyright 2018 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ash/system/unified/top_shortcuts_view.h"
-
-#include <algorithm>
-#include <cstddef>
-#include <memory>
-#include <numeric>
-
-#include "ash/constants/ash_features.h"
-#include "ash/constants/ash_pref_names.h"
-#include "ash/constants/quick_settings_catalogs.h"
-#include "ash/public/cpp/ash_view_ids.h"
-#include "ash/resources/vector_icons/vector_icons.h"
-#include "ash/session/session_controller_impl.h"
-#include "ash/shell.h"
-#include "ash/shutdown_controller_impl.h"
-#include "ash/strings/grit/ash_strings.h"
-#include "ash/style/icon_button.h"
-#include "ash/style/pill_button.h"
-#include "ash/system/tray/tray_constants.h"
-#include "ash/system/tray/tray_popup_utils.h"
-#include "ash/system/unified/buttons.h"
-#include "ash/system/unified/collapse_button.h"
-#include "ash/system/unified/quick_settings_metrics_util.h"
-#include "ash/system/unified/unified_system_tray_controller.h"
-#include "ash/system/unified/user_chooser_detailed_view_controller.h"
-#include "ash/system/unified/user_chooser_view.h"
-#include "ash/system/user/login_status.h"
-#include "base/functional/bind.h"
-#include "base/ranges/algorithm.h"
-#include "components/prefs/pref_registry_simple.h"
-#include "components/prefs/pref_service.h"
-#include "components/vector_icons/vector_icons.h"
-#include "ui/color/color_id.h"
-#include "ui/gfx/paint_vector_icon.h"
-#include "ui/views/controls/button/button.h"
-#include "ui/views/controls/highlight_path_generator.h"
-#include "ui/views/layout/box_layout.h"
-#include "ui/views/layout/fill_layout.h"
-
-namespace ash {
-
-TopShortcutButtonContainer::TopShortcutButtonContainer() = default;
-
-TopShortcutButtonContainer::~TopShortcutButtonContainer() = default;
-
-// Buttons are equally spaced by the default value, but the gap will be
-// narrowed evenly when the parent view is not large enough.
-void TopShortcutButtonContainer::Layout() {
-  const gfx::Rect child_area = GetContentsBounds();
-
-  views::View::Views visible_children;
-  base::ranges::copy_if(
-      children(), std::back_inserter(visible_children), [](const auto* v) {
-        return v->GetVisible() && (v->GetPreferredSize().width() > 0);
-      });
-  if (visible_children.empty()) {
-    return;
-  }
-
-  const int visible_child_width =
-      std::accumulate(visible_children.cbegin(), visible_children.cend(), 0,
-                      [](int width, const auto* v) {
-                        return width + v->GetPreferredSize().width();
-                      });
-
-  int spacing = 0;
-  if (visible_children.size() > 1) {
-    spacing = (child_area.width() - visible_child_width) /
-              (static_cast<int>(visible_children.size()) - 1);
-    spacing = std::clamp(spacing, kUnifiedTopShortcutButtonMinSpacing,
-                         kUnifiedTopShortcutButtonDefaultSpacing);
-  }
-
-  int x = child_area.x();
-  int y = child_area.y() + kUnifiedTopShortcutContainerTopPadding +
-          kUnifiedCircularButtonFocusPadding.bottom();
-  for (auto* child : visible_children) {
-    int child_y = y;
-    int width = child->GetPreferredSize().width();
-    if (child == user_avatar_button_) {
-      x -= kUnifiedCircularButtonFocusPadding.left();
-      child_y -= kUnifiedCircularButtonFocusPadding.bottom();
-    } else if (child == sign_out_button_) {
-      // When there's not enough space, shrink the sign-out button.
-      const int remainder =
-          child_area.width() -
-          (static_cast<int>(visible_children.size()) - 1) * spacing -
-          (visible_child_width - width);
-      width = std::clamp(width, 0, std::max(0, remainder));
-    }
-
-    child->SetBounds(x, child_y, width, child->GetHeightForWidth(width));
-    x += width + spacing;
-
-    if (child == user_avatar_button_) {
-      x -= kUnifiedCircularButtonFocusPadding.right();
-    }
-  }
-}
-
-gfx::Size TopShortcutButtonContainer::CalculatePreferredSize() const {
-  int total_horizontal_size = 0;
-  int num_visible = 0;
-  for (const auto* child : children()) {
-    if (!child->GetVisible()) {
-      continue;
-    }
-    int child_horizontal_size = child->GetPreferredSize().width();
-    if (child_horizontal_size == 0) {
-      continue;
-    }
-    total_horizontal_size += child_horizontal_size;
-    num_visible++;
-  }
-  int width =
-      (num_visible == 0)
-          ? 0
-          : total_horizontal_size +
-                (num_visible - 1) * kUnifiedTopShortcutButtonDefaultSpacing;
-  int height = kTrayItemSize + kUnifiedCircularButtonFocusPadding.height() +
-               kUnifiedTopShortcutContainerTopPadding;
-  return gfx::Size(width, height);
-}
-
-const char* TopShortcutButtonContainer::GetClassName() const {
-  return "TopShortcutButtonContainer";
-}
-
-views::View* TopShortcutButtonContainer::AddUserAvatarButton(
-    std::unique_ptr<views::View> user_avatar_button) {
-  user_avatar_button_ = AddChildView(std::move(user_avatar_button));
-  return user_avatar_button_;
-}
-
-views::Button* TopShortcutButtonContainer::AddSignOutButton(
-    std::unique_ptr<views::Button> sign_out_button) {
-  sign_out_button_ = AddChildView(std::move(sign_out_button));
-  return sign_out_button_;
-}
-
-TopShortcutsView::TopShortcutsView(UnifiedSystemTrayController* controller) {
-  DCHECK(controller);
-
-#if DCHECK_IS_ON()
-  // Only need it for `DCHECK` in `OnChildViewAdded`.
-  AddObserver(this);
-#endif  // DCHECK_IS_ON()
-
-  auto* layout = SetLayoutManager(std::make_unique<views::BoxLayout>(
-      views::BoxLayout::Orientation::kHorizontal, kUnifiedTopShortcutPadding,
-      kUnifiedTopShortcutSpacing));
-  layout->set_cross_axis_alignment(
-      views::BoxLayout::CrossAxisAlignment::kStart);
-  auto button_container = std::make_unique<TopShortcutButtonContainer>();
-
-  Shell* shell = Shell::Get();
-
-  bool is_on_login_screen =
-      shell->session_controller()->login_status() == LoginStatus::NOT_LOGGED_IN;
-  bool can_show_settings = TrayPopupUtils::CanOpenWebUISettings();
-  bool can_lock_screen = shell->session_controller()->CanLockScreen();
-
-  if (!is_on_login_screen) {
-    user_avatar_button_ = button_container->AddUserAvatarButton(
-        std::make_unique<UserAvatarButton>(base::BindRepeating(
-            [](UnifiedSystemTrayController* controller) {
-              quick_settings_metrics_util::RecordQsButtonActivated(
-                  QsButtonCatalogName::kAvatarButton);
-              controller->ShowUserChooserView();
-            },
-            base::Unretained(controller))));
-    user_avatar_button_->SetEnabled(
-        UserChooserDetailedViewController::IsUserChooserEnabled());
-    user_avatar_button_->SetID(VIEW_ID_QS_USER_AVATAR_BUTTON);
-
-    sign_out_button_ =
-        button_container->AddSignOutButton(std::make_unique<PillButton>(
-            base::BindRepeating(
-                [](UnifiedSystemTrayController* controller) {
-                  quick_settings_metrics_util::RecordQsButtonActivated(
-                      QsButtonCatalogName::kSignOutButton);
-                  controller->HandleSignOutAction();
-                },
-                base::Unretained(controller)),
-            user::GetLocalizedSignOutStringForStatus(
-                Shell::Get()->session_controller()->login_status(),
-                /*multiline=*/false),
-            PillButton::Type::kDefaultWithoutIcon,
-            /*icon=*/nullptr));
-    sign_out_button_->SetID(VIEW_ID_QS_SIGN_OUT_BUTTON);
-  }
-  bool reboot = shell->shutdown_controller()->reboot_on_shutdown();
-  power_button_ = button_container->AddChildView(std::make_unique<IconButton>(
-      base::BindRepeating(
-          [](UnifiedSystemTrayController* controller) {
-            quick_settings_metrics_util::RecordQsButtonActivated(
-                QsButtonCatalogName::kPowerButton);
-            controller->HandlePowerAction();
-          },
-          base::Unretained(controller)),
-      IconButton::Type::kMedium, &kUnifiedMenuPowerIcon,
-      reboot ? IDS_ASH_STATUS_TRAY_REBOOT : IDS_ASH_STATUS_TRAY_SHUTDOWN));
-  power_button_->SetID(VIEW_ID_QS_POWER_BUTTON);
-
-  if (can_show_settings && can_lock_screen) {
-    lock_button_ = button_container->AddChildView(std::make_unique<IconButton>(
-        base::BindRepeating(
-            [](UnifiedSystemTrayController* controller) {
-              quick_settings_metrics_util::RecordQsButtonActivated(
-                  QsButtonCatalogName::kLockButton);
-              controller->HandleLockAction();
-            },
-            base::Unretained(controller)),
-        IconButton::Type::kMedium, &kUnifiedMenuLockIcon,
-        IDS_ASH_STATUS_TRAY_LOCK));
-    lock_button_->SetID(VIEW_ID_QS_LOCK_BUTTON);
-  }
-
-  if (can_show_settings) {
-    settings_button_ =
-        button_container->AddChildView(std::make_unique<IconButton>(
-            base::BindRepeating(
-                [](UnifiedSystemTrayController* controller) {
-                  quick_settings_metrics_util::RecordQsButtonActivated(
-                      QsButtonCatalogName::kSettingsButton);
-                  controller->HandleSettingsAction();
-                },
-                base::Unretained(controller)),
-            IconButton::Type::kMedium, &vector_icons::kSettingsOutlineIcon,
-            IDS_ASH_STATUS_TRAY_SETTINGS));
-    settings_button_->SetID(VIEW_ID_QS_SETTINGS_BUTTON);
-
-    local_state_pref_change_registrar_.Init(Shell::Get()->local_state());
-    local_state_pref_change_registrar_.Add(
-        prefs::kOsSettingsEnabled,
-        base::BindRepeating(&TopShortcutsView::UpdateSettingsButtonState,
-                            base::Unretained(this)));
-    UpdateSettingsButtonState();
-  }
-
-  container_ = AddChildView(std::move(button_container));
-
-  // |collapse_button_| should be right-aligned, so we make the buttons
-  // container flex occupying all remaining space.
-  layout->SetFlexForView(container_, 1);
-
-  if (features::IsQsRevampEnabled()) {
-    return;
-  }
-
-  auto collapse_button_container = std::make_unique<views::View>();
-  collapse_button_ = collapse_button_container->AddChildView(
-      std::make_unique<CollapseButton>(base::BindRepeating(
-          [](UnifiedSystemTrayController* controller) {
-            quick_settings_metrics_util::RecordQsButtonActivated(
-                QsButtonCatalogName::kCollapseButton);
-            controller->ToggleExpanded();
-          },
-          base::Unretained(controller))));
-  collapse_button_->SetID(VIEW_ID_QS_COLLAPSE_BUTTON);
-  const gfx::Size collapse_button_size = collapse_button_->GetPreferredSize();
-  collapse_button_container->SetPreferredSize(
-      gfx::Size(collapse_button_size.width(),
-                collapse_button_size.height() + kUnifiedTopShortcutSpacing));
-  collapse_button_->SetBoundsRect(gfx::Rect(
-      gfx::Point(0, kUnifiedTopShortcutSpacing), collapse_button_size));
-
-  AddChildView(std::move(collapse_button_container));
-}
-
-TopShortcutsView::~TopShortcutsView() {
-#if DCHECK_IS_ON()
-  // Only need it for `DCHECK` in `OnChildViewAdded`.
-  RemoveObserver(this);
-#endif  // DCHECK_IS_ON()
-}
-
-// static
-void TopShortcutsView::RegisterLocalStatePrefs(PrefRegistrySimple* registry) {
-  registry->RegisterBooleanPref(prefs::kOsSettingsEnabled, true);
-}
-
-void TopShortcutsView::SetExpandedAmount(double expanded_amount) {
-  if (features::IsQsRevampEnabled()) {
-    return;
-  }
-  collapse_button_->SetExpandedAmount(expanded_amount);
-}
-
-const char* TopShortcutsView::GetClassName() const {
-  return "TopShortcutsView";
-}
-
-void TopShortcutsView::OnChildViewAdded(View* observed_view, View* child) {
-  if (observed_view != this) {
-    return;
-  }
-
-  if (child->children().empty()) {
-    DCHECK(child->GetID() >= VIEW_ID_QS_MIN && child->GetID() <= VIEW_ID_QS_MAX)
-        << "All buttons directly added to this view must have a view ID with  "
-           "VIEW_ID_QS_*, and record a metric using QsButtonCatalogName (see "
-           "other usages of the catalog names for an example)";
-    return;
-  }
-
-  for (View* button : child->children()) {
-    DCHECK(button->GetID() >= VIEW_ID_QS_MIN &&
-           button->GetID() <= VIEW_ID_QS_MAX)
-        << "All buttons directly added to each container must have a view ID "
-           "with VIEW_ID_QS_*, and record a metric using QsButtonCatalogName "
-           "(see other usages of the catalog names for an example)";
-  }
-}
-
-void TopShortcutsView::UpdateSettingsButtonState() {
-  PrefService* const local_state = Shell::Get()->local_state();
-  const bool settings_icon_enabled =
-      local_state->GetBoolean(prefs::kOsSettingsEnabled);
-
-  settings_button_->SetState(settings_icon_enabled
-                                 ? views::Button::STATE_NORMAL
-                                 : views::Button::STATE_DISABLED);
-}
-
-}  // namespace ash
diff --git a/ash/system/unified/top_shortcuts_view.h b/ash/system/unified/top_shortcuts_view.h
deleted file mode 100644
index 6b83b2f..0000000
--- a/ash/system/unified/top_shortcuts_view.h
+++ /dev/null
@@ -1,98 +0,0 @@
-// Copyright 2018 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ASH_SYSTEM_UNIFIED_TOP_SHORTCUTS_VIEW_H_
-#define ASH_SYSTEM_UNIFIED_TOP_SHORTCUTS_VIEW_H_
-
-#include "ash/accessibility/accessibility_observer.h"
-#include "ash/ash_export.h"
-#include "base/memory/raw_ptr.h"
-#include "components/prefs/pref_change_registrar.h"
-#include "ui/views/view.h"
-#include "ui/views/view_observer.h"
-
-class PrefRegistrySimple;
-
-namespace views {
-class Button;
-}
-
-namespace ash {
-
-class CollapseButton;
-class IconButton;
-class TopShortcutsViewTest;
-class UnifiedSystemTrayController;
-
-// Container for the top shortcut buttons. The view may narrow gaps between
-// buttons when there's not enough space. When those doesn't fit in the view
-// even after that, the sign-out button will be resized.
-class TopShortcutButtonContainer : public views::View {
- public:
-  TopShortcutButtonContainer();
-
-  TopShortcutButtonContainer(const TopShortcutButtonContainer&) = delete;
-  TopShortcutButtonContainer& operator=(const TopShortcutButtonContainer&) =
-      delete;
-
-  ~TopShortcutButtonContainer() override;
-
-  // views::View:
-  void Layout() override;
-  gfx::Size CalculatePreferredSize() const override;
-  const char* GetClassName() const override;
-
-  views::View* AddUserAvatarButton(
-      std::unique_ptr<views::View> user_avatar_button);
-  // Add the sign-out button, which can be resized upon layout.
-  views::Button* AddSignOutButton(
-      std::unique_ptr<views::Button> sign_out_button);
-
- private:
-  raw_ptr<views::View, ExperimentalAsh> user_avatar_button_ = nullptr;
-  raw_ptr<views::Button, ExperimentalAsh> sign_out_button_ = nullptr;
-};
-
-// Top shortcuts view shown on the top of UnifiedSystemTrayView.
-class ASH_EXPORT TopShortcutsView : public views::View,
-                                    public views::ViewObserver {
- public:
-  explicit TopShortcutsView(UnifiedSystemTrayController* controller);
-
-  TopShortcutsView(const TopShortcutsView&) = delete;
-  TopShortcutsView& operator=(const TopShortcutsView&) = delete;
-  ~TopShortcutsView() override;
-
-  static void RegisterLocalStatePrefs(PrefRegistrySimple* registry);
-
-  // Change the expanded state. CollapseButton icon will rotate.
-  void SetExpandedAmount(double expanded_amount);
-
-  // views::View
-  const char* GetClassName() const override;
-
- private:
-  friend class TopShortcutsViewTest;
-
-  // views::ViewObserver:
-  void OnChildViewAdded(View* observed_view, View* child) override;
-
-  // Disables/Enables the |settings_button_| based on kSettingsIconEnabled pref.
-  void UpdateSettingsButtonState();
-
-  // Owned by views hierarchy.
-  raw_ptr<views::View, ExperimentalAsh> user_avatar_button_ = nullptr;
-  raw_ptr<views::Button, ExperimentalAsh> sign_out_button_ = nullptr;
-  raw_ptr<TopShortcutButtonContainer, ExperimentalAsh> container_ = nullptr;
-  raw_ptr<IconButton, ExperimentalAsh> lock_button_ = nullptr;
-  raw_ptr<IconButton, ExperimentalAsh> settings_button_ = nullptr;
-  raw_ptr<IconButton, ExperimentalAsh> power_button_ = nullptr;
-  raw_ptr<CollapseButton, ExperimentalAsh> collapse_button_ = nullptr;
-
-  PrefChangeRegistrar local_state_pref_change_registrar_;
-};
-
-}  // namespace ash
-
-#endif  // ASH_SYSTEM_UNIFIED_TOP_SHORTCUTS_VIEW_H_
diff --git a/ash/system/unified/unified_slider_bubble_controller.cc b/ash/system/unified/unified_slider_bubble_controller.cc
index a6af41a..d2d6787 100644
--- a/ash/system/unified/unified_slider_bubble_controller.cc
+++ b/ash/system/unified/unified_slider_bubble_controller.cc
@@ -254,7 +254,9 @@
   }
 
   if (IsAnyMainBubbleShown()) {
-    tray_->EnsureBubbleExpanded();
+    // If a detailed view is showing, first transit to the main view.
+    tray_->bubble()->unified_system_tray_controller()->TransitionToMainView(
+        false);
 
     // Unlike VOLUME and BRIGHTNESS, which are shown in the main bubble view,
     // MIC slider is shown in the audio details view.
diff --git a/ash/system/unified/unified_system_info_view.cc b/ash/system/unified/unified_system_info_view.cc
deleted file mode 100644
index 9d5e310..0000000
--- a/ash/system/unified/unified_system_info_view.cc
+++ /dev/null
@@ -1,530 +0,0 @@
-// Copyright 2018 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ash/system/unified/unified_system_info_view.h"
-
-#include "ash/constants/ash_features.h"
-#include "ash/constants/quick_settings_catalogs.h"
-#include "ash/public/cpp/ash_view_ids.h"
-#include "ash/public/cpp/system_tray_client.h"
-#include "ash/session/session_controller_impl.h"
-#include "ash/shell.h"
-#include "ash/shell_delegate.h"
-#include "ash/strings/grit/ash_strings.h"
-#include "ash/style/ash_color_provider.h"
-#include "ash/system/channel_indicator/channel_indicator_quick_settings_view.h"
-#include "ash/system/channel_indicator/channel_indicator_utils.h"
-#include "ash/system/model/clock_model.h"
-#include "ash/system/model/clock_observer.h"
-#include "ash/system/model/system_tray_model.h"
-#include "ash/system/model/update_model.h"
-#include "ash/system/power/adaptive_charging_controller.h"
-#include "ash/system/power/power_status.h"
-#include "ash/system/time/calendar_metrics.h"
-#include "ash/system/tray/system_tray_notifier.h"
-#include "ash/system/tray/tray_popup_utils.h"
-#include "ash/system/unified/buttons.h"
-#include "ash/system/unified/quick_settings_metrics_util.h"
-#include "ash/system/update/eol_notice_quick_settings_view.h"
-#include "base/functional/bind.h"
-#include "base/functional/callback_helpers.h"
-#include "base/i18n/time_formatting.h"
-#include "base/memory/raw_ptr.h"
-#include "base/time/time.h"
-#include "ui/accessibility/ax_enums.mojom.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/base/metadata/metadata_header_macros.h"
-#include "ui/base/metadata/metadata_impl_macros.h"
-#include "ui/color/color_id.h"
-#include "ui/compositor/layer.h"
-#include "ui/views/accessibility/view_accessibility.h"
-#include "ui/views/animation/ink_drop.h"
-#include "ui/views/background.h"
-#include "ui/views/controls/button/button.h"
-#include "ui/views/controls/focus_ring.h"
-#include "ui/views/controls/label.h"
-#include "ui/views/controls/separator.h"
-#include "ui/views/layout/box_layout.h"
-#include "ui/views/layout/fill_layout.h"
-
-namespace ash {
-
-using ContentLayerType = AshColorProvider::ContentLayerType;
-
-namespace {
-
-constexpr auto kBatteryLabelViewInsets = gfx::Insets(2);
-
-// Helper function for getting the content layer color.
-inline SkColor GetContentLayerColor(ContentLayerType type) {
-  return AshColorProvider::Get()->GetContentLayerColor(type);
-}
-
-// Helper function for configuring label in `BatteryLabelView` and
-// `BatteryIconView`.
-void ConfigureLabel(views::Label* label, SkColor color) {
-  label->SetAutoColorReadabilityEnabled(false);
-  label->SetSubpixelRenderingEnabled(false);
-  label->SetEnabledColor(color);
-  label->GetViewAccessibility().OverrideIsIgnored(true);
-}
-
-// A base class for both `BatteryLabelView` and `BatteryIconView`. It updates by
-// observing `PowerStatus`.
-class BatteryInfoViewBase : public views::Button, public PowerStatus::Observer {
- public:
-  explicit BatteryInfoViewBase(UnifiedSystemTrayController* controller)
-      : Button(base::BindRepeating(
-            [](UnifiedSystemTrayController* controller) {
-              quick_settings_metrics_util::RecordQsButtonActivated(
-                  QsButtonCatalogName::kBatteryButton);
-              controller->HandleOpenPowerSettingsAction();
-            },
-            controller)) {
-    PowerStatus::Get()->AddObserver(this);
-  }
-  BatteryInfoViewBase(const BatteryInfoViewBase&) = delete;
-  BatteryInfoViewBase& operator=(const BatteryInfoViewBase&) = delete;
-  ~BatteryInfoViewBase() override { PowerStatus::Get()->RemoveObserver(this); }
-
-  // Updates the subclass view's ui when `OnPowerStatusChanged`.
-  virtual void Update() = 0;
-
- private:
-  // views::View:
-  void GetAccessibleNodeData(ui::AXNodeData* node_data) override {
-    node_data->role = ax::mojom::Role::kLabelText;
-    node_data->SetName(
-        PowerStatus::Get()->GetAccessibleNameString(/*full_description=*/true));
-  }
-
-  void ChildPreferredSizeChanged(views::View* child) override {
-    PreferredSizeChanged();
-  }
-
-  void ChildVisibilityChanged(views::View* child) override {
-    PreferredSizeChanged();
-  }
-
-  // PowerStatus::Observer:
-  void OnPowerStatusChanged() override { Update(); }
-};
-
-// A view that shows battery status.
-class BatteryLabelView : public BatteryInfoViewBase {
- public:
-  BatteryLabelView(UnifiedSystemTrayController* controller,
-                   bool use_smart_charging_ui)
-      : BatteryInfoViewBase(controller),
-        use_smart_charging_ui_(use_smart_charging_ui) {
-    SetID(VIEW_ID_QS_BATTERY_BUTTON);
-    SetLayoutManager(std::make_unique<views::BoxLayout>(
-        views::BoxLayout::Orientation::kHorizontal, kBatteryLabelViewInsets));
-    views::FocusRing::Get(this)->SetColorId(
-        static_cast<ui::ColorId>(ui::kColorAshFocusRing));
-
-    percentage_ = AddChildView(std::make_unique<views::Label>());
-    auto separator = std::make_unique<views::Label>();
-    separator->SetText(l10n_util::GetStringUTF16(
-        IDS_ASH_STATUS_TRAY_BATTERY_STATUS_SEPARATOR));
-    separator_view_ = AddChildView(std::move(separator));
-    status_ = AddChildView(std::make_unique<views::Label>());
-    Update();
-  }
-  BatteryLabelView(const BatteryLabelView&) = delete;
-  BatteryLabelView& operator=(const BatteryLabelView&) = delete;
-  ~BatteryLabelView() override = default;
-
- private:
-  // views::View:
-  void OnThemeChanged() override {
-    views::View::OnThemeChanged();
-    const auto color =
-        GetContentLayerColor(ContentLayerType::kTextColorSecondary);
-    ConfigureLabel(percentage_, color);
-    ConfigureLabel(separator_view_, color);
-    ConfigureLabel(status_, color);
-  }
-
-  // BatteryInfoViewBase:
-  void Update() override {
-    std::u16string percentage_text;
-    std::u16string status_text;
-    std::tie(percentage_text, status_text) =
-        PowerStatus::Get()->GetStatusStrings();
-
-    percentage_->SetText(percentage_text);
-    status_->SetText(status_text);
-
-    percentage_->SetVisible(!percentage_text.empty() &&
-                            !use_smart_charging_ui_);
-    separator_view_->SetVisible(!percentage_text.empty() &&
-                                !use_smart_charging_ui_ &&
-                                !status_text.empty());
-    status_->SetVisible(!status_text.empty());
-  }
-
-  // Owned by this view, which is owned by views hierarchy.
-  raw_ptr<views::Label, ExperimentalAsh> percentage_ = nullptr;
-  raw_ptr<views::Label, ExperimentalAsh> separator_view_ = nullptr;
-  raw_ptr<views::Label, ExperimentalAsh> status_ = nullptr;
-
-  //  If true, this view will only show the status and let the `BatteryIconView`
-  //  show the rest. If false, the `percentage_` and separator will be visible.
-  //  Smart charging means `ash::features::IsAdaptiveChargingEnabled()` and it
-  //  is adaptive delaying charge.
-  const bool use_smart_charging_ui_;
-};
-
-// A view that shows battery icon and charging state when smart charging is
-// enabled.
-class BatteryIconView : public BatteryInfoViewBase {
- public:
-  explicit BatteryIconView(UnifiedSystemTrayController* controller)
-      : BatteryInfoViewBase(controller) {
-    SetID(VIEW_ID_QS_BATTERY_BUTTON);
-    auto layout = std::make_unique<views::BoxLayout>(
-        views::BoxLayout::Orientation::kHorizontal);
-    layout->set_inside_border_insets(kUnifiedSystemInfoBatteryIconPadding);
-    SetLayoutManager(std::move(layout));
-
-    battery_image_ = AddChildView(std::make_unique<views::ImageView>());
-    // The battery icon requires its own layer to properly render the masked
-    // outline of the badge within the battery icon.
-    battery_image_->SetPaintToLayer();
-    battery_image_->layer()->SetFillsBoundsOpaquely(false);
-
-    ConfigureIcon();
-
-    percentage_ = AddChildView(std::make_unique<views::Label>());
-
-    SetBackground(views::CreateRoundedRectBackground(
-        GetContentLayerColor(
-            ContentLayerType::kBatterySystemInfoBackgroundColor),
-        GetPreferredSize().height() / 2));
-
-    Update();
-  }
-  BatteryIconView(const BatteryIconView&) = delete;
-  BatteryIconView& operator=(const BatteryIconView&) = delete;
-  ~BatteryIconView() override = default;
-
- private:
-  // views::View:
-  void OnThemeChanged() override {
-    views::View::OnThemeChanged();
-    const auto color =
-        GetContentLayerColor(ContentLayerType::kButtonLabelColorPrimary);
-    ConfigureLabel(percentage_, color);
-    ConfigureIcon();
-  }
-
-  // BatteryInfoViewBase:
-  void Update() override {
-    const std::u16string percentage_text =
-        PowerStatus::Get()->GetStatusStrings().first;
-
-    percentage_->SetText(percentage_text);
-    percentage_->SetVisible(!percentage_text.empty());
-
-    ConfigureIcon();
-  }
-
-  // Builds the battery icon image.
-  void ConfigureIcon() {
-    const SkColor battery_icon_color =
-        GetContentLayerColor(ContentLayerType::kBatterySystemInfoIconColor);
-
-    const SkColor badge_color = GetContentLayerColor(
-        ContentLayerType::kBatterySystemInfoBackgroundColor);
-
-    PowerStatus::BatteryImageInfo info =
-        PowerStatus::Get()->GenerateBatteryImageInfo(battery_icon_color,
-                                                     badge_color);
-    info.alert_if_low = false;
-
-    battery_image_->SetImage(PowerStatus::GetBatteryImage(
-        info, kUnifiedTrayBatteryIconSize, battery_image_->GetColorProvider()));
-  }
-
-  // Owned by this view, which is owned by views hierarchy.
-  raw_ptr<views::Label, ExperimentalAsh> percentage_ = nullptr;
-  raw_ptr<views::ImageView, ExperimentalAsh> battery_image_ = nullptr;
-};
-
-std::u16string FormatDate(const base::Time& time) {
-  // Use 'short' month format (e.g., "Oct") followed by non-padded day of
-  // month (e.g., "2", "10").
-  return base::LocalizedTimeFormatWithPattern(time, "LLLd");
-}
-
-std::u16string FormatDayOfWeek(const base::Time& time) {
-  // Use 'short' day of week format (e.g., "Wed").
-  return base::LocalizedTimeFormatWithPattern(time, "EEE");
-}
-
-// Returns whether SmartChargingUI should be used.
-bool UseSmartChargingUI() {
-  return ash::features::IsAdaptiveChargingEnabled() &&
-         Shell::Get()
-             ->adaptive_charging_controller()
-             ->is_adaptive_delaying_charge();
-}
-
-// A view that shows current date in short format e.g. "Mon, Mar 12". It updates
-// by observing `ClockObserver`.
-class DateView : public views::Button, public ClockObserver {
- public:
-  explicit DateView(UnifiedSystemTrayController* controller);
-
-  DateView(const DateView&) = delete;
-  DateView& operator=(const DateView&) = delete;
-
-  ~DateView() override;
-
-  // views::Button:
-  const char* GetClassName() const override { return "DateView"; }
-  void OnThemeChanged() override;
-
- private:
-  friend class ash::UnifiedSystemInfoView;
-
-  // Callback called when this is pressed.
-  void OnButtonPressed(const ui::Event& event);
-
-  void Update();
-
-  // views::Button:
-  gfx::Insets GetInsets() const override;
-
-  // ClockObserver:
-  void OnDateFormatChanged() override;
-  void OnSystemClockTimeUpdated() override;
-  void OnSystemClockCanSetTimeChanged(bool can_set_time) override;
-  void Refresh() override;
-
-  // Owned by the views hierarchy.
-  raw_ptr<views::Label, ExperimentalAsh> label_;
-
-  // Unowned.
-  const raw_ptr<UnifiedSystemTrayController,
-                DanglingUntriaged | ExperimentalAsh>
-      controller_;
-};
-
-DateView::DateView(UnifiedSystemTrayController* controller)
-    : Button(base::BindRepeating(&DateView::OnButtonPressed,
-                                 base::Unretained(this))),
-      label_(AddChildView(std::make_unique<views::Label>())),
-      controller_(controller) {
-  SetID(VIEW_ID_QS_DATE_VIEW_BUTTON);
-  SetLayoutManager(std::make_unique<views::FillLayout>());
-  label_->SetAutoColorReadabilityEnabled(false);
-  label_->SetSubpixelRenderingEnabled(false);
-  Update();
-
-  Shell::Get()->system_tray_model()->clock()->AddObserver(this);
-  SetInstallFocusRingOnFocus(true);
-  views::FocusRing::Get(this)->SetColorId(ui::kColorAshFocusRing);
-  views::InkDrop::Get(this)->SetMode(views::InkDropHost::InkDropMode::OFF);
-}
-
-DateView::~DateView() {
-  Shell::Get()->system_tray_model()->clock()->RemoveObserver(this);
-}
-
-void DateView::OnThemeChanged() {
-  views::Button::OnThemeChanged();
-  auto* color_provider = AshColorProvider::Get();
-  label_->SetEnabledColor(color_provider->GetContentLayerColor(
-      ContentLayerType::kTextColorPrimary));
-}
-
-void DateView::OnButtonPressed(const ui::Event& event) {
-  quick_settings_metrics_util::RecordQsButtonActivated(
-      QsButtonCatalogName::kDateViewButton);
-
-  if (controller_->IsExpanded()) {
-    controller_->ShowCalendarView(
-        calendar_metrics::CalendarViewShowSource::kDateView,
-        calendar_metrics::GetEventType(event));
-    return;
-  }
-
-  controller_->HandleOpenDateTimeSettingsAction();
-}
-
-void DateView::Update() {
-  base::Time now = base::Time::Now();
-  label_->SetText(l10n_util::GetStringFUTF16(
-      IDS_ASH_STATUS_TRAY_DATE, FormatDayOfWeek(now), FormatDate(now)));
-
-  SetAccessibleName(
-      l10n_util::GetStringFUTF16(IDS_ASH_CALENDAR_ENTRY_ACCESSIBLE_DESCRIPTION,
-                                 TimeFormatFriendlyDateAndTime(now)));
-}
-
-gfx::Insets DateView::GetInsets() const {
-  // This padding provides room to render the focus ring around this button.
-  return kUnifiedSystemInfoDateViewPadding;
-}
-
-void DateView::OnDateFormatChanged() {}
-
-void DateView::OnSystemClockTimeUpdated() {
-  Update();
-}
-
-void DateView::OnSystemClockCanSetTimeChanged(bool can_set_time) {}
-
-void DateView::Refresh() {
-  Update();
-}
-
-}  // namespace
-
-// A view that contains date, battery status, and whether the device
-// is enterprise managed.
-class ManagementPowerDateComboView : public views::View {
- public:
-  explicit ManagementPowerDateComboView(
-      UnifiedSystemTrayController* controller) {
-    auto* layout = SetLayoutManager(std::make_unique<views::BoxLayout>(
-        views::BoxLayout::Orientation::kHorizontal, gfx::Insets(),
-        kUnifiedSystemInfoSpacing));
-    layout->set_cross_axis_alignment(
-        views::BoxLayout::CrossAxisAlignment::kCenter);
-    date_view_ = AddChildView(std::make_unique<DateView>(controller));
-
-    if (PowerStatus::Get()->IsBatteryPresent()) {
-      separator_view_ = AddChildView(std::make_unique<views::Separator>());
-      separator_view_->SetColorId(ui::kColorAshSystemUIMenuSeparator);
-      separator_view_->SetPreferredLength(kUnifiedSystemInfoHeight);
-
-      const bool use_smart_charging_ui = UseSmartChargingUI();
-      if (use_smart_charging_ui) {
-        AddChildView(std::make_unique<BatteryIconView>(controller));
-      }
-      AddChildView(std::make_unique<BatteryLabelView>(controller,
-                                                      use_smart_charging_ui));
-    }
-
-    auto* spacing = AddChildView(std::make_unique<views::View>());
-    layout->SetFlexForView(spacing, 1);
-
-    enterprise_managed_view_ =
-        AddChildView(std::make_unique<EnterpriseManagedView>(controller));
-    supervised_view_ = AddChildView(std::make_unique<SupervisedUserView>());
-  }
-  ManagementPowerDateComboView(const ManagementPowerDateComboView&) = delete;
-  ManagementPowerDateComboView& operator=(const ManagementPowerDateComboView&) =
-      delete;
-  ~ManagementPowerDateComboView() override = default;
-
-  bool IsSupervisedVisibleForTesting() {
-    return supervised_view_->GetVisible();
-  }
-
- private:
-  friend class UnifiedSystemInfoView;
-
-  // Pointer to the actual child view is maintained for unit testing, owned by
-  // `ManagementPowerDateComboView`.
-  raw_ptr<EnterpriseManagedView, ExperimentalAsh> enterprise_managed_view_ =
-      nullptr;
-
-  // Pointer to the actual child view is maintained for unit testing, owned by
-  // `ManagementPowerDateComboView`.
-  raw_ptr<SupervisedUserView, ExperimentalAsh> supervised_view_ = nullptr;
-
-  // Separator between date and battery views, owned by
-  // `ManagementPowerDateComboView`.
-  raw_ptr<views::Separator, ExperimentalAsh> separator_view_ = nullptr;
-
-  // Pointer to the actual child view is maintained for unit testing, owned by
-  // `ManagementPowerDateComboView`.
-  raw_ptr<DateView, ExperimentalAsh> date_view_ = nullptr;
-};
-
-UnifiedSystemInfoView::UnifiedSystemInfoView(
-    UnifiedSystemTrayController* controller) {
-  // Layout for the overall UnifiedSystemInfoView.
-  auto* layout = SetLayoutManager(std::make_unique<views::BoxLayout>(
-      views::BoxLayout::Orientation::kVertical, kUnifiedSystemInfoViewPadding,
-      kUnifiedSystemInfoSpacing));
-  // Allow children to stretch to fill the whole width of the parent. Some
-  // direct children are kStart aligned, others are kCenter aligned.
-  layout->set_cross_axis_alignment(
-      views::BoxLayout::CrossAxisAlignment::kStretch);
-
-  // Construct a ManagementPowerDateComboView and save off a raw pointer, to
-  // facilitate introspection needed for unit tests.
-  combo_view_ =
-      AddChildView(std::make_unique<ManagementPowerDateComboView>(controller));
-  layout->SetFlexForView(combo_view_, 1);
-
-  if (Shell::Get()->session_controller()->GetSessionState() ==
-      session_manager::SessionState::ACTIVE) {
-    if (Shell::Get()->system_tray_model()->update_model()->show_eol_notice()) {
-      auto* eol_notice_wrapper = AddChildView(std::make_unique<views::View>());
-      auto* eol_notice_layout = eol_notice_wrapper->SetLayoutManager(
-          std::make_unique<views::BoxLayout>(
-              views::BoxLayout::Orientation::kHorizontal, gfx::Insets(),
-              kUnifiedSystemInfoSpacing));
-      eol_notice_layout->set_main_axis_alignment(
-          views::BoxLayout::MainAxisAlignment::kCenter);
-      eol_notice_layout->set_cross_axis_alignment(
-          views::BoxLayout::CrossAxisAlignment::kCenter);
-
-      eol_notice_ = eol_notice_wrapper->AddChildView(
-          std::make_unique<EolNoticeQuickSettingsView>());
-    }
-
-    // If the release track is not "stable" then channel indicator UI for quick
-    // settings is put up.
-    auto channel = Shell::Get()->shell_delegate()->GetChannel();
-    if (!eol_notice_ &&
-        channel_indicator_utils::IsDisplayableChannel(channel)) {
-      channel_view_ =
-          AddChildView(std::make_unique<ChannelIndicatorQuickSettingsView>(
-              channel, Shell::Get()
-                           ->system_tray_model()
-                           ->client()
-                           ->IsUserFeedbackEnabled()));
-    }
-  }
-}
-
-UnifiedSystemInfoView::~UnifiedSystemInfoView() = default;
-
-void UnifiedSystemInfoView::ChildVisibilityChanged(views::View* child) {
-  Layout();
-}
-
-void UnifiedSystemInfoView::ChildPreferredSizeChanged(views::View* child) {
-  Layout();
-}
-
-bool UnifiedSystemInfoView::IsSupervisedVisibleForTesting() {
-  return combo_view_->IsSupervisedVisibleForTesting();  // IN-TEST
-}
-
-views::View* UnifiedSystemInfoView::GetDateViewForTesting() {
-  return combo_view_->date_view_;
-}
-
-views::View* UnifiedSystemInfoView::GetDateViewLabelForTesting() {
-  DCHECK(combo_view_->date_view_);
-  return combo_view_->date_view_->label_;
-}
-
-void UnifiedSystemInfoView::UpdateDateViewForTesting() {
-  DCHECK(combo_view_->date_view_);
-  combo_view_->date_view_->Update();
-}
-
-BEGIN_METADATA(UnifiedSystemInfoView, views::View)
-END_METADATA
-
-}  // namespace ash
diff --git a/ash/system/unified/unified_system_info_view.h b/ash/system/unified/unified_system_info_view.h
deleted file mode 100644
index 215db961..0000000
--- a/ash/system/unified/unified_system_info_view.h
+++ /dev/null
@@ -1,69 +0,0 @@
-// Copyright 2018 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ASH_SYSTEM_UNIFIED_UNIFIED_SYSTEM_INFO_VIEW_H_
-#define ASH_SYSTEM_UNIFIED_UNIFIED_SYSTEM_INFO_VIEW_H_
-
-#include "ash/ash_export.h"
-#include "ash/system/unified/unified_system_tray_controller.h"
-#include "base/gtest_prod_util.h"
-#include "base/memory/raw_ptr.h"
-#include "ui/base/metadata/metadata_header_macros.h"
-#include "ui/views/view.h"
-
-namespace ash {
-
-class ManagementPowerDateComboView;
-class ChannelIndicatorQuickSettingsView;
-
-// A view at the bottom of UnifiedSystemTray bubble that shows system
-// information.
-class ASH_EXPORT UnifiedSystemInfoView : public views::View {
- public:
-  METADATA_HEADER(UnifiedSystemInfoView);
-  explicit UnifiedSystemInfoView(UnifiedSystemTrayController* controller);
-
-  UnifiedSystemInfoView(const UnifiedSystemInfoView&) = delete;
-  UnifiedSystemInfoView& operator=(const UnifiedSystemInfoView&) = delete;
-
-  ~UnifiedSystemInfoView() override;
-
-  // views::View:
-  void ChildPreferredSizeChanged(views::View* child) override;
-  void ChildVisibilityChanged(views::View* child) override;
-
-  // Introspection methods needed for unit tests.
-  bool IsSupervisedVisibleForTesting();
-
- private:
-  FRIEND_TEST_ALL_PREFIXES(UnifiedSystemInfoViewTest, EnterpriseManagedVisible);
-  FRIEND_TEST_ALL_PREFIXES(UnifiedSystemInfoViewTest,
-                           EnterpriseManagedVisibleForActiveDirectory);
-  FRIEND_TEST_ALL_PREFIXES(UnifiedSystemInfoViewTest,
-                           EnterpriseUserManagedVisible);
-  FRIEND_TEST_ALL_PREFIXES(UnifiedSystemInfoViewTest,
-                           UpdateFiresAccessibilityEvents);
-  FRIEND_TEST_ALL_PREFIXES(UnifiedSystemInfoViewNoSessionTest, ChildVisible);
-
-  // Raw pointer to the combo view (owned by `UnifiedSystemInfoView`) that
-  // facilitates introspection needed for unit tests.
-  raw_ptr<ManagementPowerDateComboView, ExperimentalAsh> combo_view_ = nullptr;
-
-  // Raw pointer to the channel indicator quick settings view (owned by
-  // `UnifiedSystemInfoView`) that facilitates introspection needed for unit
-  // tests.
-  raw_ptr<ChannelIndicatorQuickSettingsView, ExperimentalAsh> channel_view_ =
-      nullptr;
-
-  raw_ptr<views::View, ExperimentalAsh> eol_notice_ = nullptr;
-
-  // Introspection methods needed for unit tests.
-  views::View* GetDateViewForTesting();
-  views::View* GetDateViewLabelForTesting();
-  void UpdateDateViewForTesting();
-};
-
-}  // namespace ash
-
-#endif  // ASH_SYSTEM_UNIFIED_UNIFIED_SYSTEM_INFO_VIEW_H_
diff --git a/ash/system/unified/unified_system_info_view_unittest.cc b/ash/system/unified/unified_system_info_view_unittest.cc
deleted file mode 100644
index 015ec96c5..0000000
--- a/ash/system/unified/unified_system_info_view_unittest.cc
+++ /dev/null
@@ -1,286 +0,0 @@
-// Copyright 2018 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ash/system/unified/unified_system_info_view.h"
-
-#include "ash/public/cpp/ash_view_ids.h"
-#include "ash/public/cpp/login_types.h"
-#include "ash/public/cpp/system_tray_client.h"
-#include "ash/public/cpp/test/test_system_tray_client.h"
-#include "ash/session/session_controller_impl.h"
-#include "ash/session/test_session_controller_client.h"
-#include "ash/shell.h"
-#include "ash/system/model/enterprise_domain_model.h"
-#include "ash/system/model/system_tray_model.h"
-#include "ash/system/unified/unified_system_tray_controller.h"
-#include "ash/system/unified/unified_system_tray_model.h"
-#include "ash/test/ash_test_base.h"
-#include "ash/test_shell_delegate.h"
-#include "base/memory/raw_ptr.h"
-#include "base/memory/scoped_refptr.h"
-#include "base/test/task_environment.h"
-#include "base/time/time.h"
-#include "components/version_info/channel.h"
-#include "ui/views/test/ax_event_counter.h"
-
-namespace ash {
-
-// Tests are parameterized by the release track UI:
-// - Whether the release track is a value other than "stable"
-// - Whether EOL notice is expected to be shown.
-// The release track UI only shows if both conditions are met.
-//
-// NOTE: For QsRevamp, see similar tests in QuickSettingsHeaderTest.
-class UnifiedSystemInfoViewTest
-    : public AshTestBase,
-      public testing::WithParamInterface<std::tuple<bool, bool>> {
- public:
-  UnifiedSystemInfoViewTest()
-      : AshTestBase(base::test::TaskEnvironment::TimeSource::MOCK_TIME) {}
-  UnifiedSystemInfoViewTest(const UnifiedSystemInfoViewTest&) = delete;
-  UnifiedSystemInfoViewTest& operator=(const UnifiedSystemInfoViewTest&) =
-      delete;
-  ~UnifiedSystemInfoViewTest() override = default;
-
-  void SetUp() override {
-    // Provide our own `TestShellDelegate`, with a non-stable channel set if
-    // the passed-in parameter dictates.
-    std::unique_ptr<TestShellDelegate> shell_delegate =
-        std::make_unique<TestShellDelegate>();
-    if (IsReleaseTrackNotStable())
-      shell_delegate->set_channel(version_info::Channel::BETA);
-    AshTestBase::SetUp(std::move(shell_delegate));
-
-    if (ShouldShowEolNotice()) {
-      Shell::Get()->system_tray_model()->SetShowEolNotice(true);
-    }
-
-    // Instantiate members.
-    model_ = base::MakeRefCounted<UnifiedSystemTrayModel>(nullptr);
-    controller_ = std::make_unique<UnifiedSystemTrayController>(model_.get());
-    auto info_view = std::make_unique<UnifiedSystemInfoView>(controller_.get());
-    info_view_ = info_view.get();
-
-    // Place the view in a large views::Widget so the buttons are clickable.
-    widget_ = CreateFramelessTestWidget();
-    widget_->SetFullscreen(true);
-    widget_->SetContentsView(std::move(info_view));
-  }
-
-  bool IsReleaseTrackNotStable() const { return std::get<0>(GetParam()); }
-
-  bool ShouldShowEolNotice() const { return std::get<1>(GetParam()); }
-
-  views::View* GetDateButton() {
-    return info_view_->GetViewByID(VIEW_ID_QS_DATE_VIEW_BUTTON);
-  }
-
-  views::View* GetBatteryButton() {
-    return info_view_->GetViewByID(VIEW_ID_QS_BATTERY_BUTTON);
-  }
-
-  views::View* GetManagedButton() {
-    return info_view_->GetViewByID(VIEW_ID_QS_MANAGED_BUTTON);
-  }
-
-  views::View* GetVersionButton() {
-    return info_view_->GetViewByID(VIEW_ID_QS_VERSION_BUTTON);
-  }
-
-  views::View* GetFeedbackButton() {
-    return info_view_->GetViewByID(VIEW_ID_QS_FEEDBACK_BUTTON);
-  }
-
-  views::View* GetEolNoticeButton() {
-    return info_view_->GetViewByID(VIEW_ID_QS_EOL_NOTICE_BUTTON);
-  }
-
-  void TearDown() override {
-    info_view_ = nullptr;
-    widget_.reset();
-    controller_.reset();
-    model_.reset();
-    AshTestBase::TearDown();
-  }
-
- protected:
-  UnifiedSystemInfoView* info_view() { return info_view_; }
-  EnterpriseDomainModel* enterprise_domain() {
-    return Shell::Get()->system_tray_model()->enterprise_domain();
-  }
-
- private:
-  scoped_refptr<UnifiedSystemTrayModel> model_;
-  std::unique_ptr<UnifiedSystemTrayController> controller_;
-  raw_ptr<UnifiedSystemInfoView, ExperimentalAsh> info_view_ = nullptr;
-  std::unique_ptr<views::Widget> widget_;
-};
-
-INSTANTIATE_TEST_SUITE_P(All,
-                         UnifiedSystemInfoViewTest,
-                         testing::Combine(testing::Bool(), testing::Bool()));
-
-TEST_P(UnifiedSystemInfoViewTest, ButtonNameAndVisibility) {
-  // By default, EnterpriseManagedView is not shown.
-  EXPECT_FALSE(GetManagedButton()->GetVisible());
-
-  // Simulate enterprise information becoming available.
-  enterprise_domain()->SetDeviceEnterpriseInfo(
-      DeviceEnterpriseInfo{"example.com", /*active_directory_managed=*/false,
-                           ManagementDeviceMode::kChromeEnterprise});
-
-  // EnterpriseManagedView should be shown.
-  EXPECT_TRUE(GetManagedButton()->GetVisible());
-
-  // `DateView` should be shown.
-  EXPECT_TRUE(GetDateButton()->GetVisible());
-
-  // Battery button should be shown.
-  EXPECT_TRUE(GetBatteryButton()->GetVisible());
-
-  EXPECT_EQ(ShouldShowEolNotice(),
-            GetEolNoticeButton() && GetEolNoticeButton()->GetVisible());
-  if (ShouldShowEolNotice()) {
-    LeftClickOn(GetEolNoticeButton());
-    EXPECT_EQ(1, GetSystemTrayClient()->show_eol_info_count());
-  }
-
-  const bool show_release_track_info =
-      IsReleaseTrackNotStable() && !ShouldShowEolNotice();
-
-  // If the release track UI is enabled AND the release track is non-stable, the
-  // version button is shown.
-  EXPECT_EQ(show_release_track_info,
-            GetVersionButton() && GetVersionButton()->GetVisible());
-
-  // If the release track UI is enabled AND the release track is non-stable AND
-  // the user feedback is enabled, the feedback button is shown.
-  EXPECT_EQ(
-      show_release_track_info &&
-          Shell::Get()->system_tray_model()->client()->IsUserFeedbackEnabled(),
-      GetFeedbackButton() && GetFeedbackButton()->GetVisible());
-}
-
-TEST_P(UnifiedSystemInfoViewTest, EnterpriseManagedVisibleForActiveDirectory) {
-  // Active directory information becoming available.
-  const std::string empty_domain;
-  enterprise_domain()->SetDeviceEnterpriseInfo(
-      DeviceEnterpriseInfo{empty_domain, /*active_directory_managed=*/true,
-                           ManagementDeviceMode::kChromeEnterprise});
-
-  // EnterpriseManagedView should be shown.
-  EXPECT_TRUE(GetManagedButton()->GetVisible());
-
-  EXPECT_EQ(ShouldShowEolNotice(),
-            GetEolNoticeButton() && GetEolNoticeButton()->GetVisible());
-
-  if (ShouldShowEolNotice()) {
-    LeftClickOn(GetEolNoticeButton());
-    EXPECT_EQ(1, GetSystemTrayClient()->show_eol_info_count());
-  }
-
-  const bool show_release_track_info =
-      IsReleaseTrackNotStable() && !ShouldShowEolNotice();
-
-  // If the release track UI is enabled AND the release track is non-stable, the
-  // version button is shown.
-  EXPECT_EQ(show_release_track_info,
-            GetVersionButton() && GetVersionButton()->GetVisible());
-
-  // If the release track UI is enabled AND the release track is non-stable AND
-  // the user feedback is enabled, the feedback button is shown.
-  EXPECT_EQ(
-      show_release_track_info &&
-          Shell::Get()->system_tray_model()->client()->IsUserFeedbackEnabled(),
-      GetFeedbackButton() && GetFeedbackButton()->GetVisible());
-}
-
-TEST_P(UnifiedSystemInfoViewTest, EnterpriseUserManagedVisible) {
-  // By default, EnterpriseManagedView is not shown.
-  EXPECT_FALSE(GetManagedButton()->GetVisible());
-
-  // Simulate enterprise information becoming available.
-  enterprise_domain()->SetEnterpriseAccountDomainInfo("example.com");
-
-  // EnterpriseManagedView should be shown.
-  EXPECT_TRUE(GetManagedButton()->GetVisible());
-
-  EXPECT_EQ(ShouldShowEolNotice(),
-            GetEolNoticeButton() && GetEolNoticeButton()->GetVisible());
-
-  if (ShouldShowEolNotice()) {
-    LeftClickOn(GetEolNoticeButton());
-    EXPECT_EQ(1, GetSystemTrayClient()->show_eol_info_count());
-  }
-
-  const bool show_release_track_info =
-      IsReleaseTrackNotStable() && !ShouldShowEolNotice();
-
-  // If the release track UI is enabled AND the release track is non-stable, the
-  // version button is shown.
-  EXPECT_EQ(show_release_track_info,
-            GetVersionButton() && GetVersionButton()->GetVisible());
-
-  // If the release track UI is enabled AND the release track is non-stable AND
-  // the user feedback is enabled, the feedback button is shown.
-  EXPECT_EQ(
-      show_release_track_info &&
-          Shell::Get()->system_tray_model()->client()->IsUserFeedbackEnabled(),
-      GetFeedbackButton() && GetFeedbackButton()->GetVisible());
-}
-
-TEST_P(UnifiedSystemInfoViewTest, UpdateFiresAccessibilityEvents) {
-  // Set the current time to 08:00 for testing.
-  task_environment()->AdvanceClock(base::Time::Now().LocalMidnight() +
-                                   base::Hours(32) - base::Time::Now());
-  views::test::AXEventCounter counter(views::AXEventManager::Get());
-  auto* date_view = info_view()->GetDateViewForTesting();
-  auto* date_view_label = info_view()->GetDateViewLabelForTesting();
-  EXPECT_EQ(0, counter.GetCount(ax::mojom::Event::kTextChanged, date_view));
-  EXPECT_EQ(0,
-            counter.GetCount(ax::mojom::Event::kTextChanged, date_view_label));
-
-  // `DateView::Update` sets the accessible name of both itself and its label.
-  // This will result in text-changed events being emitted, but only if the
-  // accessible name has actually changed. Therefore advance the clock by a
-  // minute before calling `Update`.
-  task_environment()->FastForwardBy(base::Minutes(1));
-  info_view()->UpdateDateViewForTesting();
-  EXPECT_EQ(1, counter.GetCount(ax::mojom::Event::kTextChanged, date_view));
-  EXPECT_EQ(1,
-            counter.GetCount(ax::mojom::Event::kTextChanged, date_view_label));
-}
-
-using UnifiedSystemInfoViewNoSessionTest = NoSessionAshTestBase;
-
-TEST_F(UnifiedSystemInfoViewNoSessionTest, ChildVisible) {
-  auto model = base::MakeRefCounted<UnifiedSystemTrayModel>(nullptr);
-  auto controller = std::make_unique<UnifiedSystemTrayController>(model.get());
-
-  SessionControllerImpl* session = Shell::Get()->session_controller();
-  ASSERT_FALSE(session->IsActiveUserSessionStarted());
-
-  // Before login the supervised user view is invisible.
-  {
-    auto info_view = std::make_unique<UnifiedSystemInfoView>(controller.get());
-    EXPECT_FALSE(info_view->IsSupervisedVisibleForTesting());
-  }
-
-  // Simulate a supervised user logging in.
-  TestSessionControllerClient* client = GetSessionControllerClient();
-  client->Reset();
-  client->AddUserSession("child@test.com", user_manager::USER_TYPE_CHILD);
-  client->SetSessionState(session_manager::SessionState::ACTIVE);
-  UserSession user_session = *session->GetUserSession(0);
-  user_session.custodian_email = "parent@test.com";
-  session->UpdateUserSession(std::move(user_session));
-
-  // Now the supervised user view is visible.
-  {
-    auto info_view = std::make_unique<UnifiedSystemInfoView>(controller.get());
-    EXPECT_TRUE(info_view->IsSupervisedVisibleForTesting());
-  }
-}
-
-}  // namespace ash
diff --git a/ash/system/unified/unified_system_tray.cc b/ash/system/unified/unified_system_tray.cc
index 0c3adac..3dabed7f 100644
--- a/ash/system/unified/unified_system_tray.cc
+++ b/ash/system/unified/unified_system_tray.cc
@@ -44,7 +44,6 @@
 #include "ash/system/unified/unified_slider_view.h"
 #include "ash/system/unified/unified_system_tray_bubble.h"
 #include "ash/system/unified/unified_system_tray_model.h"
-#include "ash/system/unified/unified_system_tray_view.h"
 #include "ash/user_education/user_education_class_properties.h"
 #include "ash/user_education/welcome_tour/welcome_tour_metrics.h"
 #include "base/memory/raw_ptr.h"
@@ -245,30 +244,6 @@
   }
 }
 
-void UnifiedSystemTray::CollapseMessageCenter() {
-}
-
-void UnifiedSystemTray::ExpandMessageCenter() {
-}
-
-void UnifiedSystemTray::EnsureQuickSettingsCollapsed(bool animate) {
-  if (!bubble_) {
-    return;
-  }
-
-  if (animate) {
-    bubble_->EnsureCollapsed();
-  } else {
-    bubble_->CollapseWithoutAnimating();
-  }
-}
-
-void UnifiedSystemTray::EnsureBubbleExpanded() {
-  if (bubble_) {
-    bubble_->EnsureExpanded();
-  }
-}
-
 void UnifiedSystemTray::ShowVolumeSliderBubble() {
   slider_bubble_controller_->ShowBubble(
       UnifiedSliderBubbleController::SLIDER_TYPE_VOLUME);
@@ -306,7 +281,7 @@
   // `bubble_` is still uninitialized). Only show detailed view if `bubble_` is
   // not null.
   if (bubble_) {
-    bubble_->ShowNetworkDetailedView(/*force=*/true);
+    bubble_->ShowNetworkDetailedView();
   }
 }
 
@@ -331,12 +306,6 @@
 
   Shell::Get()->focus_cycler()->FocusWidget(quick_settings_widget);
 
-  // Focus an individual element in quick settings if chrome vox is
-  // disabled.
-  if (!ShouldEnableExtraKeyboardAccessibility()) {
-    bubble_->FocusEntered(reverse);
-  }
-
   return true;
 }
 
@@ -495,21 +464,12 @@
 }
 
 std::u16string UnifiedSystemTray::GetAccessibleNameForQuickSettingsBubble() {
-  if (features::IsQsRevampEnabled()) {
     if (bubble_->quick_settings_view()->IsDetailedViewShown()) {
       return bubble_->quick_settings_view()->GetDetailedViewAccessibleName();
     }
 
     return l10n_util::GetStringUTF16(
-        IDS_ASH_REVAMPED_QUICK_SETTINGS_BUBBLE_ACCESSIBLE_DESCRIPTION);
-  }
-
-  if (bubble_->unified_view()->IsDetailedViewShown()) {
-    return bubble_->unified_view()->GetDetailedViewAccessibleName();
-  }
-
-  return l10n_util::GetStringUTF16(
-      IDS_ASH_QUICK_SETTINGS_BUBBLE_ACCESSIBLE_DESCRIPTION);
+        IDS_ASH_QUICK_SETTINGS_BUBBLE_ACCESSIBLE_DESCRIPTION);
 }
 
 void UnifiedSystemTray::HandleLocaleChange() {
diff --git a/ash/system/unified/unified_system_tray.h b/ash/system/unified/unified_system_tray.h
index 76a8817..9780d15a 100644
--- a/ash/system/unified/unified_system_tray.h
+++ b/ash/system/unified/unified_system_tray.h
@@ -119,18 +119,6 @@
   // Activates the system tray bubble.
   void ActivateBubble();
 
-  // Collapse the message center bubble.
-  void CollapseMessageCenter();
-
-  // Expand the message center bubble.
-  void ExpandMessageCenter();
-
-  // Ensure the quick settings bubble is collapsed.
-  void EnsureQuickSettingsCollapsed(bool animate);
-
-  // Ensure the system tray bubble is expanded.
-  void EnsureBubbleExpanded();
-
   // Shows volume slider bubble shown at the right bottom of screen. The bubble
   // is same as one shown when volume buttons on keyboard are pressed.
   void ShowVolumeSliderBubble();
diff --git a/ash/system/unified/unified_system_tray_bubble.cc b/ash/system/unified/unified_system_tray_bubble.cc
index 15fd19d2..847145e5 100644
--- a/ash/system/unified/unified_system_tray_bubble.cc
+++ b/ash/system/unified/unified_system_tray_bubble.cc
@@ -19,7 +19,6 @@
 #include "ash/system/unified/quick_settings_metrics_util.h"
 #include "ash/system/unified/unified_system_tray.h"
 #include "ash/system/unified/unified_system_tray_controller.h"
-#include "ash/system/unified/unified_system_tray_view.h"
 #include "ash/wm/container_finder.h"
 #include "ash/wm/tablet_mode/tablet_mode_controller.h"
 #include "base/debug/crash_logging.h"
@@ -39,15 +38,12 @@
     : controller_(std::make_unique<UnifiedSystemTrayController>(tray->model(),
                                                                 this,
                                                                 tray)),
-      unified_system_tray_(tray),
-      is_qs_revamp_enabled_(features::IsQsRevampEnabled()) {
+      unified_system_tray_(tray) {
   time_opened_ = base::TimeTicks::Now();
 
   TrayBubbleView::InitParams init_params =
       CreateInitParamsForTrayBubble(tray, /*anchor_to_shelf_corner=*/true);
-  if (is_qs_revamp_enabled_) {
-    init_params.preferred_width = kRevampedTrayMenuWidth;
-  }
+  init_params.preferred_width = kRevampedTrayMenuWidth;
   init_params.close_on_deactivate = false;
 
   bubble_view_ = new TrayBubbleView(init_params);
@@ -56,23 +52,12 @@
   int max_height = CalculateMaxTrayBubbleHeight(
       unified_system_tray_->GetBubbleWindowContainer());
 
-  if (is_qs_revamp_enabled_) {
-    auto quick_settings_view = controller_->CreateQuickSettingsView(max_height);
-    bubble_view_->SetMaxHeight(max_height);
-    quick_settings_view_ =
-        bubble_view_->AddChildView(std::move(quick_settings_view));
-    time_to_click_recorder_ = std::make_unique<TimeToClickRecorder>(
-        /*delegate=*/this, /*target_view=*/quick_settings_view_);
-  } else {
-    DCHECK(!is_qs_revamp_enabled_);
-    auto unified_view = controller_->CreateUnifiedQuickSettingsView();
-    unified_view->SetMaxHeight(max_height);
-    bubble_view_->SetMaxHeight(max_height);
-    controller_->ResetToCollapsedIfRequired();
-    unified_view_ = bubble_view_->AddChildView(std::move(unified_view));
-    time_to_click_recorder_ = std::make_unique<TimeToClickRecorder>(
-        /*delegate=*/this, /*target_view=*/unified_view_);
-  }
+  auto quick_settings_view = controller_->CreateQuickSettingsView(max_height);
+  bubble_view_->SetMaxHeight(max_height);
+  quick_settings_view_ =
+      bubble_view_->AddChildView(std::move(quick_settings_view));
+  time_to_click_recorder_ = std::make_unique<TimeToClickRecorder>(
+      /*delegate=*/this, /*target_view=*/quick_settings_view_);
 
   bubble_widget_ = views::BubbleDialogDelegateView::CreateBubble(bubble_view_);
   bubble_widget_->AddObserver(this);
@@ -91,14 +76,12 @@
 
 UnifiedSystemTrayBubble::~UnifiedSystemTrayBubble() {
   // Record the number of quick settings pages.
-  if (is_qs_revamp_enabled_) {
-    auto page_count = unified_system_tray_controller()
-                          ->model()
-                          ->pagination_model()
-                          ->total_pages();
-    DCHECK_GT(page_count, 0);
-    quick_settings_metrics_util::RecordQsPageCountOnClose(page_count);
-  }
+  auto page_count = unified_system_tray_controller()
+                        ->model()
+                        ->pagination_model()
+                        ->total_pages();
+  DCHECK_GT(page_count, 0);
+  quick_settings_metrics_util::RecordQsPageCountOnClose(page_count);
 
   if (controller_->showing_calendar_view()) {
     unified_system_tray_->NotifyLeavingCalendarView();
@@ -115,7 +98,6 @@
   if (bubble_view_) {
     bubble_view_->RemoveAllChildViews();
     quick_settings_view_ = nullptr;
-    unified_view_ = nullptr;
     bubble_view_->ResetDelegate();
     bubble_view_ = nullptr;
   }
@@ -148,57 +130,12 @@
   return bubble_widget_ && bubble_widget_->IsActive();
 }
 
-void UnifiedSystemTrayBubble::EnsureCollapsed() {
-  if (!bubble_widget_ || is_qs_revamp_enabled_) {
-    return;
-  }
-
-  DCHECK(unified_view_);
-  DCHECK(controller_);
-  controller_->EnsureCollapsed();
-}
-
-void UnifiedSystemTrayBubble::EnsureExpanded() {
-  if (!bubble_widget_) {
-    return;
-  }
-
-  DCHECK(unified_view_ || quick_settings_view_);
-  DCHECK(controller_);
-  controller_->EnsureExpanded();
-}
-
-void UnifiedSystemTrayBubble::CollapseWithoutAnimating() {
-  if (!bubble_widget_ || is_qs_revamp_enabled_) {
-    return;
-  }
-
-  DCHECK(unified_view_);
-  DCHECK(controller_);
-
-  controller_->CollapseWithoutAnimating();
-}
-
-void UnifiedSystemTrayBubble::CollapseMessageCenter() {
-  if (is_qs_revamp_enabled_) {
-    return;
-  }
-  unified_system_tray_->CollapseMessageCenter();
-}
-
-void UnifiedSystemTrayBubble::ExpandMessageCenter() {
-  if (is_qs_revamp_enabled_) {
-    return;
-  }
-  unified_system_tray_->ExpandMessageCenter();
-}
-
 void UnifiedSystemTrayBubble::ShowAudioDetailedView() {
   if (!bubble_widget_) {
     return;
   }
 
-  DCHECK(unified_view_ || quick_settings_view_);
+  DCHECK(quick_settings_view_);
   DCHECK(controller_);
   controller_->ShowAudioDetailedView();
 }
@@ -208,7 +145,7 @@
     return;
   }
 
-  DCHECK(unified_view_ || quick_settings_view_);
+  DCHECK(quick_settings_view_);
   DCHECK(controller_);
   controller_->ShowDisplayDetailedView();
 }
@@ -231,19 +168,19 @@
     }
   }
 
-  DCHECK(unified_view_ || quick_settings_view_);
+  DCHECK(quick_settings_view_);
   DCHECK(controller_);
   controller_->ShowCalendarView(show_source, event_source);
 }
 
-void UnifiedSystemTrayBubble::ShowNetworkDetailedView(bool force) {
+void UnifiedSystemTrayBubble::ShowNetworkDetailedView() {
   if (!bubble_widget_) {
     return;
   }
 
-  DCHECK(unified_view_ || quick_settings_view_);
+  DCHECK(quick_settings_view_);
   DCHECK(controller_);
-  controller_->ShowNetworkDetailedView(force);
+  controller_->ShowNetworkDetailedView();
 }
 
 void UnifiedSystemTrayBubble::UpdateBubble() {
@@ -268,37 +205,12 @@
 }
 
 int UnifiedSystemTrayBubble::GetCurrentTrayHeight() const {
-  if (is_qs_revamp_enabled_) {
-    CHECK(quick_settings_view_);
-    return quick_settings_view_->GetCurrentHeight();
-  }
-
-  return unified_view_->GetCurrentHeight();
+  return quick_settings_view_->GetCurrentHeight();
 }
 
 bool UnifiedSystemTrayBubble::FocusOut(bool reverse) {
-  if (is_qs_revamp_enabled_) {
-    return false;
-  }
-  return unified_system_tray_->FocusMessageCenter(reverse);
-}
-
-void UnifiedSystemTrayBubble::FocusEntered(bool reverse) {
-  if (is_qs_revamp_enabled_) {
-    return;
-  }
-
-  unified_view_->FocusEntered(reverse);
-}
-
-void UnifiedSystemTrayBubble::OnMessageCenterActivated() {
-  if (is_qs_revamp_enabled_) {
-    return;
-  }
-  // When the message center is activated, we no longer need to reroute key
-  // events to this bubble. Otherwise, we interfere with notifications that may
-  // require key input like inline replies. See crbug.com/1040738.
-  bubble_view_->StopReroutingEvents();
+  // TODO(b/309529593) Remove this method and clean up the related code.
+  return false;
 }
 
 void UnifiedSystemTrayBubble::OnDisplayConfigurationChanged() {
@@ -312,7 +224,6 @@
 
   bubble_view_->RemoveAllChildViews();
   quick_settings_view_ = nullptr;
-  unified_view_ = nullptr;
   bubble_view_->ResetDelegate();
   bubble_view_ = nullptr;
 
@@ -345,7 +256,6 @@
 }
 
 void UnifiedSystemTrayBubble::UpdateBubbleHeight(bool is_showing_detiled_view) {
-  DCHECK(is_qs_revamp_enabled_);
   if (!bubble_view_) {
     return;
   }
@@ -368,8 +278,7 @@
                         !!bubble_widget_ && !!bubble_widget_->IsClosed());
 
   // `bubble_view_` or `Shelf` may be null, see https://b/293264371,
-  if (!bubble_view_ || (is_qs_revamp_enabled_ && !quick_settings_view_) ||
-      (!is_qs_revamp_enabled_ && !unified_view_)) {
+  if (!bubble_view_ || !quick_settings_view_) {
     return;
   }
   if (!unified_system_tray_->shelf()) {
@@ -379,18 +288,15 @@
   int max_height = CalculateMaxTrayBubbleHeight(
       unified_system_tray_->GetBubbleWindowContainer());
   if (bubble_view_->ShouldUseFixedHeight()) {
-    DCHECK(is_qs_revamp_enabled_);
     const int qs_current_height = quick_settings_view_->height();
     max_height =
         std::min(max_height, std::max(qs_current_height, kDetailedViewHeight));
   }
-  if (is_qs_revamp_enabled_) {
-    // Setting the max height can result in the popup baseline being updated,
-    // closing this bubble.
-    quick_settings_view_->SetMaxHeight(max_height);
-  } else {
-    unified_view_->SetMaxHeight(max_height);
-  }
+
+  // Setting the max height can result in the popup baseline being updated,
+  // closing this bubble.
+  quick_settings_view_->SetMaxHeight(max_height);
+
   if (!bubble_view_) {
     // Updating the maximum height can result in popup baseline changing. If
     // there is not enough room for popups, the bubble will be closed, and this
diff --git a/ash/system/unified/unified_system_tray_bubble.h b/ash/system/unified/unified_system_tray_bubble.h
index 5de1e7e..b03314b 100644
--- a/ash/system/unified/unified_system_tray_bubble.h
+++ b/ash/system/unified/unified_system_tray_bubble.h
@@ -34,10 +34,9 @@
 class TrayEventFilter;
 class UnifiedSystemTray;
 class UnifiedSystemTrayController;
-class UnifiedSystemTrayView;
 class QuickSettingsView;
 
-// Manages the bubble that contains UnifiedSystemTrayView.
+// Manages the bubble that contains 'QuickSettingsView'.
 // Shows the bubble on the constructor, and closes the bubble on the destructor.
 // It is possible that the bubble widget is closed on deactivation. In such
 // case, this class calls UnifiedSystemTray::CloseBubble() to delete itself.
@@ -65,21 +64,6 @@
   // True if the bubble is active.
   bool IsBubbleActive() const;
 
-  // Collapse the message center bubble.
-  void CollapseMessageCenter();
-
-  // Expand the message center bubble.
-  void ExpandMessageCenter();
-
-  // Ensure the bubble is collapsed.
-  void EnsureCollapsed();
-
-  // Ensure the bubble is expanded.
-  void EnsureExpanded();
-
-  // Set the state to collapsed without animation.
-  void CollapseWithoutAnimating();
-
   // Show audio settings detailed view.
   void ShowAudioDetailedView();
 
@@ -91,7 +75,7 @@
                         calendar_metrics::CalendarEventSource event_source);
 
   // Show network settings detailed view.
-  void ShowNetworkDetailedView(bool force);
+  void ShowNetworkDetailedView();
 
   // Update bubble bounds and focus if necessary.
   void UpdateBubble();
@@ -103,12 +87,6 @@
   // Relinquish focus and transfer it to the message center widget.
   bool FocusOut(bool reverse);
 
-  // Inform UnifiedSystemTrayView of focus being acquired.
-  void FocusEntered(bool reverse);
-
-  // Called when the message center widget is activated.
-  void OnMessageCenterActivated();
-
   // Fire a notification that an accessibility event has occured on this object.
   void NotifyAccessibilityEvent(ax::mojom::Event event, bool send_native_event);
 
@@ -142,8 +120,6 @@
   // the detailed page.
   void UpdateBubbleHeight(bool is_showing_detiled_view);
 
-  UnifiedSystemTrayView* unified_view() { return unified_view_; }
-
   QuickSettingsView* quick_settings_view() { return quick_settings_view_; }
 
   UnifiedSystemTrayController* unified_system_tray_controller() {
@@ -155,33 +131,30 @@
 
   void UpdateBubbleBounds();
 
-  // Controller of UnifiedSystemTrayView. As the view is owned by views
-  // hierarchy, we have to own the controller here.
+  // Controller of `QuickSettingsView`. As the view is owned by views hierarchy,
+  // we have to own the controller here.
   std::unique_ptr<UnifiedSystemTrayController> controller_;
 
   // Owner of this class.
   raw_ptr<UnifiedSystemTray, ExperimentalAsh> unified_system_tray_;
 
-  // Widget that contains `UnifiedSystemTrayView`. Unowned.
+  // Widget that contains `QuickSettingsView`. Unowned.
   // When the widget is closed by deactivation, `bubble_widget_` pointer is
   // invalidated and we have to delete `UnifiedSystemTrayBubble` by calling
   // `UnifiedSystemTray::CloseBubble()`.
   // In order to do this, we observe `OnWidgetDestroying()`.
   raw_ptr<views::Widget, ExperimentalAsh> bubble_widget_ = nullptr;
 
-  // PreTargetHandler of |unified_view_| to record TimeToClick metrics. Owned.
+  // PreTargetHandler of `quick_settings_view_` to record TimeToClick metrics.
+  // Owned.
   std::unique_ptr<TimeToClickRecorder> time_to_click_recorder_;
 
   // The time the bubble is created.
   absl::optional<base::TimeTicks> time_opened_;
 
   raw_ptr<TrayBubbleView, ExperimentalAsh> bubble_view_ = nullptr;
-  raw_ptr<UnifiedSystemTrayView, DanglingUntriaged> unified_view_ = nullptr;
-  // Only non-null when QsRevamp is enabled.
-  raw_ptr<QuickSettingsView, DanglingUntriaged> quick_settings_view_ = nullptr;
 
-  // Whether the QsRevamp feature is enabled.
-  const bool is_qs_revamp_enabled_;
+  raw_ptr<QuickSettingsView, DanglingUntriaged> quick_settings_view_ = nullptr;
 
   std::unique_ptr<TrayEventFilter> tray_event_filter_;
 
diff --git a/ash/system/unified/unified_system_tray_controller.cc b/ash/system/unified/unified_system_tray_controller.cc
index a7f0d9b..c2996b4 100644
--- a/ash/system/unified/unified_system_tray_controller.cc
+++ b/ash/system/unified/unified_system_tray_controller.cc
@@ -57,9 +57,7 @@
 #include "ash/system/tray/tray_utils.h"
 #include "ash/system/unified/deferred_update_dialog.h"
 #include "ash/system/unified/detailed_view_controller.h"
-#include "ash/system/unified/feature_pod_button.h"
 #include "ash/system/unified/feature_pod_controller_base.h"
-#include "ash/system/unified/feature_pods_container_view.h"
 #include "ash/system/unified/feature_tile.h"
 #include "ash/system/unified/feature_tiles_container_view.h"
 #include "ash/system/unified/quick_settings_metrics_util.h"
@@ -68,7 +66,6 @@
 #include "ash/system/unified/unified_notifier_settings_controller.h"
 #include "ash/system/unified/unified_system_tray_bubble.h"
 #include "ash/system/unified/unified_system_tray_model.h"
-#include "ash/system/unified/unified_system_tray_view.h"
 #include "ash/system/unified/user_chooser_detailed_view_controller.h"
 #include "ash/wm/lock_state_controller.h"
 #include "ash/wm/tablet_mode/tablet_mode_controller.h"
@@ -83,8 +80,6 @@
 #include "ui/compositor/compositor.h"
 #include "ui/display/screen.h"
 #include "ui/events/event.h"
-#include "ui/gfx/animation/slide_animation.h"
-#include "ui/message_center/message_center.h"
 #include "ui/views/widget/widget.h"
 
 namespace ash {
@@ -110,22 +105,12 @@
     scoped_refptr<UnifiedSystemTrayModel> model,
     UnifiedSystemTrayBubble* bubble,
     views::View* owner_view)
-    : views::AnimationDelegateViews(owner_view),
-      model_(model),
+    : model_(model),
       bubble_(bubble),
       active_user_prefs_(
-          Shell::Get()->session_controller()->GetLastActiveUserPrefService()),
-      animation_(std::make_unique<gfx::SlideAnimation>(this)) {
+          Shell::Get()->session_controller()->GetLastActiveUserPrefService()) {
   LoadIsExpandedPref();
 
-  const float animation_value = features::IsQsRevampEnabled()
-                                    ? 1
-                                    : (model_->IsExpandedOnOpen() ? 1.0 : 0.0);
-  animation_->Reset(animation_value);
-  animation_->SetSlideDuration(
-      base::Milliseconds(kSystemMenuCollapseExpandAnimationDurationMs));
-  animation_->SetTweenType(gfx::Tween::EASE_IN_OUT);
-
   model_->pagination_model()->SetTransitionDurations(base::Milliseconds(250),
                                                      base::Milliseconds(50));
 
@@ -165,37 +150,6 @@
   active_user_prefs_ = prefs;
 }
 
-std::unique_ptr<UnifiedSystemTrayView>
-UnifiedSystemTrayController::CreateUnifiedQuickSettingsView() {
-  DCHECK(!unified_view_);
-  auto unified_view =
-      std::make_unique<UnifiedSystemTrayView>(this, model_->IsExpandedOnOpen());
-  unified_view_ = unified_view.get();
-
-  InitFeaturePods();
-
-  if (!Shell::Get()->session_controller()->IsScreenLocked() &&
-      !MediaTray::IsPinnedToShelf()) {
-    media_controls_controller_ =
-        std::make_unique<UnifiedMediaControlsController>(this);
-    unified_view->AddMediaControlsView(
-        media_controls_controller_->CreateView());
-  }
-
-  volume_slider_controller_ =
-      std::make_unique<UnifiedVolumeSliderController>(this);
-  unified_view->AddSliderView(volume_slider_controller_->CreateView());
-
-  brightness_slider_controller_ =
-      std::make_unique<UnifiedBrightnessSliderController>(
-          model_, views::Button::PressedCallback(base::BindRepeating(
-                      &UnifiedSystemTrayController::ShowDisplayDetailedView,
-                      base::Unretained(this))));
-  unified_view->AddSliderView(brightness_slider_controller_->CreateView());
-
-  return unified_view;
-}
-
 std::unique_ptr<QuickSettingsView>
 UnifiedSystemTrayController::CreateQuickSettingsView(int max_height) {
   DCHECK(!quick_settings_view_);
@@ -261,17 +215,10 @@
 
 void UnifiedSystemTrayController::HandleSettingsAction() {
   base::RecordAction(base::UserMetricsAction("Tray_Settings"));
-  if (features::IsQsRevampEnabled()) {
-    Shell::Get()->system_tray_model()->client()->ShowSettings(
-        display::Screen::GetScreen()
-            ->GetDisplayNearestView(
-                quick_settings_view_->GetWidget()->GetNativeView())
-            .id());
-    return;
-  }
   Shell::Get()->system_tray_model()->client()->ShowSettings(
       display::Screen::GetScreen()
-          ->GetDisplayNearestView(unified_view_->GetWidget()->GetNativeView())
+          ->GetDisplayNearestView(
+              quick_settings_view_->GetWidget()->GetNativeView())
           .id());
 }
 
@@ -318,177 +265,23 @@
   Shell::Get()->system_tray_model()->client()->ShowEnterpriseInfo();
 }
 
-void UnifiedSystemTrayController::ToggleExpanded() {
-  if (features::IsQsRevampEnabled()) {
-    return;
-  }
-
-  if (animation_->is_animating()) {
-    return;
-  }
-
-  UMA_HISTOGRAM_ENUMERATION("ChromeOS.SystemTray.ToggleExpanded",
-                            TOGGLE_EXPANDED_TYPE_BY_BUTTON,
-                            TOGGLE_EXPANDED_TYPE_COUNT);
-  if (IsExpanded()) {
-    StartAnimation(/*expand=*/false);
-    // Expand message center when quick settings is collapsed.
-    if (bubble_) {
-      bubble_->ExpandMessageCenter();
-    }
-  } else {
-    // Collapse the message center if screen height is limited after expanding
-    // the quick settings to its full height.
-    if (IsMessageCenterCollapseRequired()) {
-      bubble_->CollapseMessageCenter();
-    }
-    StartAnimation(/*expand=*/true);
-  }
-}
-
-void UnifiedSystemTrayController::BeginDrag(const gfx::PointF& location) {
-  if (features::IsQsRevampEnabled()) {
-    return;
-  }
-
-  UpdateDragThreshold();
-  // Ignore swipe collapsing when a detailed view is shown as it's confusing.
-  if (detailed_view_controller_) {
-    return;
-  }
-  drag_init_point_ = location;
-  was_expanded_ = IsExpanded();
-}
-
-void UnifiedSystemTrayController::UpdateDrag(const gfx::PointF& location) {
-  if (features::IsQsRevampEnabled()) {
-    return;
-  }
-
-  // Ignore swipe collapsing when a detailed view is shown as it's confusing.
-  if (detailed_view_controller_) {
-    return;
-  }
-  double drag_expanded_amount = GetDragExpandedAmount(location);
-  animation_->Reset(drag_expanded_amount);
-  UpdateExpandedAmount();
-
-  if (was_expanded_ &&
-      drag_expanded_amount < kNotificationCenterDragExpandThreshold) {
-    bubble_->ExpandMessageCenter();
-  } else if (drag_expanded_amount >= kNotificationCenterDragExpandThreshold &&
-             IsMessageCenterCollapseRequired()) {
-    bubble_->CollapseMessageCenter();
-  }
-}
-
-void UnifiedSystemTrayController::StartAnimation(bool expand) {
-  // UnifiedSystemTrayControllerTest does not add `unified_view_` to a widget.
-  if (features::IsQsRevampEnabled()) {
-    return;
-  }
-
-  if (unified_view_->GetWidget()) {
-    animation_tracker_.emplace(unified_view_->GetWidget()
-                                   ->GetCompositor()
-                                   ->RequestNewThroughputTracker());
-    animation_tracker_->Start(metrics_util::ForSmoothness(
-        expand ? base::BindRepeating(&ReportExpandAnimationSmoothness)
-               : base::BindRepeating(&ReportCollapseAnimationSmoothness)));
-  }
-
-  if (expand) {
-    animation_->Show();
-  } else {
-    // To animate to hidden state, first set SlideAnimation::IsShowing() to
-    // true.
-    animation_->Show();
-    animation_->Hide();
-  }
-}
-
-void UnifiedSystemTrayController::EndDrag(const gfx::PointF& location) {
-  if (features::IsQsRevampEnabled()) {
-    return;
-  }
-
-  // Ignore swipe collapsing when a detailed view is shown as it's confusing.
-  if (detailed_view_controller_) {
-    return;
-  }
-  if (animation_->is_animating()) {
-    // Prevent overwriting the state right after fling event
-    return;
-  }
-  bool expanded = GetDragExpandedAmount(location) > 0.5;
-  if (was_expanded_ != expanded) {
-    UMA_HISTOGRAM_ENUMERATION("ChromeOS.SystemTray.ToggleExpanded",
-                              TOGGLE_EXPANDED_TYPE_BY_GESTURE,
-                              TOGGLE_EXPANDED_TYPE_COUNT);
-  }
-
-  if (expanded && IsMessageCenterCollapseRequired()) {
-    bubble_->CollapseMessageCenter();
-  } else {
-    bubble_->ExpandMessageCenter();
-  }
-
-  // If dragging is finished, animate to closer state.
-  StartAnimation(expanded);
-}
-
-void UnifiedSystemTrayController::Fling(int velocity) {
-  if (features::IsQsRevampEnabled()) {
-    return;
-  }
-
-  // Ignore swipe collapsing when a detailed view is shown as it's confusing.
-  if (detailed_view_controller_) {
-    return;
-  }
-  // Expand when flinging up. Collapse otherwise.
-  bool expand = (velocity < 0);
-
-  if (expand && IsMessageCenterCollapseRequired()) {
-    bubble_->CollapseMessageCenter();
-  } else {
-    bubble_->ExpandMessageCenter();
-  }
-
-  StartAnimation(expand);
-}
-
 void UnifiedSystemTrayController::ShowUserChooserView() {
   if (!UserChooserDetailedViewController::IsUserChooserEnabled()) {
     return;
   }
-  animation_->Reset(1.0);
-  UpdateExpandedAmount();
   ShowDetailedView(std::make_unique<UserChooserDetailedViewController>(this));
 }
 
-void UnifiedSystemTrayController::ShowNetworkDetailedView(bool force) {
-  if (!force && !IsExpanded()) {
-    return;
-  }
-
+void UnifiedSystemTrayController::ShowNetworkDetailedView() {
   base::RecordAction(base::UserMetricsAction("StatusArea_Network_Detailed"));
-
   ShowDetailedView(std::make_unique<NetworkDetailedViewController>(this));
 }
 
 void UnifiedSystemTrayController::ShowHotspotDetailedView() {
-  DCHECK(features::IsQsRevampEnabled());
-
   ShowDetailedView(std::make_unique<HotspotDetailedViewController>(this));
 }
 
 void UnifiedSystemTrayController::ShowBluetoothDetailedView() {
-  // QSRevamp does not allow expand/collapse of the System Tray.
-  if (!IsExpanded() && !features::IsQsRevampEnabled()) {
-    return;
-  }
-
   base::RecordAction(base::UserMetricsAction("StatusArea_Bluetooth_Detailed"));
   ShowDetailedView(std::make_unique<BluetoothDetailedViewController>(this));
 }
@@ -582,30 +375,17 @@
   // reference to its `detailed_view_controller_` which is used in shutdown.
   auto scoped_detailed_view_controller = std::move(detailed_view_controller_);
 
-  if (features::IsQsRevampEnabled()) {
-    bubble_->UpdateBubbleHeight(/*is_showing_detiled_view=*/false);
-    quick_settings_view_->ResetDetailedView();
-    if (restore_focus) {
-      quick_settings_view_->RestoreFocus();
-    }
-    UpdateBubble();
-    return;
-  }
-  unified_view_->ResetDetailedView();
+  bubble_->UpdateBubbleHeight(/*is_showing_detiled_view=*/false);
+  quick_settings_view_->ResetDetailedView();
   if (restore_focus) {
-    unified_view_->RestoreFocus();
+    quick_settings_view_->RestoreFocus();
   }
+  UpdateBubble();
 }
 
 void UnifiedSystemTrayController::CloseBubble() {
-  if (features::IsQsRevampEnabled()) {
-    if (quick_settings_view_->GetWidget()) {
-      quick_settings_view_->GetWidget()->CloseNow();
-    }
-    return;
-  }
-  if (unified_view_->GetWidget()) {
-    unified_view_->GetWidget()->CloseNow();
+  if (quick_settings_view_->GetWidget()) {
+    quick_settings_view_->GetWidget()->CloseNow();
   }
 }
 
@@ -613,71 +393,12 @@
   return bubble_->FocusOut(reverse);
 }
 
-void UnifiedSystemTrayController::EnsureCollapsed() {
-  if (features::IsQsRevampEnabled()) {
-    return;
-  }
-
-  if (IsExpanded()) {
-    animation_->Hide();
-  }
-}
-
-void UnifiedSystemTrayController::EnsureExpanded() {
-  if (detailed_view_controller_) {
-    // If a detailed view is showing, first transit to the main view.
-    TransitionToMainView(false);
-  }
-  StartAnimation(true /*expand*/);
-
-  if (IsMessageCenterCollapseRequired()) {
-    bubble_->CollapseMessageCenter();
-  }
-}
-
-void UnifiedSystemTrayController::AnimationEnded(
-    const gfx::Animation* animation) {
-  if (features::IsQsRevampEnabled()) {
-    return;
-  }
-
-  if (animation_tracker_) {
-    animation_tracker_->Stop();
-    animation_tracker_.reset();
-  }
-
-  UpdateExpandedAmount();
-}
-
-void UnifiedSystemTrayController::AnimationProgressed(
-    const gfx::Animation* animation) {
-  if (features::IsQsRevampEnabled()) {
-    return;
-  }
-
-  UpdateExpandedAmount();
-}
-
-void UnifiedSystemTrayController::AnimationCanceled(
-    const gfx::Animation* animation) {
-  if (features::IsQsRevampEnabled()) {
-    return;
-  }
-
-  animation_->Reset(std::round(animation_->GetCurrentValue()));
-  UpdateExpandedAmount();
-}
-
 void UnifiedSystemTrayController::OnAudioSettingsButtonClicked() {
   ShowAudioDetailedView();
 }
 
 void UnifiedSystemTrayController::ShowMediaControls() {
-  if (features::IsQsRevampEnabled()) {
-    quick_settings_view_->ShowMediaControls();
-    return;
-  }
-  unified_view_->ShowMediaControls();
+  quick_settings_view_->ShowMediaControls();
 }
 
 void UnifiedSystemTrayController::OnMediaControlsViewClicked() {
@@ -698,10 +419,6 @@
   }
 }
 
-void UnifiedSystemTrayController::InitFeaturePods() {
-  // TODO(b/251724646):  remove with `unified_view_`.
-}
-
 void UnifiedSystemTrayController::InitFeatureTiles() {
   std::vector<std::unique_ptr<FeatureTile>> tiles;
 
@@ -773,23 +490,11 @@
       Shell::Get()->tablet_mode_controller()->InTabletMode());
 }
 
-void UnifiedSystemTrayController::AddFeaturePodItem(
-    std::unique_ptr<FeaturePodControllerBase> controller) {
-  // TODO(b/251724646):  remove with `unified_view_`.
-}
-
 void UnifiedSystemTrayController::ShowDetailedView(
     std::unique_ptr<DetailedViewController> controller) {
-  animation_->Reset(1.0);
-  UpdateExpandedAmount();
   views::FocusManager* manager;
-  if (features::IsQsRevampEnabled()) {
-    quick_settings_view_->SaveFocus();
-    manager = quick_settings_view_->GetFocusManager();
-  } else {
-    unified_view_->SaveFocus();
-    manager = unified_view_->GetFocusManager();
-  }
+  quick_settings_view_->SaveFocus();
+  manager = quick_settings_view_->GetFocusManager();
 
   if (manager && manager->GetFocusedView()) {
     manager->ClearFocus();
@@ -797,12 +502,8 @@
 
   showing_audio_detailed_view_ = false;
   showing_display_detailed_view_ = false;
-  if (features::IsQsRevampEnabled()) {
-    bubble_->UpdateBubbleHeight(/*is_showing_detiled_view=*/true);
-    quick_settings_view_->SetDetailedView(controller->CreateView());
-  } else {
-    unified_view_->SetDetailedView(controller->CreateView());
-  }
+  bubble_->UpdateBubbleHeight(/*is_showing_detiled_view=*/true);
+  quick_settings_view_->SetDetailedView(controller->CreateView());
 
   detailed_view_controller_ = std::move(controller);
 
@@ -814,83 +515,13 @@
   }
 }
 
-void UnifiedSystemTrayController::UpdateExpandedAmount() {
-  if (quick_settings_view_) {
-    return;
-  }
-  double expanded_amount = animation_->GetCurrentValue();
-  unified_view_->SetExpandedAmount(expanded_amount);
-
-  if (expanded_amount == 0.0 || expanded_amount == 1.0) {
-    model_->set_expanded_on_open(
-        expanded_amount == 1.0
-            ? UnifiedSystemTrayModel::StateOnOpen::EXPANDED
-            : UnifiedSystemTrayModel::StateOnOpen::COLLAPSED);
-  }
-}
-
-void UnifiedSystemTrayController::ResetToCollapsedIfRequired() {
-  if (quick_settings_view_) {
-    return;
-  }
-  if (model_->IsExplicitlyExpanded()) {
-    return;
-  }
-
-  if (unified_view_->feature_pods_container()->row_count() ==
-      kUnifiedFeaturePodMinRows) {
-    CollapseWithoutAnimating();
-  }
-}
-
-void UnifiedSystemTrayController::CollapseWithoutAnimating() {
-  if (features::IsQsRevampEnabled()) {
-    return;
-  }
-
-  unified_view_->SetExpandedAmount(0.0);
-  animation_->Reset(0);
-}
-
 bool UnifiedSystemTrayController::IsDetailedViewShown() const {
   if (quick_settings_view_) {
     return quick_settings_view_->IsDetailedViewShown();
   }
-  if (unified_view_) {
-    return unified_view_->IsDetailedViewShown();
-  }
   return false;
 }
 
-void UnifiedSystemTrayController::UpdateDragThreshold() {
-  if (features::IsQsRevampEnabled()) {
-    return;
-  }
-  UnifiedSystemTrayView* unified_view = bubble_->unified_view();
-  drag_threshold_ = unified_view->GetExpandedSystemTrayHeight() -
-                    unified_view->GetCollapsedSystemTrayHeight();
-}
-
-double UnifiedSystemTrayController::GetDragExpandedAmount(
-    const gfx::PointF& location) const {
-  if (features::IsQsRevampEnabled()) {
-    return 1.0;
-  }
-
-  double y_diff = (location - drag_init_point_).y();
-  // If already expanded, only consider swiping down. Otherwise, only consider
-  // swiping up.
-  if (was_expanded_) {
-    return std::clamp(1.0 - std::max(0.0, y_diff) / drag_threshold_, 0.0, 1.0);
-  } else {
-    return std::clamp(std::max(0.0, -y_diff) / drag_threshold_, 0.0, 1.0);
-  }
-}
-
-bool UnifiedSystemTrayController::IsExpanded() const {
-  return features::IsQsRevampEnabled() || animation_->IsShowing();
-}
-
 void UnifiedSystemTrayController::UpdateBubble() {
   if (!bubble_) {
     return;
@@ -898,29 +529,6 @@
   bubble_->UpdateBubble();
 }
 
-bool UnifiedSystemTrayController::IsMessageCenterCollapseRequired() const {
-  if (quick_settings_view_) {
-    return false;
-  }
-
-  if (!bubble_) {
-    return false;
-  }
-
-  // Note: This calculaton should be the same as
-  // UnifiedMessageCenterBubble::CalculateAvailableHeight().
-  auto available_height = CalculateMaxTrayBubbleHeight(
-      bubble_->GetTray()->GetBubbleWindowContainer());
-  available_height -= unified_view_->GetExpandedSystemTrayHeight();
-  available_height -= kUnifiedMessageCenterBubbleSpacing;
-  return available_height < kMessageCenterCollapseThreshold;
-}
-
-base::TimeDelta UnifiedSystemTrayController::GetAnimationDurationForReporting()
-    const {
-  return base::Milliseconds(kSystemMenuCollapseExpandAnimationDurationMs);
-}
-
 bool UnifiedSystemTrayController::ShouldShowDeferredUpdateDialog() const {
   return Shell::Get()->system_tray_model()->update_model()->update_deferred() ==
          DeferredUpdateState::kShowDialog;
diff --git a/ash/system/unified/unified_system_tray_controller.h b/ash/system/unified/unified_system_tray_controller.h
index 048bbee..86d0307 100644
--- a/ash/system/unified/unified_system_tray_controller.h
+++ b/ash/system/unified/unified_system_tray_controller.h
@@ -13,23 +13,14 @@
 #include "ash/system/audio/unified_volume_slider_controller.h"
 #include "ash/system/media/unified_media_controls_controller.h"
 #include "ash/system/time/calendar_metrics.h"
-#include "ash/system/time/calendar_model.h"
 #include "ash/system/unified/quick_settings_view.h"
 #include "ash/system/unified/unified_system_tray_model.h"
 #include "base/memory/raw_ptr.h"
 #include "base/memory/scoped_refptr.h"
-#include "third_party/abseil-cpp/absl/types/optional.h"
-#include "ui/compositor/throughput_tracker.h"
-#include "ui/gfx/geometry/point.h"
-#include "ui/views/animation/animation_delegate_views.h"
 
 class PrefRegistrySimple;
 class PrefService;
 
-namespace gfx {
-class SlideAnimation;
-}  // namespace gfx
-
 namespace views {
 class View;
 }  // namespace views
@@ -45,12 +36,10 @@
 class UnifiedVolumeSliderController;
 class UnifiedSystemTrayBubble;
 class UnifiedSystemTrayModel;
-class UnifiedSystemTrayView;
 
-// Controller class of UnifiedSystemTrayView. Handles events of the view.
+// Controller class of `QuickSettingsView`. Handles events of the view.
 class ASH_EXPORT UnifiedSystemTrayController
-    : public views::AnimationDelegateViews,
-      public SessionObserver,
+    : public SessionObserver,
       public UnifiedVolumeSliderController::Delegate,
       public UnifiedMediaControlsController::Delegate {
  public:
@@ -81,7 +70,6 @@
   static void RegisterProfilePrefs(PrefRegistrySimple* registry);
 
   // Create the view in the bubble.
-  std::unique_ptr<UnifiedSystemTrayView> CreateUnifiedQuickSettingsView();
   std::unique_ptr<QuickSettingsView> CreateQuickSettingsView(int max_height);
 
   // Sign out from the current user. Called from the view.
@@ -100,20 +88,11 @@
   void HandleOpenPowerSettingsAction();
   // Show enterprise managed device info. Called from the view.
   void HandleEnterpriseInfoAction();
-  // Toggle expanded state of UnifiedSystemTrayView. Called from the view.
-  void ToggleExpanded();
-
-  // Handle finger dragging and expand/collapse the view. Called from view.
-  void BeginDrag(const gfx::PointF& location);
-  void UpdateDrag(const gfx::PointF& location);
-  void EndDrag(const gfx::PointF& location);
-  void Fling(int velocity);
 
   // Show user selector view. Called from the view.
   void ShowUserChooserView();
-  // Show the detailed view of network. If |force| is true, it shows the
-  // detailed view even if it's collapsed. Called from the view.
-  void ShowNetworkDetailedView(bool force);
+  // Show the detailed view of network. Called from the view.
+  void ShowNetworkDetailedView();
   // Show the detailed view of hotspot. Called from the view.
   void ShowHotspotDetailedView();
   // Show the detailed view of bluetooth. If collapsed, it doesn't show the
@@ -154,35 +133,16 @@
   // Close the bubble. Called from a detailed view controller.
   void CloseBubble();
 
-  // Inform UnifiedSystemTrayBubble that UnifiedSystemTrayView is requesting to
+  // Inform `UnifiedSystemTrayBubble` that `QuickSettingsView` is requesting to
   // relinquish focus.
   bool FocusOut(bool reverse);
 
-  // Ensure the main view is collapsed. Called from the slider bubble
-  // controller.
-  void EnsureCollapsed();
-
-  // Ensure the main view is expanded. Called from the slider bubble controller.
-  void EnsureExpanded();
-
-  // Collapse the tray without animating if there isn't sufficient space for the
-  // notifications area.
-  void ResetToCollapsedIfRequired();
-
-  // Collapse the tray without animating.
-  void CollapseWithoutAnimating();
-
   // Return whether a detailed view is currently being shown.
   bool IsDetailedViewShown() const;
 
   // SessionObserver:
   void OnActiveUserPrefServiceChanged(PrefService* pref_service) override;
 
-  // views::AnimationDelegateViews:
-  void AnimationEnded(const gfx::Animation* animation) override;
-  void AnimationProgressed(const gfx::Animation* animation) override;
-  void AnimationCanceled(const gfx::Animation* animation) override;
-
   // UnifiedVolumeSliderController::Delegate:
   void OnAudioSettingsButtonClicked() override;
 
@@ -193,9 +153,6 @@
   // Sets whether the quick settings view should show the media view.
   void SetShowMediaView(bool show_media_view);
 
-  // Return true if UnifiedSystemTray is expanded.
-  bool IsExpanded() const;
-
   // Update the bubble view layout.
   void UpdateBubble();
 
@@ -231,14 +188,6 @@
   friend class UnifiedSystemTrayControllerTest;
   friend class UnifiedVolumeViewTest;
 
-  // How the expanded state is toggled. The enum is used to back an UMA
-  // histogram and should be treated as append-only.
-  enum ToggleExpandedType {
-    TOGGLE_EXPANDED_TYPE_BY_BUTTON = 0,
-    TOGGLE_EXPANDED_TYPE_BY_GESTURE,
-    TOGGLE_EXPANDED_TYPE_COUNT
-  };
-
   // Type of a help page opened by the "Managed" indicator in the bubble. The
   // enum is used to back an UMA histogram and should be treated as append-only.
   enum ManagedType { MANAGED_TYPE_ENTERPRISE = 0, MANAGED_TYPE_COUNT };
@@ -246,51 +195,18 @@
   // Loads the `kSystemTrayExpanded` pref to the model.
   void LoadIsExpandedPref();
 
-  // Initialize feature pod controllers and their views.
-  // If you want to add a new feature pod item, you have to add here.
-  void InitFeaturePods();
-
   // Initialize feature pod controllers and their feature tile views.
   void InitFeatureTiles();
 
-  // Add the feature pod controller and its view.
-  void AddFeaturePodItem(std::unique_ptr<FeaturePodControllerBase> controller);
-
   // Show the detailed view.
   void ShowDetailedView(std::unique_ptr<DetailedViewController> controller);
 
-  // Update how much the view is expanded based on |animation_|.
-  void UpdateExpandedAmount();
-
-  // Update the gesture distance by using the tray's collapsed and expanded
-  // height.
-  void UpdateDragThreshold();
-
-  // Return touch drag amount between 0.0 and 1.0. If expanding, it increases
-  // towards 1.0. If collapsing, it decreases towards 0.0. If the view is
-  // dragged to the same direction as the current state, it does not change the
-  // value. For example, if the view is expanded and it's dragged to the top, it
-  // keeps returning 1.0.
-  double GetDragExpandedAmount(const gfx::PointF& location) const;
-
-  // Return true if message center needs to be collapsed due to limited
-  // screen height.
-  bool IsMessageCenterCollapseRequired() const;
-
-  // Starts animation to expand or collapse the bubble.
-  void StartAnimation(bool expand);
-
-  // views::AnimationDelegateViews:
-  base::TimeDelta GetAnimationDurationForReporting() const override;
-
   bool ShouldShowDeferredUpdateDialog() const;
 
   // Model that stores UI specific variables. Unowned.
   scoped_refptr<UnifiedSystemTrayModel> model_;
 
   // Unowned. Owned by Views hierarchy.
-  raw_ptr<UnifiedSystemTrayView, DanglingUntriaged | ExperimentalAsh>
-      unified_view_ = nullptr;
   raw_ptr<QuickSettingsView, DanglingUntriaged | ExperimentalAsh>
       quick_settings_view_ = nullptr;
 
@@ -324,24 +240,6 @@
   raw_ptr<views::View, DanglingUntriaged | ExperimentalAsh>
       unified_brightness_view_ = nullptr;
 
-  // If the previous state is expanded or not. Only valid during dragging (from
-  // BeginDrag to EndDrag).
-  bool was_expanded_ = true;
-
-  // The last |location| passed to BeginDrag(). Only valid during dragging.
-  gfx::PointF drag_init_point_;
-
-  // Threshold in pixel that fully collapses / expands the view through gesture.
-  // Used to calculate the expanded amount that corresponds to gesture location
-  // during drag.
-  double drag_threshold_ = 0;
-
-  // Animation between expanded and collapsed states.
-  std::unique_ptr<gfx::SlideAnimation> animation_;
-
-  // Tracks the smoothness of collapse and expand animation.
-  absl::optional<ui::ThroughputTracker> animation_tracker_;
-
   bool showing_audio_detailed_view_ = false;
 
   bool showing_display_detailed_view_ = false;
diff --git a/ash/system/unified/unified_system_tray_controller_unittest.cc b/ash/system/unified/unified_system_tray_controller_unittest.cc
index 135fc56..637895fb 100644
--- a/ash/system/unified/unified_system_tray_controller_unittest.cc
+++ b/ash/system/unified/unified_system_tray_controller_unittest.cc
@@ -5,29 +5,26 @@
 #include "ash/system/unified/unified_system_tray_controller.h"
 #include <memory>
 
-#include "ash/constants/ash_features.h"
 #include "ash/system/brightness/unified_brightness_slider_controller.h"
 #include "ash/system/status_area_widget.h"
 #include "ash/system/unified/unified_system_tray_model.h"
 #include "ash/test/ash_test_base.h"
 #include "base/memory/raw_ptr.h"
 #include "base/memory/scoped_refptr.h"
-#include "base/test/scoped_feature_list.h"
 #include "chromeos/ash/services/network_config/public/cpp/cros_network_config_test_helper.h"
 #include "ui/views/test/views_test_utils.h"
 #include "ui/views/view_observer.h"
 
 namespace ash {
 
-class QsRevampUnifiedSystemTrayControllerTest : public AshTestBase {
+class UnifiedSystemTrayControllerTest : public AshTestBase {
  public:
-  QsRevampUnifiedSystemTrayControllerTest()
-      : scoped_feature_list_(features::kQsRevamp) {}
-  QsRevampUnifiedSystemTrayControllerTest(
-      const QsRevampUnifiedSystemTrayControllerTest&) = delete;
-  QsRevampUnifiedSystemTrayControllerTest& operator=(
-      const QsRevampUnifiedSystemTrayControllerTest&) = delete;
-  ~QsRevampUnifiedSystemTrayControllerTest() override = default;
+  UnifiedSystemTrayControllerTest() = default;
+  UnifiedSystemTrayControllerTest(const UnifiedSystemTrayControllerTest&) =
+      delete;
+  UnifiedSystemTrayControllerTest& operator=(
+      const UnifiedSystemTrayControllerTest&) = delete;
+  ~UnifiedSystemTrayControllerTest() override = default;
 
   // AshTestBase:
   void SetUp() override {
@@ -67,20 +64,17 @@
   // Owned by `widget_`.
   raw_ptr<QuickSettingsView, DanglingUntriaged | ExperimentalAsh>
       quick_settings_view_;
-
-  base::test::ScopedFeatureList scoped_feature_list_;
 };
 
 // Tests that setting the `UnifiedSystemTrayModel::StateOnOpen` pref to
-// collapsed is a no-op with the QSRevamp enabled.
-TEST_F(QsRevampUnifiedSystemTrayControllerTest, ExpandedPrefIsNoOp) {
+// collapsed is a no-op.
+TEST_F(UnifiedSystemTrayControllerTest, ExpandedPrefIsNoOp) {
   // Set the pref to collapsed, there should be no effect.
   model_->set_expanded_on_open(UnifiedSystemTrayModel::StateOnOpen::COLLAPSED);
 
   InitializeQuickSettingsView();
 
   EXPECT_TRUE(model_->IsExpandedOnOpen());
-  EXPECT_TRUE(controller_->IsExpanded());
 }
 
 }  // namespace ash
diff --git a/ash/system/unified/unified_system_tray_unittest.cc b/ash/system/unified/unified_system_tray_unittest.cc
index d04f95f..5e32060 100644
--- a/ash/system/unified/unified_system_tray_unittest.cc
+++ b/ash/system/unified/unified_system_tray_unittest.cc
@@ -26,7 +26,6 @@
 #include "ash/system/unified/ime_mode_view.h"
 #include "ash/system/unified/unified_slider_bubble_controller.h"
 #include "ash/system/unified/unified_system_tray_bubble.h"
-#include "ash/system/unified/unified_system_tray_view.h"
 #include "ash/system/video_conference/fake_video_conference_tray_controller.h"
 #include "ash/system/video_conference/video_conference_tray.h"
 #include "ash/test/ash_test_base.h"
@@ -59,9 +58,8 @@
 using message_center::MessageCenter;
 using message_center::Notification;
 
-class UnifiedSystemTrayTest
-    : public AshTestBase,
-      public testing::WithParamInterface<std::tuple<bool, bool>> {
+class UnifiedSystemTrayTest : public AshTestBase,
+                              public testing::WithParamInterface<bool> {
  public:
   UnifiedSystemTrayTest()
       : AshTestBase(base::test::TaskEnvironment::TimeSource::MOCK_TIME) {}
@@ -71,20 +69,14 @@
 
   void SetUp() override {
     std::vector<base::test::FeatureRef> enabled_features;
-    std::vector<base::test::FeatureRef> disabled_features;
 
     enabled_features.push_back(features::kCameraEffectsSupportedByHardware);
-    if (IsQsRevampEnabled()) {
-      enabled_features.push_back(features::kQsRevamp);
-    } else {
-      disabled_features.push_back(features::kQsRevamp);
-    }
     if (IsVcControlsUiEnabled()) {
       fake_video_conference_tray_controller_ =
           std::make_unique<FakeVideoConferenceTrayController>();
       enabled_features.push_back(features::kVideoConference);
     }
-    feature_list_.InitWithFeatures(enabled_features, disabled_features);
+    feature_list_.InitWithFeatures(enabled_features, {});
     AshTestBase::SetUp();
   }
 
@@ -96,10 +88,7 @@
     }
   }
 
-  // TODO(b/305075031) clean up after the flag is removed.
-  bool IsQsRevampEnabled() { return true; }
-
-  bool IsVcControlsUiEnabled() { return std::get<1>(GetParam()); }
+  bool IsVcControlsUiEnabled() { return GetParam(); }
 
  protected:
   const std::string AddNotification() {
@@ -120,10 +109,8 @@
   }
 
   // Show the notification center bubble. This assumes that there is at least
-  // one notification in the notification list. This should only be called
-  // when QsRevamp is enabled.
+  // one notification in the notification list.
   void ShowNotificationBubble() {
-    DCHECK(IsQsRevampEnabled());
     Shell::Get()
         ->GetPrimaryRootWindowController()
         ->shelf()
@@ -133,9 +120,8 @@
   }
 
   // Hide the notification center bubble. This assumes that it is already
-  // shown. This should only be called when QsRevamp is enabled.
+  // shown.
   void HideNotificationBubble() {
-    DCHECK(IsQsRevampEnabled());
     Shell::Get()
         ->GetPrimaryRootWindowController()
         ->shelf()
@@ -187,17 +173,13 @@
     // `DateTray` becomes inactive.
     EXPECT_TRUE(tray->is_active());
     EXPECT_FALSE(date_tray()->is_active());
-    // For QsRevamp: the main bubble is shorter than the detailed view bubble.
+    // The main bubble is shorter than the detailed view bubble.
     EXPECT_GT(kQsDetailedViewHeight, bubble_view->height());
   }
 
   void CheckDetailedViewHeight(TrayBubbleView* bubble_view) {
-    if (IsQsRevampEnabled()) {
-      // The bubble height should be fixed to the detailed view height.
-      EXPECT_EQ(kQsDetailedViewHeight, bubble_view->height());
-    } else {
-      EXPECT_GT(kQsDetailedViewHeight, bubble_view->height());
-    }
+    // The bubble height should be fixed to the detailed view height.
+    EXPECT_EQ(kQsDetailedViewHeight, bubble_view->height());
   }
 
   TimeTrayItemView* time_view() {
@@ -227,23 +209,18 @@
   base::test::ScopedFeatureList feature_list_;
 };
 
-INSTANTIATE_TEST_SUITE_P(
-    All,
-    UnifiedSystemTrayTest,
-    testing::Combine(testing::Bool() /* IsQsRevampEnabled() */,
-                     testing::Bool() /* IsVcControlsUiEnabled() */));
+INSTANTIATE_TEST_SUITE_P(All,
+                         UnifiedSystemTrayTest,
+                         testing::Bool() /*IsVcControlsUiEnabled()*/);
 
 // Regression test for crbug/1360579
 TEST_P(UnifiedSystemTrayTest, GetAccessibleNameForQuickSettingsBubble) {
   auto* tray = GetPrimaryUnifiedSystemTray();
   tray->ShowBubble();
 
-  EXPECT_EQ(
-      tray->GetAccessibleNameForQuickSettingsBubble(),
-      l10n_util::GetStringUTF16(
-          IsQsRevampEnabled()
-              ? IDS_ASH_REVAMPED_QUICK_SETTINGS_BUBBLE_ACCESSIBLE_DESCRIPTION
-              : IDS_ASH_QUICK_SETTINGS_BUBBLE_ACCESSIBLE_DESCRIPTION));
+  EXPECT_EQ(tray->GetAccessibleNameForQuickSettingsBubble(),
+            l10n_util::GetStringUTF16(
+                IDS_ASH_QUICK_SETTINGS_BUBBLE_ACCESSIBLE_DESCRIPTION));
 }
 
 TEST_P(UnifiedSystemTrayTest, ShowVolumeSliderBubble) {
@@ -379,32 +356,15 @@
   auto* tray = GetPrimaryUnifiedSystemTray();
   tray->ShowBubble();
 
-  if (IsQsRevampEnabled()) {
-    auto* quick_settings_view = tray->bubble()->quick_settings_view();
-    auto* focus_manager = quick_settings_view->GetFocusManager();
-    EXPECT_FALSE(
-        quick_settings_view->Contains(focus_manager->GetFocusedView()));
+  auto* quick_settings_view = tray->bubble()->quick_settings_view();
+  auto* focus_manager = quick_settings_view->GetFocusManager();
+  EXPECT_FALSE(quick_settings_view->Contains(focus_manager->GetFocusedView()));
 
-    // There's no `FocusQuickSettings` method in the new view. Press the tab key
-    // should focus on the first button in the qs bubble.
-    ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow());
-    generator.PressKey(ui::KeyboardCode::VKEY_TAB, ui::EF_NONE);
-    EXPECT_TRUE(quick_settings_view->Contains(focus_manager->GetFocusedView()));
-    return;
-  }
-
-  auto* unified_system_tray_view = tray->bubble()->unified_view();
-  auto* focus_manager = unified_system_tray_view->GetFocusManager();
-
-  EXPECT_FALSE(
-      unified_system_tray_view->Contains(focus_manager->GetFocusedView()));
-
-  auto did_focus = tray->FocusQuickSettings(false);
-
-  EXPECT_TRUE(did_focus);
-
-  EXPECT_TRUE(
-      unified_system_tray_view->Contains(focus_manager->GetFocusedView()));
+  // There's no `FocusQuickSettings` method in the new view. Press the tab key
+  // should focus on the first button in the qs bubble.
+  ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow());
+  generator.PressKey(ui::KeyboardCode::VKEY_TAB, ui::EF_NONE);
+  EXPECT_TRUE(quick_settings_view->Contains(focus_manager->GetFocusedView()));
 }
 
 TEST_P(UnifiedSystemTrayTest, FocusQuickSettings_BubbleNotShown) {
@@ -428,21 +388,10 @@
 
   EXPECT_TRUE(did_focus);
 
-  if (IsQsRevampEnabled()) {
-    auto* quick_settings_view = tray->bubble()->quick_settings_view();
-    auto* focus_manager = quick_settings_view->GetFocusManager();
-    EXPECT_TRUE(tray_bubble_widget->IsActive());
-    EXPECT_FALSE(
-        quick_settings_view->Contains(focus_manager->GetFocusedView()));
-    return;
-  }
-
-  auto* unified_system_tray_view = tray->bubble()->unified_view();
-  auto* focus_manager = unified_system_tray_view->GetFocusManager();
-
+  auto* quick_settings_view = tray->bubble()->quick_settings_view();
+  auto* focus_manager = quick_settings_view->GetFocusManager();
   EXPECT_TRUE(tray_bubble_widget->IsActive());
-  EXPECT_FALSE(
-      unified_system_tray_view->Contains(focus_manager->GetFocusedView()));
+  EXPECT_FALSE(quick_settings_view->Contains(focus_manager->GetFocusedView()));
 }
 
 TEST_P(UnifiedSystemTrayTest, TimeInQuickSettingsMetric) {
@@ -480,7 +429,7 @@
 }
 
 // Tests that the number of quick settings pages is recorded when the QS bubble
-// is closed. Tests that the metric is not recorded when QsRevamp is disabled.
+// is closed.
 TEST_P(UnifiedSystemTrayTest, QuickSettingsPageCountMetric) {
   base::HistogramTester histogram_tester;
 
@@ -496,12 +445,10 @@
 
   // Close the bubble and verify that the metric is recorded.
   tray->CloseBubble();
-  histogram_tester.ExpectTotalCount(kQuickSettingsPageCountOnClose,
-                                    IsQsRevampEnabled() ? 1 : 0);
-  histogram_tester.ExpectBucketCount(
-      kQuickSettingsPageCountOnClose,
-      /*sample=*/1,
-      /*expected_count=*/IsQsRevampEnabled() ? 1 : 0);
+  histogram_tester.ExpectTotalCount(kQuickSettingsPageCountOnClose, 1);
+  histogram_tester.ExpectBucketCount(kQuickSettingsPageCountOnClose,
+                                     /*sample=*/1,
+                                     /*expected_count=*/1);
 
   // Show the bubble with two pages, and verify that the metric is recorded when
   // the bubble is closed.
@@ -512,16 +459,13 @@
       ->pagination_model()
       ->SetTotalPages(2);
   tray->CloseBubble();
-  histogram_tester.ExpectTotalCount(kQuickSettingsPageCountOnClose,
-                                    IsQsRevampEnabled() ? 2 : 0);
-  histogram_tester.ExpectBucketCount(
-      kQuickSettingsPageCountOnClose,
-      /*sample=*/2,
-      /*expected_count=*/IsQsRevampEnabled() ? 1 : 0);
-  histogram_tester.ExpectBucketCount(
-      kQuickSettingsPageCountOnClose,
-      /*sample=*/1,
-      /*expected_count=*/IsQsRevampEnabled() ? 1 : 0);
+  histogram_tester.ExpectTotalCount(kQuickSettingsPageCountOnClose, 2);
+  histogram_tester.ExpectBucketCount(kQuickSettingsPageCountOnClose,
+                                     /*sample=*/2,
+                                     /*expected_count=*/1);
+  histogram_tester.ExpectBucketCount(kQuickSettingsPageCountOnClose,
+                                     /*sample=*/1,
+                                     /*expected_count=*/1);
 }
 
 // Tests that pressing the TOGGLE_CALENDAR accelerator once results in the
@@ -559,8 +503,7 @@
 }
 
 // Tests that using functional keys to change brightness/volume when the
-// `CalendarView` is open will make ink drop transfer(before and after
-// QsRevamp) and bubble height change(after QsRevamp).
+// `CalendarView` is open will make ink drop transfer and bubble height change.
 TEST_P(UnifiedSystemTrayTest, CalendarGoesToMainViewByFunctionalKeys) {
   auto* tray = GetPrimaryUnifiedSystemTray();
   tray->ShowBubble();
@@ -574,7 +517,7 @@
   // Tests the volume up/down/mute functional keys. It should hide the calendar
   // view and open the `unified_system_tray_bubble_`. The ink drop should
   // transfer from `DateTray` to `UnifiedSystemTray` and the `bubble_view`
-  // should shrink for the revamped Qs main page.
+  // should shrink for the Qs main page.
   TransferFromCalendarViewToMainViewByFuncKeys(tray, bubble_view,
                                                ui::VKEY_VOLUME_UP);
   TransferFromCalendarViewToMainViewByFuncKeys(tray, bubble_view,
@@ -783,11 +726,6 @@
 // Tests that the bubble automatically hides if it is visible when another
 // bubble becomes visible, and otherwise does not automatically show or hide.
 TEST_P(UnifiedSystemTrayTest, BubbleHideBehavior) {
-  // This hiding behavior only applies when QsRevamp is enabled.
-  if (!IsQsRevampEnabled()) {
-    return;
-  }
-
   // Basic verification test that the unified system tray bubble can show/hide
   // itself when no other bubbles are visible.
   auto* tray = GetPrimaryUnifiedSystemTray();
@@ -860,11 +798,6 @@
 }
 
 TEST_P(UnifiedSystemTrayTest, BubbleViewSizeChangeWithBigMainPage) {
-  // No QuickSettingsView in the old unified system bubble.
-  if (!IsQsRevampEnabled()) {
-    return;
-  }
-
   // Set a large enough screen size.
   UpdateDisplay("1600x900");
 
diff --git a/ash/system/unified/unified_system_tray_view.cc b/ash/system/unified/unified_system_tray_view.cc
deleted file mode 100644
index 8129569..0000000
--- a/ash/system/unified/unified_system_tray_view.cc
+++ /dev/null
@@ -1,508 +0,0 @@
-// Copyright 2018 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ash/system/unified/unified_system_tray_view.h"
-
-#include <numeric>
-
-#include "ash/public/cpp/shelf_config.h"
-#include "ash/session/session_controller_impl.h"
-#include "ash/shell.h"
-#include "ash/system/media/unified_media_controls_container.h"
-#include "ash/system/message_center/ash_message_center_lock_screen_controller.h"
-#include "ash/system/notification_center/notification_center_view.h"
-#include "ash/system/tray/interacted_by_tap_recorder.h"
-#include "ash/system/tray/tray_constants.h"
-#include "ash/system/unified/detailed_view_controller.h"
-#include "ash/system/unified/feature_pod_button.h"
-#include "ash/system/unified/feature_pods_container_view.h"
-#include "ash/system/unified/notification_hidden_view.h"
-#include "ash/system/unified/page_indicator_view.h"
-#include "ash/system/unified/top_shortcuts_view.h"
-#include "ash/system/unified/unified_system_info_view.h"
-#include "ash/system/unified/unified_system_tray_controller.h"
-#include "ash/system/unified/unified_system_tray_model.h"
-#include "ash/wm/tablet_mode/tablet_mode_controller.h"
-#include "base/memory/raw_ptr.h"
-#include "ui/accessibility/ax_enums.mojom.h"
-#include "ui/accessibility/ax_node_data.h"
-#include "ui/compositor/layer.h"
-#include "ui/gfx/canvas.h"
-#include "ui/gfx/scoped_canvas.h"
-#include "ui/message_center/message_center.h"
-#include "ui/message_center/public/cpp/message_center_constants.h"
-#include "ui/views/background.h"
-#include "ui/views/border.h"
-#include "ui/views/focus/focus_search.h"
-#include "ui/views/layout/box_layout.h"
-#include "ui/views/painter.h"
-
-namespace ash {
-
-namespace {
-
-// The padding between sliders inside the `UnifiedSlidersContainerView`.
-const int kSlidersPadding = 8;
-
-class DetailedViewContainer : public views::View {
- public:
-  DetailedViewContainer() = default;
-
-  DetailedViewContainer(const DetailedViewContainer&) = delete;
-  DetailedViewContainer& operator=(const DetailedViewContainer&) = delete;
-
-  ~DetailedViewContainer() override = default;
-
-  // views::View:
-  void Layout() override {
-    for (auto* child : children()) {
-      child->SetBoundsRect(GetContentsBounds());
-    }
-    views::View::Layout();
-  }
-
-  const char* GetClassName() const override { return "DetailedViewContainer"; }
-};
-
-class AccessibilityFocusHelperView : public views::View {
- public:
-  AccessibilityFocusHelperView(UnifiedSystemTrayController* controller)
-      : controller_(controller) {}
-
-  bool HandleAccessibleAction(const ui::AXActionData& action_data) override {
-    GetFocusManager()->ClearFocus();
-    GetFocusManager()->SetStoredFocusView(nullptr);
-    controller_->FocusOut(false);
-    return true;
-  }
-
-  // views::View:
-  void GetAccessibleNodeData(ui::AXNodeData* node_data) override {
-    node_data->role = ax::mojom::Role::kListItem;
-  }
-
- private:
-  raw_ptr<UnifiedSystemTrayController, DanglingUntriaged | ExperimentalAsh>
-      controller_;
-};
-
-}  // namespace
-
-UnifiedSlidersContainerView::UnifiedSlidersContainerView(
-    bool initially_expanded)
-    : expanded_amount_(initially_expanded ? 1.0 : 0.0) {
-  SetVisible(initially_expanded);
-}
-
-UnifiedSlidersContainerView::~UnifiedSlidersContainerView() = default;
-
-void UnifiedSlidersContainerView::SetExpandedAmount(double expanded_amount) {
-  DCHECK(0.0 <= expanded_amount && expanded_amount <= 1.0);
-  SetVisible(expanded_amount > 0.0);
-  expanded_amount_ = expanded_amount;
-  InvalidateLayout();
-  UpdateOpacity();
-}
-
-int UnifiedSlidersContainerView::GetExpandedHeight() const {
-  return std::accumulate(
-      children().cbegin(), children().cend(), 0, [](int height, const auto* v) {
-        return height + v->GetHeightForWidth(kTrayMenuWidth) + kSlidersPadding;
-      });
-}
-
-void UnifiedSlidersContainerView::Layout() {
-  int y = 0;
-  for (auto* child : children()) {
-    int height = child->GetHeightForWidth(kTrayMenuWidth);
-    child->SetBounds(0, y, kTrayMenuWidth, height);
-    y += height + kSlidersPadding;
-  }
-}
-
-gfx::Size UnifiedSlidersContainerView::CalculatePreferredSize() const {
-  return gfx::Size(kTrayMenuWidth, GetExpandedHeight() * expanded_amount_);
-}
-
-const char* UnifiedSlidersContainerView::GetClassName() const {
-  return "UnifiedSlidersContainerView";
-}
-
-void UnifiedSlidersContainerView::UpdateOpacity() {
-  const int height = GetPreferredSize().height();
-  for (auto* child : children()) {
-    double opacity = 1.0;
-    if (child->y() > height) {
-      opacity = 0.0;
-    } else if (child->bounds().bottom() < height) {
-      opacity = 1.0;
-    } else {
-      const double ratio =
-          static_cast<double>(height - child->y()) / child->height();
-      // TODO(tetsui): Confirm the animation curve with UX.
-      opacity = std::max(0., 2. * ratio - 1.);
-    }
-    child->layer()->SetOpacity(opacity);
-  }
-}
-
-// The container view for the system tray, i.e. the panel containing settings
-// buttons and sliders (e.g. sign out, lock, volume slider, etc.).
-class UnifiedSystemTrayView::SystemTrayContainer : public views::View {
- public:
-  SystemTrayContainer()
-      : layout_manager_(SetLayoutManager(std::make_unique<views::BoxLayout>(
-            views::BoxLayout::Orientation::kVertical))) {}
-  SystemTrayContainer(const SystemTrayContainer&) = delete;
-  SystemTrayContainer& operator=(const SystemTrayContainer&) = delete;
-
-  ~SystemTrayContainer() override = default;
-
-  void SetFlexForView(views::View* view) {
-    DCHECK_EQ(view->parent(), this);
-    layout_manager_->SetFlexForView(view, 1);
-  }
-
-  // views::View:
-  void ChildPreferredSizeChanged(views::View* child) override {
-    PreferredSizeChanged();
-  }
-
-  const char* GetClassName() const override { return "SystemTrayContainer"; }
-
- private:
-  const raw_ptr<views::BoxLayout, ExperimentalAsh> layout_manager_;
-};
-
-UnifiedSystemTrayView::UnifiedSystemTrayView(
-    UnifiedSystemTrayController* controller,
-    bool initially_expanded)
-    : expanded_amount_(initially_expanded ? 1.0 : 0.0),
-      controller_(controller),
-      notification_hidden_view_(new NotificationHiddenView()),
-      top_shortcuts_view_(new TopShortcutsView(controller_)),
-      feature_pods_container_(
-          new FeaturePodsContainerView(controller_, initially_expanded)),
-      page_indicator_view_(
-          new PageIndicatorView(controller_, initially_expanded)),
-      sliders_container_(new UnifiedSlidersContainerView(initially_expanded)),
-      system_info_view_(new UnifiedSystemInfoView(controller_)),
-      system_tray_container_(new SystemTrayContainer()),
-      detailed_view_container_(new DetailedViewContainer()),
-      media_controls_container_(new UnifiedMediaControlsContainer()),
-      focus_search_(std::make_unique<views::FocusSearch>(this, false, false)),
-      interacted_by_tap_recorder_(
-          std::make_unique<InteractedByTapRecorder>(this)) {
-  DCHECK(controller_);
-
-  auto add_layered_child = [](views::View* parent, views::View* child) {
-    parent->AddChildView(child);
-  };
-
-  SessionControllerImpl* session_controller =
-      Shell::Get()->session_controller();
-
-  notification_hidden_view_->SetVisible(
-      session_controller->GetUserSession(0) &&
-      session_controller->IsScreenLocked() &&
-      !AshMessageCenterLockScreenController::IsEnabled());
-  add_layered_child(system_tray_container_, notification_hidden_view_);
-
-  AddChildView(system_tray_container_.get());
-
-  add_layered_child(system_tray_container_, top_shortcuts_view_);
-  system_tray_container_->AddChildView(feature_pods_container_.get());
-  system_tray_container_->AddChildView(page_indicator_view_.get());
-
-  system_tray_container_->AddChildView(media_controls_container_.get());
-  media_controls_container_->SetExpandedAmount(expanded_amount_);
-
-  system_tray_container_->AddChildView(sliders_container_.get());
-
-  add_layered_child(system_tray_container_, system_info_view_);
-
-  system_tray_container_->SetFlexForView(page_indicator_view_);
-
-  detailed_view_container_->SetVisible(false);
-  add_layered_child(this, detailed_view_container_);
-
-  top_shortcuts_view_->SetExpandedAmount(expanded_amount_);
-
-  system_tray_container_->AddChildView(
-      new AccessibilityFocusHelperView(controller_));
-}
-
-UnifiedSystemTrayView::~UnifiedSystemTrayView() = default;
-
-void UnifiedSystemTrayView::SetMaxHeight(int max_height) {
-  max_height_ = max_height;
-
-  // FeaturePodsContainer can adjust it's height by reducing the number of rows
-  // it uses. It will calculate how many rows to use based on the max height
-  // passed here.
-  feature_pods_container_->SetMaxHeight(
-      max_height - top_shortcuts_view_->GetPreferredSize().height() -
-      page_indicator_view_->GetPreferredSize().height() -
-      media_controls_container_->GetExpandedHeight() -
-      sliders_container_->GetExpandedHeight() -
-      system_info_view_->GetPreferredSize().height());
-}
-
-void UnifiedSystemTrayView::AddFeaturePodButton(FeaturePodButton* button) {
-  feature_pods_container_->AddFeaturePodButton(button);
-}
-
-void UnifiedSystemTrayView::AddSliderView(
-    std::unique_ptr<views::View> slider_view) {
-  sliders_container_->AddChildView(std::move(slider_view));
-}
-
-void UnifiedSystemTrayView::AddMediaControlsView(views::View* media_controls) {
-  DCHECK(media_controls);
-
-  media_controls->SetPaintToLayer();
-  media_controls->layer()->SetFillsBoundsOpaquely(false);
-  media_controls_container_->AddChildView(media_controls);
-}
-
-void UnifiedSystemTrayView::ShowMediaControls() {
-  media_controls_container_->SetShouldShowMediaControls(true);
-
-  if (detailed_view_container_->GetVisible()) {
-    return;
-  }
-
-  if (media_controls_container_->MaybeShowMediaControls()) {
-    PreferredSizeChanged();
-  }
-}
-
-void UnifiedSystemTrayView::SetDetailedView(
-    std::unique_ptr<views::View> detailed_view) {
-  auto system_tray_size = system_tray_container_->GetPreferredSize();
-  system_tray_container_->SetVisible(false);
-
-  detailed_view_container_->RemoveAllChildViews();
-  views::View* view =
-      detailed_view_container_->AddChildView(std::move(detailed_view));
-  detailed_view_container_->SetVisible(true);
-  detailed_view_container_->SetPreferredSize(system_tray_size);
-  view->InvalidateLayout();
-  Layout();
-}
-
-void UnifiedSystemTrayView::ResetDetailedView() {
-  detailed_view_container_->RemoveAllChildViews();
-  detailed_view_container_->SetVisible(false);
-  media_controls_container_->MaybeShowMediaControls();
-  system_tray_container_->SetVisible(true);
-  sliders_container_->UpdateOpacity();
-  PreferredSizeChanged();
-  Layout();
-}
-
-void UnifiedSystemTrayView::SaveFocus() {
-  auto* focus_manager = GetFocusManager();
-  if (!focus_manager) {
-    return;
-  }
-
-  saved_focused_view_ = focus_manager->GetFocusedView();
-}
-
-void UnifiedSystemTrayView::RestoreFocus() {
-  if (saved_focused_view_) {
-    saved_focused_view_->RequestFocus();
-  }
-}
-
-void UnifiedSystemTrayView::SetExpandedAmount(double expanded_amount) {
-  DCHECK(0.0 <= expanded_amount && expanded_amount <= 1.0);
-  expanded_amount_ = expanded_amount;
-
-  top_shortcuts_view_->SetExpandedAmount(expanded_amount);
-  feature_pods_container_->SetExpandedAmount(expanded_amount);
-  page_indicator_view_->SetExpandedAmount(expanded_amount);
-  media_controls_container_->SetExpandedAmount(expanded_amount);
-  sliders_container_->SetExpandedAmount(expanded_amount);
-
-  PreferredSizeChanged();
-  // It is possible that the ratio between |message_center_view_| and others
-  // can change while the bubble size remain unchanged.
-  Layout();
-}
-
-int UnifiedSystemTrayView::GetExpandedSystemTrayHeight() const {
-  return (notification_hidden_view_->GetVisible()
-              ? notification_hidden_view_->GetPreferredSize().height()
-              : 0) +
-         top_shortcuts_view_->GetPreferredSize().height() +
-         feature_pods_container_->GetExpandedHeight() +
-         page_indicator_view_->GetExpandedHeight() +
-         sliders_container_->GetExpandedHeight() +
-         media_controls_container_->GetExpandedHeight() +
-         system_info_view_->GetPreferredSize().height();
-}
-
-int UnifiedSystemTrayView::GetCollapsedSystemTrayHeight() const {
-  return (notification_hidden_view_->GetVisible()
-              ? notification_hidden_view_->GetPreferredSize().height()
-              : 0) +
-         top_shortcuts_view_->GetPreferredSize().height() +
-         feature_pods_container_->GetCollapsedHeight() +
-         system_info_view_->GetPreferredSize().height();
-}
-
-int UnifiedSystemTrayView::GetCurrentHeight() const {
-  return GetPreferredSize().height();
-}
-
-int UnifiedSystemTrayView::GetVisibleFeaturePodCount() const {
-  return feature_pods_container_->GetVisibleCount();
-}
-
-std::u16string UnifiedSystemTrayView::GetDetailedViewAccessibleName() const {
-  return controller_->detailed_view_controller()->GetAccessibleName();
-}
-
-bool UnifiedSystemTrayView::IsDetailedViewShown() const {
-  return detailed_view_container_->GetVisible();
-}
-
-views::View* UnifiedSystemTrayView::GetFirstFocusableChild() {
-  FocusTraversable* focus_traversable = GetFocusTraversable();
-  views::View* focus_traversable_view = this;
-  return focus_search_->FindNextFocusableView(
-      nullptr, views::FocusSearch::SearchDirection::kForwards,
-      views::FocusSearch::TraversalDirection::kDown,
-      views::FocusSearch::StartingViewPolicy::kSkipStartingView,
-      views::FocusSearch::AnchoredDialogPolicy::kCanGoIntoAnchoredDialog,
-      &focus_traversable, &focus_traversable_view);
-}
-
-views::View* UnifiedSystemTrayView::GetLastFocusableChild() {
-  FocusTraversable* focus_traversable = GetFocusTraversable();
-  views::View* focus_traversable_view = this;
-  return focus_search_->FindNextFocusableView(
-      nullptr, views::FocusSearch::SearchDirection::kBackwards,
-      views::FocusSearch::TraversalDirection::kDown,
-      views::FocusSearch::StartingViewPolicy::kSkipStartingView,
-      views::FocusSearch::AnchoredDialogPolicy::kCanGoIntoAnchoredDialog,
-      &focus_traversable, &focus_traversable_view);
-}
-
-void UnifiedSystemTrayView::FocusEntered(bool reverse) {
-  views::View* focus_view =
-      reverse ? GetLastFocusableChild() : GetFirstFocusableChild();
-  GetFocusManager()->ClearFocus();
-  GetFocusManager()->SetFocusedView(focus_view);
-}
-
-gfx::Size UnifiedSystemTrayView::CalculatePreferredSize() const {
-  int expanded_height = GetExpandedSystemTrayHeight();
-  int collapsed_height = GetCollapsedSystemTrayHeight();
-
-  return gfx::Size(kTrayMenuWidth,
-                   collapsed_height + ((expanded_height - collapsed_height) *
-                                       expanded_amount_));
-}
-
-void UnifiedSystemTrayView::OnGestureEvent(ui::GestureEvent* event) {
-  gfx::PointF screen_location = event->root_location_f();
-  switch (event->type()) {
-    case ui::ET_GESTURE_SCROLL_BEGIN:
-      controller_->BeginDrag(screen_location);
-      event->SetHandled();
-      break;
-    case ui::ET_GESTURE_SCROLL_UPDATE:
-      controller_->UpdateDrag(screen_location);
-      event->SetHandled();
-      break;
-    case ui::ET_GESTURE_END:
-      controller_->EndDrag(screen_location);
-      event->SetHandled();
-      break;
-    case ui::ET_SCROLL_FLING_START:
-      controller_->Fling(event->details().velocity_y());
-      break;
-    default:
-      break;
-  }
-}
-
-void UnifiedSystemTrayView::Layout() {
-  if (system_tray_container_->GetVisible()) {
-    system_tray_container_->SetBoundsRect(GetContentsBounds());
-  } else if (detailed_view_container_->GetVisible()) {
-    detailed_view_container_->SetBoundsRect(GetContentsBounds());
-  }
-}
-
-void UnifiedSystemTrayView::ChildPreferredSizeChanged(views::View* child) {
-  // The size change is not caused by SetExpandedAmount(), because they don't
-  // trigger PreferredSizeChanged().
-  PreferredSizeChanged();
-}
-
-const char* UnifiedSystemTrayView::GetClassName() const {
-  return "UnifiedSystemTrayView";
-}
-
-void UnifiedSystemTrayView::AddedToWidget() {
-  focus_manager_ = GetFocusManager();
-  if (focus_manager_) {
-    focus_manager_->AddFocusChangeListener(this);
-  }
-}
-
-void UnifiedSystemTrayView::RemovedFromWidget() {
-  if (!focus_manager_) {
-    return;
-  }
-  focus_manager_->RemoveFocusChangeListener(this);
-  focus_manager_ = nullptr;
-}
-
-views::FocusTraversable* UnifiedSystemTrayView::GetFocusTraversable() {
-  return this;
-}
-
-views::FocusSearch* UnifiedSystemTrayView::GetFocusSearch() {
-  return focus_search_.get();
-}
-
-views::FocusTraversable* UnifiedSystemTrayView::GetFocusTraversableParent() {
-  return nullptr;
-}
-
-views::View* UnifiedSystemTrayView::GetFocusTraversableParentView() {
-  return this;
-}
-
-void UnifiedSystemTrayView::OnWillChangeFocus(views::View* before,
-                                              views::View* now) {}
-
-void UnifiedSystemTrayView::OnDidChangeFocus(views::View* before,
-                                             views::View* now) {
-  if (feature_pods_container_->Contains(now)) {
-    feature_pods_container_->EnsurePageWithButton(now);
-  }
-
-  views::View* first_view = GetFirstFocusableChild();
-  views::View* last_view = GetLastFocusableChild();
-
-  bool focused_out = false;
-  if (before == last_view && now == first_view) {
-    focused_out = controller_->FocusOut(false);
-  } else if (before == first_view && now == last_view) {
-    focused_out = controller_->FocusOut(true);
-  }
-
-  if (focused_out) {
-    GetFocusManager()->ClearFocus();
-    GetFocusManager()->SetStoredFocusView(nullptr);
-  }
-}
-
-}  // namespace ash
diff --git a/ash/system/unified/unified_system_tray_view.h b/ash/system/unified/unified_system_tray_view.h
deleted file mode 100644
index 514ed7b..0000000
--- a/ash/system/unified/unified_system_tray_view.h
+++ /dev/null
@@ -1,220 +0,0 @@
-// Copyright 2018 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ASH_SYSTEM_UNIFIED_UNIFIED_SYSTEM_TRAY_VIEW_H_
-#define ASH_SYSTEM_UNIFIED_UNIFIED_SYSTEM_TRAY_VIEW_H_
-
-#include <memory>
-
-#include "ash/ash_export.h"
-#include "base/memory/raw_ptr.h"
-#include "ui/views/focus/focus_manager.h"
-#include "ui/views/view.h"
-
-namespace ash {
-
-class FeaturePodButton;
-class FeaturePodsContainerView;
-class TopShortcutsView;
-class UnifiedMediaControlsContainer;
-class NotificationHiddenView;
-class PageIndicatorView;
-class UnifiedSystemInfoView;
-class UnifiedSystemTrayController;
-
-// Container view of slider views. If SetExpandedAmount() is called with 1.0,
-// the behavior is same as vertiacal BoxLayout, but otherwise it shows
-// intermediate state during animation.
-class UnifiedSlidersContainerView : public views::View {
- public:
-  explicit UnifiedSlidersContainerView(bool initially_expanded);
-
-  UnifiedSlidersContainerView(const UnifiedSlidersContainerView&) = delete;
-  UnifiedSlidersContainerView& operator=(const UnifiedSlidersContainerView&) =
-      delete;
-
-  ~UnifiedSlidersContainerView() override;
-
-  // Change the expanded state. 0.0 if collapsed, and 1.0 if expanded.
-  // Otherwise, it shows intermediate state.
-  void SetExpandedAmount(double expanded_amount);
-
-  // Get height of the view when |expanded_amount| is set to 1.0.
-  int GetExpandedHeight() const;
-
-  // Update opacity of each child slider views based on |expanded_amount_|.
-  void UpdateOpacity();
-
-  // views::View:
-  void Layout() override;
-  gfx::Size CalculatePreferredSize() const override;
-  const char* GetClassName() const override;
-
- private:
-  double expanded_amount_;
-};
-
-// View class of the main bubble in UnifiedSystemTray.
-//
-// The UnifiedSystemTray contains two sub components:
-//    1. MessageCenter: contains the list of notifications
-//    2. SystemTray: contains quick settings controls
-// Note that the term "UnifiedSystemTray" refers to entire bubble containing
-// both (1) and (2).
-class ASH_EXPORT UnifiedSystemTrayView : public views::View,
-                                         public views::FocusTraversable,
-                                         public views::FocusChangeListener {
- public:
-  UnifiedSystemTrayView(UnifiedSystemTrayController* controller,
-                        bool initially_expanded);
-
-  UnifiedSystemTrayView(const UnifiedSystemTrayView&) = delete;
-  UnifiedSystemTrayView& operator=(const UnifiedSystemTrayView&) = delete;
-
-  ~UnifiedSystemTrayView() override;
-
-  // Set the maximum height that the view can take.
-  void SetMaxHeight(int max_height);
-
-  // Add feature pod button to |feature_pods_|.
-  void AddFeaturePodButton(FeaturePodButton* button);
-
-  // Add slider view.
-  void AddSliderView(std::unique_ptr<views::View> slider_view);
-
-  // Add media controls view to |media_controls_container_|;
-  void AddMediaControlsView(views::View* media_controls);
-
-  // Hide the main view and show the given |detailed_view|.
-  void SetDetailedView(std::unique_ptr<views::View> detailed_view);
-
-  // Remove the detailed view set by SetDetailedView, and show the main view.
-  // It deletes |detailed_view| and children.
-  void ResetDetailedView();
-
-  // Save and restore keyboard focus of the currently focused element. Called
-  // before transitioning into a detailed view.
-  void SaveFocus();
-  void RestoreFocus();
-
-  // Set the first child view to be focused when focus is acquired.
-  // This is the first visible child unless reverse is true, in which case
-  // it is the last visible child.
-  void FocusEntered(bool reverse);
-
-  // Change the expanded state. 0.0 if collapsed, and 1.0 if expanded.
-  // Otherwise, it shows intermediate state. This is triggered during the
-  // progress of expand/collapse animation, updating the children accordingly.
-  void SetExpandedAmount(double expanded_amount);
-
-  // Get height of the system tray (excluding the message center) when
-  // |expanded_amount| is set to 1.0.
-  //
-  // Note that this function is used to calculate the transform-based
-  // collapse/expand animation, which is currently only enabled when there are
-  // no notifications.
-  int GetExpandedSystemTrayHeight() const;
-
-  // Get height of the system menu (excluding the message center) when
-  // |expanded_amount| is set to 0.0.
-  int GetCollapsedSystemTrayHeight() const;
-
-  // Get current height of the view (including the message center).
-  int GetCurrentHeight() const;
-
-  // Returns the number of visible feature pods.
-  int GetVisibleFeaturePodCount() const;
-
-  // Get the accessible name for the currently shown detailed view.
-  std::u16string GetDetailedViewAccessibleName() const;
-
-  // Returns true if a detailed view is being shown in the tray. (e.g Bluetooth
-  // Settings).
-  bool IsDetailedViewShown() const;
-
-  // Show media controls view.
-  void ShowMediaControls();
-
-  // views::View:
-  gfx::Size CalculatePreferredSize() const override;
-  void OnGestureEvent(ui::GestureEvent* event) override;
-  void Layout() override;
-  void ChildPreferredSizeChanged(views::View* child) override;
-  const char* GetClassName() const override;
-  views::FocusTraversable* GetFocusTraversable() override;
-  void AddedToWidget() override;
-  void RemovedFromWidget() override;
-
-  // views::FocusTraversable:
-  views::FocusSearch* GetFocusSearch() override;
-  views::FocusTraversable* GetFocusTraversableParent() override;
-  views::View* GetFocusTraversableParentView() override;
-
-  // views::FocusChangeListener:
-  void OnWillChangeFocus(views::View* before, views::View* now) override;
-  void OnDidChangeFocus(views::View* before, views::View* now) override;
-
-  FeaturePodsContainerView* feature_pods_container() {
-    return feature_pods_container_;
-  }
-  View* detailed_view_container() { return detailed_view_container_; }
-
-  NotificationHiddenView* notification_hidden_view_for_testing() {
-    return notification_hidden_view_;
-  }
-  PageIndicatorView* page_indicator_view_for_test() {
-    return page_indicator_view_;
-  }
-  UnifiedMediaControlsContainer* media_controls_container_for_testing() {
-    return media_controls_container_;
-  }
-
- private:
-  class SystemTrayContainer;
-  friend class UnifiedMessageCenterBubbleTest;
-
-  // Get first and last focusable child views. These functions are used to
-  // figure out if we need to focus out or to set the correct focused view
-  // when focus is acquired from another widget.
-  View* GetFirstFocusableChild();
-  View* GetLastFocusableChild();
-
-  double expanded_amount_;
-
-  // Unowned.
-  const raw_ptr<UnifiedSystemTrayController,
-                DanglingUntriaged | ExperimentalAsh>
-      controller_;
-
-  // Owned by views hierarchy.
-  const raw_ptr<NotificationHiddenView, ExperimentalAsh>
-      notification_hidden_view_;
-  const raw_ptr<TopShortcutsView, ExperimentalAsh> top_shortcuts_view_;
-  const raw_ptr<FeaturePodsContainerView, ExperimentalAsh>
-      feature_pods_container_;
-  const raw_ptr<PageIndicatorView, ExperimentalAsh> page_indicator_view_;
-  const raw_ptr<UnifiedSlidersContainerView, ExperimentalAsh>
-      sliders_container_;
-  const raw_ptr<UnifiedSystemInfoView, ExperimentalAsh> system_info_view_;
-  const raw_ptr<SystemTrayContainer, ExperimentalAsh> system_tray_container_;
-  const raw_ptr<views::View, ExperimentalAsh> detailed_view_container_;
-  const raw_ptr<UnifiedMediaControlsContainer, ExperimentalAsh>
-      media_controls_container_;
-
-  // The maximum height available to the view.
-  int max_height_ = 0;
-
-  // The view that is saved by calling SaveFocus().
-  raw_ptr<views::View, ExperimentalAsh> saved_focused_view_ = nullptr;
-
-  const std::unique_ptr<views::FocusSearch> focus_search_;
-
-  raw_ptr<views::FocusManager, ExperimentalAsh> focus_manager_ = nullptr;
-
-  const std::unique_ptr<ui::EventHandler> interacted_by_tap_recorder_;
-};
-
-}  // namespace ash
-
-#endif  // ASH_SYSTEM_UNIFIED_UNIFIED_SYSTEM_TRAY_VIEW_H_
diff --git a/ash/system/unified/user_chooser_view.cc b/ash/system/unified/user_chooser_view.cc
index bfeb116..7d8d336c 100644
--- a/ash/system/unified/user_chooser_view.cc
+++ b/ash/system/unified/user_chooser_view.cc
@@ -22,7 +22,6 @@
 #include "ash/system/tray/tray_constants.h"
 #include "ash/system/tray/tray_popup_utils.h"
 #include "ash/system/tray/tri_view.h"
-#include "ash/system/unified/top_shortcuts_view.h"
 #include "ash/system/unified/user_chooser_detailed_view_controller.h"
 #include "base/functional/bind.h"
 #include "base/strings/utf_string_conversions.h"
diff --git a/ash/webui/common/resources/bluetooth/bluetooth_pairing_ui.js b/ash/webui/common/resources/bluetooth/bluetooth_pairing_ui.js
index 13a5bce..383f172 100644
--- a/ash/webui/common/resources/bluetooth/bluetooth_pairing_ui.js
+++ b/ash/webui/common/resources/bluetooth/bluetooth_pairing_ui.js
@@ -633,6 +633,7 @@
     if (this.pairingDelegateReceiver_) {
       this.pairingDelegateReceiver_.$.close();
       this.finishPendingCallbacksForTest_();
+      this.pairingDelegateReceiver_ = null;
       return;
     }
 
diff --git a/ash/wm/base_state.cc b/ash/wm/base_state.cc
index 84f8ac6..f538cf29 100644
--- a/ash/wm/base_state.cc
+++ b/ash/wm/base_state.cc
@@ -121,7 +121,7 @@
     const bool is_desired_primary_snapped =
         desired_snap_state == WindowStateType::kPrimarySnapped;
     if (shell->overview_controller()->InOverviewSession() &&
-        !window_util::IsFasterSplitScreenOrSnapGroupArm1Enabled()) {
+        !window_util::IsFasterSplitScreenOrSnapGroupEnabledInClamshell()) {
       // |window| must already be in split view, and so we do not need to check
       // |SplitViewController::CanSnapWindow|, although in general it is more
       // restrictive than |WindowState::CanSnap|.
diff --git a/ash/wm/overview/overview_grid.cc b/ash/wm/overview/overview_grid.cc
index dfa4181..47f02e8 100644
--- a/ash/wm/overview/overview_grid.cc
+++ b/ash/wm/overview/overview_grid.cc
@@ -2014,7 +2014,7 @@
   // overview or the saved desk grid is visible.
   // TODO(b/307812315): Rename to `faster_splitscreen_widget_` if we'll always
   // show this.
-  if (window_util::IsFasterSplitScreenOrSnapGroupArm1Enabled()
+  if (window_util::IsFasterSplitScreenOrSnapGroupEnabledInClamshell()
           ? !RootWindowController::ForWindow(root_window())
                  ->split_view_overview_session()
           : !no_items || IsShowingSavedDeskLibrary()) {
@@ -2031,7 +2031,7 @@
     params.rounding_dp = kNoItemsIndicatorRoundingDp;
     params.preferred_height = kNoItemsIndicatorHeightDp;
     params.message = IDS_ASH_OVERVIEW_NO_RECENT_ITEMS;
-    if (window_util::IsFasterSplitScreenOrSnapGroupArm1Enabled()) {
+    if (window_util::IsFasterSplitScreenOrSnapGroupEnabledInClamshell()) {
       params.message =
           no_items ? kFasterSplitScreenToastNoWindows : kFasterSplitScreenToast;
     }
@@ -2065,7 +2065,7 @@
   const gfx::Rect grid_bounds(GetGridEffectiveBounds());
   no_windows_widget_->SetBoundsCenteredIn(grid_bounds, animate);
 
-  if (window_util::IsFasterSplitScreenOrSnapGroupArm1Enabled()) {
+  if (window_util::IsFasterSplitScreenOrSnapGroupEnabledInClamshell()) {
     // If there are no windows, set it in the center of the grid.
     if (window_list_.empty()) {
       return;
@@ -2308,10 +2308,10 @@
     return;
   }
 
-  if (window_util::IsFasterSplitScreenOrSnapGroupArm1Enabled()) {
+  if (window_util::IsFasterSplitScreenOrSnapGroupEnabledInClamshell()) {
     // When an activated window is auto snapped, it will send a state change and
     // try to end overview here. Ignore split view state when
-    // `kFasterSplitScreenSetup` or `kSnapGroup` arm1 is enabled.
+    // `kFasterSplitScreenSetup` or `kSnapGroup` is enabled.
     return;
   }
 
@@ -2345,8 +2345,8 @@
 }
 
 void OverviewGrid::OnSplitViewDividerPositionChanged() {
-  if (window_util::IsFasterSplitScreenOrSnapGroupArm1Enabled()) {
-    // If `IsFasterSplitScreenOrSnapGroupArm1Enabled` is true,
+  if (window_util::IsFasterSplitScreenOrSnapGroupEnabledInClamshell()) {
+    // If `IsFasterSplitScreenOrSnapGroupEnabledInClamshell()` is true,
     // `SplitViewOverviewSession` will manually update the bounds so we don't
     // need to update here.
     return;
diff --git a/ash/wm/overview/overview_session_unittest.cc b/ash/wm/overview/overview_session_unittest.cc
index ebb515a..f519262 100644
--- a/ash/wm/overview/overview_session_unittest.cc
+++ b/ash/wm/overview/overview_session_unittest.cc
@@ -8505,8 +8505,7 @@
                     SplitViewController::SnapPosition::kSecondary,
                     /*window_for_minimum_size=*/nullptr)));
 
-  split_view_controller()->SwapWindows(
-      SplitViewController::SwapWindowsSource::kDoubleTap);
+  split_view_controller()->SwapWindows();
   EXPECT_EQ(split_view_controller()->state(),
             SplitViewController::State::kSecondarySnapped);
   EXPECT_EQ(split_view_controller()->default_snap_position(),
diff --git a/ash/wm/overview/overview_utils.cc b/ash/wm/overview/overview_utils.cc
index ce8fc69a..3ed66b1 100644
--- a/ash/wm/overview/overview_utils.cc
+++ b/ash/wm/overview/overview_utils.cc
@@ -212,8 +212,7 @@
   // When `kFasterSplitScreenSetup` or `kSnapGroup` is enabled, we would only
   // reach here if overview is in session and there is no divider.
   // TODO(b/296935443): Consolidate split view bounds calculations.
-  if (window_util::IsFasterSplitScreenOrSnapGroupArm1Enabled() &&
-      !Shell::Get()->IsInTabletMode()) {
+  if (window_util::IsFasterSplitScreenOrSnapGroupEnabledInClamshell()) {
     bounds = work_area;
     if (auto* split_view_overview_session =
             RootWindowController::ForWindow(target_root)
diff --git a/ash/wm/snap_group/snap_group_controller.cc b/ash/wm/snap_group/snap_group_controller.cc
index efbbeb8..6d2df80 100644
--- a/ash/wm/snap_group/snap_group_controller.cc
+++ b/ash/wm/snap_group/snap_group_controller.cc
@@ -53,7 +53,7 @@
     aura::Window* window,
     WindowSnapActionSource snap_action_source) {
   // If `window` already belongs to a snap group, do nothing.
-  if (!IsArm1AutomaticallyLockEnabled() || GetSnapGroupForGivenWindow(window)) {
+  if (GetSnapGroupForGivenWindow(window)) {
     return;
   }
 
@@ -146,7 +146,7 @@
     return true;
   }
 
-  return IsArm1AutomaticallyLockEnabled() && can_enter_overview_;
+  return can_enter_overview_;
 }
 
 void SnapGroupController::AddObserver(Observer* observer) {
@@ -157,16 +157,6 @@
   observers_.RemoveObserver(observer);
 }
 
-bool SnapGroupController::IsArm1AutomaticallyLockEnabled() const {
-  return features::IsSnapGroupEnabled() &&
-         features::kAutomaticallyLockGroup.Get();
-}
-
-bool SnapGroupController::IsArm2ManuallyLockEnabled() const {
-  return features::IsSnapGroupEnabled() &&
-         !features::kAutomaticallyLockGroup.Get();
-}
-
 void SnapGroupController::MinimizeTopMostSnapGroup() {
   auto* topmost_snap_group = GetTopmostSnapGroup();
   topmost_snap_group->MinimizeWindows();
diff --git a/ash/wm/snap_group/snap_group_controller.h b/ash/wm/snap_group/snap_group_controller.h
index afc3332..05bc2e9 100644
--- a/ash/wm/snap_group/snap_group_controller.h
+++ b/ash/wm/snap_group/snap_group_controller.h
@@ -87,16 +87,6 @@
   void AddObserver(Observer* observer);
   void RemoveObserver(Observer* observer);
 
-  // Returns true if the feature flag `kSnapGroup` is enabled and the feature
-  // param `kAutomaticallyLockGroup` is true, i.e. a snap group will be created
-  // automatically on two windows snapped.
-  bool IsArm1AutomaticallyLockEnabled() const;
-
-  // Returns true if the feature flag `kSnapGroup` is enabled and the feature
-  // param `kAutomaticallyLockGroup` is false, i.e. the user has to explicitly
-  // create the snap group when the lock option shows up on two windows snapped.
-  bool IsArm2ManuallyLockEnabled() const;
-
   // Minimizes the most recently used and unminimized snap groups.
   void MinimizeTopMostSnapGroup();
 
diff --git a/ash/wm/snap_group/snap_group_expanded_menu_view.cc b/ash/wm/snap_group/snap_group_expanded_menu_view.cc
deleted file mode 100644
index df929d00..0000000
--- a/ash/wm/snap_group/snap_group_expanded_menu_view.cc
+++ /dev/null
@@ -1,120 +0,0 @@
-// Copyright 2023 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ash/wm/snap_group/snap_group_expanded_menu_view.h"
-
-#include <memory>
-
-#include "ash/resources/vector_icons/vector_icons.h"
-#include "ash/shell.h"
-#include "ash/strings/grit/ash_strings.h"
-#include "ash/style/ash_color_id.h"
-#include "ash/style/icon_button.h"
-#include "ash/wm/snap_group/snap_group.h"
-#include "ash/wm/snap_group/snap_group_controller.h"
-#include "ash/wm/splitview/split_view_constants.h"
-#include "ash/wm/splitview/split_view_controller.h"
-#include "base/functional/bind.h"
-#include "base/metrics/histogram_functions.h"
-#include "base/metrics/user_metrics.h"
-#include "ui/base/metadata/metadata_impl_macros.h"
-#include "ui/compositor/layer.h"
-#include "ui/views/background.h"
-#include "ui/views/layout/box_layout.h"
-
-namespace ash {
-
-namespace {
-
-constexpr auto kExpandedMenuPadding = gfx::Insets::VH(8, 3);
-constexpr int kSpaceBetweenButton = 3;
-
-SplitViewController* split_view_controller() {
-  return SplitViewController::Get(Shell::GetPrimaryRootWindow());
-}
-
-}  // namespace
-
-SnapGroupExpandedMenuView::SnapGroupExpandedMenuView(SnapGroup* snap_group)
-    : snap_group_(snap_group),
-      swap_windows_button_(AddChildView(std::make_unique<IconButton>(
-          base::BindRepeating(
-              &SnapGroupExpandedMenuView::OnSwapWindowsButtonPressed,
-              base::Unretained(this)),
-          IconButton::Type::kMediumFloating,
-          &kSnapGroupSwapWindowsIcon,
-          IDS_ASH_SNAP_GROUP_SWAP_WINDOWS,
-          /*is_togglable=*/false,
-          /*has_border=*/true))),
-      update_primary_window_button_(AddChildView(std::make_unique<IconButton>(
-          base::BindRepeating(
-              &SnapGroupExpandedMenuView::OnUpdatePrimaryWindowButtonPressed,
-              base::Unretained(this)),
-          IconButton::Type::kMediumFloating,
-          &kSnapGroupUpdatePrimaryWindowIcon,
-          IDS_ASH_SNAP_GROUP_UPDATE_LEFT_WINDOW,
-          /*is_togglable=*/false,
-          /*has_border=*/true))),
-      update_secondary_window_button_(AddChildView(std::make_unique<IconButton>(
-          base::BindRepeating(
-              &SnapGroupExpandedMenuView::OnUpdateSecondaryWindowButtonPressed,
-              base::Unretained(this)),
-          IconButton::Type::kMediumFloating,
-          &kSnapGroupUpdateSecondaryWindowIcon,
-          IDS_ASH_SNAP_GROUP_UPDATE_RIGHT_WINDOW,
-          /*is_togglable=*/false,
-          /*has_border=*/true))),
-      unlock_button_(AddChildView(std::make_unique<IconButton>(
-          base::BindRepeating(&SnapGroupExpandedMenuView::OnUnLockButtonPressed,
-                              base::Unretained(this)),
-          IconButton::Type::kMediumFloating,
-          &kLockScreenEasyUnlockOpenIcon,
-          IDS_ASH_SNAP_GROUP_CLICK_TO_UNLOCK_WINDOWS,
-          /*is_togglable=*/false,
-          /*has_border=*/true))) {
-  SetPaintToLayer();
-  SetBackground(views::CreateThemedSolidBackground(kColorAshShieldAndBase80));
-  layer()->SetFillsBoundsOpaquely(false);
-  layer()->SetRoundedCornerRadius(
-      gfx::RoundedCornersF(kExpandedMenuRoundedCornerRadius));
-
-  auto* box_layout = SetLayoutManager(std::make_unique<views::BoxLayout>(
-      views::BoxLayout::Orientation::kVertical, kExpandedMenuPadding,
-      kSpaceBetweenButton));
-  box_layout->set_cross_axis_alignment(
-      views::BoxLayout::CrossAxisAlignment::kCenter);
-  box_layout->set_main_axis_alignment(
-      views::BoxLayout::MainAxisAlignment::kCenter);
-}
-
-SnapGroupExpandedMenuView::~SnapGroupExpandedMenuView() = default;
-
-void SnapGroupExpandedMenuView::OnUpdatePrimaryWindowButtonPressed() {
-  split_view_controller()->OpenPartialOverviewToUpdateSnapGroup(
-      SplitViewController::SnapPosition::kSecondary);
-}
-
-void SnapGroupExpandedMenuView::OnUpdateSecondaryWindowButtonPressed() {
-  split_view_controller()->OpenPartialOverviewToUpdateSnapGroup(
-      SplitViewController::SnapPosition::kPrimary);
-}
-
-void SnapGroupExpandedMenuView::OnSwapWindowsButtonPressed() {
-  snap_group_->SwapWindows();
-  base::RecordAction(
-      base::UserMetricsAction("SplitView_SwapWindowsButtonSwapWindows"));
-  base::UmaHistogramEnumeration(
-      kSplitViewSwapWindowsSource,
-      SplitViewController::SwapWindowsSource::kSnapGroupSwapWindowsButton);
-}
-
-void SnapGroupExpandedMenuView::OnUnLockButtonPressed() {
-  SnapGroupController::Get()->RemoveSnapGroup(snap_group_);
-  // `this` will be deleted after this line.
-}
-
-BEGIN_METADATA(SnapGroupExpandedMenuView, views::View)
-END_METADATA
-
-}  // namespace ash
diff --git a/ash/wm/snap_group/snap_group_expanded_menu_view.h b/ash/wm/snap_group/snap_group_expanded_menu_view.h
deleted file mode 100644
index 9a144e9a..0000000
--- a/ash/wm/snap_group/snap_group_expanded_menu_view.h
+++ /dev/null
@@ -1,75 +0,0 @@
-// Copyright 2023 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef ASH_WM_SNAP_GROUP_SNAP_GROUP_EXPANDED_MENU_VIEW_H_
-#define ASH_WM_SNAP_GROUP_SNAP_GROUP_EXPANDED_MENU_VIEW_H_
-
-#include "base/memory/raw_ptr.h"
-#include "ui/views/view.h"
-
-namespace ash {
-
-class IconButton;
-class SnapGroup;
-
-// A view that acts as the contents view of the snap group expanded menu widget
-// which will show or hide on the kebab button toggled. Note that this view will
-// only be available for the clamshell mode, the tablet mode is to be
-// implemented.
-class SnapGroupExpandedMenuView : public views::View {
- public:
-  METADATA_HEADER(SnapGroupExpandedMenuView);
-
-  explicit SnapGroupExpandedMenuView(SnapGroup* snap_group);
-  SnapGroupExpandedMenuView(const SnapGroupExpandedMenuView&) = delete;
-  SnapGroupExpandedMenuView& operator=(const SnapGroupExpandedMenuView&) =
-      delete;
-  ~SnapGroupExpandedMenuView() override;
-
-  IconButton* swap_windows_button_for_testing() const {
-    return swap_windows_button_;
-  }
-  IconButton* update_primary_window_button_for_testing() const {
-    return update_primary_window_button_;
-  }
-  IconButton* update_secondary_window_button_for_testing() const {
-    return update_secondary_window_button_;
-  }
-  IconButton* unlock_button_for_testing() const { return unlock_button_; }
-
- private:
-  // Called when the `swap_windows_button_` is clicked to swap the two windows
-  // in the snap group.
-  void OnSwapWindowsButtonPressed();
-
-  // Called when the `update_primary_window_button_` is clicked to update the
-  // primary window in the snap group by invoking the overview session shown
-  // on the other half of the screen.
-  void OnUpdatePrimaryWindowButtonPressed();
-
-  // Called when the `update_secondary_window_button_` is clicked. to update
-  // the secondary window in the snap group by invoking the overview session
-  // shown on the other half of the screen.
-  void OnUpdateSecondaryWindowButtonPressed();
-
-  // Called when the unlock button in the expaned menu is pressed to unlock the
-  // snap group.
-  void OnUnLockButtonPressed();
-
-  // `snap_group_` is guaranteed to be non nullptr during `this` lifetime.
-  // TODO(michelefan): revisit this comment and related logic if we decided to
-  // show divider on one window snapped in clamshell.
-  const raw_ptr<SnapGroup, DanglingUntriaged | ExperimentalAsh> snap_group_;
-
-  // Child views of this class, which are listed from top to bottom (horizontal
-  // screen orientation) or left to right (vertical screen orientation).
-  raw_ptr<IconButton, ExperimentalAsh> swap_windows_button_;
-  raw_ptr<IconButton, ExperimentalAsh> update_primary_window_button_;
-  raw_ptr<IconButton, ExperimentalAsh> update_secondary_window_button_;
-  raw_ptr<IconButton, ExperimentalAsh> unlock_button_;
-};
-
-}  // namespace ash
-
-#endif  // ASH_WM_SNAP_GROUP_SNAP_GROUP_EXPANDED_MENU_VIEW_H_
diff --git a/ash/wm/snap_group/snap_group_unittest.cc b/ash/wm/snap_group/snap_group_unittest.cc
index 7aa5034..6791756 100644
--- a/ash/wm/snap_group/snap_group_unittest.cc
+++ b/ash/wm/snap_group/snap_group_unittest.cc
@@ -8,17 +8,12 @@
 #include "ash/accessibility/magnifier/docked_magnifier_controller.h"
 #include "ash/constants/ash_features.h"
 #include "ash/display/window_tree_host_manager.h"
-#include "ash/metrics/histogram_macros.h"
 #include "ash/public/cpp/accelerators.h"
 #include "ash/public/cpp/test/shell_test_api.h"
 #include "ash/public/cpp/window_properties.h"
-#include "ash/resources/vector_icons/vector_icons.h"
 #include "ash/root_window_controller.h"
 #include "ash/screen_util.h"
 #include "ash/shell.h"
-#include "ash/strings/grit/ash_strings.h"
-#include "ash/style/ash_color_id.h"
-#include "ash/style/icon_button.h"
 #include "ash/test/ash_test_base.h"
 #include "ash/wm/desks/desks_test_util.h"
 #include "ash/wm/desks/desks_util.h"
@@ -38,7 +33,6 @@
 #include "ash/wm/overview/scoped_overview_transform_window.h"
 #include "ash/wm/snap_group/snap_group.h"
 #include "ash/wm/snap_group/snap_group_controller.h"
-#include "ash/wm/snap_group/snap_group_expanded_menu_view.h"
 #include "ash/wm/splitview/split_view_constants.h"
 #include "ash/wm/splitview/split_view_controller.h"
 #include "ash/wm/splitview/split_view_divider.h"
@@ -60,21 +54,15 @@
 #include "ash/wm/workspace/workspace_event_handler.h"
 #include "ash/wm/workspace_controller_test_api.h"
 #include "base/check_op.h"
-#include "base/memory/raw_ptr.h"
-#include "base/memory/scoped_refptr.h"
 #include "base/run_loop.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
-#include "base/timer/timer.h"
 #include "chromeos/constants/chromeos_features.h"
 #include "chromeos/ui/base/window_state_type.h"
 #include "chromeos/ui/frame/caption_buttons/snap_controller.h"
 #include "ui/aura/client/aura_constants.h"
-#include "ui/aura/test/test_window_delegate.h"
 #include "ui/base/cursor/mojom/cursor_type.mojom-shared.h"
 #include "ui/base/hit_test.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/compositor/layer.h"
 #include "ui/compositor/scoped_animation_duration_scale_mode.h"
 #include "ui/display/test/display_manager_test_api.h"
 #include "ui/events/event_constants.h"
@@ -82,12 +70,7 @@
 #include "ui/gfx/geometry/point.h"
 #include "ui/gfx/geometry/point_conversions.h"
 #include "ui/gfx/geometry/rect.h"
-#include "ui/gfx/geometry/rounded_corners_f.h"
-#include "ui/gfx/geometry/size_conversions.h"
 #include "ui/gfx/geometry/vector2d.h"
-#include "ui/gfx/image/image_skia.h"
-#include "ui/gfx/image/image_unittest_util.h"
-#include "ui/gfx/paint_vector_icon.h"
 #include "ui/views/widget/widget.h"
 #include "ui/wm/core/window_modality_controller.h"
 #include "ui/wm/core/window_util.h"
@@ -97,7 +80,7 @@
 
 namespace {
 
-using ::ui::mojom::CursorType;
+using ui::mojom::CursorType;
 
 using WindowCyclingDirection = WindowCycleController::WindowCyclingDirection;
 
@@ -120,49 +103,6 @@
   return display::Screen::GetScreen()->GetPrimaryDisplay().work_area();
 }
 
-IconButton* kebab_button() {
-  SplitViewDividerView* divider_view =
-      split_view_divider()->divider_view_for_testing();
-  CHECK(divider_view);
-  return divider_view->kebab_button_for_testing();
-}
-
-views::Widget* snap_group_expanded_menu_widget() {
-  SplitViewDividerView* divider_view =
-      split_view_divider()->divider_view_for_testing();
-  CHECK(divider_view);
-  return divider_view->snap_group_expanded_menu_widget_for_testing();
-}
-
-SnapGroupExpandedMenuView* snap_group_expanded_menu_view() {
-  SplitViewDividerView* divider_view =
-      split_view_divider()->divider_view_for_testing();
-  CHECK(divider_view);
-  return divider_view->snap_group_expanded_menu_view_for_testing();
-}
-
-IconButton* swap_windows_button() {
-  DCHECK(snap_group_expanded_menu_view());
-  return snap_group_expanded_menu_view()->swap_windows_button_for_testing();
-}
-
-IconButton* update_primary_window_button() {
-  DCHECK(snap_group_expanded_menu_view());
-  return snap_group_expanded_menu_view()
-      ->update_primary_window_button_for_testing();
-}
-
-IconButton* update_secondary_window_button() {
-  DCHECK(snap_group_expanded_menu_view());
-  return snap_group_expanded_menu_view()
-      ->update_secondary_window_button_for_testing();
-}
-
-IconButton* unlock_button() {
-  DCHECK(snap_group_expanded_menu_view());
-  return snap_group_expanded_menu_view()->unlock_button_for_testing();
-}
-
 void SwitchToTabletMode() {
   TabletModeControllerTestApi test_api;
   test_api.DetachAllMice();
@@ -173,13 +113,6 @@
   TabletModeControllerTestApi().LeaveTabletMode();
 }
 
-void WaitForSeconds(int seconds) {
-  base::RunLoop loop;
-  base::SingleThreadTaskRunner::GetCurrentDefault()->PostDelayedTask(
-      FROM_HERE, loop.QuitClosure(), base::Seconds(seconds));
-  loop.Run();
-}
-
 gfx::Rect GetOverviewGridBounds() {
   OverviewSession* overview_session = GetOverviewSession();
   if (!overview_session) {
@@ -908,22 +841,14 @@
 // -----------------------------------------------------------------------------
 // SnapGroupTest:
 
-// Test fixture to verify the fundamental snap group feature.
-
+// A test fixture to test the snap group feature.
 class SnapGroupTest : public AshTestBase {
  public:
   SnapGroupTest() {
-    // Temporarily disable the `AutomaticLockGroup` feature params(enable by
-    // default), as the param is true by default.
-    // TODO(michelefan@): Change it back to
-    // `scoped_feature_list_.InitAndEnableFeature(features::kSnapGroup)` when
-    // do the refactor work for the snap group unit tests.
-    scoped_feature_list_.InitWithFeaturesAndParameters(
-        {{features::kSnapGroup, {{"AutomaticLockGroup", "false"}}},
-         {chromeos::features::kJellyroll, {}},
-         {chromeos::features::kJelly, {}},
-         {features::kSameAppWindowCycle, {}}},
-        {});
+    scoped_feature_list_.InitWithFeatures(/*enabled_features=*/
+                                          {features::kSnapGroup,
+                                           features::kSameAppWindowCycle},
+                                          /*disabled_features=*/{});
   }
   SnapGroupTest(const SnapGroupTest&) = delete;
   SnapGroupTest& operator=(const SnapGroupTest&) = delete;
@@ -932,10 +857,6 @@
   // AshTestBase:
   void SetUp() override {
     AshTestBase::SetUp();
-    WorkspaceEventHandler* event_handler =
-        WorkspaceControllerTestApi(ShellTestApi().workspace_controller())
-            .GetEventHandler();
-    resize_controller_ = event_handler->multi_window_resize_controller();
     WindowCycleList::SetDisableInitialDelayForTesting(true);
   }
 
@@ -951,198 +872,9 @@
     EXPECT_EQ(state_type, window_state->GetStateType());
   }
 
-  // Verifies that the icon image and the tooltip of the lock button reflect the
-  // `locked` or `unlocked` state.
-  void VerifyLockButton(bool locked, IconButton* lock_button) {
-    const SkColor color =
-        lock_button->GetColorProvider()->GetColor(kColorAshIconColorPrimary);
-    const gfx::ImageSkia locked_icon_image =
-        gfx::CreateVectorIcon(kLockScreenEasyUnlockCloseIcon, color);
-    const gfx::ImageSkia unlocked_icon_image =
-        gfx::CreateVectorIcon(kLockScreenEasyUnlockOpenIcon, color);
-    const SkBitmap* expected_icon =
-        locked ? unlocked_icon_image.bitmap() : locked_icon_image.bitmap();
-    const SkBitmap* actual_icon =
-        lock_button->GetImage(views::ImageButton::ButtonState::STATE_NORMAL)
-            .bitmap();
-    EXPECT_TRUE(gfx::test::AreBitmapsEqual(*actual_icon, *expected_icon));
-
-    const auto expected_tooltip_string = l10n_util::GetStringUTF16(
-        locked ? IDS_ASH_SNAP_GROUP_CLICK_TO_UNLOCK_WINDOWS
-               : IDS_ASH_SNAP_GROUP_CLICK_TO_LOCK_WINDOWS);
-    EXPECT_EQ(lock_button->GetTooltipText(), expected_tooltip_string);
-  }
-
-  // Verifies that the given two windows can be locked properly and the tooltip
-  // is updated accordingly.
-  void PressLockWidgetToLockTwoWindows(aura::Window* window1,
-                                       aura::Window* window2) {
-    auto* snap_group_controller = SnapGroupController::Get();
-    ASSERT_TRUE(snap_group_controller);
-    EXPECT_TRUE(snap_group_controller->snap_groups_for_testing().empty());
-    EXPECT_TRUE(
-        snap_group_controller->window_to_snap_group_map_for_testing().empty());
-    EXPECT_FALSE(
-        snap_group_controller->AreWindowsInSnapGroup(window1, window2));
-
-    auto* event_generator = GetEventGenerator();
-    auto hover_location = window1->bounds().right_center();
-    event_generator->MoveMouseTo(hover_location);
-    auto* timer = GetShowTimer();
-    EXPECT_TRUE(timer->IsRunning());
-    EXPECT_TRUE(IsShowing());
-    timer->FireNow();
-    EXPECT_TRUE(GetLockWidget());
-    VerifyLockButton(/*locked=*/false,
-                     resize_controller()->lock_button_for_testing());
-
-    gfx::Rect lock_widget_bounds(GetLockWidget()->GetWindowBoundsInScreen());
-    hover_location = lock_widget_bounds.CenterPoint();
-    event_generator->MoveMouseTo(hover_location);
-    EXPECT_TRUE(GetLockWidget());
-    event_generator->ClickLeftButton();
-    EXPECT_TRUE(snap_group_controller->AreWindowsInSnapGroup(window1, window2));
-    EXPECT_TRUE(split_view_controller()->split_view_divider());
-  }
-
-  views::Widget* GetLockWidget() const {
-    DCHECK(resize_controller_);
-    return resize_controller_->lock_widget_.get();
-  }
-
-  views::Widget* GetResizeWidget() const {
-    DCHECK(resize_controller_);
-    return resize_controller_->resize_widget_.get();
-  }
-
-  base::OneShotTimer* GetShowTimer() const {
-    DCHECK(resize_controller_);
-    return &resize_controller_->show_timer_;
-  }
-
-  bool IsShowing() const {
-    DCHECK(resize_controller_);
-    return resize_controller_->IsShowing();
-  }
-
-  MultiWindowResizeController* resize_controller() const {
-    return resize_controller_;
-  }
-
- private:
-  base::test::ScopedFeatureList scoped_feature_list_;
-  raw_ptr<MultiWindowResizeController, DanglingUntriaged | ExperimentalAsh>
-      resize_controller_;
-};
-
-// Tests that the corresponding snap group will be created when calling
-// `AddSnapGroup` and removed when calling `RemoveSnapGroup`.
-TEST_F(SnapGroupTest, AddAndRemoveSnapGroupTest) {
-  auto* snap_group_controller = SnapGroupController::Get();
-  const auto& snap_groups = snap_group_controller->snap_groups_for_testing();
-  const auto& window_to_snap_group_map =
-      snap_group_controller->window_to_snap_group_map_for_testing();
-  EXPECT_EQ(snap_groups.size(), 0u);
-  EXPECT_EQ(window_to_snap_group_map.size(), 0u);
-
-  std::unique_ptr<aura::Window> w1(CreateTestWindow());
-  std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  std::unique_ptr<aura::Window> w3(CreateTestWindow());
-
-  SnapOneTestWindow(w1.get(), chromeos::WindowStateType::kPrimarySnapped);
-  SnapOneTestWindow(w2.get(), chromeos::WindowStateType::kSecondarySnapped);
-  ASSERT_TRUE(snap_group_controller->AddSnapGroup(w1.get(), w2.get()));
-  ASSERT_FALSE(snap_group_controller->AddSnapGroup(w1.get(), w3.get()));
-
-  EXPECT_EQ(snap_groups.size(), 1u);
-  EXPECT_EQ(window_to_snap_group_map.size(), 2u);
-  const auto iter1 = window_to_snap_group_map.find(w1.get());
-  ASSERT_TRUE(iter1 != window_to_snap_group_map.end());
-  const auto iter2 = window_to_snap_group_map.find(w2.get());
-  ASSERT_TRUE(iter2 != window_to_snap_group_map.end());
-  auto* snap_group = snap_groups.back().get();
-  EXPECT_EQ(iter1->second, snap_group);
-  EXPECT_EQ(iter2->second, snap_group);
-
-  ASSERT_TRUE(snap_group_controller->RemoveSnapGroup(snap_group));
-  ASSERT_TRUE(snap_groups.empty());
-  ASSERT_TRUE(window_to_snap_group_map.empty());
-}
-
-// Tests that the corresponding snap group will be removed when one of the
-// windows in the snap group gets destroyed.
-TEST_F(SnapGroupTest, WindowDestroyTest) {
-  std::unique_ptr<aura::Window> w1(CreateTestWindow());
-  std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  SnapOneTestWindow(w1.get(), chromeos::WindowStateType::kPrimarySnapped);
-  SnapOneTestWindow(w2.get(), chromeos::WindowStateType::kSecondarySnapped);
-  auto* snap_group_controller = SnapGroupController::Get();
-  ASSERT_TRUE(snap_group_controller->AddSnapGroup(w1.get(), w2.get()));
-  const auto& snap_groups = snap_group_controller->snap_groups_for_testing();
-  const auto& window_to_snap_group_map =
-      snap_group_controller->window_to_snap_group_map_for_testing();
-  EXPECT_EQ(snap_groups.size(), 1u);
-  EXPECT_EQ(window_to_snap_group_map.size(), 2u);
-
-  // Destroy one window in the snap group and the entire snap group will be
-  // removed.
-  w1.reset();
-  EXPECT_TRUE(snap_groups.empty());
-  EXPECT_TRUE(window_to_snap_group_map.empty());
-}
-
-// Tests that if one window in the snap group is actiaved, the stacking order of
-// the other window in the snap group will be updated to be right below the
-// activated window i.e. the two windows in the snap group will be placed on
-// top.
-TEST_F(SnapGroupTest, WindowActivationTest) {
-  std::unique_ptr<aura::Window> w1(CreateTestWindow());
-  std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  std::unique_ptr<aura::Window> w3(CreateTestWindow());
-
-  SnapOneTestWindow(w1.get(), chromeos::WindowStateType::kPrimarySnapped);
-  SnapOneTestWindow(w2.get(), chromeos::WindowStateType::kSecondarySnapped);
-  auto* snap_group_controller = SnapGroupController::Get();
-  ASSERT_TRUE(snap_group_controller->AddSnapGroup(w1.get(), w2.get()));
-
-  wm::ActivateWindow(w3.get());
-
-  // Actiave one of the windows in the snap group.
-  wm::ActivateWindow(w1.get());
-
-  MruWindowTracker::WindowList window_list =
-      Shell::Get()->mru_window_tracker()->BuildMruWindowList(kActiveDesk);
-  EXPECT_EQ(std::vector<aura::Window*>({w1.get(), w3.get(), w2.get()}),
-            window_list);
-
-  // `w3` is stacked below `w2` even though the activation order of `w3` is
-  // before `w2`.
-  // TODO(michelefan): Keep an eye out for changes in the activation logic and
-  // update this test if needed in future.
-  EXPECT_TRUE(window_util::IsStackedBelow(w3.get(), w2.get()));
-}
-
-// -----------------------------------------------------------------------------
-// SnapGroupEntryPointArm1Test:
-
-// A test fixture that tests the snap group entry point arm 1 which will create
-// a snap group automatically when two windows are snapped. This entry point is
-// guarded by the feature flag `kSnapGroup` and will only be enabled when the
-// feature param `kAutomaticallyLockGroup` is true.
-class SnapGroupEntryPointArm1Test : public SnapGroupTest {
- public:
-  SnapGroupEntryPointArm1Test() {
-    scoped_feature_list_.InitAndEnableFeatureWithParameters(
-        features::kSnapGroup, {{"AutomaticLockGroup", "true"}});
-  }
-  SnapGroupEntryPointArm1Test(const SnapGroupEntryPointArm1Test&) = delete;
-  SnapGroupEntryPointArm1Test& operator=(const SnapGroupEntryPointArm1Test&) =
-      delete;
-  ~SnapGroupEntryPointArm1Test() override = default;
-
-  void SnapTwoTestWindowsInArm1(aura::Window* window1,
-                                aura::Window* window2,
-                                bool horizontal = true) {
+  void SnapTwoTestWindows(aura::Window* window1,
+                          aura::Window* window2,
+                          bool horizontal = true) {
     CHECK_NE(window1, window2);
     if (horizontal) {
       UpdateDisplay("800x600");
@@ -1188,9 +920,8 @@
     EXPECT_EQ(split_view_controller()->state(),
               SplitViewController::State::kBothSnapped);
 
-    // The split view divider and kebab button will show on two windows snapped.
+    // The split view divider will show on two windows snapped.
     EXPECT_TRUE(split_view_divider());
-    EXPECT_TRUE(kebab_button());
     EXPECT_EQ(0.5f, *WindowState::Get(window1)->snap_ratio());
     EXPECT_EQ(0.5f, *WindowState::Get(window2)->snap_ratio());
 
@@ -1219,59 +950,6 @@
     return union_bounds == work_area_bounds();
   }
 
-  void ClickKebabButtonToShowExpandedMenu() {
-    LeftClickOn(kebab_button());
-    EXPECT_TRUE(snap_group_expanded_menu_widget());
-    EXPECT_TRUE(snap_group_expanded_menu_view());
-  }
-
-  // Clicks on the swap windows button in the expanded menu and verify that the
-  // windows are swapped to their oppsite position together with updating their
-  // bounds. After the swap operation is completed, the union bounds of the
-  // windows and split view divider will be equal to the work area bounds.
-  void ClickSwapWindowsButtonAndVerify() {
-    EXPECT_TRUE(snap_group_expanded_menu_widget());
-    EXPECT_TRUE(snap_group_expanded_menu_view());
-
-    auto* snap_group = SnapGroupController::Get()->GetTopmostSnapGroup();
-    CHECK(snap_group);
-    const auto* cached_primary_window = snap_group->window1();
-    const auto* cached_secondary_window = snap_group->window2();
-
-    IconButton* swap_button = swap_windows_button();
-    EXPECT_TRUE(swap_button);
-    LeftClickOn(swap_button);
-    auto* new_primary_window = snap_group->window1();
-    auto* new_secondary_window = snap_group->window2();
-    EXPECT_TRUE(SnapGroupController::Get()->AreWindowsInSnapGroup(
-        new_primary_window, new_secondary_window));
-    EXPECT_EQ(new_primary_window, cached_secondary_window);
-    EXPECT_EQ(new_secondary_window, cached_primary_window);
-    EXPECT_TRUE(UnionBoundsEqualToWorkAreaBounds(new_primary_window,
-                                                 new_secondary_window));
-  }
-
-  // Clicks on the unlock button in the expanded menu and verify that the two
-  // windows locked in the snap group will be unlocked. After the unlock windows
-  // operation, the windows bounds will be restored to make up for the
-  // previously occupied space by the split view divider so that there will be
-  // no gap between the components.
-  void ClickUnlockButtonAndVerify() {
-    EXPECT_TRUE(snap_group_expanded_menu_widget());
-    EXPECT_TRUE(snap_group_expanded_menu_view());
-    IconButton* unlock_button_on_menu = unlock_button();
-    VerifyLockButton(/*locked=*/true, unlock_button_on_menu);
-    EXPECT_TRUE(unlock_button);
-    auto* cached_primary_window = split_view_controller()->primary_window();
-    auto* cached_secondary_window = split_view_controller()->secondary_window();
-
-    LeftClickOn(unlock_button());
-    EXPECT_FALSE(SnapGroupController::Get()->AreWindowsInSnapGroup(
-        cached_primary_window, cached_secondary_window));
-    EXPECT_TRUE(UnionBoundsEqualToWorkAreaBounds(cached_primary_window,
-                                                 cached_secondary_window));
-  }
-
   void CompleteWindowCycling() {
     WindowCycleController* window_cycle_controller =
         Shell::Get()->window_cycle_controller();
@@ -1308,21 +986,102 @@
   base::test::ScopedFeatureList scoped_feature_list_;
 };
 
+// Tests that the creation and removal of snap group.
+TEST_F(SnapGroupTest, AddAndRemoveSnapGroupTest) {
+  auto* snap_group_controller = SnapGroupController::Get();
+  const auto& snap_groups = snap_group_controller->snap_groups_for_testing();
+  const auto& window_to_snap_group_map =
+      snap_group_controller->window_to_snap_group_map_for_testing();
+  EXPECT_EQ(snap_groups.size(), 0u);
+  EXPECT_EQ(window_to_snap_group_map.size(), 0u);
+
+  std::unique_ptr<aura::Window> w1(CreateTestWindow());
+  std::unique_ptr<aura::Window> w2(CreateTestWindow());
+  std::unique_ptr<aura::Window> w3(CreateTestWindow());
+
+  SnapTwoTestWindows(w1.get(), w2.get());
+  EXPECT_TRUE(snap_group_controller->AreWindowsInSnapGroup(w1.get(), w2.get()));
+  EXPECT_FALSE(snap_group_controller->AddSnapGroup(w1.get(), w3.get()));
+
+  EXPECT_EQ(snap_groups.size(), 1u);
+  EXPECT_EQ(window_to_snap_group_map.size(), 2u);
+  const auto iter1 = window_to_snap_group_map.find(w1.get());
+  ASSERT_TRUE(iter1 != window_to_snap_group_map.end());
+  const auto iter2 = window_to_snap_group_map.find(w2.get());
+  ASSERT_TRUE(iter2 != window_to_snap_group_map.end());
+  auto* snap_group = snap_groups.back().get();
+  EXPECT_EQ(iter1->second, snap_group);
+  EXPECT_EQ(iter2->second, snap_group);
+
+  ASSERT_TRUE(snap_group_controller->RemoveSnapGroup(snap_group));
+  ASSERT_TRUE(snap_groups.empty());
+  ASSERT_TRUE(window_to_snap_group_map.empty());
+}
+
+// Tests that the corresponding snap group will be removed when one of the
+// windows in the snap group gets destroyed.
+TEST_F(SnapGroupTest, WindowDestroyTest) {
+  std::unique_ptr<aura::Window> w1(CreateTestWindow());
+  std::unique_ptr<aura::Window> w2(CreateTestWindow());
+  SnapTwoTestWindows(w1.get(), w2.get());
+  SnapGroupController* snap_group_controller = SnapGroupController::Get();
+  ASSERT_TRUE(snap_group_controller->AreWindowsInSnapGroup(w1.get(), w2.get()));
+  const auto& snap_groups = snap_group_controller->snap_groups_for_testing();
+  const auto& window_to_snap_group_map =
+      snap_group_controller->window_to_snap_group_map_for_testing();
+  EXPECT_EQ(snap_groups.size(), 1u);
+  EXPECT_EQ(window_to_snap_group_map.size(), 2u);
+
+  // Destroy one window in the snap group and the entire snap group will be
+  // removed.
+  w1.reset();
+  EXPECT_TRUE(snap_groups.empty());
+  EXPECT_TRUE(window_to_snap_group_map.empty());
+}
+
+// Tests that if one window in the snap group is actiaved, the stacking order of
+// the other window in the snap group will be updated to be right below the
+// activated window i.e. the two windows in the snap group will be placed on
+// top.
+TEST_F(SnapGroupTest, WindowStackingOrderTest) {
+  std::unique_ptr<aura::Window> w1(CreateTestWindow());
+  std::unique_ptr<aura::Window> w2(CreateTestWindow());
+  std::unique_ptr<aura::Window> w3(CreateTestWindow());
+
+  SnapTwoTestWindows(w1.get(), w2.get());
+  ASSERT_TRUE(
+      SnapGroupController::Get()->AreWindowsInSnapGroup(w1.get(), w2.get()));
+
+  wm::ActivateWindow(w3.get());
+
+  // Actiave one of the windows in the snap group.
+  wm::ActivateWindow(w1.get());
+
+  MruWindowTracker::WindowList window_list =
+      Shell::Get()->mru_window_tracker()->BuildMruWindowList(kActiveDesk);
+  EXPECT_EQ(std::vector<aura::Window*>({w1.get(), w3.get(), w2.get()}),
+            window_list);
+
+  // `w3` is stacked below `w2` even though the activation order of `w3` is
+  // before `w2`.
+  EXPECT_TRUE(window_util::IsStackedBelow(w3.get(), w2.get()));
+}
+
 // Tests that on one window snapped in clamshell mode, the overview will be
 // shown on the other side of the screen. When activating a window in overview,
 // the window gets activated will be auto-snapped and the overview session will
 // end. Close one window will end the split view mode.
-TEST_F(SnapGroupEntryPointArm1Test, ClamshellSplitViewBasicFunctionalities) {
+TEST_F(SnapGroupTest, ClamshellSplitViewBasicFunctionalities) {
   std::unique_ptr<aura::Window> w1(CreateTestWindow());
   std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get());
+  SnapTwoTestWindows(w1.get(), w2.get());
   w1.reset();
   EXPECT_FALSE(split_view_controller()->InSplitViewMode());
 }
 
 // Tests that on one window snapped, `SnapGroupController` starts
 // `SplitViewOverviewSession` (snap group creation session).
-TEST_F(SnapGroupEntryPointArm1Test, SnapOneTestWindowStartsOverview) {
+TEST_F(SnapGroupTest, SnapOneTestWindowStartsOverview) {
   std::unique_ptr<aura::Window> w(CreateAppWindow());
   // Snap `w` to the left. Test that we are in split view overview, excluding
   // `w` and taking half the screen.
@@ -1348,7 +1107,7 @@
 
 // Tests that when there is one snapped window and overview open, creating a new
 // window, i.e. by clicking the shelf icon, will auto-snap it.
-TEST_F(SnapGroupEntryPointArm1Test, AutoSnapNewWindow) {
+TEST_F(SnapGroupTest, AutoSnapNewWindow) {
   // Snap `w1` to start split view overview session.
   std::unique_ptr<aura::Window> w1(CreateAppWindow());
   SnapOneTestWindow(w1.get(),
@@ -1378,10 +1137,10 @@
       SnapGroupController::Get()->AreWindowsInSnapGroup(w1.get(), w2.get()));
 }
 
-TEST_F(SnapGroupEntryPointArm1Test, DoubleTapDivider) {
+TEST_F(SnapGroupTest, DoubleTapDivider) {
   std::unique_ptr<aura::Window> w1(CreateTestWindow());
   std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get());
+  SnapTwoTestWindows(w1.get(), w2.get());
   auto* snap_group = SnapGroupController::Get()->GetTopmostSnapGroup();
   EXPECT_TRUE(snap_group);
   const auto* cached_primary_window = snap_group->window1();
@@ -1414,7 +1173,7 @@
 
 // Tests that removing a display during split view overview session doesn't
 // crash.
-TEST_F(SnapGroupEntryPointArm1Test, RemoveDisplay) {
+TEST_F(SnapGroupTest, RemoveDisplay) {
   UpdateDisplay("800x600,800x600");
   display::test::DisplayManagerTestApi display_manager_test(display_manager());
 
@@ -1440,10 +1199,10 @@
 
 // Tests the snap ratio is updated correctly when resizing the windows in a snap
 // group with the split view divider.
-TEST_F(SnapGroupEntryPointArm1Test, SnapRatioTest) {
+TEST_F(SnapGroupTest, SnapRatioTest) {
   std::unique_ptr<aura::Window> w1(CreateTestWindow());
   std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get());
+  SnapTwoTestWindows(w1.get(), w2.get());
 
   const gfx::Point hover_location =
       split_view_divider_bounds_in_screen().CenterPoint();
@@ -1461,11 +1220,10 @@
 
 // Tests that the windows in a snap group can be resized to an arbitrary
 // location with the split view divider.
-TEST_F(SnapGroupEntryPointArm1Test,
-       ResizeWithSplitViewDividerToArbitraryLocations) {
+TEST_F(SnapGroupTest, ResizeWithSplitViewDividerToArbitraryLocations) {
   std::unique_ptr<aura::Window> w1(CreateTestWindow());
   std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get());
+  SnapTwoTestWindows(w1.get(), w2.get());
   for (const int distance_delta : {-10, 6, -15}) {
     const auto w1_cached_bounds = w1.get()->GetBoundsInScreen();
     const auto w2_cached_bounds = w2.get()->GetBoundsInScreen();
@@ -1492,10 +1250,10 @@
 // overview session will not be triggered. The Overview session will be
 // triggered when the snapped window is being snapped to the other snapped
 // state.
-TEST_F(SnapGroupEntryPointArm1Test, TwoWindowsSnappedTest) {
+TEST_F(SnapGroupTest, TwoWindowsSnappedTest) {
   std::unique_ptr<aura::Window> w1(CreateTestWindow());
   std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get());
+  SnapTwoTestWindows(w1.get(), w2.get());
 
   // Snap the primary window again as the primary window, the overview session
   // won't be triggered.
@@ -1524,12 +1282,12 @@
 }
 
 // Tests that there is no crash when work area changed after snapping two
-// windows with arm1. Docked mananifier is used as an example to trigger the
-// work area change.
-TEST_F(SnapGroupEntryPointArm1Test, WorkAreaChangeTest) {
+// windows. Docked mananifier is used as an example to trigger the work area
+// change.
+TEST_F(SnapGroupTest, WorkAreaChangeTest) {
   std::unique_ptr<aura::Window> w1(CreateTestWindow());
   std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get());
+  SnapTwoTestWindows(w1.get(), w2.get());
   auto* docked_mangnifier_controller =
       Shell::Get()->docked_magnifier_controller();
   docked_mangnifier_controller->SetEnabled(/*enabled=*/true);
@@ -1539,8 +1297,7 @@
 // automatically created on two windows snapped in the clamshell mode. The snap
 // group will be removed together with the split view divider on destroying of
 // one window in the snap group.
-TEST_F(SnapGroupEntryPointArm1Test,
-       AutomaticallyCreateGroupOnTwoWindowsSnappedInClamshell) {
+TEST_F(SnapGroupTest, AutomaticallyCreateGroupOnTwoWindowsSnappedInClamshell) {
   auto* snap_group_controller = SnapGroupController::Get();
   ASSERT_TRUE(snap_group_controller);
   const auto& snap_groups = snap_group_controller->snap_groups_for_testing();
@@ -1551,7 +1308,7 @@
 
   std::unique_ptr<aura::Window> w1(CreateTestWindow());
   std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get());
+  SnapTwoTestWindows(w1.get(), w2.get());
   EXPECT_EQ(snap_groups.size(), 1u);
   EXPECT_EQ(window_to_snap_group_map.size(), 2u);
 
@@ -1568,9 +1325,9 @@
 // Tests that, after a window is snapped with overview on the other side,
 // resizing overview works as expected.
 // TODO(b/308170967): Combine this with FasterSplitScreenTest.
-TEST_F(SnapGroupEntryPointArm1Test, ResizeSplitViewOverviewAndWindow) {
+TEST_F(SnapGroupTest, ResizeSplitViewOverviewAndWindow) {
   auto* snap_group_controller = SnapGroupController::Get();
-  // TODO(sophiewen): Make this the default for SnapGroupEntryPointArm1Test.
+  // TODO(sophiewen): Make this the default for SnapGroupTest.
   snap_group_controller->set_can_enter_overview_for_testing(
       /*can_enter_overview=*/true);
 
@@ -1606,10 +1363,10 @@
 // Tests that the split view divider will be stacked on top of both windows in
 // the snap group and that on a third window activated the split view divider
 // will be stacked below the newly activated window.
-TEST_F(SnapGroupEntryPointArm1Test, DividerStackingOrderTest) {
+TEST_F(SnapGroupTest, DividerStackingOrderTest) {
   std::unique_ptr<aura::Window> w1(CreateTestWindow());
   std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get());
+  SnapTwoTestWindows(w1.get(), w2.get());
   wm::ActivateWindow(w1.get());
 
   SplitViewDivider* divider = split_view_divider();
@@ -1633,10 +1390,10 @@
 
 // Tests that divider will be closely tied to the windows in a snap group, which
 // will also apply on transient window added.
-TEST_F(SnapGroupEntryPointArm1Test, DividerStackingOrderWithTransientWindow) {
+TEST_F(SnapGroupTest, DividerStackingOrderWithTransientWindow) {
   std::unique_ptr<aura::Window> w1(CreateTestWindow());
   std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get());
+  SnapTwoTestWindows(w1.get(), w2.get());
   wm::ActivateWindow(w1.get());
 
   SplitViewDivider* divider = split_view_divider();
@@ -1657,11 +1414,10 @@
 // Tests the overall stacking order with two transient windows each of which
 // belongs to a window in snap group is expected. The tests is to verify the
 // transient windows issue showed in http://b/297448600#comment2.
-TEST_F(SnapGroupEntryPointArm1Test,
-       DividerStackingOrderWithTwoTransientWindows) {
+TEST_F(SnapGroupTest, DividerStackingOrderWithTwoTransientWindows) {
   std::unique_ptr<aura::Window> w1(CreateTestWindow());
   std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get());
+  SnapTwoTestWindows(w1.get(), w2.get());
 
   SplitViewDivider* divider = split_view_divider();
   ASSERT_TRUE(divider);
@@ -1704,23 +1460,23 @@
 // Tests that the union bounds of the primary window, secondary window in a snap
 // group and the split view divider will be equal to the work area bounds both
 // in horizontal and vertical split view mode.
-TEST_F(SnapGroupEntryPointArm1Test, SplitViewDividerBoundsTest) {
+TEST_F(SnapGroupTest, SplitViewDividerBoundsTest) {
   for (const auto is_display_horizontal_layout : {true, false}) {
     // Need to explicitly create two windows otherwise to snap a snapped window
     // on the same position won't trigger the overview session.
     std::unique_ptr<aura::Window> w1(CreateTestWindow());
     std::unique_ptr<aura::Window> w2(CreateTestWindow());
-    SnapTwoTestWindowsInArm1(w1.get(), w2.get(), is_display_horizontal_layout);
+    SnapTwoTestWindows(w1.get(), w2.get(), is_display_horizontal_layout);
     EXPECT_TRUE(UnionBoundsEqualToWorkAreaBounds(w1.get(), w2.get()));
   }
 }
 
-TEST_F(SnapGroupEntryPointArm1Test, OverviewEnterExitBasic) {
+TEST_F(SnapGroupTest, OverviewEnterExitBasic) {
   UpdateDisplay("800x600");
 
   std::unique_ptr<aura::Window> w1(CreateTestWindow());
   std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get(), /*horizontal=*/true);
+  SnapTwoTestWindows(w1.get(), w2.get(), /*horizontal=*/true);
 
   // Verify that full overview session is expected when starting overview from
   // accelerator and that split view divider will not be available.
@@ -1750,7 +1506,7 @@
 
 // Tests that partial overview is shown on the other side of the screen on one
 // window snapped.
-TEST_F(SnapGroupEntryPointArm1Test, PartialOverview) {
+TEST_F(SnapGroupTest, PartialOverview) {
   UpdateDisplay("800x600");
   std::unique_ptr<aura::Window> w1(CreateTestWindow());
   std::unique_ptr<aura::Window> w2(CreateTestWindow());
@@ -1770,11 +1526,11 @@
 
 // Tests that the group item will be created properly and that the snap group
 // will be represented as one group item in overview.
-TEST_F(SnapGroupEntryPointArm1Test, OverviewGroupItemCreationBasic) {
+TEST_F(SnapGroupTest, OverviewGroupItemCreationBasic) {
   std::unique_ptr<aura::Window> w1(CreateAppWindow());
   std::unique_ptr<aura::Window> w2(CreateAppWindow());
   std::unique_ptr<aura::Window> w3(CreateAppWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get());
+  SnapTwoTestWindows(w1.get(), w2.get());
 
   OverviewController* overview_controller = OverviewController::Get();
   overview_controller->StartOverview(OverviewStartAction::kTests);
@@ -1791,11 +1547,11 @@
 // the overview group item will only host the other window. If both of the
 // windows get destroyed, the corresponding overview group item will be removed
 // from the overview grid.
-TEST_F(SnapGroupEntryPointArm1Test, WindowDestructionInOverview) {
+TEST_F(SnapGroupTest, WindowDestructionInOverview) {
   std::unique_ptr<aura::Window> w1(CreateAppWindow());
   std::unique_ptr<aura::Window> w2(CreateAppWindow());
   std::unique_ptr<aura::Window> w3(CreateAppWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get());
+  SnapTwoTestWindows(w1.get(), w2.get());
 
   OverviewController* overview_controller = OverviewController::Get();
   overview_controller->StartOverview(OverviewStartAction::kTests);
@@ -1823,12 +1579,11 @@
 // Tests that the rounded corners of the remaining item in the snap group on
 // window destruction will be refreshed so that the exposed corners will be
 // rounded corners.
-TEST_F(SnapGroupEntryPointArm1Test,
-       RefreshVisualsOnWindowDestructionInOverview) {
+TEST_F(SnapGroupTest, RefreshVisualsOnWindowDestructionInOverview) {
   std::unique_ptr<aura::Window> w1(CreateAppWindow());
   std::unique_ptr<aura::Window> w2(CreateAppWindow());
   std::unique_ptr<aura::Window> w3(CreateAppWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get());
+  SnapTwoTestWindows(w1.get(), w2.get());
 
   OverviewController* overview_controller = OverviewController::Get();
   overview_controller->StartOverview(OverviewStartAction::kTests);
@@ -1860,10 +1615,10 @@
 
 // Tests that the individual items within the same group will be hosted by the
 // same overview group item.
-TEST_F(SnapGroupEntryPointArm1Test, OverviewItemTest) {
+TEST_F(SnapGroupTest, OverviewItemTest) {
   std::unique_ptr<aura::Window> w1(CreateAppWindow());
   std::unique_ptr<aura::Window> w2(CreateAppWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get());
+  SnapTwoTestWindows(w1.get(), w2.get());
 
   OverviewController* overview_controller = OverviewController::Get();
   overview_controller->StartOverview(OverviewStartAction::kTests);
@@ -1876,14 +1631,14 @@
 
 // Tests that the overview group item will be closed when focused in overview
 // with `Ctrl + W`.
-TEST_F(SnapGroupEntryPointArm1Test, CtrlPlusWToCloseFocusedGroupInOverview) {
+TEST_F(SnapGroupTest, CtrlPlusWToCloseFocusedGroupInOverview) {
   // Explicitly enable immediate close so that we can directly close the
   // window(s) without waiting the delayed task to be completed in
   // `ScopedOverviewTransformWindow::Close()`.
   ScopedOverviewTransformWindow::SetImmediateCloseForTests(/*immediate=*/true);
   std::unique_ptr<aura::Window> w0(CreateAppWindow());
   std::unique_ptr<aura::Window> w1(CreateAppWindow());
-  SnapTwoTestWindowsInArm1(w0.get(), w1.get());
+  SnapTwoTestWindows(w0.get(), w1.get());
 
   OverviewController* overview_controller = OverviewController::Get();
   overview_controller->StartOverview(OverviewStartAction::kTests,
@@ -1908,10 +1663,10 @@
 
 // Tests that the minimized windows in a snap group will be shown as a single
 // group item in overview.
-TEST_F(SnapGroupEntryPointArm1Test, MinimizedSnapGroupInOverview) {
+TEST_F(SnapGroupTest, MinimizedSnapGroupInOverview) {
   std::unique_ptr<aura::Window> w1(CreateAppWindow());
   std::unique_ptr<aura::Window> w2(CreateAppWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get());
+  SnapTwoTestWindows(w1.get(), w2.get());
 
   SnapGroupController::Get()->MinimizeTopMostSnapGroup();
 
@@ -1927,10 +1682,10 @@
 
 // Tests that the bounds on the overview group item as well as the individual
 // overview item hosted by the group item will be set correctly.
-TEST_F(SnapGroupEntryPointArm1Test, OverviewItemBoundsTest) {
+TEST_F(SnapGroupTest, OverviewItemBoundsTest) {
   std::unique_ptr<aura::Window> w1(CreateAppWindow());
   std::unique_ptr<aura::Window> w2(CreateAppWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get());
+  SnapTwoTestWindows(w1.get(), w2.get());
   ASSERT_TRUE(wm::IsActiveWindow(w2.get()));
 
   OverviewController* overview_controller = OverviewController::Get();
@@ -1955,11 +1710,11 @@
 
 // Tests the rounded corners will be applied to the exposed corners of the
 // overview group item.
-TEST_F(SnapGroupEntryPointArm1Test, OverviewGroupItemRoundedCorners) {
+TEST_F(SnapGroupTest, OverviewGroupItemRoundedCorners) {
   std::unique_ptr<aura::Window> window0 = CreateAppWindow();
   std::unique_ptr<aura::Window> window1 = CreateAppWindow();
   std::unique_ptr<aura::Window> window2 = CreateAppWindow(gfx::Rect(100, 100));
-  SnapTwoTestWindowsInArm1(window0.get(), window1.get());
+  SnapTwoTestWindows(window0.get(), window1.get());
 
   OverviewController* overview_controller = OverviewController::Get();
   overview_controller->StartOverview(OverviewStartAction::kTests,
@@ -1979,12 +1734,11 @@
 
 // Tests the rounded corners will be applied to the exposed corners of the
 // overview group item if the corresponding snap group is minimized.
-TEST_F(SnapGroupEntryPointArm1Test,
-       MinimizedSnapGroupRoundedCornersInOverview) {
+TEST_F(SnapGroupTest, MinimizedSnapGroupRoundedCornersInOverview) {
   std::unique_ptr<aura::Window> w0(CreateAppWindow());
   std::unique_ptr<aura::Window> w1(CreateAppWindow());
   std::unique_ptr<aura::Window> w2(CreateAppWindow(gfx::Rect(100, 100)));
-  SnapTwoTestWindowsInArm1(w0.get(), w1.get());
+  SnapTwoTestWindows(w0.get(), w1.get());
 
   SnapGroupController::Get()->MinimizeTopMostSnapGroup();
 
@@ -2006,11 +1760,11 @@
 
 // Tests that the shadow for the group item in overview will be applied on the
 // group-level.
-TEST_F(SnapGroupEntryPointArm1Test, OverviewGroupItemShadow) {
+TEST_F(SnapGroupTest, OverviewGroupItemShadow) {
   std::unique_ptr<aura::Window> w0(CreateAppWindow());
   std::unique_ptr<aura::Window> w1(CreateAppWindow());
   std::unique_ptr<aura::Window> w2(CreateAppWindow(gfx::Rect(100, 100)));
-  SnapTwoTestWindowsInArm1(w0.get(), w1.get());
+  SnapTwoTestWindows(w0.get(), w1.get());
 
   OverviewController* overview_controller = OverviewController::Get();
   overview_controller->StartOverview(OverviewStartAction::kTests,
@@ -2039,11 +1793,10 @@
 // Tests that when one of the windows in the snap group gets destroyed in
 // overview the shadow contents bounds on the remaining item get updated
 // correctly.
-TEST_F(SnapGroupEntryPointArm1Test,
-       CorrectShadowBoundsOnRemainingItemInOverview) {
+TEST_F(SnapGroupTest, CorrectShadowBoundsOnRemainingItemInOverview) {
   std::unique_ptr<aura::Window> w0(CreateAppWindow());
   std::unique_ptr<aura::Window> w1(CreateAppWindow());
-  SnapTwoTestWindowsInArm1(w0.get(), w1.get());
+  SnapTwoTestWindows(w0.get(), w1.get());
 
   OverviewController* overview_controller = Shell::Get()->overview_controller();
   overview_controller->StartOverview(OverviewStartAction::kTests,
@@ -2069,11 +1822,11 @@
 
 // Tests the basic functionality of focus cycling in overview through tabbing,
 // the overview group item will be focused and activated as a group
-TEST_F(SnapGroupEntryPointArm1Test, OverviewGroupItemFocusCycling) {
+TEST_F(SnapGroupTest, OverviewGroupItemFocusCycling) {
   std::unique_ptr<aura::Window> window0 = CreateAppWindow();
   std::unique_ptr<aura::Window> window1 = CreateAppWindow();
   std::unique_ptr<aura::Window> window2 = CreateAppWindow(gfx::Rect(100, 100));
-  SnapTwoTestWindowsInArm1(window0.get(), window1.get());
+  SnapTwoTestWindows(window0.get(), window1.get());
   EXPECT_TRUE(window_util::IsStackedBelow(window0.get(), window1.get()));
 
   OverviewController* overview_controller = OverviewController::Get();
@@ -2118,10 +1871,10 @@
 // Tests the basic functionality of activating a group item in overview with
 // mouse or touch. Overview will exit upon mouse/touch release and the mru
 // window between the two windows in snap group will be the active window.
-TEST_F(SnapGroupEntryPointArm1Test, GroupItemActivation) {
+TEST_F(SnapGroupTest, GroupItemActivation) {
   std::unique_ptr<aura::Window> window0 = CreateAppWindow();
   std::unique_ptr<aura::Window> window1 = CreateAppWindow();
-  SnapTwoTestWindowsInArm1(window0.get(), window1.get());
+  SnapTwoTestWindows(window0.get(), window1.get());
   // Pre-check that `window1` is the active window between the windows in the
   // snap group.
   ASSERT_TRUE(wm::IsActiveWindow(window1.get()));
@@ -2165,7 +1918,7 @@
 // Tests the basic drag and drop functionality for overview group item with both
 // mouse and touch events. The group item will be dropped to its original
 // position before drag started.
-TEST_F(SnapGroupEntryPointArm1Test, DragAndDropBasic) {
+TEST_F(SnapGroupTest, DragAndDropBasic) {
   // Explicitly create another desk so that the virtual desk bar won't expand
   // from zero-state to expanded-state when dragging starts.
   auto* desks_controller = DesksController::Get();
@@ -2174,7 +1927,7 @@
 
   std::unique_ptr<aura::Window> window0 = CreateAppWindow();
   std::unique_ptr<aura::Window> window1 = CreateAppWindow();
-  SnapTwoTestWindowsInArm1(window0.get(), window1.get());
+  SnapTwoTestWindows(window0.get(), window1.get());
 
   OverviewController* overview_controller = OverviewController::Get();
   overview_controller->StartOverview(OverviewStartAction::kTests,
@@ -2208,14 +1961,14 @@
 
 // Tests that the bounds of the drop target for `OverviewGroupItem` will match
 // that of the corresponding item which the drop target is a placeholder for.
-TEST_F(SnapGroupEntryPointArm1Test, DropTargetBoundsForGroupItem) {
+TEST_F(SnapGroupTest, DropTargetBoundsForGroupItem) {
   auto* desks_controller = DesksController::Get();
   desks_controller->NewDesk(DesksCreationRemovalSource::kButton);
   ASSERT_EQ(2u, desks_controller->desks().size());
 
   std::unique_ptr<aura::Window> window0 = CreateAppWindow();
   std::unique_ptr<aura::Window> window1 = CreateAppWindow();
-  SnapTwoTestWindowsInArm1(window0.get(), window1.get());
+  SnapTwoTestWindows(window0.get(), window1.get());
 
   OverviewController* overview_controller = OverviewController::Get();
   overview_controller->StartOverview(OverviewStartAction::kTests,
@@ -2258,7 +2011,7 @@
 
 // Tests the stacking order of the overview group item should be above other
 // overview items while being dragged.
-TEST_F(SnapGroupEntryPointArm1Test, StackingOrderWhileDraggingInOverview) {
+TEST_F(SnapGroupTest, StackingOrderWhileDraggingInOverview) {
   auto* desks_controller = DesksController::Get();
   desks_controller->NewDesk(DesksCreationRemovalSource::kButton);
   ASSERT_EQ(2u, desks_controller->desks().size());
@@ -2266,7 +2019,7 @@
   std::unique_ptr<aura::Window> w0 = CreateAppWindow();
   std::unique_ptr<aura::Window> w1 = CreateAppWindow();
   std::unique_ptr<aura::Window> w2 = CreateAppWindow(gfx::Rect(100, 100));
-  SnapTwoTestWindowsInArm1(w0.get(), w1.get());
+  SnapTwoTestWindows(w0.get(), w1.get());
 
   OverviewController* overview_controller = OverviewController::Get();
   overview_controller->StartOverview(OverviewStartAction::kTests,
@@ -2321,14 +2074,14 @@
 // Tests that `OverviewGroupItem` is not snappable in overview when there are
 // two windows hosted by it however when one of the windows gets destroyed in
 // overview, the remaining item becomes snappable.
-TEST_F(SnapGroupEntryPointArm1Test, GroupItemSnapBehaviorInOverview) {
+TEST_F(SnapGroupTest, GroupItemSnapBehaviorInOverview) {
   auto* desks_controller = DesksController::Get();
   desks_controller->NewDesk(DesksCreationRemovalSource::kButton);
   ASSERT_EQ(2u, desks_controller->desks().size());
 
   std::unique_ptr<aura::Window> window0 = CreateAppWindow();
   std::unique_ptr<aura::Window> window1 = CreateAppWindow();
-  SnapTwoTestWindowsInArm1(window0.get(), window1.get());
+  SnapTwoTestWindows(window0.get(), window1.get());
 
   OverviewController* overview_controller = OverviewController::Get();
   overview_controller->StartOverview(OverviewStartAction::kTests,
@@ -2373,14 +2126,14 @@
 // from the original desk to another desk on drag complete and that the two
 // windows will still be in a snap group. The divider will show up in the
 // destination desk on target desk activated.
-TEST_F(SnapGroupEntryPointArm1Test, DragOverviewGroupItemToAnotherDesk) {
+TEST_F(SnapGroupTest, DragOverviewGroupItemToAnotherDesk) {
   auto* desks_controller = DesksController::Get();
   desks_controller->NewDesk(DesksCreationRemovalSource::kButton);
   ASSERT_EQ(2u, desks_controller->desks().size());
 
   std::unique_ptr<aura::Window> window0 = CreateAppWindow();
   std::unique_ptr<aura::Window> window1 = CreateAppWindow();
-  SnapTwoTestWindowsInArm1(window0.get(), window1.get());
+  SnapTwoTestWindows(window0.get(), window1.get());
 
   OverviewController* overview_controller = Shell::Get()->overview_controller();
   overview_controller->StartOverview(OverviewStartAction::kTests,
@@ -2425,10 +2178,10 @@
 
 // Tests that the hit area of the split view divider can be outside of its
 // bounds with the extra insets whose value is `kSplitViewDividerExtraInset`.
-TEST_F(SnapGroupEntryPointArm1Test, SplitViewDividerEnlargedHitArea) {
+TEST_F(SnapGroupTest, SplitViewDividerEnlargedHitArea) {
   std::unique_ptr<aura::Window> w1(CreateTestWindow());
   std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get(), /*horizontal=*/true);
+  SnapTwoTestWindows(w1.get(), w2.get(), /*horizontal=*/true);
 
   const gfx::Point cached_divider_center_point =
       split_view_divider_bounds_in_screen().CenterPoint();
@@ -2448,166 +2201,12 @@
             cached_divider_center_point + move_vector);
 }
 
-// Tests that the snap group expanded menu with four buttons will show on mouse
-// cliked on the kebab button and hide when clicking again.
-TEST_F(SnapGroupEntryPointArm1Test, ExpandedMenuViewTest) {
-  std::unique_ptr<aura::Window> w1(CreateTestWindow());
-  std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get(), /*horizontal=*/true);
-
-  LeftClickOn(kebab_button());
-  auto* event_generator = GetEventGenerator();
-  event_generator->ReleaseLeftButton();
-  EXPECT_TRUE(snap_group_expanded_menu_widget());
-  EXPECT_TRUE(snap_group_expanded_menu_view());
-  EXPECT_TRUE(swap_windows_button());
-  EXPECT_TRUE(update_primary_window_button());
-  EXPECT_TRUE(update_secondary_window_button());
-  EXPECT_TRUE(unlock_button());
-
-  event_generator->ClickLeftButton();
-  EXPECT_FALSE(snap_group_expanded_menu_widget());
-  EXPECT_FALSE(snap_group_expanded_menu_view());
-}
-
-// Tests that the windows in the snap group are been swapped to the opposite
-// position on toggling the swap windows button in the expanded menu together
-// with the window bounds update. This test also tests that after resizing the
-// two windows to an arbitrary position and swap the windows again, the windows
-// and their bounds will be updated correctly.
-TEST_F(SnapGroupEntryPointArm1Test, SwapWindowsButtonTest) {
-  std::unique_ptr<aura::Window> w1(CreateTestWindow());
-  std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get(), /*horizontal=*/true);
-
-  ClickKebabButtonToShowExpandedMenu();
-  ClickSwapWindowsButtonAndVerify();
-
-  auto* event_generator = GetEventGenerator();
-  const auto hover_location =
-      split_view_divider_bounds_in_screen().CenterPoint();
-  event_generator->MoveMouseTo(hover_location);
-  event_generator->MoveMouseTo(hover_location + gfx::Vector2d(50, 0));
-  EXPECT_TRUE(kebab_button());
-  ClickSwapWindowsButtonAndVerify();
-}
-
-// Tests the functionalities of the update primary window button and update
-// secondary window button in the expanded menu. On either of the update window
-// button toggled, the overview session will show on the other side of the
-// screen for user to choose an alternate window, during which time the split
-// view divider will hide.
-TEST_F(SnapGroupEntryPointArm1Test, UpdateWindowButtonTest) {
-  std::unique_ptr<aura::Window> w1(CreateTestWindow());
-  std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  std::unique_ptr<aura::Window> w3(CreateTestWindow());
-  std::unique_ptr<aura::Window> w4(CreateTestWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get(), /*horizontal=*/true);
-  ClickKebabButtonToShowExpandedMenu();
-
-  // Click on the `update_primary_button` and the overview session will show on
-  // the other side of the screen. The split view divider will hide.
-  IconButton* update_primary_button = update_primary_window_button();
-  ASSERT_TRUE(update_primary_button);
-  LeftClickOn(update_primary_button);
-  WaitForOverviewEnterAnimation();
-  EXPECT_TRUE(OverviewController::Get()->InOverviewSession());
-  EXPECT_NE(split_view_controller()->state(),
-            SplitViewController::State::kBothSnapped);
-  EXPECT_FALSE(split_view_divider());
-
-  // Upon selecting another item in the overview session, a new snap group will
-  // be formed.
-  auto* item3 = GetOverviewItemForWindow(w3.get());
-  auto* event_generator = GetEventGenerator();
-  event_generator->MoveMouseTo(
-      gfx::ToRoundedPoint(item3->GetTransformedBounds().CenterPoint()));
-  event_generator->ClickLeftButton();
-  WaitForOverviewExitAnimation();
-  EXPECT_FALSE(OverviewController::Get()->InOverviewSession());
-  EXPECT_EQ(split_view_controller()->state(),
-            SplitViewController::State::kBothSnapped);
-  EXPECT_TRUE(split_view_divider());
-  EXPECT_EQ(split_view_controller()->primary_window(), w3.get());
-  EXPECT_EQ(split_view_controller()->secondary_window(), w2.get());
-  SnapGroupController* snap_group_controller = SnapGroupController::Get();
-  EXPECT_TRUE(snap_group_controller->AreWindowsInSnapGroup(w3.get(), w2.get()));
-
-  // Similar as `update_secondary_button`. Click on the
-  // `update_secondary_button` and the overview session will show on the other
-  // side of the screen. The split view divider will hide.
-  ClickKebabButtonToShowExpandedMenu();
-  IconButton* update_secondary_button = update_secondary_window_button();
-  ASSERT_TRUE(update_secondary_button);
-  LeftClickOn(update_secondary_button);
-  WaitForOverviewEnterAnimation();
-  EXPECT_TRUE(OverviewController::Get()->InOverviewSession());
-  EXPECT_NE(split_view_controller()->state(),
-            SplitViewController::State::kBothSnapped);
-  EXPECT_FALSE(split_view_divider());
-
-  // Do another update for the snap group by selecting another candidate from
-  // the overview session and verify that the snap group has been updated.
-  auto* item4 = GetOverviewItemForWindow(w4.get());
-  event_generator->MoveMouseTo(
-      gfx::ToRoundedPoint(item4->GetTransformedBounds().CenterPoint()));
-  event_generator->ClickLeftButton();
-  WaitForOverviewExitAnimation();
-  EXPECT_FALSE(OverviewController::Get()->InOverviewSession());
-  EXPECT_EQ(split_view_controller()->state(),
-            SplitViewController::State::kBothSnapped);
-  EXPECT_TRUE(split_view_divider());
-  EXPECT_EQ(split_view_controller()->primary_window(), w3.get());
-  EXPECT_EQ(split_view_controller()->secondary_window(), w4.get());
-  EXPECT_TRUE(snap_group_controller->AreWindowsInSnapGroup(w3.get(), w4.get()));
-}
-
-// Tests that the two windows if locked in a snap group will be unlocked
-// together with bounds update by pressing on the unlock button in the expanded
-// menu. The lock button will then show on the shared edge of the two unlocked
-// windows on mouse hover. Two windows will be locked again by pressing on the
-// lock button.
-TEST_F(SnapGroupEntryPointArm1Test, UnlockAndRelockWindowsTest) {
-  std::unique_ptr<aura::Window> w1(CreateTestWindow());
-  std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get(), /*horizontal=*/true);
-  ClickKebabButtonToShowExpandedMenu();
-  ClickUnlockButtonAndVerify();
-
-  auto* event_generator = GetEventGenerator();
-  event_generator->MoveMouseTo(w1->GetBoundsInScreen().right_center());
-  auto* timer = GetShowTimer();
-  EXPECT_TRUE(timer);
-  EXPECT_TRUE(timer->IsRunning());
-  timer->FireNow();
-  EXPECT_TRUE(GetResizeWidget());
-  EXPECT_TRUE(GetLockWidget());
-  event_generator->MoveMouseTo(w1->GetBoundsInScreen().origin());
-  // Wait until multi-window resizer hides.
-  // TODO(michelefan): Add test APIs for multi-window resizer to wait until
-  // resizer widget hides.
-  WaitForSeconds(1);
-  PressLockWidgetToLockTwoWindows(w1.get(), w2.get());
-}
-
-// Tests that the windows bounds in the snap group are updated correctly with
-// union bounds always equal to the work area bounds after been swapped and
-// unlocked.
-TEST_F(SnapGroupEntryPointArm1Test, SwapWindowsAndUnlockTest) {
-  std::unique_ptr<aura::Window> w1(CreateTestWindow());
-  std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get(), /*horizontal=*/true);
-  ClickKebabButtonToShowExpandedMenu();
-  ClickSwapWindowsButtonAndVerify();
-  ClickUnlockButtonAndVerify();
-}
-
 // Tests that by toggling the keyboard shortcut 'Search + Shift + G', the two
 // snapped windows can be grouped or ungrouped.
-TEST_F(SnapGroupEntryPointArm1Test, UseShortcutToGroupUnGroupWindows) {
+TEST_F(SnapGroupTest, UseShortcutToGroupUnGroupWindows) {
   std::unique_ptr<aura::Window> w1(CreateAppWindow());
   std::unique_ptr<aura::Window> w2(CreateAppWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get(), /*horizontal=*/true);
+  SnapTwoTestWindows(w1.get(), w2.get(), /*horizontal=*/true);
   SnapGroupController* snap_group_controller = SnapGroupController::Get();
   EXPECT_TRUE(snap_group_controller->AreWindowsInSnapGroup(w1.get(), w2.get()));
 
@@ -2628,10 +2227,10 @@
 // Tests that the windows in snap group can be toggled between been minimized
 // and restored with the keyboard shortcut 'Search + Shift + D', the windows
 // will be remained in a snap group through these operations.
-TEST_F(SnapGroupEntryPointArm1Test, UseShortcutToMinimizeWindows) {
+TEST_F(SnapGroupTest, UseShortcutToMinimizeWindows) {
   std::unique_ptr<aura::Window> w1(CreateTestWindow());
   std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get(), /*horizontal=*/true);
+  SnapTwoTestWindows(w1.get(), w2.get(), /*horizontal=*/true);
 
   SnapGroupController* snap_group_controller = SnapGroupController::Get();
   // Press the shortcut first time and the windows will be minimized.
@@ -2651,8 +2250,7 @@
   EXPECT_TRUE(split_view_divider());
 }
 
-TEST_F(SnapGroupEntryPointArm1Test,
-       SkipPairingInOverviewWhenClickingEmptyArea) {
+TEST_F(SnapGroupTest, SkipPairingInOverviewWhenClickingEmptyArea) {
   std::unique_ptr<aura::Window> w1(CreateTestWindow());
   std::unique_ptr<aura::Window> w2(CreateTestWindow());
 
@@ -2682,7 +2280,7 @@
       SnapGroupController::Get()->AreWindowsInSnapGroup(w1.get(), w2.get()));
 }
 
-TEST_F(SnapGroupEntryPointArm1Test, SkipPairingInOverviewWithEscapeKey) {
+TEST_F(SnapGroupTest, SkipPairingInOverviewWithEscapeKey) {
   std::unique_ptr<aura::Window> w1(CreateTestWindow());
   std::unique_ptr<aura::Window> w2(CreateTestWindow());
 
@@ -2702,42 +2300,10 @@
       SnapGroupController::Get()->AreWindowsInSnapGroup(w1.get(), w2.get()));
 }
 
-// Tests that the lock widget will not show on the shared edge of two unsnapped
-// windows.
-TEST_F(SnapGroupEntryPointArm1Test,
-       MultiWindowResizeControllerWithTwoUnsnappedWindows) {
-  UpdateDisplay("800x700");
-
-  // Create two unsnapped windows with shared edge, see the layout below:
-  // _________________
-  // |        |       |
-  // |   w1   |  w2   |
-  // |________|_______|
-  aura::test::TestWindowDelegate delegate1;
-  std::unique_ptr<aura::Window> w1(CreateTestWindowInShellWithDelegate(
-      &delegate1, -1, gfx::Rect(0, 0, 100, 100)));
-  delegate1.set_window_component(HTRIGHT);
-  aura::test::TestWindowDelegate delegate2;
-  std::unique_ptr<aura::Window> w2(CreateTestWindowInShellWithDelegate(
-      &delegate2, -2, gfx::Rect(100, 0, 100, 100)));
-  delegate2.set_window_component(HTRIGHT);
-
-  // Move mouse to the shared edge of two windows, the resize widget will show
-  // but the lock widget will not show.
-  auto* event_generator = GetEventGenerator();
-  event_generator->MoveMouseTo(w1->bounds().CenterPoint());
-  auto* timer = GetShowTimer();
-  EXPECT_TRUE(timer);
-  EXPECT_TRUE(timer->IsRunning());
-  timer->FireNow();
-  EXPECT_TRUE(GetResizeWidget());
-  EXPECT_FALSE(GetLockWidget());
-}
-
 // Tests that when disallowing showing overview in clamshell with `kSnapGroup`
-// arm1 enabled, the overview will not show on one window snapped. The overview
-// will show when re-enabling showing overview.
-TEST_F(SnapGroupEntryPointArm1Test, SnapWithoutShowingOverview) {
+// enabled, the overview will not show on one window snapped. The overview will
+// show when re-enabling showing overview.
+TEST_F(SnapGroupTest, SnapWithoutShowingOverview) {
   SnapGroupController* snap_group_controller = SnapGroupController::Get();
   snap_group_controller->set_can_enter_overview_for_testing(
       /*can_enter_overview=*/false);
@@ -2760,11 +2326,11 @@
 // Tests that the window list is reordered when there is snap group. The two
 // windows will be adjacent with each other with primary snapped window put
 // before secondary snapped window.
-TEST_F(SnapGroupEntryPointArm1Test, WindowReorderInAltTab) {
+TEST_F(SnapGroupTest, WindowReorderInAltTab) {
   std::unique_ptr<aura::Window> window0(CreateTestWindowInShellWithId(0));
   std::unique_ptr<aura::Window> window1(CreateTestWindowInShellWithId(1));
   std::unique_ptr<aura::Window> window2(CreateTestWindowInShellWithId(2));
-  SnapTwoTestWindowsInArm1(window0.get(), window1.get());
+  SnapTwoTestWindows(window0.get(), window1.get());
   EXPECT_TRUE(wm::IsActiveWindow(window1.get()));
 
   wm::ActivateWindow(window2.get());
@@ -2800,11 +2366,11 @@
 // Tests that the number of views to be cycled through inside the mirror
 // container view of window cycle view will be the number of free-form windows
 // plus snap groups.
-TEST_F(SnapGroupEntryPointArm1Test, WindowCycleViewTest) {
+TEST_F(SnapGroupTest, WindowCycleViewTest) {
   std::unique_ptr<aura::Window> window0(CreateTestWindowInShellWithId(0));
   std::unique_ptr<aura::Window> window1(CreateTestWindowInShellWithId(1));
   std::unique_ptr<aura::Window> window2(CreateTestWindowInShellWithId(2));
-  SnapTwoTestWindowsInArm1(window0.get(), window1.get());
+  SnapTwoTestWindows(window0.get(), window1.get());
 
   WindowCycleController* window_cycle_controller =
       Shell::Get()->window_cycle_controller();
@@ -2823,11 +2389,11 @@
 // the window list with Alt + Tab, there will be no crash. The corresponding
 // child mini view hosted by the group container view will be destroyed, the
 // group container view will host the other child mini view.
-TEST_F(SnapGroupEntryPointArm1Test, WindowInSnapGroupDestructionInAltTab) {
+TEST_F(SnapGroupTest, WindowInSnapGroupDestructionInAltTab) {
   std::unique_ptr<aura::Window> window0(CreateTestWindowInShellWithId(0));
   std::unique_ptr<aura::Window> window1(CreateTestWindowInShellWithId(1));
   std::unique_ptr<aura::Window> window2(CreateTestWindowInShellWithId(2));
-  SnapTwoTestWindowsInArm1(window0.get(), window1.get());
+  SnapTwoTestWindows(window0.get(), window1.get());
 
   WindowCycleController* window_cycle_controller =
       Shell::Get()->window_cycle_controller();
@@ -2861,7 +2427,7 @@
 // Tests and verifies the steps it takes to focus on a window cycle item by
 // tabbing and reverse tabbing. The focused item will be activated upon
 // completion of window cycling.
-TEST_F(SnapGroupEntryPointArm1Test, SteppingInWindowCycleView) {
+TEST_F(SnapGroupTest, SteppingInWindowCycleView) {
   std::unique_ptr<aura::Window> window3 =
       CreateAppWindow(gfx::Rect(300, 300), AppType::CHROME_APP);
   std::unique_ptr<aura::Window> window2 =
@@ -2871,7 +2437,7 @@
   std::unique_ptr<aura::Window> window0 =
       CreateAppWindow(gfx::Rect(10, 10), AppType::BROWSER);
 
-  SnapTwoTestWindowsInArm1(window0.get(), window1.get());
+  SnapTwoTestWindows(window0.get(), window1.get());
   EXPECT_TRUE(wm::IsActiveWindow(window1.get()));
   WindowState::Get(window3.get())->Activate();
   EXPECT_TRUE(wm::IsActiveWindow(window3.get()));
@@ -2904,14 +2470,14 @@
 // Tests that the exposed rounded corners of the cycling items are rounded
 // corners. The visuals will be refreshed on window destruction that belongs to
 // a snap group.
-TEST_F(SnapGroupEntryPointArm1Test, WindowCycleItemRoundedCorners) {
+TEST_F(SnapGroupTest, WindowCycleItemRoundedCorners) {
   std::unique_ptr<aura::Window> window0 =
       CreateAppWindow(gfx::Rect(100, 200), AppType::BROWSER);
   std::unique_ptr<aura::Window> window1 =
       CreateAppWindow(gfx::Rect(200, 300), AppType::BROWSER);
   std::unique_ptr<aura::Window> window2 =
       CreateAppWindow(gfx::Rect(300, 400), AppType::BROWSER);
-  SnapTwoTestWindowsInArm1(window0.get(), window1.get());
+  SnapTwoTestWindows(window0.get(), window1.get());
 
   WindowCycleController* window_cycle_controller =
       Shell::Get()->window_cycle_controller();
@@ -2942,10 +2508,10 @@
 
 // Tests that the window cycle view will not show with only one snap group
 // available which is the same behavior pattern as free-form window cycling.
-TEST_F(SnapGroupEntryPointArm1Test, NoWindowCycleViewWithOneSnapGroup) {
+TEST_F(SnapGroupTest, NoWindowCycleViewWithOneSnapGroup) {
   std::unique_ptr<aura::Window> window0 = CreateAppWindow(gfx::Rect(100, 200));
   std::unique_ptr<aura::Window> window1 = CreateAppWindow(gfx::Rect(200, 300));
-  SnapTwoTestWindowsInArm1(window0.get(), window1.get());
+  SnapTwoTestWindows(window0.get(), window1.get());
 
   WindowCycleController* window_cycle_controller =
       Shell::Get()->window_cycle_controller();
@@ -2961,7 +2527,7 @@
 // view only if both of them belong to the same app as the mru window. If only
 // one window belongs to the app, the representation of the window will be shown
 // as the individual window cycle item view.
-TEST_F(SnapGroupEntryPointArm1Test, SameAppWindowCycle) {
+TEST_F(SnapGroupTest, SameAppWindowCycle) {
   struct app_id_pair {
     const char* trace_message;
     const std::string app_id_2;
@@ -2981,7 +2547,7 @@
   std::unique_ptr<aura::Window> w1(CreateTestWindowWithAppID(std::string("A")));
   std::unique_ptr<aura::Window> w2(CreateTestWindowWithAppID(std::string("A")));
   std::unique_ptr<aura::Window> w3(CreateTestWindowWithAppID(std::string("A")));
-  SnapTwoTestWindowsInArm1(w2.get(), w3.get());
+  SnapTwoTestWindows(w2.get(), w3.get());
   WindowCycleController* window_cycle_controller =
       Shell::Get()->window_cycle_controller();
   for (const auto& test_case : kTestCases) {
@@ -3017,11 +2583,11 @@
 // Tests and verifies that if one of the window in a snap group gets destroyed
 // while doing same app window cycling the corresponding window cycle item view
 // will be properly removed and re-configured with no crash.
-TEST_F(SnapGroupEntryPointArm1Test, WindowDestructionDuringSameAppWindowCycle) {
+TEST_F(SnapGroupTest, WindowDestructionDuringSameAppWindowCycle) {
   std::unique_ptr<aura::Window> w0(CreateTestWindowWithAppID(std::string("A")));
   std::unique_ptr<aura::Window> w1(CreateTestWindowWithAppID(std::string("A")));
   std::unique_ptr<aura::Window> w2(CreateTestWindowWithAppID(std::string("A")));
-  SnapTwoTestWindowsInArm1(w0.get(), w1.get());
+  SnapTwoTestWindows(w0.get(), w1.get());
 
   // Simulate pressing Alt + Backtick to trigger the same app cycling.
   auto* event_generator = GetEventGenerator();
@@ -3049,14 +2615,14 @@
 // mru window will depend on the mru window between the two windows in the snap
 // group, since the windows are reordered so that it reflects the actual window
 // layout.
-TEST_F(SnapGroupEntryPointArm1Test, MruWindowForSameApp) {
+TEST_F(SnapGroupTest, MruWindowForSameApp) {
   // Generate 5 windows with 3 of them from app A and 2 of them from app B.
   std::unique_ptr<aura::Window> w0(CreateTestWindowWithAppID(std::string("A")));
   std::unique_ptr<aura::Window> w1(CreateTestWindowWithAppID(std::string("B")));
   std::unique_ptr<aura::Window> w2(CreateTestWindowWithAppID(std::string("A")));
   std::unique_ptr<aura::Window> w3(CreateTestWindowWithAppID(std::string("A")));
   std::unique_ptr<aura::Window> w4(CreateTestWindowWithAppID(std::string("B")));
-  SnapTwoTestWindowsInArm1(w0.get(), w1.get());
+  SnapTwoTestWindows(w0.get(), w1.get());
 
   // Specifically activate the secondary snapped window with app type B.
   wm::ActivateWindow(w1.get());
@@ -3080,10 +2646,10 @@
 
 // Tests that after creating a snap group in clamshell, transition to tablet
 // mode won't crash (b/288179725).
-TEST_F(SnapGroupEntryPointArm1Test, NoCrashWhenRemovingGroupInTabletMode) {
+TEST_F(SnapGroupTest, NoCrashWhenRemovingGroupInTabletMode) {
   std::unique_ptr<aura::Window> w1(CreateTestWindow());
   std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get(), /*horizontal=*/true);
+  SnapTwoTestWindows(w1.get(), w2.get(), /*horizontal=*/true);
 
   SwitchToTabletMode();
 
@@ -3100,10 +2666,10 @@
 // Tests that one snap group in clamshell will be converted to windows in tablet
 // split view. When converted back to clamshell, the snap group will be
 // restored.
-TEST_F(SnapGroupEntryPointArm1Test, ClamshellTabletTransitionWithOneSnapGroup) {
+TEST_F(SnapGroupTest, ClamshellTabletTransitionWithOneSnapGroup) {
   std::unique_ptr<aura::Window> window1(CreateTestWindowInShellWithId(0));
   std::unique_ptr<aura::Window> window2(CreateTestWindowInShellWithId(1));
-  SnapTwoTestWindowsInArm1(window1.get(), window2.get(), /*horizontal=*/true);
+  SnapTwoTestWindows(window1.get(), window2.get(), /*horizontal=*/true);
   EXPECT_TRUE(split_view_divider());
 
   SwitchToTabletMode();
@@ -3123,12 +2689,11 @@
 // arbitrary location, the bounds of the two windows and the divider will be
 // updated such that the snap ratio of the layout is one of the fixed snap
 // ratios.
-TEST_F(SnapGroupEntryPointArm1Test,
-       ClamshellTabletTransitionGetClosestFixedRatio) {
+TEST_F(SnapGroupTest, ClamshellTabletTransitionGetClosestFixedRatio) {
   UpdateDisplay("900x600");
   std::unique_ptr<aura::Window> window1(CreateTestWindowInShellWithId(0));
   std::unique_ptr<aura::Window> window2(CreateTestWindowInShellWithId(1));
-  SnapTwoTestWindowsInArm1(window1.get(), window2.get(), /*horizontal=*/true);
+  SnapTwoTestWindows(window1.get(), window2.get(), /*horizontal=*/true);
   ASSERT_TRUE(split_view_divider());
   EXPECT_EQ(*WindowState::Get(window1.get())->snap_ratio(),
             chromeos::kDefaultSnapRatio);
@@ -3190,12 +2755,12 @@
   }
 }
 
-// Tests that the cursor type gets updated on mouse hovering over everywhere on
-// the split view divider excluding the kebab button.
-TEST_F(SnapGroupEntryPointArm1Test, CursorUpdateTest) {
+// Tests that the cursor type gets updated to be resize cursor on mouse hovering
+// on the split view divider.
+TEST_F(SnapGroupTest, CursorUpdateTest) {
   std::unique_ptr<aura::Window> w1(CreateTestWindow());
   std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  SnapTwoTestWindowsInArm1(w1.get(), w2.get(), /*horizontal=*/true);
+  SnapTwoTestWindows(w1.get(), w2.get(), /*horizontal=*/true);
   auto* divider = split_view_divider();
   ASSERT_TRUE(divider);
 
@@ -3231,18 +2796,12 @@
   EXPECT_EQ(CursorType::kColumnResize, cursor_manager->GetCursor().type());
   EXPECT_EQ(split_view_divider_bounds_in_screen().CenterPoint() + delta_vector,
             cached_hover_point + move_vector);
-
-  // Test that when hovering over the kebab button, the cursor type changed back
-  // to the default type.
-  event_generator->MoveMouseTo(
-      kebab_button()->GetBoundsInScreen().CenterPoint());
-  EXPECT_EQ(CursorType::kNull, cursor_manager->GetCursor().type());
 }
 
 // -----------------------------------------------------------------------------
 // SnapGroupHistogramTest:
 
-using SnapGroupHistogramTest = SnapGroupEntryPointArm1Test;
+using SnapGroupHistogramTest = SnapGroupTest;
 
 // Tests that the pipeline to get snap action source info all the way to be
 // stored in the `SplitViewOverviewSession` is working. This test focuses on the
@@ -3296,159 +2855,4 @@
   MaximizeToClearTheSession(window.get());
 }
 
-// Tests that the swap window source histogram is recorded correctly.
-TEST_F(SnapGroupHistogramTest, SwapWindowsSourceHistogramTest) {
-  base::HistogramTester histogram_tester;
-  constexpr char kHistogramName[] = "Ash.SplitView.SwapWindowSource";
-  histogram_tester.ExpectBucketCount(
-      kHistogramName, SplitViewController::SwapWindowsSource::kDoubleTap, 0);
-  histogram_tester.ExpectBucketCount(
-      kHistogramName,
-      SplitViewController::SwapWindowsSource::kSnapGroupSwapWindowsButton, 0);
-
-  for (const bool in_tablet_mode : {false, true}) {
-    std::unique_ptr<aura::Window> w1(CreateTestWindow());
-    std::unique_ptr<aura::Window> w2(CreateTestWindow());
-    if (in_tablet_mode) {
-      SwitchToTabletMode();
-      ASSERT_TRUE(Shell::Get()->IsInTabletMode());
-      split_view_controller()->SnapWindow(
-          w1.get(), SplitViewController::SnapPosition::kPrimary);
-      split_view_controller()->SnapWindow(
-          w2.get(), SplitViewController::SnapPosition::kSecondary);
-      ASSERT_EQ(split_view_controller()->primary_window(), w1.get());
-      ASSERT_EQ(split_view_controller()->secondary_window(), w2.get());
-      const gfx::Point divider_center =
-          split_view_divider()
-              ->GetDividerBoundsInScreen(/*is_dragging=*/false)
-              .CenterPoint();
-      GetEventGenerator()->GestureTapAt(divider_center);
-      GetEventGenerator()->GestureTapAt(divider_center);
-      histogram_tester.ExpectBucketCount(
-          kHistogramName, SplitViewController::SwapWindowsSource::kDoubleTap,
-          1);
-    } else {
-      SnapTwoTestWindowsInArm1(w1.get(), w2.get(), /*horizontal=*/true);
-      ClickKebabButtonToShowExpandedMenu();
-      ClickSwapWindowsButtonAndVerify();
-      histogram_tester.ExpectBucketCount(
-          kHistogramName,
-          SplitViewController::SwapWindowsSource::kSnapGroupSwapWindowsButton,
-          1);
-    }
-  }
-}
-
-// -----------------------------------------------------------------------------
-// SnapGroupEntryPointArm2Test:
-
-// A test fixture that tests the user-initiated snap group entry point. This
-// entry point is guarded by the feature flag `kSnapGroup` and will only be
-// enabled when the feature param `kAutomaticallyLockGroup` is false.
-class SnapGroupEntryPointArm2Test : public SnapGroupTest {
- public:
-  SnapGroupEntryPointArm2Test() {
-    scoped_feature_list_.InitAndEnableFeatureWithParameters(
-        features::kSnapGroup, {{"AutomaticLockGroup", "false"}});
-  }
-  SnapGroupEntryPointArm2Test(const SnapGroupEntryPointArm2Test&) = delete;
-  SnapGroupEntryPointArm2Test& operator=(const SnapGroupEntryPointArm2Test&) =
-      delete;
-  ~SnapGroupEntryPointArm2Test() override = default;
-
-  void SnapTwoTestWindows(aura::Window* primary_window,
-                          aura::Window* secondary_window) {
-    UpdateDisplay("800x700");
-
-    WindowState* primary_window_state = WindowState::Get(primary_window);
-    const WindowSnapWMEvent snap_primary(WM_EVENT_SNAP_PRIMARY);
-    primary_window_state->OnWMEvent(&snap_primary);
-    EXPECT_EQ(chromeos::WindowStateType::kPrimarySnapped,
-              primary_window_state->GetStateType());
-
-    WindowState* secondary_window_state = WindowState::Get(secondary_window);
-    const WindowSnapWMEvent snap_secondary(WM_EVENT_SNAP_SECONDARY);
-    secondary_window_state->OnWMEvent(&snap_secondary);
-    EXPECT_EQ(chromeos::WindowStateType::kSecondarySnapped,
-              secondary_window_state->GetStateType());
-
-    EXPECT_EQ(work_area_bounds().width() * chromeos::kDefaultSnapRatio,
-              primary_window->bounds().width());
-    EXPECT_EQ(work_area_bounds().width() * chromeos::kDefaultSnapRatio,
-              secondary_window->bounds().width());
-  }
-
-  base::test::ScopedFeatureList scoped_feature_list_;
-};
-
-// Tests that the lock widget will show below the resize widget when two windows
-// are snapped. And the location of the lock widget will be updated on mouse
-// move.
-TEST_F(SnapGroupEntryPointArm2Test, LockWidgetShowAndMoveTest) {
-  std::unique_ptr<aura::Window> w1(CreateTestWindow());
-  std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  SnapTwoTestWindows(w1.get(), w2.get());
-  EXPECT_FALSE(GetResizeWidget());
-  EXPECT_FALSE(GetLockWidget());
-
-  auto* event_generator = GetEventGenerator();
-  auto hover_location = w1->bounds().right_center();
-  event_generator->MoveMouseTo(hover_location);
-  auto* timer = GetShowTimer();
-  EXPECT_TRUE(timer->IsRunning());
-  EXPECT_TRUE(IsShowing());
-  timer->FireNow();
-  EXPECT_TRUE(GetResizeWidget());
-  EXPECT_TRUE(GetLockWidget());
-
-  gfx::Rect ori_resize_widget_bounds(
-      GetResizeWidget()->GetWindowBoundsInScreen());
-  gfx::Rect ori_lock_widget_bounds(GetLockWidget()->GetWindowBoundsInScreen());
-
-  resize_controller()->MouseMovedOutOfHost();
-  EXPECT_FALSE(timer->IsRunning());
-  EXPECT_FALSE(IsShowing());
-
-  const int x_delta = 0;
-  const int y_delta = 5;
-  hover_location.Offset(x_delta, y_delta);
-  event_generator->MoveMouseTo(hover_location);
-  EXPECT_TRUE(timer->IsRunning());
-  EXPECT_TRUE(IsShowing());
-  timer->FireNow();
-  EXPECT_TRUE(GetResizeWidget());
-  EXPECT_TRUE(GetLockWidget());
-
-  gfx::Rect new_resize_widget_bounds(
-      GetResizeWidget()->GetWindowBoundsInScreen());
-  gfx::Rect new_lock_widget_bounds(GetLockWidget()->GetWindowBoundsInScreen());
-
-  gfx::Rect expected_resize_widget_bounds = ori_resize_widget_bounds;
-  expected_resize_widget_bounds.Offset(x_delta, y_delta);
-  gfx::Rect expected_lock_widget_bounds = ori_lock_widget_bounds;
-  expected_lock_widget_bounds.Offset(x_delta, y_delta);
-  EXPECT_EQ(expected_resize_widget_bounds, new_resize_widget_bounds);
-  EXPECT_EQ(expected_lock_widget_bounds, new_lock_widget_bounds);
-}
-
-// Tests that a snap group will be created when pressed on the lock button and
-// that the activation works correctly with the snap group.
-TEST_F(SnapGroupEntryPointArm2Test, SnapGroupCreationTest) {
-  std::unique_ptr<aura::Window> w1(CreateTestWindow());
-  std::unique_ptr<aura::Window> w2(CreateTestWindow());
-  SnapTwoTestWindows(w1.get(), w2.get());
-  EXPECT_FALSE(GetLockWidget());
-
-  PressLockWidgetToLockTwoWindows(w1.get(), w2.get());
-  auto* snap_group_controller = SnapGroupController::Get();
-  EXPECT_EQ(
-      snap_group_controller->window_to_snap_group_map_for_testing().size(), 2u);
-  EXPECT_EQ(snap_group_controller->snap_groups_for_testing().size(), 1u);
-
-  std::unique_ptr<aura::Window> w3(CreateTestWindow());
-  wm::ActivateWindow(w3.get());
-  wm::ActivateWindow(w1.get());
-  EXPECT_TRUE(window_util::IsStackedBelow(w3.get(), w2.get()));
-}
-
 }  // namespace ash
diff --git a/ash/wm/splitview/auto_snap_controller.cc b/ash/wm/splitview/auto_snap_controller.cc
index fd1eb0b..e65cfc617 100644
--- a/ash/wm/splitview/auto_snap_controller.cc
+++ b/ash/wm/splitview/auto_snap_controller.cc
@@ -122,7 +122,7 @@
   if (auto* split_view_overview_session =
           RootWindowController::ForWindow(window)
               ->split_view_overview_session();
-      window_util::IsFasterSplitScreenOrSnapGroupArm1Enabled() &&
+      window_util::IsFasterSplitScreenOrSnapGroupEnabledInClamshell() &&
       split_view_overview_session &&
       split_view_overview_session->window() != window) {
     if (!window_state->CanSnap()) {
diff --git a/ash/wm/splitview/split_view_controller.cc b/ash/wm/splitview/split_view_controller.cc
index 540a6acc..dae2900 100644
--- a/ash/wm/splitview/split_view_controller.cc
+++ b/ash/wm/splitview/split_view_controller.cc
@@ -214,7 +214,7 @@
 }
 
 // If there is a window in the snap position, trigger a WMEvent to snap it in
-// the opposite position.
+// the corresponding position.
 void TriggerWMEventToSnapWindow(WindowState* window_state,
                                 WMEventType event_type) {
   CHECK(event_type == WM_EVENT_SNAP_PRIMARY ||
@@ -808,10 +808,7 @@
       Shell::Get()->activation_client()->AddObserver(this);
     }
 
-    const bool is_flag_enabled =
-        window_util::IsFasterSplitScreenOrSnapGroupArm1Enabled();
-
-    if (!is_flag_enabled) {
+    if (!window_util::IsFasterSplitScreenOrSnapGroupEnabledInClamshell()) {
       // AutoSnapController will end overview in clamshell split view if a
       // window is not in transitional state. See
       // `AutoSnapController::AutoSnapWindowIfNeeded()`.
@@ -913,7 +910,7 @@
   base::RecordAction(base::UserMetricsAction("SplitView_SnapWindow"));
 }
 
-void SplitViewController::SwapWindows(SwapWindowsSource swap_windows_source) {
+void SplitViewController::SwapWindows() {
   DCHECK(InSplitViewMode());
 
   // Ignore `IsResizingWithDivider()` because it will be true in case of
@@ -951,19 +948,8 @@
   UpdateStateAndNotifyObservers();
   NotifyWindowSwapped();
 
-  // TODO(b/305251109): Remove this when the kebab button is removed.
-  switch (swap_windows_source) {
-    case SwapWindowsSource::kDoubleTap: {
-      base::RecordAction(
-          base::UserMetricsAction("SplitView_DoubleTapDividerSwapWindows"));
-      break;
-    }
-    case SwapWindowsSource::kSnapGroupSwapWindowsButton:
-      NOTREACHED();
-      break;
-  }
-  base::UmaHistogramEnumeration(kSplitViewSwapWindowsSource,
-                                swap_windows_source);
+  base::RecordAction(
+      base::UserMetricsAction("SplitView_DoubleTapDividerSwapWindows"));
 }
 
 SplitViewController::SnapPosition
@@ -2008,8 +1994,6 @@
   const int divider_end_position(GetDividerEndPosition());
   if (divider_position_ < divider_end_position * chromeos::kOneThirdSnapRatio ||
       divider_position_ > divider_end_position * chromeos::kTwoThirdSnapRatio) {
-    // Ending overview will also end clamshell split view unless
-    // `SnapGroupController::IsArm1AutomaticallyLockEnabled()` returns true.
     Shell::Get()->overview_controller()->EndOverview(
         OverviewEndAction::kSplitView);
     WindowState::Get(window)->Maximize();
@@ -2325,8 +2309,7 @@
   SnapGroupController* snap_group_controller = SnapGroupController::Get();
   const bool snap_group_enabled_in_clamshell =
       IsSnapGroupEnabledInClamshellMode();
-  if (state_ == State::kBothSnapped && snap_group_enabled_in_clamshell &&
-      snap_group_controller->IsArm1AutomaticallyLockEnabled()) {
+  if (state_ == State::kBothSnapped && snap_group_enabled_in_clamshell) {
     // TODO(b/286963080): Move this to SnapGroupController.
     CHECK(primary_window_);
     CHECK(secondary_window_);
diff --git a/ash/wm/splitview/split_view_controller.h b/ash/wm/splitview/split_view_controller.h
index 99881e0..922e7c91 100644
--- a/ash/wm/splitview/split_view_controller.h
+++ b/ash/wm/splitview/split_view_controller.h
@@ -152,15 +152,6 @@
     kFast,
   };
 
-  // Two ways that triggers the window(s) in the split view to be swapped to the
-  // other side. Note that these values are persisted to histograms so existing
-  // values should remain unchanged and new values should be added to the end.
-  enum class SwapWindowsSource {
-    kDoubleTap,
-    kSnapGroupSwapWindowsButton,
-    kMaxValue = kSnapGroupSwapWindowsButton,
-  };
-
   // Gets the |SplitViewController| for the root window of |window|. |window| is
   // important in clamshell mode. In tablet mode, the working assumption for now
   // is mirror mode (or just one display), and so |window| can be almost any
@@ -291,7 +282,7 @@
   // window snapped, the window will be snapped to the other position. For all
   // other cases with `primary_window_` and `secondary_widnow_` available, the
   // two windows will be swapped together with their bounds.
-  void SwapWindows(SwapWindowsSource swap_windows_source);
+  void SwapWindows();
 
   // |window| should be |primary_window_| or |secondary_window_|, and this
   // function returns |LEFT| or |RIGHT| accordingly.
diff --git a/ash/wm/splitview/split_view_controller_unittest.cc b/ash/wm/splitview/split_view_controller_unittest.cc
index 2328b02..51ba15fb 100644
--- a/ash/wm/splitview/split_view_controller_unittest.cc
+++ b/ash/wm/splitview/split_view_controller_unittest.cc
@@ -1368,8 +1368,7 @@
 
   // Verify that after swapping windows, the windows and their bounds have been
   // swapped.
-  split_view_controller()->SwapWindows(
-      SplitViewController::SwapWindowsSource::kDoubleTap);
+  split_view_controller()->SwapWindows();
   EXPECT_EQ(split_view_controller()->primary_window(), window2.get());
   EXPECT_EQ(split_view_controller()->secondary_window(), window1.get());
   EXPECT_EQ(left_bounds, window2->GetBoundsInScreen());
@@ -1388,8 +1387,7 @@
   left_bounds = window2->GetBoundsInScreen();
   right_bounds = window1->GetBoundsInScreen();
 
-  split_view_controller()->SwapWindows(
-      SplitViewController::SwapWindowsSource::kDoubleTap);
+  split_view_controller()->SwapWindows();
   EXPECT_EQ(split_view_controller()->primary_window(), window1.get());
   EXPECT_EQ(split_view_controller()->secondary_window(), window2.get());
   EXPECT_EQ(left_bounds, window1->GetBoundsInScreen());
@@ -1507,8 +1505,7 @@
   split_view_controller()->SnapWindow(
       window2.get(), SplitViewController::SnapPosition::kPrimary);
   wm::ActivateWindow(window2.get());
-  split_view_controller()->SwapWindows(
-      SplitViewController::SwapWindowsSource::kDoubleTap);
+  split_view_controller()->SwapWindows();
   EXPECT_TRUE(wm::IsActiveWindow(window2.get()));
 }
 
@@ -3364,8 +3361,7 @@
 
   // Verify that after swapping windows, the window widths remain the same, and
   // the divider is now at 1/3 of the work area.
-  split_view_controller()->SwapWindows(
-      SplitViewController::SwapWindowsSource::kDoubleTap);
+  split_view_controller()->SwapWindows();
   EXPECT_EQ(WindowState::Get(window1.get())->GetStateType(),
             chromeos::WindowStateType::kSecondarySnapped);
   EXPECT_EQ(WindowState::Get(window2.get())->GetStateType(),
diff --git a/ash/wm/splitview/split_view_divider.h b/ash/wm/splitview/split_view_divider.h
index 1209490..02a29f1 100644
--- a/ash/wm/splitview/split_view_divider.h
+++ b/ash/wm/splitview/split_view_divider.h
@@ -52,7 +52,9 @@
       bool is_dragging);
 
   views::Widget* divider_widget() { return divider_widget_; }
+
   bool is_resizing_with_divider() const { return is_resizing_with_divider_; }
+
   const aura::Window::Windows& observed_windows() const {
     return observed_windows_;
   }
@@ -107,7 +109,7 @@
   void OnWindowStackingChanged(aura::Window* window) override;
   void OnWindowAddedToRootWindow(aura::Window* window) override;
 
-  // ::wm::TransientWindowObserver:
+  // wm::TransientWindowObserver:
   void OnTransientChildAdded(aura::Window* window,
                              aura::Window* transient) override;
   void OnTransientChildRemoved(aura::Window* window,
diff --git a/ash/wm/splitview/split_view_divider_view.cc b/ash/wm/splitview/split_view_divider_view.cc
index e9127bb..546d390 100644
--- a/ash/wm/splitview/split_view_divider_view.cc
+++ b/ash/wm/splitview/split_view_divider_view.cc
@@ -5,18 +5,11 @@
 #include "ash/wm/splitview/split_view_divider_view.h"
 
 #include "ash/display/screen_orientation_controller.h"
-#include "ash/public/cpp/shell_window_ids.h"
 #include "ash/public/cpp/window_properties.h"
-#include "ash/resources/vector_icons/vector_icons.h"
 #include "ash/shell.h"
-#include "ash/strings/grit/ash_strings.h"
 #include "ash/style/ash_color_id.h"
-#include "ash/style/ash_color_provider.h"
-#include "ash/system/screen_layout_observer.h"
 #include "ash/utility/cursor_setter.h"
 #include "ash/wm/snap_group/snap_group.h"
-#include "ash/wm/snap_group/snap_group_controller.h"
-#include "ash/wm/snap_group/snap_group_expanded_menu_view.h"
 #include "ash/wm/splitview/split_view_constants.h"
 #include "ash/wm/splitview/split_view_controller.h"
 #include "ash/wm/splitview/split_view_divider.h"
@@ -28,7 +21,6 @@
 #include "ui/compositor/layer.h"
 #include "ui/compositor/scoped_layer_animation_settings.h"
 #include "ui/gfx/geometry/rect.h"
-#include "ui/gfx/geometry/size.h"
 #include "ui/views/background.h"
 #include "ui/views/highlight_border.h"
 #include "ui/views/view.h"
@@ -36,21 +28,6 @@
 
 namespace ash {
 
-namespace {
-
-constexpr int kKebabButtonDistanceFromBottom = 24;
-constexpr gfx::Size kKebabButtonSize{4, 24};
-constexpr int kDistanceBetweenKebabButtonAndExpandedMenu = 8;
-constexpr int kExpandedMenuHeight = 150;
-
-bool IsInTabletMode() {
-  TabletModeController* tablet_mode_controller =
-      Shell::Get()->tablet_mode_controller();
-  return tablet_mode_controller && tablet_mode_controller->InTabletMode();
-}
-
-}  // namespace
-
 SplitViewDividerView::SplitViewDividerView(SplitViewController* controller,
                                            SplitViewDivider* divider)
     : split_view_controller_(controller),
@@ -73,20 +50,6 @@
       is_jellyroll_enabled
           ? views::HighlightBorder::Type::kHighlightBorderNoShadow
           : views::HighlightBorder::Type::kHighlightBorder1));
-
-  if (IsSnapGroupEnabledInClamshellMode()) {
-    kebab_button_ = AddChildView(std::make_unique<IconButton>(
-        base::BindRepeating(&SplitViewDividerView::OnKebabButtonPressed,
-                            base::Unretained(this)),
-        IconButton::Type::kMediumFloating, &kSnapGroupKebabIcon,
-        IDS_ASH_SNAP_GROUP_MORE_OPTIONS,
-        /*is_togglable=*/false,
-        /*has_border=*/false));
-    kebab_button_->SetPaintToLayer();
-    kebab_button_->layer()->SetFillsBoundsOpaquely(false);
-    kebab_button_->SetPreferredSize(kKebabButtonSize);
-    kebab_button_->SetVisible(true);
-  }
 }
 
 SplitViewDividerView::~SplitViewDividerView() = default;
@@ -129,42 +92,28 @@
   // `kSnapGroup` is enabled. If we are in clamshell mode without the feature
   // flag and params, then we must be transitioning from tablet mode, and the
   // divider will be destroyed and there is no need to update it.
-  if (!IsInTabletMode() && !IsSnapGroupEnabledInClamshellMode()) {
+  if (!Shell::Get()->tablet_mode_controller()->InTabletMode() &&
+      !IsSnapGroupEnabledInClamshellMode()) {
     return;
   }
 
   SetBoundsRect(GetLocalBounds());
   divider_handler_view_->Refresh(
       split_view_controller_->IsResizingWithDivider());
-
-  if (IsSnapGroupEnabledInClamshellMode()) {
-    const gfx::Size kebab_button_size = kebab_button_->GetPreferredSize();
-    const gfx::Rect kebab_button_bounds(
-        (width() - kebab_button_size.width()) / 2.f,
-        height() - kebab_button_size.height() - kKebabButtonDistanceFromBottom,
-        kebab_button_size.width(), kebab_button_size.height());
-    kebab_button_->SetBoundsRect(kebab_button_bounds);
-  }
 }
 
 void SplitViewDividerView::OnMouseEntered(const ui::MouseEvent& event) {
   gfx::Point screen_location = event.location();
   ConvertPointToScreen(this, &screen_location);
 
-  // Only set cursor type as the resize cursor when it's on the split view
-  // divider.
-  if (kebab_button_ &&
-      !kebab_button_->GetBoundsInScreen().Contains(screen_location)) {
-    // TODO(b/276801578): Use `kRowResize` cursor type for vertical split view.
-    cursor_setter_.UpdateCursor(split_view_controller_->root_window(),
-                                ui::mojom::CursorType::kColumnResize);
-  }
+  // Set cursor type as the resize cursor when it's on the split view divider.
+  cursor_setter_.UpdateCursor(split_view_controller_->root_window(),
+                              ui::mojom::CursorType::kColumnResize);
 }
 
 void SplitViewDividerView::OnMouseExited(const ui::MouseEvent& event) {
   // Since `notify_enter_exit_on_child_` in view.h is default to false, on mouse
-  // exit `this` the cursor will be reset, which includes resetting the cursor
-  // when hovering over the kebab button area.
+  // exit `this` the cursor will be reset.
   cursor_setter_.ResetCursor();
 }
 
@@ -239,8 +188,7 @@
     }
     return;
   }
-  split_view_controller_->SwapWindows(
-      SplitViewController::SwapWindowsSource::kDoubleTap);
+  split_view_controller_->SwapWindows();
 }
 
 void SplitViewDividerView::OnResizeStatusChanged() {
@@ -280,47 +228,6 @@
       split_view_controller_->IsResizingWithDivider());
 }
 
-void SplitViewDividerView::OnKebabButtonPressed() {
-  should_show_expanded_menu_ = !should_show_expanded_menu_;
-  if (!should_show_expanded_menu_) {
-    snap_group_expanded_menu_widget_.reset();
-    snap_group_expanded_menu_view_ = nullptr;
-    return;
-  }
-
-  if (!snap_group_expanded_menu_widget_) {
-    snap_group_expanded_menu_widget_ = std::make_unique<views::Widget>();
-    snap_group_expanded_menu_widget_->Init(CreateWidgetInitParams(
-        split_view_controller_->root_window(), "SnapGroupExpandedMenuWidget"));
-    SnapGroupController* snap_group_controller = SnapGroupController::Get();
-    SnapGroup* snap_group = snap_group_controller->GetSnapGroupForGivenWindow(
-        split_view_controller_->primary_window());
-    CHECK(snap_group);
-    snap_group_expanded_menu_view_ =
-        snap_group_expanded_menu_widget_->SetContentsView(
-            std::make_unique<SnapGroupExpandedMenuView>(snap_group));
-  }
-  snap_group_expanded_menu_widget_->Show();
-  MaybeUpdateExpandedMenuWidgetBounds();
-}
-
-void SplitViewDividerView::MaybeUpdateExpandedMenuWidgetBounds() {
-  CHECK(snap_group_expanded_menu_widget_);
-  const auto kebab_button_bounds = kebab_button_->GetBoundsInScreen();
-  gfx::Rect divider_bounds_in_screen =
-      split_view_controller_->split_view_divider()->GetDividerBoundsInScreen(
-          /*is_dragging=*/false);
-  const gfx::Rect expanded_menu_bounds(
-      divider_bounds_in_screen.x() + kSplitviewDividerShortSideLength / 2 -
-          kExpandedMenuRoundedCornerRadius,
-      kebab_button_bounds.y() - kExpandedMenuHeight -
-          kDistanceBetweenKebabButtonAndExpandedMenu,
-      kExpandedMenuRoundedCornerRadius * 2, kExpandedMenuHeight);
-  divider_bounds_in_screen.ClampToCenteredSize(
-      gfx::Size(kExpandedMenuRoundedCornerRadius * 2, kExpandedMenuHeight));
-  snap_group_expanded_menu_widget_->SetBounds(expanded_menu_bounds);
-}
-
 BEGIN_METADATA(SplitViewDividerView, views::View)
 END_METADATA
 
diff --git a/ash/wm/splitview/split_view_divider_view.h b/ash/wm/splitview/split_view_divider_view.h
index a99d6d7d..0895f8e 100644
--- a/ash/wm/splitview/split_view_divider_view.h
+++ b/ash/wm/splitview/split_view_divider_view.h
@@ -5,19 +5,16 @@
 #ifndef ASH_WM_SPLITVIEW_SPLIT_VIEW_DIVIDER_VIEW_H_
 #define ASH_WM_SPLITVIEW_SPLIT_VIEW_DIVIDER_VIEW_H_
 
-#include "ash/style/icon_button.h"
 #include "ash/utility/cursor_setter.h"
 #include "base/memory/raw_ptr.h"
 #include "ui/views/view.h"
 #include "ui/views/view_targeter_delegate.h"
-#include "ui/views/widget/unique_widget_ptr.h"
 
 namespace ash {
 
 class SplitViewController;
 class SplitViewDivider;
 class SplitViewDividerHandlerView;
-class SnapGroupExpandedMenuView;
 
 // A view that acts as the contents view of the split view divider widget.
 class SplitViewDividerView : public views::View,
@@ -47,46 +44,17 @@
   bool DoesIntersectRect(const views::View* target,
                          const gfx::Rect& rect) const override;
 
-  IconButton* kebab_button_for_testing() const { return kebab_button_; }
-  views::Widget* snap_group_expanded_menu_widget_for_testing() const {
-    return snap_group_expanded_menu_widget_.get();
-  }
-  SnapGroupExpandedMenuView* snap_group_expanded_menu_view_for_testing() const {
-    return snap_group_expanded_menu_view_;
-  }
-
  private:
   void SwapWindows();
 
   void OnResizeStatusChanged();
 
-  // Called when the `kebab_button_` is pressed which toggles between showing or
-  // hiding the `snap_group_expanded_menu_widget_`.
-  void OnKebabButtonPressed();
-
-  // Called to update the bounds of the `snap_group_expanded_menu_widget_`.
-  void MaybeUpdateExpandedMenuWidgetBounds();
-
   raw_ptr<SplitViewController, DanglingUntriaged | ExperimentalAsh>
       split_view_controller_;
   raw_ptr<SplitViewDividerHandlerView, ExperimentalAsh> divider_handler_view_ =
       nullptr;
   raw_ptr<SplitViewDivider, DanglingUntriaged | ExperimentalAsh> divider_;
 
-  // A vertical 3-dot button that shows on the split view divider when
-  // `ShouldAutomaticallyGroupOnWindowsSnappedInClamshell()` is true.
-  raw_ptr<IconButton, ExperimentalAsh> kebab_button_ = nullptr;
-
-  // The snap group expanded menu widget and its contents view.
-  views::UniqueWidgetPtr snap_group_expanded_menu_widget_;
-  raw_ptr<SnapGroupExpandedMenuView, ExperimentalAsh>
-      snap_group_expanded_menu_view_ = nullptr;
-
-  // True if the `snap_group_expanded_menu_widget_` should show
-  // `OnKebabButtonPressed()` and false otherwise. The value will be updated on
-  // the `kebab_button_` is clicked.
-  bool should_show_expanded_menu_ = false;
-
   // Securely updates the cursor.
   CursorSetter cursor_setter_;
 };
diff --git a/ash/wm/splitview/split_view_overview_session.cc b/ash/wm/splitview/split_view_overview_session.cc
index d45d753..5ea0cdee 100644
--- a/ash/wm/splitview/split_view_overview_session.cc
+++ b/ash/wm/splitview/split_view_overview_session.cc
@@ -69,7 +69,7 @@
   window_observation_.Observe(window);
   WindowState::Get(window)->AddObserver(this);
 
-  if (window_util::IsFasterSplitScreenOrSnapGroupArm1Enabled()) {
+  if (window_util::IsFasterSplitScreenOrSnapGroupEnabledInClamshell()) {
     auto_snap_controller_ =
         std::make_unique<AutoSnapController>(window->GetRootWindow());
   }
@@ -80,7 +80,7 @@
     return;
   }
   WindowState::Get(window_)->RemoveObserver(this);
-  if (window_util::IsFasterSplitScreenOrSnapGroupArm1Enabled() &&
+  if (window_util::IsFasterSplitScreenOrSnapGroupEnabledInClamshell() &&
       IsInOverviewSession()) {
     // `EndOverview()` will also try to end this again.
     base::AutoReset<bool> ignore(&is_shutting_down_, true);
@@ -146,8 +146,6 @@
   // part of the window, we'll just end splitview and overview mode.
   if (WindowState::Get(window)->drag_details()->window_component !=
       GetWindowComponentForResize(window)) {
-    // Ending overview will also end clamshell split view unless
-    // `SnapGroupController::IsArm1AutomaticallyLockEnabled()` returns true.
     Shell::Get()->overview_controller()->EndOverview(
         OverviewEndAction::kSplitView);
     return;
@@ -193,7 +191,7 @@
   // TODO(sophiewen): Only used by metrics. See if we can remove this.
   split_view_controller->NotifyWindowResized();
 
-  if (!window_util::IsFasterSplitScreenOrSnapGroupArm1Enabled()) {
+  if (!window_util::IsFasterSplitScreenOrSnapGroupEnabledInClamshell()) {
     split_view_controller->MaybeEndOverviewOnWindowResize(window);
   }
   is_resizing_ = false;
@@ -224,8 +222,6 @@
              window_state->drag_details()->bounds_change);
     if (window_state->drag_details()->bounds_change ==
         WindowResizer::kBoundsChange_Repositions) {
-      // Ending overview will also end clamshell split view unless
-      // `SnapGroupController::IsArm1AutomaticallyLockEnabled()` returns true.
       Shell::Get()->overview_controller()->EndOverview(
           OverviewEndAction::kSplitView);
       return;
diff --git a/ash/wm/splitview/split_view_test_api.cc b/ash/wm/splitview/split_view_test_api.cc
index 864b02b0..ae80e7c 100644
--- a/ash/wm/splitview/split_view_test_api.cc
+++ b/ash/wm/splitview/split_view_test_api.cc
@@ -40,8 +40,7 @@
 }
 
 void SplitViewTestApi::SwapWindows() {
-  split_view_controller()->SwapWindows(
-      SplitViewController::SwapWindowsSource::kDoubleTap);
+  split_view_controller()->SwapWindows();
 }
 
 aura::Window* SplitViewTestApi::GetLeftWindow() const {
diff --git a/ash/wm/tablet_mode/tablet_mode_multitask_menu_unittest.cc b/ash/wm/tablet_mode/tablet_mode_multitask_menu_unittest.cc
index 3038f56..ea88b89 100644
--- a/ash/wm/tablet_mode/tablet_mode_multitask_menu_unittest.cc
+++ b/ash/wm/tablet_mode/tablet_mode_multitask_menu_unittest.cc
@@ -531,8 +531,7 @@
             GetMultitaskMenu()->widget()->GetWindowBoundsInScreen().right());
 
   // Swap windows so the 1/3 window is on the left. Test that the menu fits.
-  split_view_controller->SwapWindows(
-      SplitViewController::SwapWindowsSource::kDoubleTap);
+  split_view_controller->SwapWindows();
   ShowMultitaskMenu(*window2);
   EXPECT_EQ(work_area.x(),
             GetMultitaskMenu()->widget()->GetWindowBoundsInScreen().x());
diff --git a/ash/wm/window_util.cc b/ash/wm/window_util.cc
index b79a717..0c68e9e 100644
--- a/ash/wm/window_util.cc
+++ b/ash/wm/window_util.cc
@@ -345,7 +345,7 @@
   // 3. If the window is not the mru window in snap group i.e. the corresponding
   // overview item representation for the snap group has been created.
   auto should_exclude_in_clamshell = [&]() -> bool {
-    if (IsFasterSplitScreenOrSnapGroupArm1Enabled()) {
+    if (IsFasterSplitScreenOrSnapGroupEnabledInClamshell()) {
       if (auto* split_view_overview_session =
               RootWindowController::ForWindow(window)
                   ->split_view_overview_session();
@@ -653,17 +653,10 @@
   return !backdrop_bounds_in_screen.Contains(thumbnail_bounds_in_screen);
 }
 
-bool IsFasterSplitScreenOrSnapGroupArm1Enabled() {
-  if (Shell::Get()->IsInTabletMode()) {
-    // FasterSplitScreen is not supported in tablet mode.
-    return false;
-  }
-  if (features::IsFasterSplitScreenSetupEnabled()) {
-    return true;
-  }
-  auto* snap_group_controller = SnapGroupController::Get();
-  return snap_group_controller &&
-         snap_group_controller->IsArm1AutomaticallyLockEnabled();
+bool IsFasterSplitScreenOrSnapGroupEnabledInClamshell() {
+  return !Shell::Get()->IsInTabletMode() &&
+         (features::IsFasterSplitScreenSetupEnabled() ||
+          SnapGroupController::Get());
 }
 
 void MaybeStartSplitViewOverview(aura::Window* window,
diff --git a/ash/wm/window_util.h b/ash/wm/window_util.h
index d64a4064..463ec5c3 100644
--- a/ash/wm/window_util.h
+++ b/ash/wm/window_util.h
@@ -179,12 +179,12 @@
     views::View* backdrop_view,
     const gfx::RectF& thumbnail_bounds_in_screen);
 
-// Returns true if either `kFasterSplitScreenSetup` is enabled or
-// `kSnapGroup` and `AutomaticLockGroup` is true. When this is true, snapping
-// one window will automatically start SplitViewOverviewSession.
-bool IsFasterSplitScreenOrSnapGroupArm1Enabled();
+// Returns true if either `kFasterSplitScreenSetup` or `kSnapGroup` is enabled.
+// When this is true, snapping one window will automatically start
+// SplitViewOverviewSession.
+bool IsFasterSplitScreenOrSnapGroupEnabledInClamshell();
 
-// Starts SplitViewOverviewSession for `window`, if it wasn't already active.
+// Starts `SplitViewOverviewSession` for `window`, if it wasn't already active.
 void MaybeStartSplitViewOverview(aura::Window* window,
                                  WindowSnapActionSource snap_action_source);
 
diff --git a/ash/wm/workspace/multi_window_resize_controller.cc b/ash/wm/workspace/multi_window_resize_controller.cc
index 9a556b0..b1b450e7 100644
--- a/ash/wm/workspace/multi_window_resize_controller.cc
+++ b/ash/wm/workspace/multi_window_resize_controller.cc
@@ -4,23 +4,17 @@
 
 #include "ash/wm/workspace/multi_window_resize_controller.h"
 
-#include "ash/constants/ash_features.h"
 #include "ash/public/cpp/shell_window_ids.h"
 #include "ash/resources/vector_icons/vector_icons.h"
 #include "ash/root_window_controller.h"
 #include "ash/shell.h"
-#include "ash/strings/grit/ash_strings.h"
-#include "ash/style/ash_color_id.h"
 #include "ash/wm/overview/overview_controller.h"
 #include "ash/wm/resize_shadow_controller.h"
-#include "ash/wm/snap_group/snap_group_controller.h"
 #include "ash/wm/splitview/split_view_utils.h"
 #include "ash/wm/window_util.h"
 #include "ash/wm/wm_metrics.h"
 #include "ash/wm/workspace/workspace_window_resizer.h"
 #include "base/containers/adapters.h"
-#include "base/functional/bind.h"
-#include "base/metrics/field_trial_params.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/metrics/user_metrics.h"
 #include "chromeos/constants/chromeos_features.h"
@@ -28,7 +22,6 @@
 #include "ui/aura/window_delegate.h"
 #include "ui/base/hit_test.h"
 #include "ui/chromeos/styles/cros_tokens_color_mappings.h"
-#include "ui/compositor/layer.h"
 #include "ui/display/screen.h"
 #include "ui/gfx/canvas.h"
 #include "ui/gfx/geometry/point_f.h"
@@ -36,7 +29,6 @@
 #include "ui/gfx/geometry/vector2d.h"
 #include "ui/gfx/paint_vector_icon.h"
 #include "ui/views/background.h"
-#include "ui/views/controls/button/image_button.h"
 #include "ui/wm/core/compound_event_filter.h"
 #include "ui/wm/core/coordinate_conversion.h"
 #include "ui/wm/core/window_animations.h"
@@ -51,17 +43,11 @@
 // Padding from the bottom/right edge the resize widget is shown at.
 const int kResizeWidgetPadding = 15;
 
-// Distance between the resize widget and lock widget.
-const int kResizeWidgetAndLockWidgetDistance = 85;
-
-constexpr int kLockButtonCornerRadius = 20;
-
 // The size of the resize widget when the feature flag `Jellyroll` is enabled.
 constexpr int kLongSideCrOSNext = 64;
 constexpr int kShortSideCrOSNext = 52;
 
-// Returns the widget init params needed to create the resize widget or snap
-// group lock widget.
+// Returns the widget init params needed to create the resize widget.
 views::Widget::InitParams CreateWidgetParams(aura::Window* parent_window,
                                              const std::string& widget_name) {
   views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP);
@@ -360,9 +346,7 @@
   // views::MouseWatcherHost:
   bool Contains(const gfx::Point& point_in_screen, EventType type) override {
     return (type == EventType::kPress)
-               ? host_->IsOverResizeWidget(point_in_screen) ||
-                     (host_->ShouldConsiderLockWidget() &&
-                      host_->IsOverLockWidget(point_in_screen))
+               ? host_->IsOverResizeWidget(point_in_screen)
                : host_->IsOverWindows(point_in_screen);
   }
 
@@ -480,7 +464,7 @@
     return;
   }
 
-  // Show resize-lock shadow UI after exiting overview.
+  // Show shadow for the resizer after exiting overview.
   Shell::Get()->resize_shadow_controller()->TryShowAllShadows();
 }
 
@@ -683,33 +667,6 @@
         base::UserMetricsAction(kMultiWindowResizerShowTwoWindowsSnapped));
     base::UmaHistogramBoolean(
         kMultiWindowResizerShowTwoWindowsSnappedHistogramName, true);
-
-    if (IsSnapGroupEnabledInClamshellMode()) {
-      DCHECK(!lock_widget_.get());
-      lock_widget_ = std::make_unique<views::Widget>();
-      lock_widget_->Init(CreateWidgetParams(
-          parent_window, /*widget_name=*/"SnapGroupLockWidget"));
-      lock_button_ = lock_widget_->SetContentsView(std::make_unique<IconButton>(
-          base::BindRepeating(&MultiWindowResizeController::OnLockButtonPressed,
-                              base::Unretained(this)),
-          IconButton::Type::kMediumFloating, &kLockScreenEasyUnlockCloseIcon,
-          IDS_ASH_SNAP_GROUP_CLICK_TO_LOCK_WINDOWS,
-          /*is_togglable=*/false,
-          /*has_border=*/true));
-      gfx::Rect lock_widget_show_bounds_in_screen =
-          ConvertRectToScreen(windows_.window1->parent(),
-                              CalculateLockWidgetBounds(resize_widget_bounds));
-      lock_widget_->SetBounds(lock_widget_show_bounds_in_screen);
-      lock_widget_->Show();
-      lock_button_->SetPaintToLayer();
-      lock_button_->layer()->SetFillsBoundsOpaquely(false);
-      lock_button_->SetBackground(views::CreateThemedRoundedRectBackground(
-          kColorAshShieldAndBase80, kLockButtonCornerRadius));
-      lock_button_->SetImageHorizontalAlignment(
-          views::ImageButton::HorizontalAlignment::ALIGN_CENTER);
-      lock_button_->SetImageVerticalAlignment(
-          views::ImageButton::VerticalAlignment::ALIGN_MIDDLE);
-    }
   }
 
   CreateMouseWatcher();
@@ -735,7 +692,6 @@
   }
 
   show_timer_.Stop();
-  lock_widget_.reset();
 
   if (!resize_widget_) {
     return;
@@ -867,41 +823,17 @@
   return gfx::Rect(x, y, pref.width(), pref.height());
 }
 
-gfx::Rect MultiWindowResizeController::CalculateLockWidgetBounds(
-    const gfx::Rect& resize_widget_bounds) const {
-  if (windows_.direction == Direction::kLeftRight) {
-    return gfx::Rect(
-        resize_widget_bounds.top_center().x() - kLockButtonCornerRadius,
-        resize_widget_bounds.y() + kResizeWidgetAndLockWidgetDistance,
-        kLockButtonCornerRadius * 2, kLockButtonCornerRadius * 2);
-  } else {
-    return gfx::Rect(
-        resize_widget_bounds.x() + kResizeWidgetAndLockWidgetDistance,
-        resize_widget_bounds.y() - kLockButtonCornerRadius,
-        kLockButtonCornerRadius * 2, kLockButtonCornerRadius * 2);
-  }
-}
-
 bool MultiWindowResizeController::IsOverResizeWidget(
     const gfx::Point& location_in_screen) const {
   return resize_widget_->GetWindowBoundsInScreen().Contains(location_in_screen);
 }
 
-bool MultiWindowResizeController::IsOverLockWidget(
-    const gfx::Point& location_in_screen) const {
-  return lock_widget_->GetWindowBoundsInScreen().Contains(location_in_screen);
-}
-
 bool MultiWindowResizeController::IsOverWindows(
     const gfx::Point& location_in_screen) const {
   if (IsOverResizeWidget(location_in_screen)) {
     return true;
   }
 
-  if (ShouldConsiderLockWidget() && IsOverLockWidget(location_in_screen)) {
-    return true;
-  }
-
   if (windows_.direction == Direction::kTopBottom) {
     if (!ContainsScreenX(windows_.window1, location_in_screen.x()) ||
         !ContainsScreenX(windows_.window2, location_in_screen.x())) {
@@ -941,19 +873,4 @@
   return window_util::GetNonClientComponent(window, window_loc) == component;
 }
 
-void MultiWindowResizeController::OnLockButtonPressed() {
-  aura::Window* window1 = windows_.window1;
-  aura::Window* window2 = windows_.window2;
-  SnapGroupController* snap_group_controller = SnapGroupController::Get();
-  CHECK(!snap_group_controller->AreWindowsInSnapGroup(window1, window2));
-  snap_group_controller->AddSnapGroup(window1, window2);
-  ResetResizer();
-}
-
-bool MultiWindowResizeController::ShouldConsiderLockWidget() const {
-  return WindowState::Get(windows_.window1)->IsSnapped() &&
-         WindowState::Get(windows_.window2)->IsSnapped() &&
-         IsSnapGroupEnabledInClamshellMode();
-}
-
 }  // namespace ash
diff --git a/ash/wm/workspace/multi_window_resize_controller.h b/ash/wm/workspace/multi_window_resize_controller.h
index 7d54743..634a7795 100644
--- a/ash/wm/workspace/multi_window_resize_controller.h
+++ b/ash/wm/workspace/multi_window_resize_controller.h
@@ -9,7 +9,6 @@
 #include <vector>
 
 #include "ash/ash_export.h"
-#include "ash/style/icon_button.h"
 #include "ash/wm/overview/overview_observer.h"
 #include "ash/wm/window_state.h"
 #include "ash/wm/window_state_observer.h"
@@ -17,13 +16,16 @@
 #include "base/scoped_multi_source_observation.h"
 #include "base/time/time.h"
 #include "base/timer/timer.h"
-#include "ui/aura/window.h"
 #include "ui/aura/window_observer.h"
-#include "ui/gfx/geometry/rect.h"
 #include "ui/views/mouse_watcher.h"
 
+namespace aura {
+class Window;
+}  // namespace aura
+
 namespace gfx {
 class PointF;
+class Rect;
 }  // namespace gfx
 
 namespace views {
@@ -37,10 +39,7 @@
 
 // MultiWindowResizeController is responsible for determining and showing a
 // widget that allows resizing multiple windows at the same time.
-// MultiWindowResizeController is driven by WorkspaceEventHandler. It can also
-// be an entry point to create or remove a snap group which is guarded by the
-// feature flag `kSnapGroup` and will only be available when the feature param
-// `kAutomaticallyLockGroup` is false.
+// MultiWindowResizeController is driven by WorkspaceEventHandler.
 class ASH_EXPORT MultiWindowResizeController
     : public views::MouseWatcherListener,
       public aura::WindowObserver,
@@ -80,8 +79,6 @@
   void OnOverviewModeStarting() override;
   void OnOverviewModeEndingAnimationComplete(bool canceled) override;
 
-  IconButton* lock_button_for_testing() const { return lock_button_; }
-
  private:
   friend class MultiWindowResizeControllerTest;
   friend class SnapGroupTest;
@@ -159,16 +156,16 @@
   // from the `show_timer_`.
   void ShowIfValidMouseLocation();
 
-  // Shows the `resize_widget_` and `lock_widget_` immediately.
+  // Shows the `resize_widget_` immediately.
   void ShowNow();
 
-  // Returns true if the `resize_widget_` and `lock_widget_` are showing.
+  // Returns true if the `resize_widget_` is showing.
   bool IsShowing() const;
 
-  // Hides the `resize_widget_` and `lock_widget_` if they get created.
+  // Hides the `resize_widget_` if it gets created.
   void Hide();
 
-  // Resets the window resizer and hides the widgets.
+  // Resets the window resizer and hides the widget.
   void ResetResizer();
 
   // Initiates a resize.
@@ -187,19 +184,9 @@
   gfx::Rect CalculateResizeWidgetBounds(
       const gfx::PointF& location_in_parent) const;
 
-  // Returns the bounds for the `lock_widget_` based on the
-  // `resize_widget_bounds`.
-  gfx::Rect CalculateLockWidgetBounds(
-      const gfx::Rect& resize_widget_bounds) const;
-
   // Returns true if `location_in_screen` is over the resize widget.
   bool IsOverResizeWidget(const gfx::Point& location_in_screen) const;
 
-  // Returns true if `location_in_screen` is over the resize widget.
-  // TODO(michelefan): combine with `IsOverResizeWidget` to create a more
-  // general function if arm2 under the `kSnapGroup` flag is enabled by default.
-  bool IsOverLockWidget(const gfx::Point& location_in_screen) const;
-
   // Returns true if `location_in_screen` is over the resize windows
   // (or the resize widget itself).
   bool IsOverWindows(const gfx::Point& location_in_screen) const;
@@ -209,13 +196,6 @@
                        const gfx::Point& location_in_screen,
                        int component) const;
 
-  // Called when the lock button is pressed to create a snap group.
-  void OnLockButtonPressed();
-
-  // Returns true if a lock wiget should be considered i.e. when two windows are
-  // both snapped and the feature flag `kSnapGroup` is enabled.
-  bool ShouldConsiderLockWidget() const;
-
   // Windows and direction to resize.
   ResizeWindows windows_;
 
@@ -224,13 +204,6 @@
 
   std::unique_ptr<views::Widget> resize_widget_;
 
-  // The lock widget that is used to create or remove a snap group when
-  // `kAutomaticallyLockGroup` of `kSnapGroup` is false.
-  std::unique_ptr<views::Widget> lock_widget_;
-
-  // The contents view of the `lock_widget_`.
-  raw_ptr<IconButton, DanglingUntriaged | ExperimentalAsh> lock_button_;
-
   // If non-null we're in a resize loop.
   std::unique_ptr<WorkspaceWindowResizer> window_resizer_;
 
@@ -240,9 +213,6 @@
   // Bounds the resize widget was last shown at in screen coordinates.
   gfx::Rect resize_widget_show_bounds_in_screen_;
 
-  // Bounds the lock widget was last shown at in screen coordinates.
-  gfx::Rect lock_widget_show_bounds_in_screen_;
-
   // Used to detect whether the mouse is over the windows. While
   // |resize_widget_| is non-NULL (ie the widget is showing) we ignore calls
   // to Show().
diff --git a/base/allocator/partition_allocator/DEPS b/base/allocator/partition_allocator/DEPS
index 72c0d0f7..98a3aa9 100644
--- a/base/allocator/partition_allocator/DEPS
+++ b/base/allocator/partition_allocator/DEPS
@@ -2,18 +2,17 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-include_rules = [
-    # The basic rule is that PartitionAlloc library must not depend on Chromium
-    # project in order to be a standalone library.
-    "-base",
-    "-build",
-    "-build_overrides",
-    "-testing",
-    "-third_party",
+# PartitionAlloc library must not depend on Chromium
+# project in order to be a standalone library.
+noparent = True
 
-    "+base/allocator/partition_allocator",
-    "+build/build_config.h",
-    "+build/buildflag.h",
+include_rules = [
+  # `partition_alloc` can depends on itself, via the `include_dirs` it declares.
+  "+partition_alloc",
+
+  # Build flags to infer the architecture and operating system in use.
+  "+build/build_config.h",
+  "+build/buildflag.h",
 ]
 
 specific_include_rules = {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/address_pool_manager.cc b/base/allocator/partition_allocator/src/partition_alloc/address_pool_manager.cc
index 8b35d2a..d4b6f6af 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/address_pool_manager.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/address_pool_manager.cc
@@ -2,24 +2,24 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager.h"
+#include "partition_alloc/address_pool_manager.h"
 
 #include <algorithm>
 #include <atomic>
 #include <cstdint>
 #include <limits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_space_stats.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/notreached.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/reservation_offset_table.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_isolation/alignment.h"
 #include "build/build_config.h"
+#include "partition_alloc/address_space_stats.h"
+#include "partition_alloc/page_allocator.h"
+#include "partition_alloc/page_allocator_constants.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/notreached.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/reservation_offset_table.h"
+#include "partition_alloc/thread_isolation/alignment.h"
 
 #if BUILDFLAG(IS_APPLE) || BUILDFLAG(ENABLE_THREAD_ISOLATION)
 #include <sys/mman.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/address_pool_manager.h b/base/allocator/partition_allocator/src/partition_alloc/address_pool_manager.h
index 2fc8ca20..27851d2 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/address_pool_manager.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/address_pool_manager.h
@@ -8,22 +8,22 @@
 #include <bitset>
 #include <limits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_types.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_lock.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_isolation/alignment.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_isolation/thread_isolation.h"
 #include "build/build_config.h"
+#include "partition_alloc/address_pool_manager_types.h"
+#include "partition_alloc/partition_address_space.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/thread_annotations.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_lock.h"
+#include "partition_alloc/thread_isolation/alignment.h"
+#include "partition_alloc/thread_isolation/thread_isolation.h"
 
 #if !BUILDFLAG(HAS_64_BIT_POINTERS)
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_bitmap.h"
+#include "partition_alloc/address_pool_manager_bitmap.h"
 #endif
 
 namespace partition_alloc {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_bitmap.cc b/base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_bitmap.cc
index 84884ad..ace3db9 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_bitmap.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_bitmap.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_bitmap.h"
+#include "partition_alloc/address_pool_manager_bitmap.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_constants.h"
 
 #if !BUILDFLAG(HAS_64_BIT_POINTERS)
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_bitmap.h b/base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_bitmap.h
index ebbe17e7..a6f4102 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_bitmap.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_bitmap.h
@@ -10,13 +10,13 @@
 #include <bitset>
 #include <limits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_lock.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_lock.h"
 
 #if !BUILDFLAG(HAS_64_BIT_POINTERS)
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_unittest.cc
index f2501f08..54281ee 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_unittest.cc
@@ -2,16 +2,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager.h"
+#include "partition_alloc/address_pool_manager.h"
 
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_space_stats.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
 #include "build/build_config.h"
+#include "partition_alloc/address_space_stats.h"
+#include "partition_alloc/page_allocator.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_constants.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace partition_alloc::internal {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/address_space_randomization.cc b/base/allocator/partition_allocator/src/partition_alloc/address_space_randomization.cc
index f069c1e..1a9aff75 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/address_space_randomization.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/address_space_randomization.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_space_randomization.h"
+#include "partition_alloc/address_space_randomization.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/random.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/random.h"
 
 #if BUILDFLAG(IS_WIN)
 #include <windows.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/address_space_randomization.h b/base/allocator/partition_allocator/src/partition_alloc/address_space_randomization.h
index c336c54..90882673 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/address_space_randomization.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/address_space_randomization.h
@@ -7,10 +7,10 @@
 
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
 #include "build/build_config.h"
+#include "partition_alloc/page_allocator_constants.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 namespace partition_alloc {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/address_space_randomization_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/address_space_randomization_unittest.cc
index afec439c..cb920da 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/address_space_randomization_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/address_space_randomization_unittest.cc
@@ -2,16 +2,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_space_randomization.h"
+#include "partition_alloc/address_space_randomization.h"
 
 #include <cstdint>
 #include <vector>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/random.h"
 #include "build/build_config.h"
+#include "partition_alloc/page_allocator.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/random.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 #if BUILDFLAG(IS_WIN)
diff --git a/base/allocator/partition_allocator/src/partition_alloc/address_space_stats.h b/base/allocator/partition_allocator/src/partition_alloc/address_space_stats.h
index 5b28417..a580d7b 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/address_space_stats.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/address_space_stats.h
@@ -7,8 +7,8 @@
 
 #include <cstddef>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
 
 namespace partition_alloc {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/allocation_guard.cc b/base/allocator/partition_allocator/src/partition_alloc/allocation_guard.cc
index 64e9410e..c0bbd934 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/allocation_guard.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/allocation_guard.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/allocation_guard.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/immediate_crash.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/allocation_guard.h"
+#include "partition_alloc/partition_alloc_base/immediate_crash.h"
+#include "partition_alloc/partition_alloc_config.h"
 
 #if PA_CONFIG(HAS_ALLOCATION_GUARD)
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/allocation_guard.h b/base/allocator/partition_allocator/src/partition_alloc/allocation_guard.h
index 1a69198d..d1ae6081e 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/allocation_guard.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/allocation_guard.h
@@ -5,9 +5,9 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_ALLOCATION_GUARD_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_ALLOCATION_GUARD_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_config.h"
 
 namespace partition_alloc {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/compressed_pointer.cc b/base/allocator/partition_allocator/src/partition_alloc/compressed_pointer.cc
index 1b2e9d9..b4d9e66 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/compressed_pointer.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/compressed_pointer.cc
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/compressed_pointer.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/compressed_pointer.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
 
 #if BUILDFLAG(ENABLE_POINTER_COMPRESSION)
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/compressed_pointer.h b/base/allocator/partition_allocator/src/partition_alloc/compressed_pointer.h
index 1802c1d8..af78c06 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/compressed_pointer.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/compressed_pointer.h
@@ -8,11 +8,11 @@
 #include <climits>
 #include <type_traits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_address_space.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
 
 #if BUILDFLAG(ENABLE_POINTER_COMPRESSION)
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/compressed_pointer_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/compressed_pointer_unittest.cc
index c009bbb3..52de3bf 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/compressed_pointer_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/compressed_pointer_unittest.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/compressed_pointer.h"
+#include "partition_alloc/compressed_pointer.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
+#include "partition_alloc/partition_alloc.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_root.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace partition_alloc {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/dangling_raw_ptr_checks.cc b/base/allocator/partition_allocator/src/partition_alloc/dangling_raw_ptr_checks.cc
index 4946b9b..b2d5632 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/dangling_raw_ptr_checks.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/dangling_raw_ptr_checks.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/dangling_raw_ptr_checks.h"
+#include "partition_alloc/dangling_raw_ptr_checks.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_check.h"
 
 namespace partition_alloc {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/dangling_raw_ptr_checks.h b/base/allocator/partition_allocator/src/partition_alloc/dangling_raw_ptr_checks.h
index 0e118265ba..3ee9493 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/dangling_raw_ptr_checks.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/dangling_raw_ptr_checks.h
@@ -7,7 +7,7 @@
 
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 // When compiled with build flags `enable_dangling_raw_ptr_checks`, dangling
 // raw_ptr are reported. Its behavior can be configured here.
diff --git a/base/allocator/partition_allocator/src/partition_alloc/encoded_next_freelist.h b/base/allocator/partition_allocator/src/partition_alloc/encoded_next_freelist.h
index 89f5845..323899b 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/encoded_next_freelist.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/encoded_next_freelist.h
@@ -8,20 +8,20 @@
 #include <cstddef>
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc-inl.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/immediate_crash.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_ref_count.h"
 #include "build/build_config.h"
+#include "partition_alloc/freeslot_bitmap.h"
+#include "partition_alloc/partition_alloc-inl.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/immediate_crash.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_ref_count.h"
 
 #if !defined(ARCH_CPU_BIG_ENDIAN)
-#include "base/allocator/partition_allocator/src/partition_alloc/reverse_bytes.h"
+#include "partition_alloc/reverse_bytes.h"
 #endif  // !defined(ARCH_CPU_BIG_ENDIAN)
 
 namespace partition_alloc::internal {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/extended_api.cc b/base/allocator/partition_allocator/src/partition_alloc/extended_api.cc
index 5ca0c0f..f87f071 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/extended_api.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/extended_api.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/extended_api.h"
+#include "partition_alloc/extended_api.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_cache.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.h"
+#include "partition_alloc/thread_cache.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/extended_api.h b/base/allocator/partition_allocator/src/partition_alloc/extended_api.h
index 7b154b6..fd57e63b 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/extended_api.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/extended_api.h
@@ -5,10 +5,10 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_EXTENDED_API_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_EXTENDED_API_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_stats.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_cache.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_root.h"
+#include "partition_alloc/partition_stats.h"
+#include "partition_alloc/thread_cache.h"
 
 namespace partition_alloc::internal {
 // Get allocation stats for the thread cache partition on the current
diff --git a/base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap.h b/base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap.h
index c11b78d2..50b0ae21 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap.h
@@ -9,11 +9,11 @@
 #include <cstdint>
 #include <utility>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/freeslot_bitmap_constants.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_constants.h"
 
 #if BUILDFLAG(USE_FREESLOT_BITMAP)
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap_constants.h b/base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap_constants.h
index 00e0a5d..2b20e72b 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap_constants.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap_constants.h
@@ -7,12 +7,12 @@
 
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/reservation_offset_table.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_alloc_forward.h"
+#include "partition_alloc/reservation_offset_table.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap_unittest.cc
index 31920e1..cbeaa3c 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap_unittest.cc
@@ -2,18 +2,18 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap.h"
+#include "partition_alloc/freeslot_bitmap.h"
 
 #include <cstdint>
 #include <limits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_page.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
+#include "partition_alloc/freeslot_bitmap_constants.h"
+#include "partition_alloc/partition_alloc.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_alloc_forward.h"
+#include "partition_alloc/partition_page.h"
+#include "partition_alloc/partition_root.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 // This test is disabled when MEMORY_TOOL_REPLACES_ALLOCATOR is defined because
diff --git a/base/allocator/partition_allocator/src/partition_alloc/gwp_asan_support.cc b/base/allocator/partition_allocator/src/partition_alloc/gwp_asan_support.cc
index 31b8569..a562e43 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/gwp_asan_support.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/gwp_asan_support.cc
@@ -2,20 +2,20 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/gwp_asan_support.h"
+#include "partition_alloc/gwp_asan_support.h"
 
 #if BUILDFLAG(ENABLE_GWP_ASAN_SUPPORT)
 
-#include "base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/no_destructor.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_bucket.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_lock.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_page.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_ref_count.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
 #include "build/build_config.h"
+#include "partition_alloc/freeslot_bitmap_constants.h"
+#include "partition_alloc/page_allocator_constants.h"
+#include "partition_alloc/partition_alloc_base/no_destructor.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_bucket.h"
+#include "partition_alloc/partition_lock.h"
+#include "partition_alloc/partition_page.h"
+#include "partition_alloc/partition_ref_count.h"
+#include "partition_alloc/partition_root.h"
 
 namespace partition_alloc {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/gwp_asan_support.h b/base/allocator/partition_allocator/src/partition_alloc/gwp_asan_support.h
index 697acbb..e68bac47 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/gwp_asan_support.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/gwp_asan_support.h
@@ -5,8 +5,8 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_GWP_ASAN_SUPPORT_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_GWP_ASAN_SUPPORT_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
 
 #if BUILDFLAG(ENABLE_GWP_ASAN_SUPPORT)
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/hardening_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/hardening_unittest.cc
index f2a83925..8a80371 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/hardening_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/hardening_unittest.cc
@@ -6,11 +6,11 @@
 #include <string>
 #include <vector>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_freelist_entry.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_page.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_freelist_entry.h"
+#include "partition_alloc/partition_page.h"
+#include "partition_alloc/partition_root.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 // With *SAN, PartitionAlloc is rerouted to malloc().
diff --git a/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc b/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc
index 28bba39e..100e316 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.h"
+#include "partition_alloc/lightweight_quarantine.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_page.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_stats.h"
+#include "partition_alloc/partition_page.h"
+#include "partition_alloc/partition_root.h"
+#include "partition_alloc/partition_stats.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.h b/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.h
index b34759d29..a611cec 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.h
@@ -25,11 +25,11 @@
 #include <numeric>
 #include <type_traits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/export_template.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_lock.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/export_template.h"
+#include "partition_alloc/partition_alloc_base/rand_util.h"
+#include "partition_alloc/partition_alloc_base/thread_annotations.h"
+#include "partition_alloc/partition_lock.h"
 
 namespace partition_alloc {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine_unittest.cc
index 89f8b57..c60b8346 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine_unittest.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.h"
+#include "partition_alloc/lightweight_quarantine.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_for_testing.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_page.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_stats.h"
+#include "partition_alloc/partition_alloc_for_testing.h"
+#include "partition_alloc/partition_page.h"
+#include "partition_alloc/partition_root.h"
+#include "partition_alloc/partition_stats.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace partition_alloc {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/memory_reclaimer.cc b/base/allocator/partition_allocator/src/partition_alloc/memory_reclaimer.cc
index d700cb50..f6f1acb9 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/memory_reclaimer.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/memory_reclaimer.cc
@@ -2,16 +2,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/memory_reclaimer.h"
+#include "partition_alloc/memory_reclaimer.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/no_destructor.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_alloc.h"
+#include "partition_alloc/partition_alloc_base/no_destructor.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_config.h"
 
 #if BUILDFLAG(USE_STARSCAN)
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan.h"
+#include "partition_alloc/starscan/pcscan.h"
 #endif
 
 namespace partition_alloc {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/memory_reclaimer.h b/base/allocator/partition_allocator/src/partition_alloc/memory_reclaimer.h
index 82a23476..c793a9b 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/memory_reclaimer.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/memory_reclaimer.h
@@ -8,12 +8,12 @@
 #include <memory>
 #include <set>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/no_destructor.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_lock.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/no_destructor.h"
+#include "partition_alloc/partition_alloc_base/thread_annotations.h"
+#include "partition_alloc/partition_alloc_base/time/time.h"
+#include "partition_alloc/partition_alloc_forward.h"
+#include "partition_alloc/partition_lock.h"
 
 namespace partition_alloc {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/memory_reclaimer_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/memory_reclaimer_unittest.cc
index 38b51a7..742138c1 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/memory_reclaimer_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/memory_reclaimer_unittest.cc
@@ -2,24 +2,24 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/memory_reclaimer.h"
+#include "partition_alloc/memory_reclaimer.h"
 
 #include <memory>
 #include <utility>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_for_testing.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_alloc_for_testing.h"
+#include "partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 #if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && \
     PA_CONFIG(THREAD_CACHE_SUPPORTED)
-#include "base/allocator/partition_allocator/src/partition_alloc/extended_api.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_cache.h"
+#include "partition_alloc/extended_api.h"
+#include "partition_alloc/thread_cache.h"
 #endif
 
 // Otherwise, PartitionAlloc doesn't allocate any memory, and the tests are
diff --git a/base/allocator/partition_allocator/src/partition_alloc/oom.cc b/base/allocator/partition_allocator/src/partition_alloc/oom.cc
index 1d695683..f6839ebc 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/oom.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/oom.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/oom.h"
+#include "partition_alloc/oom.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/oom_callback.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/alias.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/immediate_crash.h"
 #include "build/build_config.h"
+#include "partition_alloc/oom_callback.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/debug/alias.h"
+#include "partition_alloc/partition_alloc_base/immediate_crash.h"
 
 #if BUILDFLAG(IS_WIN)
 #include <windows.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/oom.h b/base/allocator/partition_allocator/src/partition_alloc/oom.h
index a6657f6c..7cc20696 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/oom.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/oom.h
@@ -7,13 +7,13 @@
 
 #include <cstddef>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/allocation_guard.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
 #include "build/build_config.h"
+#include "partition_alloc/allocation_guard.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 #if BUILDFLAG(IS_WIN)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/win/windows_types.h"
+#include "partition_alloc/partition_alloc_base/win/windows_types.h"
 #endif
 
 namespace partition_alloc {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/oom_callback.cc b/base/allocator/partition_allocator/src/partition_alloc/oom_callback.cc
index 3528489..0db8407 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/oom_callback.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/oom_callback.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/oom_callback.h"
+#include "partition_alloc/oom_callback.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_check.h"
 
 namespace partition_alloc {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/oom_callback.h b/base/allocator/partition_allocator/src/partition_alloc/oom_callback.h
index 5f816f4..a8611c0 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/oom_callback.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/oom_callback.h
@@ -5,7 +5,7 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_OOM_CALLBACK_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_OOM_CALLBACK_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 namespace partition_alloc {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/page_allocator.cc b/base/allocator/partition_allocator/src/partition_alloc/page_allocator.cc
index d8134e6..f05060f3 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/page_allocator.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/page_allocator.cc
@@ -2,29 +2,29 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator.h"
+#include "partition_alloc/page_allocator.h"
 
 #include <atomic>
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_space_randomization.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator_internal.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_lock.h"
 #include "build/build_config.h"
+#include "partition_alloc/address_space_randomization.h"
+#include "partition_alloc/page_allocator_internal.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/thread_annotations.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_lock.h"
 
 #if BUILDFLAG(IS_WIN)
 #include <windows.h>
 #endif
 
 #if BUILDFLAG(IS_WIN)
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_win.h"
+#include "partition_alloc/page_allocator_internals_win.h"
 #elif BUILDFLAG(IS_POSIX)
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_posix.h"
+#include "partition_alloc/page_allocator_internals_posix.h"
 #elif BUILDFLAG(IS_FUCHSIA)
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_fuchsia.h"
+#include "partition_alloc/page_allocator_internals_fuchsia.h"
 #else
 #error Platform not supported.
 #endif
diff --git a/base/allocator/partition_allocator/src/partition_alloc/page_allocator.h b/base/allocator/partition_allocator/src/partition_alloc/page_allocator.h
index 17569be..307735e 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/page_allocator.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/page_allocator.h
@@ -8,12 +8,12 @@
 #include <cstddef>
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_isolation/thread_isolation.h"
 #include "build/build_config.h"
+#include "partition_alloc/page_allocator_constants.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/thread_isolation/thread_isolation.h"
 
 namespace partition_alloc {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h b/base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h
index cb6116c..8f11cf1 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h
@@ -7,9 +7,9 @@
 
 #include <stddef.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 #if BUILDFLAG(IS_APPLE) && defined(ARCH_CPU_64_BITS)
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/page_allocator_internal.h b/base/allocator/partition_allocator/src/partition_alloc/page_allocator_internal.h
index 0a2b13c..0a97ca57 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/page_allocator_internal.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/page_allocator_internal.h
@@ -8,7 +8,7 @@
 #include <cstddef>
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator.h"
+#include "partition_alloc/page_allocator.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_fuchsia.h b/base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_fuchsia.h
index 256d783..f9347a6 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_fuchsia.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_fuchsia.h
@@ -20,11 +20,11 @@
 
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/fuchsia/fuchsia_logging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/no_destructor.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/notreached.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/page_allocator.h"
+#include "partition_alloc/partition_alloc_base/fuchsia/fuchsia_logging.h"
+#include "partition_alloc/partition_alloc_base/no_destructor.h"
+#include "partition_alloc/partition_alloc_base/notreached.h"
+#include "partition_alloc/partition_alloc_check.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_posix.cc b/base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_posix.cc
index e96514f..571c2c0c 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_posix.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_posix.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/notreached.h"
+#include "partition_alloc/page_allocator.h"
+#include "partition_alloc/partition_alloc_base/cpu.h"
+#include "partition_alloc/partition_alloc_base/notreached.h"
 
 #include <sys/mman.h>
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_posix.h b/base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_posix.h
index 75b45a1..45c5a30 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_posix.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_posix.h
@@ -13,26 +13,26 @@
 
 #include <sys/mman.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/oom.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/notreached.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/posix/eintr_wrapper.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_isolation/thread_isolation.h"
 #include "build/build_config.h"
+#include "partition_alloc/oom.h"
+#include "partition_alloc/page_allocator.h"
+#include "partition_alloc/page_allocator_constants.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/notreached.h"
+#include "partition_alloc/partition_alloc_base/posix/eintr_wrapper.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/thread_isolation/thread_isolation.h"
 
 #if BUILDFLAG(IS_APPLE)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/foundation_util.h"
+#include "partition_alloc/partition_alloc_base/apple/foundation_util.h"
 #if BUILDFLAG(IS_IOS)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/ios/ios_util.h"
+#include "partition_alloc/partition_alloc_base/ios/ios_util.h"
 #elif BUILDFLAG(IS_MAC)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/mac/mac_util.h"
+#include "partition_alloc/partition_alloc_base/mac/mac_util.h"
 #else
 #error "Unknown platform"
 #endif
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/scoped_cftyperef.h"
+#include "partition_alloc/partition_alloc_base/apple/scoped_cftyperef.h"
 
 #include <Availability.h>
 #include <Security/Security.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_win.h b/base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_win.h
index 4c5469b..84beb88 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_win.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/page_allocator_internals_win.h
@@ -7,12 +7,12 @@
 
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/oom.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator_internal.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/notreached.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/oom.h"
+#include "partition_alloc/page_allocator.h"
+#include "partition_alloc/page_allocator_internal.h"
+#include "partition_alloc/partition_alloc_base/notreached.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/page_allocator_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/page_allocator_unittest.cc
index 772a3d1..048cdbb7 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/page_allocator_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/page_allocator_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator.h"
+#include "partition_alloc/page_allocator.h"
 
 #include <stdlib.h>
 #include <string.h>
@@ -12,14 +12,14 @@
 #include <string>
 #include <vector>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_space_randomization.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/notreached.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/tagging.h"
 #include "build/build_config.h"
+#include "partition_alloc/address_space_randomization.h"
+#include "partition_alloc/page_allocator_constants.h"
+#include "partition_alloc/partition_alloc_base/cpu.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
+#include "partition_alloc/partition_alloc_base/notreached.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/tagging.h"
 
 #if defined(LINUX_NAME_REGION)
 #include "base/debug/proc_maps_linux.h"
@@ -34,7 +34,7 @@
 #include <sys/time.h>
 #endif  // BUILDFLAG(IS_POSIX)
 
-#include "base/allocator/partition_allocator/src/partition_alloc/arm_bti_test_functions.h"
+#include "partition_alloc/arm_bti_test_functions.h"
 
 #if PA_CONFIG(HAS_MEMORY_TAGGING)
 #include <arm_acle.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_address_space.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_address_space.cc
index 8df4cc0..6ad0d1f 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_address_space.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_address_space.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h"
+#include "partition_alloc/partition_address_space.h"
 
 #include <array>
 #include <cstddef>
@@ -10,18 +10,18 @@
 #include <ostream>
 #include <string>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/compressed_pointer.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/alias.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_isolation/thread_isolation.h"
 #include "build/build_config.h"
+#include "partition_alloc/address_pool_manager.h"
+#include "partition_alloc/compressed_pointer.h"
+#include "partition_alloc/page_allocator.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/debug/alias.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/thread_isolation/thread_isolation.h"
 
 #if BUILDFLAG(IS_IOS)
 #include <mach-o/dyld.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h b/base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h
index dec969509..d6a342b 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h
@@ -8,22 +8,22 @@
 #include <cstddef>
 #include <utility>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_types.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/notreached.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_isolation/alignment.h"
 #include "build/build_config.h"
+#include "partition_alloc/address_pool_manager_types.h"
+#include "partition_alloc/page_allocator_constants.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/notreached.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_alloc_forward.h"
+#include "partition_alloc/thread_isolation/alignment.h"
 
 #if BUILDFLAG(ENABLE_THREAD_ISOLATION)
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_isolation/thread_isolation.h"
+#include "partition_alloc/thread_isolation/thread_isolation.h"
 #endif
 
 // The feature is not applicable to 32-bit address space.
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc-inl.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc-inl.h
index e808347..129b4bc 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc-inl.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc-inl.h
@@ -8,14 +8,14 @@
 #include <algorithm>
 #include <cstring>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_ref_count.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/random.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/tagging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_isolation/thread_isolation.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_ref_count.h"
+#include "partition_alloc/random.h"
+#include "partition_alloc/tagging.h"
+#include "partition_alloc/thread_isolation/thread_isolation.h"
 
 // Prefetch *x into memory.
 #if defined(__clang__) || defined(COMPILER_GCC)
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc.cc
index 780aa65..b33d5c8 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc.cc
@@ -2,27 +2,27 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc.h"
+#include "partition_alloc/partition_alloc.h"
 
 #include <string.h>
 
 #include <cstdint>
 #include <memory>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/memory_reclaimer.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_hooks.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_direct_map_extent.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_oom.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_page.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_stats.h"
+#include "partition_alloc/address_pool_manager.h"
+#include "partition_alloc/memory_reclaimer.h"
+#include "partition_alloc/partition_address_space.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_hooks.h"
+#include "partition_alloc/partition_direct_map_extent.h"
+#include "partition_alloc/partition_oom.h"
+#include "partition_alloc/partition_page.h"
+#include "partition_alloc/partition_root.h"
+#include "partition_alloc/partition_stats.h"
 
 #if BUILDFLAG(USE_STARSCAN)
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan.h"
+#include "partition_alloc/starscan/pcscan.h"
 #endif
 
 namespace partition_alloc {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc.h
index c88946f..1e23b94e 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc.h
@@ -5,11 +5,11 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_oom.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_forward.h"
+#include "partition_alloc/partition_oom.h"
+#include "partition_alloc/partition_root.h"
 
 // *** HOUSEKEEPING RULES ***
 //
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_allocation_data.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_allocation_data.h
index ec47adff..709d154 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_allocation_data.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_allocation_data.h
@@ -7,9 +7,9 @@
 
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/tagging.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/tagging.h"
 
 namespace partition_alloc {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/foundation_util.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/foundation_util.h
index 516538b2..037d429 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/foundation_util.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/foundation_util.h
@@ -7,7 +7,7 @@
 
 #include <CoreFoundation/CoreFoundation.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 namespace partition_alloc::internal::base::apple {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/foundation_util.mm b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/foundation_util.mm
index e49906b..7bcafc3 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/foundation_util.mm
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/foundation_util.mm
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/foundation_util.h"
+#include "partition_alloc/partition_alloc_base/apple/foundation_util.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/check.h"
 
 namespace partition_alloc::internal::base::apple {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/mach_logging.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/mach_logging.cc
index 21d6aa27..759fb15 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/mach_logging.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/mach_logging.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/mach_logging.h"
+#include "partition_alloc/partition_alloc_base/apple/mach_logging.h"
 
 #include <iomanip>
 #include <string>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/stringprintf.h"
+#include "partition_alloc/partition_alloc_base/strings/stringprintf.h"
 
 namespace {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/mach_logging.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/mach_logging.h
index 2f3b504..6b632d6f 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/mach_logging.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/mach_logging.h
@@ -7,10 +7,10 @@
 
 #include <mach/mach.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
 
 // Use the PA_MACH_LOG family of macros along with a mach_error_t
 // (kern_return_t) containing a Mach error. The error value will be decoded so
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/scoped_cftyperef.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/scoped_cftyperef.h
index 147386e..297f1ef1 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/scoped_cftyperef.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/scoped_cftyperef.h
@@ -7,7 +7,7 @@
 
 #include <CoreFoundation/CoreFoundation.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/scoped_typeref.h"
+#include "partition_alloc/partition_alloc_base/apple/scoped_typeref.h"
 
 namespace partition_alloc::internal::base::apple {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/scoped_typeref.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/scoped_typeref.h
index 0df3e7e..3f6dab7f 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/scoped_typeref.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/scoped_typeref.h
@@ -5,8 +5,8 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_BASE_APPLE_SCOPED_TYPEREF_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_BASE_APPLE_SCOPED_TYPEREF_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/scoped_policy.h"
+#include "partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/memory/scoped_policy.h"
 
 namespace partition_alloc::internal::base::apple {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/augmentations/compiler_specific.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/augmentations/compiler_specific.h
index 29674f3..1310a7d2 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/augmentations/compiler_specific.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/augmentations/compiler_specific.h
@@ -7,7 +7,7 @@
 
 // Extensions for PA's copy of `//base/compiler_specific.h`.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
 
 // PA_ATTRIBUTE_RETURNS_NONNULL
 //
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bit_cast.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bit_cast.h
index 7a0d0b2..0918a56 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bit_cast.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bit_cast.h
@@ -7,7 +7,7 @@
 
 #include <type_traits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
 
 #if !PA_HAS_BUILTIN(__builtin_bit_cast)
 #include <string.h>  // memcpy
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h
index 2af5acd..d9538c3 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h
@@ -11,9 +11,9 @@
 #include <cstdint>
 #include <type_traits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
 
 namespace partition_alloc::internal::base::bits {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits_pa_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits_pa_unittest.cc
index 3f595bb..2d052b003 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits_pa_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits_pa_unittest.cc
@@ -4,7 +4,7 @@
 
 // This file contains the unit tests for the bit utilities.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
 
 #include <cstddef>
 #include <limits>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.cc
index bc67e1e..9db9470 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/check.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
 
 namespace partition_alloc::internal::logging {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h
index ff8efa4a..054ca3d 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h
@@ -7,12 +7,12 @@
 
 #include <iosfwd>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/immediate_crash.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/log_message.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/cstring_builder.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/immediate_crash.h"
+#include "partition_alloc/partition_alloc_base/log_message.h"
+#include "partition_alloc/partition_alloc_base/strings/cstring_builder.h"
 
 #define PA_STRINGIFY_IMPL(s) #s
 #define PA_STRINGIFY(s) PA_STRINGIFY_IMPL(s)
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export_pa_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export_pa_unittest.cc
index bb4fd2b..4d205b05 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export_pa_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export_pa_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace partition_alloc::internal::base {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu.cc
index 0000d86a..b24b8936 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu.h"
+#include "partition_alloc/partition_alloc_base/cpu.h"
 
 #include <inttypes.h>
 #include <limits.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu.h
index ec3590c..929f122d0 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu.h
@@ -5,8 +5,8 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_BASE_CPU_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_BASE_CPU_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 namespace partition_alloc::internal::base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu_pa_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu_pa_unittest.cc
index ea168af..063159ae 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu_pa_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu_pa_unittest.cc
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/cpu.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace partition_alloc {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/alias.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/alias.cc
index 12ac7068..842266a 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/alias.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/alias.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/alias.h"
+#include "partition_alloc/partition_alloc_base/debug/alias.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
 
 namespace partition_alloc::internal::base::debug {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/alias.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/alias.h
index 2289c39d..f72d042 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/alias.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/alias.h
@@ -7,7 +7,7 @@
 
 #include <stddef.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 namespace partition_alloc::internal::base::debug {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace.cc
index e789c541..28a630c 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace.h"
+#include "partition_alloc/partition_alloc_base/debug/stack_trace.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/process/process_handle.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/process/process_handle.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread.h"
 
 #include <stdint.h>
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace.h
index 740529a..24c1deb4 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace.h
@@ -8,9 +8,9 @@
 #include <stddef.h>
 #include <stdint.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
 
 namespace partition_alloc::internal::base::debug {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_android.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_android.cc
index bb945a3..65e6e43 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_android.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_android.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace.h"
+#include "partition_alloc/partition_alloc_base/debug/stack_trace.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
+#include "partition_alloc/partition_alloc_base/strings/safe_sprintf.h"
 
 #include <string.h>
 #include <unistd.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_linux.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_linux.cc
index 6c61163..f9dfe86 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_linux.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_linux.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace.h"
+#include "partition_alloc/partition_alloc_base/debug/stack_trace.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
 
 namespace partition_alloc::internal::base::debug {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_mac.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_mac.cc
index be4678d..4fc9155 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_mac.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_mac.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace.h"
+#include "partition_alloc/partition_alloc_base/debug/stack_trace.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
 
 // Surprisingly, uClibc defines __GLIBC__ in some build configs, but
 // execinfo.h and backtrace(3) are really only present in glibc and in macOS
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_posix.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_posix.cc
index caa5791..3fed895c 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_posix.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_posix.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace.h"
+#include "partition_alloc/partition_alloc_base/debug/stack_trace.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/posix/eintr_wrapper.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
+#include "partition_alloc/partition_alloc_base/posix/eintr_wrapper.h"
+#include "partition_alloc/partition_alloc_base/strings/safe_sprintf.h"
 
 #include <fcntl.h>
 #include <string.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_win.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_win.cc
index dd347d0..00b34f17 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_win.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace_win.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace.h"
+#include "partition_alloc/partition_alloc_base/debug/stack_trace.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/process/process_handle.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
+#include "partition_alloc/partition_alloc_base/process/process_handle.h"
+#include "partition_alloc/partition_alloc_base/strings/safe_sprintf.h"
 
 #include <windows.h>
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_path.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_path.cc
index 3700c7f..dfa436a 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_path.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_path.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_path.h"
+#include "partition_alloc/partition_alloc_base/files/file_path.h"
 
 #include <string.h>
 #include <algorithm>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/check.h"
 
 #if BUILDFLAG(IS_WIN)
 #include <windows.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_path.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_path.h
index 609d49cb..76e98af 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_path.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_path.h
@@ -106,8 +106,8 @@
 #include <iosfwd>
 #include <string>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 // Windows-style drive letter support and pathname separator characters can be
 // enabled and disabled independently, to aid testing.  These #defines are
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_path_pa_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_path_pa_unittest.cc
index 33cde7b..43f7296 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_path_pa_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_path_pa_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_path.h"
+#include "partition_alloc/partition_alloc_base/files/file_path.h"
 
 #include <stddef.h>
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_util.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_util.h
index cd80918f..89e95d01 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_util.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_util.h
@@ -12,8 +12,8 @@
 #include <stdint.h>
 #include <stdio.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 #if BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
 #include <sys/stat.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_util_posix.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_util_posix.cc
index ed3754ca..ac1795d 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_util_posix.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_util_posix.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_util.h"
+#include "partition_alloc/partition_alloc_base/files/file_util.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/posix/eintr_wrapper.h"
+#include "partition_alloc/partition_alloc_base/posix/eintr_wrapper.h"
 
 namespace partition_alloc::internal::base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/fuchsia/fuchsia_logging.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/fuchsia/fuchsia_logging.cc
index 1074ab10b..3c9e10e 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/fuchsia/fuchsia_logging.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/fuchsia/fuchsia_logging.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/fuchsia/fuchsia_logging.h"
+#include "partition_alloc/partition_alloc_base/fuchsia/fuchsia_logging.h"
 
 #include <zircon/status.h>
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/fuchsia/fuchsia_logging.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/fuchsia/fuchsia_logging.h
index 0f17854..879c8fe 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/fuchsia/fuchsia_logging.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/fuchsia/fuchsia_logging.h
@@ -8,10 +8,10 @@
 #include <lib/fit/function.h>
 #include <zircon/types.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
 
 // Use the PA_ZX_LOG family of macros along with a zx_status_t containing a
 // Zircon error. The error value will be decoded so that logged messages explain
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/fuchsia/fuchsia_logging_pa_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/fuchsia/fuchsia_logging_pa_unittest.cc
index f020680..271d4483 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/fuchsia/fuchsia_logging_pa_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/fuchsia/fuchsia_logging_pa_unittest.cc
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/fuchsia/fuchsia_logging.h"
+#include "partition_alloc/partition_alloc_base/fuchsia/fuchsia_logging.h"
 
 #include <fuchsia/logger/cpp/fidl.h>
 #include <lib/fidl/cpp/binding.h>
 #include <lib/sys/cpp/component_context.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/ios/ios_util.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/ios/ios_util.h
index bdc7b31b..cde4453 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/ios/ios_util.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/ios/ios_util.h
@@ -7,7 +7,7 @@
 
 #include <stdint.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 namespace partition_alloc::internal::base::ios {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/ios/ios_util.mm b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/ios/ios_util.mm
index 1772b46..499b892f 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/ios/ios_util.mm
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/ios/ios_util.mm
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/ios/ios_util.h"
+#include "partition_alloc/partition_alloc_base/ios/ios_util.h"
 
 #include <array>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/system/sys_info.h"
+#include "partition_alloc/partition_alloc_base/system/sys_info.h"
 
 namespace partition_alloc::internal::base::ios {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/log_message.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/log_message.cc
index eee763a..5a9aa184 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/log_message.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/log_message.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/log_message.h"
+#include "partition_alloc/partition_alloc_base/log_message.h"
 
 // TODO(1151236): After finishing copying //base files to PA library, remove
 // defined(BASE_CHECK_H_) from here.
@@ -14,15 +14,15 @@
 #error "log_message.h should not include check.h"
 #endif
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/alias.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/stack_trace.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/immediate_crash.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/string_util.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/stringprintf.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/debug/alias.h"
+#include "partition_alloc/partition_alloc_base/debug/stack_trace.h"
+#include "partition_alloc/partition_alloc_base/immediate_crash.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
+#include "partition_alloc/partition_alloc_base/strings/safe_sprintf.h"
+#include "partition_alloc/partition_alloc_base/strings/string_util.h"
+#include "partition_alloc/partition_alloc_base/strings/stringprintf.h"
 
 #if BUILDFLAG(IS_WIN)
 
@@ -40,7 +40,7 @@
 #endif
 
 #if BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/posix/safe_strerror.h"
+#include "partition_alloc/partition_alloc_base/posix/safe_strerror.h"
 #endif
 
 namespace partition_alloc::internal::logging {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/log_message.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/log_message.h
index 3be4c56..5751251 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/log_message.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/log_message.h
@@ -7,11 +7,11 @@
 
 #include <stddef.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/scoped_clear_last_error.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/cstring_builder.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/scoped_clear_last_error.h"
+#include "partition_alloc/partition_alloc_base/strings/cstring_builder.h"
 
 namespace partition_alloc::internal::logging {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.cc
index 275d54d..d4fd55d 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
 
 // TODO(1151236): After finishing copying //base files to PA library, remove
 // defined(BASE_CHECK_H_) from here.
@@ -14,10 +14,10 @@
 #error "logging.h should not include check.h"
 #endif
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/alias.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/immediate_crash.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/debug/alias.h"
+#include "partition_alloc/partition_alloc_base/immediate_crash.h"
 
 #include <algorithm>
 
@@ -40,7 +40,7 @@
 #include <unistd.h>
 #endif
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/posix/eintr_wrapper.h"
+#include "partition_alloc/partition_alloc_base/posix/eintr_wrapper.h"
 
 namespace partition_alloc::internal::logging {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h
index fc641da..6c28fe2 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h
@@ -10,11 +10,11 @@
 #include <cassert>
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/log_message.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/log_message.h"
 
 // TODO(1151236): Need to update the description, because logging for PA
 // standalone library was minimized.
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging_pa_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging_pa_unittest.cc
index 5fa8147..0f97804 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging_pa_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging_pa_unittest.cc
@@ -5,9 +5,9 @@
 #include <sstream>
 #include <string>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
 
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/mac/mac_util.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/mac/mac_util.h
index ed79036e..0ef49db7 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/mac/mac_util.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/mac/mac_util.h
@@ -8,7 +8,7 @@
 #include <AvailabilityMacros.h>
 #import <CoreGraphics/CoreGraphics.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 namespace partition_alloc::internal::base::mac {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/mac/mac_util.mm b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/mac/mac_util.mm
index 94b08d1f..e86d162e 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/mac/mac_util.mm
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/mac/mac_util.mm
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/mac/mac_util.h"
+#include "partition_alloc/partition_alloc_base/mac/mac_util.h"
 
 #include <stddef.h>
 #include <string.h>
@@ -10,8 +10,8 @@
 #include <sys/types.h>
 #include <sys/utsname.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
+#include "partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
 
 // This is a simplified version of base::mac. Because
 // "base/strings/string_split.h" is unavailable, only provide access to the
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/page_size.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/page_size.h
index ffbb707..698eb2a 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/page_size.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/page_size.h
@@ -7,7 +7,7 @@
 
 #include <stddef.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 namespace partition_alloc::internal::base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/page_size_posix.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/page_size_posix.cc
index b11857d4..245bc58 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/page_size_posix.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/page_size_posix.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/page_size.h"
+#include "partition_alloc/partition_alloc_base/memory/page_size.h"
 
 #include <unistd.h>
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/page_size_win.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/page_size_win.cc
index 6f41c08..e5bfb76e 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/page_size_win.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/page_size_win.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/page_size.h"
+#include "partition_alloc/partition_alloc_base/memory/page_size.h"
 
 namespace partition_alloc::internal::base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/ref_counted.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/ref_counted.cc
index 06594af..8bbff1c6 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/ref_counted.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/ref_counted.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/ref_counted.h"
+#include "partition_alloc/partition_alloc_base/memory/ref_counted.h"
 
 #include <limits>
 #include <ostream>
 #include <type_traits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
 
 namespace partition_alloc::internal::base::subtle {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/ref_counted.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/ref_counted.h
index 5bcd35c..78f99c6 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/ref_counted.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/ref_counted.h
@@ -5,13 +5,13 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_BASE_MEMORY_REF_COUNTED_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_BASE_MEMORY_REF_COUNTED_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/atomic_ref_count.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/scoped_refptr.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/atomic_ref_count.h"
+#include "partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/memory/scoped_refptr.h"
 
 namespace partition_alloc::internal::base {
 namespace subtle {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/scoped_refptr.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/scoped_refptr.h
index f438df4..fc0a786 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/scoped_refptr.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/scoped_refptr.h
@@ -11,8 +11,8 @@
 #include <type_traits>
 #include <utility>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/native_library.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/native_library.cc
index 461e8cf..23ab7a3 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/native_library.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/native_library.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/native_library.h"
+#include "partition_alloc/partition_alloc_base/native_library.h"
 
 namespace partition_alloc::internal::base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/native_library.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/native_library.h
index aa95ecb..ff37c5eb 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/native_library.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/native_library.h
@@ -10,9 +10,9 @@
 
 #include <string>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_path.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/files/file_path.h"
 
 #if BUILDFLAG(IS_WIN)
 #include <windows.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/native_library_pa_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/native_library_pa_unittest.cc
index fd15483..82d28c1 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/native_library_pa_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/native_library_pa_unittest.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/native_library.h"
+#include "partition_alloc/partition_alloc_base/native_library.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_path.h"
+#include "partition_alloc/partition_alloc_base/files/file_path.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace partition_alloc::internal::base {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/native_library_posix.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/native_library_posix.cc
index f410115..54611f9 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/native_library_posix.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/native_library_posix.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/native_library.h"
+#include "partition_alloc/partition_alloc_base/native_library.h"
 
 #include <dlfcn.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_path.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/files/file_path.h"
 
 namespace partition_alloc::internal::base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/notreached.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/notreached.h
index 7bb1cdd69..71655a1e 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/notreached.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/notreached.h
@@ -5,7 +5,7 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_BASE_NOTREACHED_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_BASE_NOTREACHED_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/check.h"
 
 // PA_NOTREACHED() annotates paths that are supposed to be unreachable. They
 // crash if they are ever hit.
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/checked_math.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/checked_math.h
index 3d1c765..495594a 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/checked_math.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/checked_math.h
@@ -10,7 +10,7 @@
 #include <limits>
 #include <type_traits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/checked_math_impl.h"
+#include "partition_alloc/partition_alloc_base/numerics/checked_math_impl.h"
 
 namespace partition_alloc::internal::base {
 namespace internal {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/checked_math_impl.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/checked_math_impl.h
index ea32015..12a8c5cb 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/checked_math_impl.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/checked_math_impl.h
@@ -14,8 +14,8 @@
 #include <limits>
 #include <type_traits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_math_shared_impl.h"
+#include "partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
+#include "partition_alloc/partition_alloc_base/numerics/safe_math_shared_impl.h"
 
 namespace partition_alloc::internal::base::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/clamped_math.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/clamped_math.h
index ec382b24..e89480f 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/clamped_math.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/clamped_math.h
@@ -10,7 +10,7 @@
 #include <limits>
 #include <type_traits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/clamped_math_impl.h"
+#include "partition_alloc/partition_alloc_base/numerics/clamped_math_impl.h"
 
 namespace partition_alloc::internal::base {
 namespace internal {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/clamped_math_impl.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/clamped_math_impl.h
index ef96b9e..a0fdf3a7 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/clamped_math_impl.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/clamped_math_impl.h
@@ -14,9 +14,9 @@
 #include <limits>
 #include <type_traits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/checked_math.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_math_shared_impl.h"
+#include "partition_alloc/partition_alloc_base/numerics/checked_math.h"
+#include "partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
+#include "partition_alloc/partition_alloc_base/numerics/safe_math_shared_impl.h"
 
 namespace partition_alloc::internal::base::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_conversions.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_conversions.h
index ae069f5e..17e4c68 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_conversions.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_conversions.h
@@ -11,10 +11,10 @@
 #include <limits>
 #include <type_traits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_conversions_impl.h"
+#include "partition_alloc/partition_alloc_base/numerics/safe_conversions_impl.h"
 
 #if defined(__ARMEL__) && !defined(__native_client__)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_conversions_arm_impl.h"
+#include "partition_alloc/partition_alloc_base/numerics/safe_conversions_arm_impl.h"
 #define PA_BASE_HAS_OPTIMIZED_SAFE_CONVERSIONS (1)
 #else
 #define PA_BASE_HAS_OPTIMIZED_SAFE_CONVERSIONS (0)
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_conversions_arm_impl.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_conversions_arm_impl.h
index 25c24c9f..5e0af67 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_conversions_arm_impl.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_conversions_arm_impl.h
@@ -9,7 +9,7 @@
 #include <limits>
 #include <type_traits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_conversions_impl.h"
+#include "partition_alloc/partition_alloc_base/numerics/safe_conversions_impl.h"
 
 namespace partition_alloc::internal::base::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_math.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_math.h
index 00a20aa..d664df5 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_math.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_math.h
@@ -5,8 +5,8 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_BASE_NUMERICS_SAFE_MATH_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_BASE_NUMERICS_SAFE_MATH_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/checked_math.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/clamped_math.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
+#include "partition_alloc/partition_alloc_base/numerics/checked_math.h"
+#include "partition_alloc/partition_alloc_base/numerics/clamped_math.h"
+#include "partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
 
 #endif  // BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_BASE_NUMERICS_SAFE_MATH_H_
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_math_arm_impl.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_math_arm_impl.h
index ea1e053..d4ae826c 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_math_arm_impl.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_math_arm_impl.h
@@ -8,7 +8,7 @@
 #include <cassert>
 #include <type_traits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
+#include "partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
 
 namespace partition_alloc::internal::base::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_math_clang_gcc_impl.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_math_clang_gcc_impl.h
index 49fd9be..e44cb4fd 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_math_clang_gcc_impl.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_math_clang_gcc_impl.h
@@ -9,10 +9,10 @@
 #include <limits>
 #include <type_traits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
+#include "partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
 
 #if !defined(__native_client__) && (defined(__ARMEL__) || defined(__arch64__))
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_math_arm_impl.h"
+#include "partition_alloc/partition_alloc_base/numerics/safe_math_arm_impl.h"
 #define PA_BASE_HAS_ASSEMBLER_SAFE_MATH (1)
 #else
 #define PA_BASE_HAS_ASSEMBLER_SAFE_MATH (0)
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_math_shared_impl.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_math_shared_impl.h
index 0d4846ad..ec66088 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_math_shared_impl.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_math_shared_impl.h
@@ -15,8 +15,8 @@
 #include <limits>
 #include <type_traits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
 
 #if BUILDFLAG(IS_ASMJS)
 // Optimized safe math instructions are incompatible with asmjs.
@@ -27,7 +27,7 @@
       ((__clang_major__ > 3) ||                            \
        (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
      (defined(__GNUC__) && __GNUC__ >= 5))
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_math_clang_gcc_impl.h"
+#include "partition_alloc/partition_alloc_base/numerics/safe_math_clang_gcc_impl.h"
 #define PA_BASE_HAS_OPTIMIZED_SAFE_MATH (1)
 #else
 #define PA_BASE_HAS_OPTIMIZED_SAFE_MATH (0)
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/posix/safe_strerror.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/posix/safe_strerror.cc
index b779ff15..875a3e4 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/posix/safe_strerror.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/posix/safe_strerror.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/posix/safe_strerror.h"
+#include "partition_alloc/partition_alloc_base/posix/safe_strerror.h"
 
 #include <errno.h>
 #include <stdio.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/posix/safe_strerror.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/posix/safe_strerror.h
index 9af43a81..d6d3a02 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/posix/safe_strerror.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/posix/safe_strerror.h
@@ -9,7 +9,7 @@
 
 #include <string>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 namespace partition_alloc::internal::base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/process/process_handle.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/process/process_handle.h
index f42fb158..ad90499 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/process/process_handle.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/process/process_handle.h
@@ -8,11 +8,11 @@
 #include <stdint.h>
 #include <sys/types.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 #if BUILDFLAG(IS_WIN)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/win/windows_types.h"
+#include "partition_alloc/partition_alloc_base/win/windows_types.h"
 #endif
 
 #if BUILDFLAG(IS_FUCHSIA)
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/process/process_handle_posix.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/process/process_handle_posix.cc
index f807f93e..8989883 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/process/process_handle_posix.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/process/process_handle_posix.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/process/process_handle.h"
+#include "partition_alloc/partition_alloc_base/process/process_handle.h"
 
 #include <unistd.h>
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/process/process_handle_win.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/process/process_handle_win.cc
index 1eed450..9fcc809 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/process/process_handle_win.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/process/process_handle_win.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/process/process_handle.h"
+#include "partition_alloc/partition_alloc_base/process/process_handle.h"
 
 #include <windows.h>
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util.cc
index 00f1721..d98573f 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util.h"
+#include "partition_alloc/partition_alloc_base/rand_util.h"
 
 #include <limits.h>
 #include <math.h>
@@ -10,7 +10,7 @@
 
 #include <limits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/check.h"
 
 namespace partition_alloc::internal::base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util.h
index d4ae730..fa695be 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util.h
@@ -8,8 +8,8 @@
 #include <stddef.h>
 #include <stdint.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 namespace partition_alloc {
 class RandomGenerator;
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_fuchsia.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_fuchsia.cc
index b19fed7..e3e7773 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_fuchsia.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_fuchsia.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util.h"
+#include "partition_alloc/partition_alloc_base/rand_util.h"
 
 #include <zircon/syscalls.h>
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_pa_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_pa_unittest.cc
index 550c00e3..757c09b 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_pa_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_pa_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util.h"
+#include "partition_alloc/partition_alloc_base/rand_util.h"
 
 #include <stddef.h>
 #include <stdint.h>
@@ -13,9 +13,9 @@
 #include <memory>
 #include <vector>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h"
+#include "partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
+#include "partition_alloc/partition_alloc_base/time/time.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace partition_alloc::internal::base {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_posix.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_posix.cc
index 20d4c66c..ede860c8 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_posix.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_posix.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util.h"
+#include "partition_alloc/partition_alloc_base/rand_util.h"
 
 #include <errno.h>
 #include <fcntl.h>
@@ -12,12 +12,12 @@
 #include <unistd.h>
 #include <sstream>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_util.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/no_destructor.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/posix/eintr_wrapper.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/files/file_util.h"
+#include "partition_alloc/partition_alloc_base/no_destructor.h"
+#include "partition_alloc/partition_alloc_base/posix/eintr_wrapper.h"
 
 #if BUILDFLAG(IS_MAC)
 // TODO(crbug.com/995996): Waiting for this header to appear in the iOS SDK.
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_win.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_win.cc
index 91271c5d..5c26c4c 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_win.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util_win.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util.h"
+#include "partition_alloc/partition_alloc_base/rand_util.h"
 
 #include <stddef.h>
 #include <stdint.h>
@@ -11,7 +11,7 @@
 #include <algorithm>
 #include <limits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/check.h"
 
 // Prototype for ProcessPrng.
 // See: https://learn.microsoft.com/en-us/windows/win32/seccng/processprng
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/scoped_clear_last_error.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/scoped_clear_last_error.h
index 7c1cef44..d1ef631 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/scoped_clear_last_error.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/scoped_clear_last_error.h
@@ -7,8 +7,8 @@
 
 #include <errno.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 namespace partition_alloc::internal::base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/scoped_clear_last_error_pa_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/scoped_clear_last_error_pa_unittest.cc
index 2bbfee2..1856abd1 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/scoped_clear_last_error_pa_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/scoped_clear_last_error_pa_unittest.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/scoped_clear_last_error.h"
+#include "partition_alloc/partition_alloc_base/scoped_clear_last_error.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 #if BUILDFLAG(IS_WIN)
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/scoped_clear_last_error_win.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/scoped_clear_last_error_win.cc
index a4c9549..e6ebe6a 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/scoped_clear_last_error_win.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/scoped_clear_last_error_win.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/scoped_clear_last_error.h"
+#include "partition_alloc/partition_alloc_base/scoped_clear_last_error.h"
 
 #include <windows.h>
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/cstring_builder.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/cstring_builder.cc
index 290b77b3..4e8262d 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/cstring_builder.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/cstring_builder.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/cstring_builder.h"
+#include "partition_alloc/partition_alloc_base/strings/cstring_builder.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/strings/safe_sprintf.h"
 
 #if !BUILDFLAG(IS_WIN)
 #include <unistd.h>
@@ -16,7 +16,7 @@
 #include <cstring>
 
 #if BUILDFLAG(PA_DCHECK_IS_ON)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/check.h"
 #define PA_RAW_DCHECK PA_RAW_CHECK
 #else
 #define PA_RAW_DCHECK(x) \
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/cstring_builder.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/cstring_builder.h
index 45cdbe4d..457596f3 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/cstring_builder.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/cstring_builder.h
@@ -5,8 +5,8 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_BASE_STRINGS_CSTRING_BUILDER_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_BASE_STRINGS_CSTRING_BUILDER_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 #include <cstddef>
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/cstring_builder_pa_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/cstring_builder_pa_unittest.cc
index 865fbe7a..c480242 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/cstring_builder_pa_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/cstring_builder_pa_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/cstring_builder.h"
+#include "partition_alloc/partition_alloc_base/strings/cstring_builder.h"
 
 #include <cmath>
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf.cc
index 777089c7..5a3a948 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf.h"
+#include "partition_alloc/partition_alloc_base/strings/safe_sprintf.h"
 
 #include <errno.h>
 #include <string.h>
@@ -34,7 +34,7 @@
 //        errno = 13 (Access denied)
 //      In most of the anticipated use cases, that's probably the preferred
 //      behavior.
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/check.h"
 #define DEBUG_CHECK PA_RAW_CHECK
 #else
 #define DEBUG_CHECK(x) \
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf.h
index 723a02a6..a2f62ac 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf.h
@@ -16,7 +16,7 @@
 #include <unistd.h>
 #endif
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 namespace partition_alloc::internal::base::strings {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf_pa_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf_pa_unittest.cc
index afef569..7fca0a6 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf_pa_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf_pa_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf.h"
+#include "partition_alloc/partition_alloc_base/strings/safe_sprintf.h"
 
 #include <stddef.h>
 #include <stdint.h>
@@ -12,9 +12,9 @@
 #include <limits>
 #include <memory>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_config.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 // Death tests on Android are currently very flaky. No need to add more flaky
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/string_util.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/string_util.cc
index a4b4350..ef124f3 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/string_util.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/string_util.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/string_util.h"
+#include "partition_alloc/partition_alloc_base/strings/string_util.h"
 
 #include <cstring>
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/string_util.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/string_util.h
index 597f74c..d3a96c9c 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/string_util.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/string_util.h
@@ -5,7 +5,7 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_BASE_STRINGS_STRING_UTIL_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_BASE_STRINGS_STRING_UTIL_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 namespace partition_alloc::internal::base::strings {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/string_util_pa_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/string_util_pa_unittest.cc
index d864335..5e8175f 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/string_util_pa_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/string_util_pa_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/string_util.h"
+#include "partition_alloc/partition_alloc_base/strings/string_util.h"
 
 #include "build/build_config.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/stringprintf.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/stringprintf.cc
index 3d290182..cd17864a 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/stringprintf.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/stringprintf.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/stringprintf.h"
+#include "partition_alloc/partition_alloc_base/strings/stringprintf.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/scoped_clear_last_error.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/scoped_clear_last_error.h"
 
 #include <stdarg.h>
 #include <stdio.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/stringprintf.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/stringprintf.h
index 67733c6..d727a27d 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/stringprintf.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/stringprintf.h
@@ -9,9 +9,9 @@
 
 #include <string>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 namespace partition_alloc::internal::base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/stringprintf_pa_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/stringprintf_pa_unittest.cc
index d3f673d..45f025c 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/stringprintf_pa_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/stringprintf_pa_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/stringprintf.h"
+#include "partition_alloc/partition_alloc_base/strings/stringprintf.h"
 
 #include <errno.h>
 #include <stddef.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/system/sys_info.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/system/sys_info.h
index d9e12ff..ad1fc37 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/system/sys_info.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/system/sys_info.h
@@ -7,7 +7,7 @@
 
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 namespace partition_alloc::internal::base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/system/sys_info_ios.mm b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/system/sys_info_ios.mm
index 324af9d9f5..0082bcb13 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/system/sys_info_ios.mm
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/system/sys_info_ios.mm
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/system/sys_info.h"
+#include "partition_alloc/partition_alloc_base/system/sys_info.h"
 
 #import <Foundation/Foundation.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
+#include "partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
 
 namespace partition_alloc::internal::base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/system/sys_info_mac.mm b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/system/sys_info_mac.mm
index b420af9..20a4205 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/system/sys_info_mac.mm
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/system/sys_info_mac.mm
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/system/sys_info.h"
+#include "partition_alloc/partition_alloc_base/system/sys_info.h"
 
 #import <Foundation/Foundation.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
+#include "partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
 
 namespace partition_alloc::internal::base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h
index 61f1348b..7d805609 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h
@@ -37,8 +37,8 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_BASE_THREAD_ANNOTATIONS_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_BASE_THREAD_ANNOTATIONS_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
 
 #if defined(__clang__)
 #define PA_THREAD_ANNOTATION_ATTRIBUTE__(x) __attribute__((x))
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations_pa_nocompile.nc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations_pa_nocompile.nc
index f056a47..22f2d48 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations_pa_nocompile.nc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations_pa_nocompile.nc
@@ -5,7 +5,7 @@
 // This is a "No Compile Test" suite.
 // https://dev.chromium.org/developers/testing/no-compile-tests
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h"
+#include "partition_alloc/partition_alloc_base/thread_annotations.h"
 
 namespace {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations_pa_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations_pa_unittest.cc
index 5384e479..798d363 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations_pa_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations_pa_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h"
+#include "partition_alloc/partition_alloc_base/thread_annotations.h"
 
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.cc
index 8f18536c..855deda 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread.h"
 
 namespace partition_alloc::internal::base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.h
index 043c4b3..3191828 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.h
@@ -13,13 +13,13 @@
 
 #include <iosfwd>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_ref.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread_ref.h"
+#include "partition_alloc/partition_alloc_base/time/time.h"
 
 #if BUILDFLAG(IS_WIN)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/win/windows_types.h"
+#include "partition_alloc/partition_alloc_base/win/windows_types.h"
 #elif BUILDFLAG(IS_FUCHSIA)
 #include <zircon/types.h>
 #elif BUILDFLAG(IS_APPLE)
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_android_for_testing.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_android_for_testing.cc
index 7a846b1..427e3ca 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_android_for_testing.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_android_for_testing.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h"
 
 #include <pthread.h>
 #include <stddef.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_apple_for_testing.mm b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_apple_for_testing.mm
index 77374bc..875f5872 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_apple_for_testing.mm
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_apple_for_testing.mm
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h"
 
 #import <Foundation/Foundation.h>
 #include <mach/mach.h>
@@ -15,8 +15,8 @@
 #include <algorithm>
 #include <atomic>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/check.h"
 
 namespace partition_alloc::internal::base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h
index b1fd67d..e5d8f93 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h
@@ -13,8 +13,8 @@
 
 #include <iosfwd>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread.h"
 
 namespace partition_alloc::internal::base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_fuchsia_for_testing.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_fuchsia_for_testing.cc
index 8454d37..fa9bb91 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_fuchsia_for_testing.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_fuchsia_for_testing.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h"
 
 #include <pthread.h>
 #include <stddef.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_internal_posix.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_internal_posix.h
index 3c53be4..90b829f 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_internal_posix.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_internal_posix.h
@@ -5,8 +5,8 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_BASE_THREADING_PLATFORM_THREAD_INTERNAL_POSIX_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_BASE_THREADING_PLATFORM_THREAD_INTERNAL_POSIX_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 namespace partition_alloc::internal::base::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_linux_for_testing.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_linux_for_testing.cc
index 0f0e4b40..692c31126 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_linux_for_testing.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_linux_for_testing.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h"
 
 #include <pthread.h>
 #include <stddef.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_posix.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_posix.cc
index eaa6d4a..e06cc32 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_posix.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_posix.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread.h"
 
 #include <errno.h>
 #include <pthread.h>
@@ -12,10 +12,10 @@
 #include <sys/types.h>
 #include <unistd.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_internal_posix.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread_internal_posix.h"
 
 #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
 #include <sys/syscall.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_posix_for_testing.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_posix_for_testing.cc
index 250de61..daac1c3 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_posix_for_testing.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_posix_for_testing.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h"
 
 #include <errno.h>
 #include <pthread.h>
@@ -14,11 +14,11 @@
 #include <unistd.h>
 #include <memory>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_internal_posix.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread_internal_posix.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
 
 #if BUILDFLAG(IS_FUCHSIA)
 #include <zircon/process.h>
@@ -27,8 +27,8 @@
 #endif
 
 #if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && BUILDFLAG(USE_STARSCAN)
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/stack/stack.h"
+#include "partition_alloc/starscan/pcscan.h"
+#include "partition_alloc/starscan/stack/stack.h"
 #endif
 
 namespace partition_alloc::internal::base {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_ref.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_ref.h
index 47d40a8..41dc705 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_ref.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_ref.h
@@ -12,11 +12,11 @@
 
 #include <iosfwd>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 #if BUILDFLAG(IS_WIN)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/win/windows_types.h"
+#include "partition_alloc/partition_alloc_base/win/windows_types.h"
 #elif BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
 #include <pthread.h>
 #endif
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_win.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_win.cc
index c2e9028e..17caae7 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_win.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_win.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread.h"
 
 #include <stddef.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_override.h"
+#include "partition_alloc/partition_alloc_base/time/time_override.h"
 
 #include <windows.h>
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_win_for_testing.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_win_for_testing.cc
index 466ff0e..7588139 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_win_for_testing.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_win_for_testing.cc
@@ -2,21 +2,21 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h"
 
 #include <stddef.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/oom.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/alias.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
 #include "build/build_config.h"
+#include "partition_alloc/oom.h"
+#include "partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/debug/alias.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
 
 #include <windows.h>
 
 #if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && BUILDFLAG(USE_STARSCAN)
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/stack/stack.h"
+#include "partition_alloc/starscan/pcscan.h"
+#include "partition_alloc/starscan/stack/stack.h"
 #endif
 
 namespace partition_alloc::internal::base {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.cc
index 184c66b..8d4fc033 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h"
+#include "partition_alloc/partition_alloc_base/time/time.h"
 
 #include <atomic>
 #include <cmath>
@@ -11,7 +11,7 @@
 #include <tuple>
 #include <utility>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_override.h"
+#include "partition_alloc/partition_alloc_base/time/time_override.h"
 
 namespace partition_alloc::internal::base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h
index 52550a0..180132e2 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h
@@ -68,14 +68,14 @@
 #include <iosfwd>
 #include <limits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/chromeos_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/clamped_math.h"
 #include "build/build_config.h"
+#include "partition_alloc/chromeos_buildflags.h"
+#include "partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/numerics/clamped_math.h"
 
 #if BUILDFLAG(IS_APPLE)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
 #endif  // BUILDFLAG(IS_APPLE)
 
 #if BUILDFLAG(IS_FUCHSIA)
@@ -99,7 +99,7 @@
 #endif
 
 #if BUILDFLAG(IS_WIN)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/win/windows_types.h"
+#include "partition_alloc/partition_alloc_base/win/windows_types.h"
 
 namespace ABI {
 namespace Windows {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_android.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_android.cc
index 52845a5..1d36482 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_android.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_android.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h"
+#include "partition_alloc/partition_alloc_base/time/time.h"
 
 namespace partition_alloc::internal::base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_apple.mm b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_apple.mm
index 0e05d4b9..77a95d0 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_apple.mm
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_apple.mm
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h"
+#include "partition_alloc/partition_alloc_base/time/time.h"
 
 #import <Foundation/Foundation.h>
 #include <mach/mach.h>
@@ -18,11 +18,11 @@
 #include <errno.h>
 #endif
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_override.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
+#include "partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
+#include "partition_alloc/partition_alloc_base/time/time_override.h"
 
 namespace partition_alloc::internal::base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_conversion_posix.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_conversion_posix.cc
index 0544c1d..9a734b20 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_conversion_posix.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_conversion_posix.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h"
+#include "partition_alloc/partition_alloc_base/time/time.h"
 
 #include <stdint.h>
 #include <sys/time.h>
@@ -10,7 +10,7 @@
 
 #include <limits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/check.h"
 
 namespace partition_alloc::internal::base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_fuchsia.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_fuchsia.cc
index 45f5127c..475b49d 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_fuchsia.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_fuchsia.cc
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h"
+#include "partition_alloc/partition_alloc_base/time/time.h"
 
 #include <threads.h>
 #include <zircon/syscalls.h>
 #include <zircon/threads.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_override.h"
+#include "partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/time/time_override.h"
 
 namespace partition_alloc::internal::base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_now_posix.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_now_posix.cc
index 47da2d59..da9e7e3 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_now_posix.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_now_posix.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h"
+#include "partition_alloc/partition_alloc_base/time/time.h"
 
 #include <stdint.h>
 #include <sys/time.h>
@@ -14,10 +14,10 @@
 #endif
 #include <unistd.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/notreached.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_math.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_override.h"
+#include "partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/notreached.h"
+#include "partition_alloc/partition_alloc_base/numerics/safe_math.h"
+#include "partition_alloc/partition_alloc_base/time/time_override.h"
 
 // Ensure the Fuchsia and Mac builds do not include this module. Instead,
 // non-POSIX implementation is used for sampling the system clocks.
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_override.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_override.cc
index f0a1d24..b1c4c925 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_override.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_override.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_override.h"
+#include "partition_alloc/partition_alloc_base/time/time_override.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/check.h"
 
 namespace partition_alloc::internal::base::subtle {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_override.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_override.h
index 1763774a..689282a 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_override.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_override.h
@@ -7,9 +7,9 @@
 
 #include <atomic>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/time/time.h"
 
 namespace partition_alloc::internal::base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_win.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_win.cc
index 8c09a3ac..0958c37 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_win.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_win.cc
@@ -30,7 +30,7 @@
 // will only increase the system-wide timer if we're not running on battery
 // power.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h"
+#include "partition_alloc/partition_alloc_base/time/time.h"
 
 #include <windows.foundation.h>
 #include <windows.h>
@@ -41,12 +41,12 @@
 
 #include <atomic>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bit_cast.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_override.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/bit_cast.h"
+#include "partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/cpu.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread.h"
+#include "partition_alloc/partition_alloc_base/time/time_override.h"
 
 namespace partition_alloc::internal::base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/win/win_handle_types.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/win/win_handle_types.h
index 0783dec4..9a227c97 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/win/win_handle_types.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/win/win_handle_types.h
@@ -10,7 +10,7 @@
 #define PA_WINDOWS_HANDLE_TYPE(name) \
   struct name##__;                   \
   typedef struct name##__* name;
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/win/win_handle_types_list.inc"
+#include "partition_alloc/partition_alloc_base/win/win_handle_types_list.inc"
 #undef PA_WINDOWS_HANDLE_TYPE
 
 #endif  // BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_BASE_WIN_WIN_HANDLE_TYPES_H_
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h
index fae09d7f..918716e4 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h
@@ -7,14 +7,14 @@
 
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/alias.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/immediate_crash.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
 #include "build/build_config.h"
+#include "partition_alloc/page_allocator_constants.h"
+#include "partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/debug/alias.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/immediate_crash.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
 
 // When PartitionAlloc is used as the default allocator, we cannot use the
 // regular (D)CHECK() macros, as they allocate internally. When an assertion is
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h
index 595c713..6a4c471 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h
@@ -5,9 +5,9 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_CONFIG_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_CONFIG_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
 
 // PA_CONFIG() uses a similar trick as BUILDFLAG() to allow the compiler catch
 // typos or a missing #include.
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h
index 57dc1671..da192f3 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h
@@ -10,21 +10,21 @@
 #include <cstddef>
 #include <limits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_types.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/flags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h"
 #include "build/build_config.h"
+#include "partition_alloc/address_pool_manager_types.h"
+#include "partition_alloc/flags.h"
+#include "partition_alloc/page_allocator_constants.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_alloc_forward.h"
 
 #if BUILDFLAG(IS_APPLE) && defined(ARCH_CPU_64_BITS)
 #include <mach/vm_page_size.h>
 #endif
 
 #if PA_CONFIG(HAS_MEMORY_TAGGING)
-#include "base/allocator/partition_allocator/src/partition_alloc/tagging.h"
+#include "partition_alloc/tagging.h"
 #endif
 
 namespace partition_alloc {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_for_testing.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_for_testing.h
index f62db07..a1a4b0082 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_for_testing.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_for_testing.h
@@ -5,7 +5,7 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_FOR_TESTING_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_ALLOC_FOR_TESTING_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc.h"
+#include "partition_alloc/partition_alloc.h"
 
 namespace partition_alloc {
 namespace internal {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h
index 5087809..89440d4 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h
@@ -10,11 +10,11 @@
 #include <cstdint>
 #include <type_traits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/thread_annotations.h"
+#include "partition_alloc/partition_alloc_config.h"
 
 namespace partition_alloc {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_hooks.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_hooks.cc
index 47be84c..209ac547 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_hooks.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_hooks.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_hooks.h"
+#include "partition_alloc/partition_alloc_hooks.h"
 
 #include <ostream>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_lock.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_lock.h"
 
 namespace partition_alloc {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_hooks.h b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_hooks.h
index 4e74b19..64361a6 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_hooks.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_hooks.h
@@ -8,9 +8,9 @@
 #include <atomic>
 #include <cstddef>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_constants.h"
 
 namespace partition_alloc {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_perftest.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_perftest.cc
index 2c5505f..f4918f3 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_perftest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_perftest.cc
@@ -8,20 +8,20 @@
 #include <memory>
 #include <vector>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/extended_api.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/stringprintf.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_for_testing.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_cache.h"
 #include "base/debug/debugging_buildflags.h"
 #include "base/timer/lap_timer.h"
 #include "build/build_config.h"
+#include "partition_alloc/extended_api.h"
+#include "partition_alloc/partition_alloc.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
+#include "partition_alloc/partition_alloc_base/strings/stringprintf.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h"
+#include "partition_alloc/partition_alloc_base/time/time.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_alloc_for_testing.h"
+#include "partition_alloc/partition_root.h"
+#include "partition_alloc/thread_cache.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "testing/perf/perf_result_reporter.h"
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_unittest.cc
index df74aff..3ba6e9dd 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_for_testing.h"
+#include "partition_alloc/partition_alloc_for_testing.h"
 
 #include <algorithm>
 #include <cstddef>
@@ -17,40 +17,40 @@
 #include <tuple>
 #include <vector>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_space_randomization.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/chromecast_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/dangling_raw_ptr_checks.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/memory_reclaimer.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/checked_math.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_bucket.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_cookie.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_freelist_entry.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_page.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_ref_count.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_stats.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/reservation_offset_table.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/tagging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_isolation/thread_isolation.h"
 #include "base/system/sys_info.h"
 #include "base/test/gtest_util.h"
 #include "build/build_config.h"
+#include "partition_alloc/address_space_randomization.h"
+#include "partition_alloc/chromecast_buildflags.h"
+#include "partition_alloc/dangling_raw_ptr_checks.h"
+#include "partition_alloc/freeslot_bitmap.h"
+#include "partition_alloc/lightweight_quarantine.h"
+#include "partition_alloc/memory_reclaimer.h"
+#include "partition_alloc/page_allocator_constants.h"
+#include "partition_alloc/partition_address_space.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/cpu.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
+#include "partition_alloc/partition_alloc_base/numerics/checked_math.h"
+#include "partition_alloc/partition_alloc_base/rand_util.h"
+#include "partition_alloc/partition_alloc_base/thread_annotations.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_alloc_forward.h"
+#include "partition_alloc/partition_bucket.h"
+#include "partition_alloc/partition_cookie.h"
+#include "partition_alloc/partition_freelist_entry.h"
+#include "partition_alloc/partition_page.h"
+#include "partition_alloc/partition_ref_count.h"
+#include "partition_alloc/partition_root.h"
+#include "partition_alloc/partition_stats.h"
+#include "partition_alloc/reservation_offset_table.h"
+#include "partition_alloc/tagging.h"
+#include "partition_alloc/thread_isolation/thread_isolation.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 #if defined(__ARM_FEATURE_MEMORY_TAGGING)
@@ -74,7 +74,7 @@
 #endif
 
 #if BUILDFLAG(IS_MAC)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/mac/mac_util.h"
+#include "partition_alloc/partition_alloc_base/mac/mac_util.h"
 #endif
 
 #if BUILDFLAG(ENABLE_PKEYS)
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_bucket.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_bucket.cc
index 51f2c9b..bec02a01 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_bucket.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_bucket.cc
@@ -2,41 +2,41 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_bucket.h"
+#include "partition_alloc/partition_bucket.h"
 
 #include <algorithm>
 #include <cstdint>
 #include <tuple>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/oom.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/alias.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/immediate_crash.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_direct_map_extent.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_oom.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_page.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/reservation_offset_table.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/tagging.h"
 #include "build/build_config.h"
+#include "partition_alloc/address_pool_manager.h"
+#include "partition_alloc/freeslot_bitmap.h"
+#include "partition_alloc/freeslot_bitmap_constants.h"
+#include "partition_alloc/oom.h"
+#include "partition_alloc/page_allocator.h"
+#include "partition_alloc/page_allocator_constants.h"
+#include "partition_alloc/partition_address_space.h"
+#include "partition_alloc/partition_alloc.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/debug/alias.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/immediate_crash.h"
+#include "partition_alloc/partition_alloc_base/thread_annotations.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_alloc_forward.h"
+#include "partition_alloc/partition_direct_map_extent.h"
+#include "partition_alloc/partition_oom.h"
+#include "partition_alloc/partition_page.h"
+#include "partition_alloc/reservation_offset_table.h"
+#include "partition_alloc/tagging.h"
 
 #if BUILDFLAG(USE_STARSCAN)
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan.h"
+#include "partition_alloc/starscan/pcscan.h"
 #endif
 
 namespace partition_alloc::internal {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_bucket.h b/base/allocator/partition_allocator/src/partition_alloc/partition_bucket.h
index ff8fca4..5a32154 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_bucket.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_bucket.h
@@ -8,13 +8,13 @@
 #include <cstddef>
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/thread_annotations.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_alloc_forward.h"
+#include "partition_alloc/partition_page_constants.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_bucket_lookup.h b/base/allocator/partition_allocator/src/partition_alloc/partition_bucket_lookup.h
index 0c08630..2c0b74d 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_bucket_lookup.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_bucket_lookup.h
@@ -7,11 +7,11 @@
 
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_constants.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_cookie.h b/base/allocator/partition_allocator/src/partition_alloc/partition_cookie.h
index d031e287..c8205b1 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_cookie.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_cookie.h
@@ -5,9 +5,9 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_COOKIE_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_COOKIE_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_dcheck_helper.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_dcheck_helper.cc
index 4ba50c7..b68461a 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_dcheck_helper.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_dcheck_helper.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_dcheck_helper.h"
+#include "partition_alloc/partition_dcheck_helper.h"
 
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_bucket.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_page.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
+#include "partition_alloc/partition_bucket.h"
+#include "partition_alloc/partition_page.h"
+#include "partition_alloc/partition_root.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_dcheck_helper.h b/base/allocator/partition_allocator/src/partition_alloc/partition_dcheck_helper.h
index 2170a67..e1f368a 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_dcheck_helper.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_dcheck_helper.h
@@ -5,10 +5,10 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_DCHECK_HELPER_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_DCHECK_HELPER_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_lock.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_forward.h"
+#include "partition_alloc/partition_lock.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_direct_map_extent.h b/base/allocator/partition_allocator/src/partition_alloc/partition_direct_map_extent.h
index 23bac08..fd2f1eb 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_direct_map_extent.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_direct_map_extent.h
@@ -5,10 +5,10 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_DIRECT_MAP_EXTENT_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_DIRECT_MAP_EXTENT_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_bucket.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_page.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_bucket.h"
+#include "partition_alloc/partition_page.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_freelist_entry.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_freelist_entry.cc
index ed292d7..10ab7c6 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_freelist_entry.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_freelist_entry.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_freelist_entry.h"
+#include "partition_alloc/partition_freelist_entry.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/immediate_crash.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_base/immediate_crash.h"
+#include "partition_alloc/partition_alloc_check.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_freelist_entry.h b/base/allocator/partition_allocator/src/partition_alloc/partition_freelist_entry.h
index 5a43defa..3b3ad56 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_freelist_entry.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_freelist_entry.h
@@ -7,11 +7,11 @@
 
 #include <cstddef>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_constants.h"
 
 namespace partition_alloc::internal {
 
@@ -21,9 +21,9 @@
 }  // namespace partition_alloc::internal
 
 #if BUILDFLAG(USE_FREELIST_POOL_OFFSETS)
-#include "base/allocator/partition_allocator/src/partition_alloc/pool_offset_freelist.h"  // IWYU pragma: export
+#include "partition_alloc/pool_offset_freelist.h"  // IWYU pragma: export
 #else
-#include "base/allocator/partition_allocator/src/partition_alloc/encoded_next_freelist.h"  // IWYU pragma: export
+#include "partition_alloc/encoded_next_freelist.h"  // IWYU pragma: export
 #endif  // BUILDFLAG(USE_FREELIST_POOL_OFFSETS)
 
 namespace partition_alloc::internal {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_lock.h b/base/allocator/partition_allocator/src/partition_alloc/partition_lock.h
index b3b28db..ff08e2b 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_lock.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_lock.h
@@ -8,15 +8,15 @@
 #include <atomic>
 #include <type_traits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/immediate_crash.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_isolation/thread_isolation.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/immediate_crash.h"
+#include "partition_alloc/partition_alloc_base/thread_annotations.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/spinning_mutex.h"
+#include "partition_alloc/thread_isolation/thread_isolation.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_lock_perftest.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_lock_perftest.cc
index 27503b5..1bf5c01 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_lock_perftest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_lock_perftest.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_lock.h"
+#include "partition_alloc/partition_lock.h"
 
 #include <vector>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h"
 #include "base/timer/lap_timer.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h"
+#include "partition_alloc/partition_alloc_base/time/time.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "testing/perf/perf_result_reporter.h"
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_lock_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_lock_unittest.cc
index 6d1376e..93eb0d8 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_lock_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_lock_unittest.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_lock.h"
+#include "partition_alloc/partition_lock.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/thread_annotations.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h"
+#include "partition_alloc/partition_alloc_base/time/time.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace partition_alloc::internal {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_oom.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_oom.cc
index 1027801..17f1d61b 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_oom.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_oom.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_oom.h"
+#include "partition_alloc/partition_oom.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/oom.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/alias.h"
 #include "build/build_config.h"
+#include "partition_alloc/oom.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/debug/alias.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_oom.h b/base/allocator/partition_allocator/src/partition_alloc/partition_oom.h
index 640b1ca5..908d811 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_oom.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_oom.h
@@ -10,9 +10,9 @@
 
 #include <stddef.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 namespace partition_alloc {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_page.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_page.cc
index 920dc131d..babdb591 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_page.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_page.cc
@@ -2,27 +2,27 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_page.h"
+#include "partition_alloc/partition_page.h"
 
 #include <algorithm>
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_direct_map_extent.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/reservation_offset_table.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/tagging.h"
+#include "partition_alloc/address_pool_manager.h"
+#include "partition_alloc/freeslot_bitmap.h"
+#include "partition_alloc/page_allocator.h"
+#include "partition_alloc/page_allocator_constants.h"
+#include "partition_alloc/partition_address_space.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_alloc_forward.h"
+#include "partition_alloc/partition_direct_map_extent.h"
+#include "partition_alloc/partition_root.h"
+#include "partition_alloc/reservation_offset_table.h"
+#include "partition_alloc/tagging.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_page.h b/base/allocator/partition_allocator/src/partition_alloc/partition_page.h
index 54803c87..4f937aa 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_page.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_page.h
@@ -7,37 +7,37 @@
 
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_types.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_bucket.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_dcheck_helper.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_freelist_entry.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_superpage_extent_entry.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/reservation_offset_table.h"
 #include "build/build_config.h"
+#include "partition_alloc/address_pool_manager.h"
+#include "partition_alloc/address_pool_manager_types.h"
+#include "partition_alloc/freeslot_bitmap_constants.h"
+#include "partition_alloc/partition_address_space.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/thread_annotations.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_alloc_forward.h"
+#include "partition_alloc/partition_bucket.h"
+#include "partition_alloc/partition_dcheck_helper.h"
+#include "partition_alloc/partition_freelist_entry.h"
+#include "partition_alloc/partition_page_constants.h"
+#include "partition_alloc/partition_superpage_extent_entry.h"
+#include "partition_alloc/reservation_offset_table.h"
 
 #if BUILDFLAG(USE_STARSCAN)
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/state_bitmap.h"
+#include "partition_alloc/starscan/state_bitmap.h"
 #endif
 
 #if BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_ref_count.h"
+#include "partition_alloc/partition_ref_count.h"
 #endif
 
 #if BUILDFLAG(PA_DCHECK_IS_ON)
-#include "base/allocator/partition_allocator/src/partition_alloc/tagging.h"
+#include "partition_alloc/tagging.h"
 #endif
 
 namespace partition_alloc::internal {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h b/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h
index b7b1a81c..b0707c7 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_page_constants.h
@@ -5,9 +5,9 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_PAGE_CONSTANTS_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_PAGE_CONSTANTS_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_constants.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_ref_count.h b/base/allocator/partition_allocator/src/partition_alloc/partition_ref_count.h
index 0db9a26..eef678da2 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_ref_count.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_ref_count.h
@@ -8,22 +8,22 @@
 #include <atomic>
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/dangling_raw_ptr_checks.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/immediate_crash.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/tagging.h"
 #include "build/build_config.h"
+#include "partition_alloc/dangling_raw_ptr_checks.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/immediate_crash.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_alloc_forward.h"
+#include "partition_alloc/tagging.h"
 
 #if BUILDFLAG(IS_MAC)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/mac/mac_util.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/mac/mac_util.h"
 #endif  // BUILDFLAG(IS_MAC)
 
 namespace partition_alloc::internal {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_root.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_root.cc
index d7ab6b3..25160d8 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_root.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_root.cc
@@ -2,44 +2,44 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
+#include "partition_alloc/partition_root.h"
 
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/oom.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc-inl.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_bucket.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_cookie.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_oom.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_page.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_ref_count.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/reservation_offset_table.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/tagging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_isolation/thread_isolation.h"
 #include "build/build_config.h"
+#include "partition_alloc/freeslot_bitmap.h"
+#include "partition_alloc/oom.h"
+#include "partition_alloc/page_allocator.h"
+#include "partition_alloc/partition_address_space.h"
+#include "partition_alloc/partition_alloc-inl.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/thread_annotations.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_bucket.h"
+#include "partition_alloc/partition_cookie.h"
+#include "partition_alloc/partition_oom.h"
+#include "partition_alloc/partition_page.h"
+#include "partition_alloc/partition_ref_count.h"
+#include "partition_alloc/reservation_offset_table.h"
+#include "partition_alloc/tagging.h"
+#include "partition_alloc/thread_isolation/thread_isolation.h"
 
 #if BUILDFLAG(IS_MAC)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/mac/mac_util.h"
+#include "partition_alloc/partition_alloc_base/mac/mac_util.h"
 #endif
 
 #if BUILDFLAG(USE_STARSCAN)
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan.h"
+#include "partition_alloc/starscan/pcscan.h"
 #endif
 
 #if !BUILDFLAG(HAS_64_BIT_POINTERS)
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_bitmap.h"
+#include "partition_alloc/address_pool_manager_bitmap.h"
 #endif
 
 #if BUILDFLAG(IS_WIN)
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_root.h b/base/allocator/partition_allocator/src/partition_alloc/partition_root.h
index 23a514a..2fc73cd 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_root.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_root.h
@@ -36,47 +36,47 @@
 #include <cstdint>
 #include <limits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_types.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/allocation_guard.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/chromecast_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/freeslot_bitmap.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc-inl.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_allocation_data.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/export_template.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/no_destructor.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/notreached.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_hooks.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_bucket.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_bucket_lookup.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_cookie.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_direct_map_extent.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_freelist_entry.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_lock.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_oom.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_page.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_ref_count.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/reservation_offset_table.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/tagging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_cache.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_isolation/thread_isolation.h"
 #include "build/build_config.h"
+#include "partition_alloc/address_pool_manager_types.h"
+#include "partition_alloc/allocation_guard.h"
+#include "partition_alloc/chromecast_buildflags.h"
+#include "partition_alloc/freeslot_bitmap.h"
+#include "partition_alloc/lightweight_quarantine.h"
+#include "partition_alloc/page_allocator.h"
+#include "partition_alloc/partition_address_space.h"
+#include "partition_alloc/partition_alloc-inl.h"
+#include "partition_alloc/partition_alloc_allocation_data.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/export_template.h"
+#include "partition_alloc/partition_alloc_base/no_destructor.h"
+#include "partition_alloc/partition_alloc_base/notreached.h"
+#include "partition_alloc/partition_alloc_base/thread_annotations.h"
+#include "partition_alloc/partition_alloc_base/time/time.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_alloc_forward.h"
+#include "partition_alloc/partition_alloc_hooks.h"
+#include "partition_alloc/partition_bucket.h"
+#include "partition_alloc/partition_bucket_lookup.h"
+#include "partition_alloc/partition_cookie.h"
+#include "partition_alloc/partition_direct_map_extent.h"
+#include "partition_alloc/partition_freelist_entry.h"
+#include "partition_alloc/partition_lock.h"
+#include "partition_alloc/partition_oom.h"
+#include "partition_alloc/partition_page.h"
+#include "partition_alloc/partition_ref_count.h"
+#include "partition_alloc/reservation_offset_table.h"
+#include "partition_alloc/tagging.h"
+#include "partition_alloc/thread_cache.h"
+#include "partition_alloc/thread_isolation/thread_isolation.h"
 
 #if BUILDFLAG(USE_STARSCAN)
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan.h"
+#include "partition_alloc/starscan/pcscan.h"
 #endif
 
 namespace partition_alloc::internal {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_stats.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_stats.cc
index 19775e08..93a314a 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_stats.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_stats.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_stats.h"
+#include "partition_alloc/partition_stats.h"
 
 #include <cstring>
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_stats.h b/base/allocator/partition_allocator/src/partition_alloc/partition_stats.h
index 76b8e8c..591fc84f 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_stats.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_stats.h
@@ -8,10 +8,10 @@
 #include <cstddef>
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_alloc_constants.h"
 
 namespace partition_alloc {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_superpage_extent_entry.h b/base/allocator/partition_allocator/src/partition_alloc/partition_superpage_extent_entry.h
index 8a9989f..a0cda4c 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_superpage_extent_entry.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_superpage_extent_entry.h
@@ -7,12 +7,12 @@
 
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_types.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_dcheck_helper.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/reservation_offset_table.h"
+#include "partition_alloc/address_pool_manager.h"
+#include "partition_alloc/address_pool_manager_types.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_alloc_forward.h"
+#include "partition_alloc/partition_dcheck_helper.h"
+#include "partition_alloc/reservation_offset_table.h"
 
 // Should not include partition_root.h, partition_bucket.h, partition_page.h.
 // For IsQuarantineAllowed(), use partition_dcheck_helper.h instead of
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_tls.h b/base/allocator/partition_allocator/src/partition_alloc/partition_tls.h
index 44ceba2..df8a95c2 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_tls.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_tls.h
@@ -5,18 +5,18 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_TLS_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_PARTITION_TLS_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/immediate_crash.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/immediate_crash.h"
+#include "partition_alloc/partition_alloc_check.h"
 
 #if BUILDFLAG(IS_POSIX)
 #include <pthread.h>
 #endif
 
 #if BUILDFLAG(IS_WIN)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/win/windows_types.h"
+#include "partition_alloc/partition_alloc_base/win/windows_types.h"
 #endif
 
 // Barebones TLS implementation for use in PartitionAlloc. This doesn't use the
diff --git a/base/allocator/partition_allocator/src/partition_alloc/partition_tls_win.cc b/base/allocator/partition_allocator/src/partition_alloc/partition_tls_win.cc
index 5caf32e..e28ffe8 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/partition_tls_win.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/partition_tls_win.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_tls.h"
+#include "partition_alloc/partition_tls.h"
 
 #include <windows.h>
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h
index a70a181..fc4ac9b 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h
@@ -13,25 +13,25 @@
 #include <type_traits>
 #include <utility>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/flags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cxx20_is_constant_evaluated.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_exclusion.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/raw_ptr_buildflags.h"
 #include "build/build_config.h"
 #include "build/buildflag.h"
+#include "partition_alloc/flags.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/cxx20_is_constant_evaluated.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_alloc_forward.h"
+#include "partition_alloc/pointers/raw_ptr_exclusion.h"
+#include "partition_alloc/raw_ptr_buildflags.h"
 
 #if BUILDFLAG(IS_WIN)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/win/win_handle_types.h"
+#include "partition_alloc/partition_alloc_base/win/win_handle_types.h"
 #endif
 
 #if BUILDFLAG(USE_PARTITION_ALLOC)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_base/check.h"
 // Live implementation of MiraclePtr being built.
 #if BUILDFLAG(ENABLE_BACKUP_REF_PTR_SUPPORT) || \
     BUILDFLAG(USE_ASAN_BACKUP_REF_PTR)
@@ -50,13 +50,13 @@
 #endif  // BUILDFLAG(USE_PARTITION_ALLOC)
 
 #if BUILDFLAG(ENABLE_BACKUP_REF_PTR_SUPPORT)
-#include "base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_backup_ref_impl.h"
+#include "partition_alloc/pointers/raw_ptr_backup_ref_impl.h"
 #elif BUILDFLAG(USE_ASAN_UNOWNED_PTR)
-#include "base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_asan_unowned_impl.h"
+#include "partition_alloc/pointers/raw_ptr_asan_unowned_impl.h"
 #elif BUILDFLAG(USE_HOOKABLE_RAW_PTR)
-#include "base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_hookable_impl.h"
+#include "partition_alloc/pointers/raw_ptr_hookable_impl.h"
 #else
-#include "base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_noop_impl.h"
+#include "partition_alloc/pointers/raw_ptr_noop_impl.h"
 #endif
 
 namespace cc {
@@ -213,7 +213,7 @@
   struct IsSupportedType<name##__, void> { \
     static constexpr bool value = false;   \
   };
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/win/win_handle_types_list.inc"
+#include "partition_alloc/partition_alloc_base/win/win_handle_types_list.inc"
 #undef PA_WINDOWS_HANDLE_TYPE
 #endif
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_asan_unowned_impl.cc b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_asan_unowned_impl.cc
index 3a43be20..2ecddf5 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_asan_unowned_impl.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_asan_unowned_impl.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_asan_unowned_impl.h"
+#include "partition_alloc/pointers/raw_ptr_asan_unowned_impl.h"
 
 #include <sanitizer/asan_interface.h>
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
 
 namespace base::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_asan_unowned_impl.h b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_asan_unowned_impl.h
index 536d7ec3..bb63e34 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_asan_unowned_impl.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_asan_unowned_impl.h
@@ -9,10 +9,10 @@
 
 #include <type_traits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cxx20_is_constant_evaluated.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/cxx20_is_constant_evaluated.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_forward.h"
 
 #if !BUILDFLAG(USE_ASAN_UNOWNED_PTR)
 #error "Included under wrong build option"
diff --git a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_backup_ref_impl.cc b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_backup_ref_impl.cc
index 09ba441..ea52bc2 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_backup_ref_impl.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_backup_ref_impl.cc
@@ -2,17 +2,17 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_backup_ref_impl.h"
+#include "partition_alloc/pointers/raw_ptr_backup_ref_impl.h"
 
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/dangling_raw_ptr_checks.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_ref_count.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/reservation_offset_table.h"
+#include "partition_alloc/dangling_raw_ptr_checks.h"
+#include "partition_alloc/partition_alloc.h"
+#include "partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_ref_count.h"
+#include "partition_alloc/partition_root.h"
+#include "partition_alloc/reservation_offset_table.h"
 
 namespace base::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_backup_ref_impl.h b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_backup_ref_impl.h
index 34fffbfa..3f08aa7 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_backup_ref_impl.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_backup_ref_impl.h
@@ -9,20 +9,20 @@
 
 #include <type_traits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/chromeos_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cxx20_is_constant_evaluated.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/tagging.h"
 #include "build/build_config.h"
+#include "partition_alloc/chromeos_buildflags.h"
+#include "partition_alloc/partition_address_space.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/cxx20_is_constant_evaluated.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_alloc_forward.h"
+#include "partition_alloc/tagging.h"
 
 #if !BUILDFLAG(HAS_64_BIT_POINTERS)
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_bitmap.h"
+#include "partition_alloc/address_pool_manager_bitmap.h"
 #endif
 
 #if !BUILDFLAG(ENABLE_BACKUP_REF_PTR_SUPPORT)
diff --git a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_counting_impl_for_test.h b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_counting_impl_for_test.h
index fa000f4..4724c959 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_counting_impl_for_test.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_counting_impl_for_test.h
@@ -7,8 +7,8 @@
 
 #include <climits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_noop_impl.h"
+#include "partition_alloc/pointers/raw_ptr.h"
+#include "partition_alloc/pointers/raw_ptr_noop_impl.h"
 
 namespace base::test {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_exclusion.h b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_exclusion.h
index 4b8eb7b..38a4146 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_exclusion.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_exclusion.h
@@ -7,9 +7,9 @@
 
 // This header will be leakily included even when
 // `!use_partition_alloc`, which is okay because it's a leaf header.
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"  // nogncheck
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"  // nogncheck
+#include "partition_alloc/partition_alloc_buildflags.h"
 
 #if PA_HAS_ATTRIBUTE(annotate)
 #if defined(OFFICIAL_BUILD) && !BUILDFLAG(FORCE_ENABLE_RAW_PTR_EXCLUSION)
diff --git a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_hookable_impl.cc b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_hookable_impl.cc
index 9b71004..e23ee52 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_hookable_impl.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_hookable_impl.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_hookable_impl.h"
+#include "partition_alloc/pointers/raw_ptr_hookable_impl.h"
 
 #include <atomic>
 #include <cstdint>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_hookable_impl.h b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_hookable_impl.h
index 2a1430c..336ef18 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_hookable_impl.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_hookable_impl.h
@@ -9,11 +9,11 @@
 
 #include <type_traits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cxx20_is_constant_evaluated.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/cxx20_is_constant_evaluated.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_forward.h"
 
 #if !BUILDFLAG(USE_HOOKABLE_RAW_PTR)
 #error "Included under wrong build option"
diff --git a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_nocompile.nc b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_nocompile.nc
index 1b589d1..41e91f0e 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_nocompile.nc
+++ b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_nocompile.nc
@@ -11,8 +11,8 @@
 
 #include "base/functional/bind.h"
 #include "base/functional/callback.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/pointers/raw_ptr.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
 
 namespace {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_noop_impl.h b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_noop_impl.h
index 2fc12c6..5280577 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_noop_impl.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_noop_impl.h
@@ -7,8 +7,8 @@
 
 #include <type_traits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_forward.h"
 
 namespace base::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_unittest.cc
index fdf92412f..a7fd36f 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h"
+#include "partition_alloc/pointers/raw_ptr.h"
 
 #include <climits>
 #include <cstddef>
@@ -15,20 +15,6 @@
 
 #include "base/allocator/partition_alloc_features.h"
 #include "base/allocator/partition_alloc_support.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/chromeos_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/dangling_raw_ptr_checks.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc-inl.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/checked_math.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_hooks.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_counting_impl_for_test.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_test_support.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ref.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/tagging.h"
 #include "base/cpu.h"
 #include "base/cxx20_to_address.h"
 #include "base/logging.h"
@@ -41,6 +27,20 @@
 #include "base/test/task_environment.h"
 #include "build/build_config.h"
 #include "build/buildflag.h"
+#include "partition_alloc/chromeos_buildflags.h"
+#include "partition_alloc/dangling_raw_ptr_checks.h"
+#include "partition_alloc/partition_alloc-inl.h"
+#include "partition_alloc/partition_alloc.h"
+#include "partition_alloc/partition_alloc_base/numerics/checked_math.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_alloc_hooks.h"
+#include "partition_alloc/partition_root.h"
+#include "partition_alloc/pointers/raw_ptr_counting_impl_for_test.h"
+#include "partition_alloc/pointers/raw_ptr_test_support.h"
+#include "partition_alloc/pointers/raw_ref.h"
+#include "partition_alloc/tagging.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
diff --git a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ref.h b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ref.h
index 7a548fc..f389761 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ref.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ref.h
@@ -9,11 +9,11 @@
 #include <type_traits>
 #include <utility>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/augmentations/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h"
+#include "partition_alloc/partition_alloc_base/augmentations/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/pointers/raw_ptr.h"
 
 namespace base {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ref_nocompile.nc b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ref_nocompile.nc
index 8f596d5..8c59a7e4 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ref_nocompile.nc
+++ b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ref_nocompile.nc
@@ -5,7 +5,7 @@
 // This is a "No Compile Test" suite.
 // http://dev.chromium.org/developers/testing/no-compile-tests
 
-#include "base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ref.h"
+#include "partition_alloc/pointers/raw_ref.h"
 
 namespace {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ref_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ref_unittest.cc
index 5249ea1..6daaab64 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ref_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ref_unittest.cc
@@ -2,17 +2,17 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ref.h"
+#include "partition_alloc/pointers/raw_ref.h"
 
 #include <functional>
 #include <type_traits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_counting_impl_for_test.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr_test_support.h"
 #include "base/memory/raw_ptr.h"
 #include "base/test/gtest_util.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/pointers/raw_ptr_counting_impl_for_test.h"
+#include "partition_alloc/pointers/raw_ptr_test_support.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #if BUILDFLAG(USE_ASAN_BACKUP_REF_PTR)
 #include "base/debug/asan_service.h"
diff --git a/base/allocator/partition_allocator/src/partition_alloc/pool_offset_freelist.h b/base/allocator/partition_allocator/src/partition_alloc/pool_offset_freelist.h
index c721b91..c5402c7 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/pool_offset_freelist.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/pool_offset_freelist.h
@@ -8,9 +8,9 @@
 #include <cstddef>
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc-inl.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_address_space.h"
+#include "partition_alloc/partition_alloc-inl.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/random.cc b/base/allocator/partition_allocator/src/partition_alloc/random.cc
index db5fa4c..6e7a97d 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/random.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/random.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/random.h"
+#include "partition_alloc/random.h"
 
 #include <type_traits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_lock.h"
+#include "partition_alloc/partition_alloc_base/rand_util.h"
+#include "partition_alloc/partition_alloc_base/thread_annotations.h"
+#include "partition_alloc/partition_lock.h"
 
 namespace partition_alloc {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/random.h b/base/allocator/partition_allocator/src/partition_alloc/random.h
index 27faccd9..617c2a0 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/random.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/random.h
@@ -7,7 +7,7 @@
 
 #include <stdint.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 namespace partition_alloc {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/reservation_offset_table.cc b/base/allocator/partition_allocator/src/partition_alloc/reservation_offset_table.cc
index 5fff5d6..656f3a1 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/reservation_offset_table.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/reservation_offset_table.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/reservation_offset_table.h"
+#include "partition_alloc/reservation_offset_table.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/reservation_offset_table.h b/base/allocator/partition_allocator/src/partition_alloc/reservation_offset_table.h
index 5fdd81b..cfad867 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/reservation_offset_table.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/reservation_offset_table.h
@@ -10,17 +10,17 @@
 #include <limits>
 #include <tuple>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/tagging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_isolation/alignment.h"
 #include "build/build_config.h"
+#include "partition_alloc/address_pool_manager.h"
+#include "partition_alloc/partition_address_space.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/tagging.h"
+#include "partition_alloc/thread_isolation/alignment.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/reverse_bytes.h b/base/allocator/partition_allocator/src/partition_alloc/reverse_bytes.h
index b236ac7..a444651 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/reverse_bytes.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/reverse_bytes.h
@@ -12,8 +12,8 @@
 
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_config.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/reverse_bytes_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/reverse_bytes_unittest.cc
index 32042cd..975cef23 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/reverse_bytes_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/reverse_bytes_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/reverse_bytes.h"
+#include "partition_alloc/reverse_bytes.h"
 
 #include <cstdint>
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_interception_apple.h b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_interception_apple.h
index ed6f98b..23791ee5 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_interception_apple.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_interception_apple.h
@@ -7,8 +7,8 @@
 
 #include <stddef.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/third_party/apple_apsl/malloc.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/third_party/apple_apsl/malloc.h"
 
 namespace allocator_shim {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_interception_apple.mm b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_interception_apple.mm
index fde5be38..10964071 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_interception_apple.mm
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_interception_apple.mm
@@ -15,7 +15,7 @@
 // only reason to intercept these calls is to re-label OOM crashes with slightly
 // more details.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_interception_apple.h"
+#include "partition_alloc/shim/allocator_interception_apple.h"
 
 #include <CoreFoundation/CoreFoundation.h>
 #import <Foundation/Foundation.h>
@@ -27,20 +27,20 @@
 #include <algorithm>
 #include <new>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/oom.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/mach_logging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/malloc_zone_functions_apple.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/third_party/apple_apsl/CFBase.h"
 #include "build/build_config.h"
+#include "partition_alloc/oom.h"
+#include "partition_alloc/partition_alloc_base/apple/mach_logging.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/shim/malloc_zone_functions_apple.h"
+#include "partition_alloc/third_party/apple_apsl/CFBase.h"
 
 #if BUILDFLAG(IS_IOS)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/ios/ios_util.h"
+#include "partition_alloc/partition_alloc_base/ios/ios_util.h"
 #else
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/mac/mac_util.h"
+#include "partition_alloc/partition_alloc_base/mac/mac_util.h"
 #endif
 
 // The patching of Objective-C runtime bits must be done without any
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_interception_apple_unittest.mm b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_interception_apple_unittest.mm
index 44d36a6e..925b7a6 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_interception_apple_unittest.mm
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_interception_apple_unittest.mm
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_interception_apple.h"
+#include "partition_alloc/shim/allocator_interception_apple.h"
 
 #include <mach/mach.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/malloc_zone_functions_apple.h"
+#include "partition_alloc/shim/allocator_shim.h"
+#include "partition_alloc/shim/malloc_zone_functions_apple.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace allocator_shim {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim.cc b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim.cc
index b44a85ea..6b8914d 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim.cc
@@ -2,36 +2,36 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim.h"
+#include "partition_alloc/shim/allocator_shim.h"
 
 #include <errno.h>
 
 #include <atomic>
 #include <new>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/page_size.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/notreached.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/memory/page_size.h"
+#include "partition_alloc/partition_alloc_base/notreached.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
 
 #if !BUILDFLAG(IS_WIN)
 #include <unistd.h>
 #else
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/winheap_stubs_win.h"
+#include "partition_alloc/shim/winheap_stubs_win.h"
 #endif
 
 #if BUILDFLAG(IS_APPLE)
 #include <malloc/malloc.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/mach_logging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_interception_apple.h"
+#include "partition_alloc/partition_alloc_base/apple/mach_logging.h"
+#include "partition_alloc/shim/allocator_interception_apple.h"
 #endif
 
 #if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC)
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.h"
+#include "partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.h"
 #endif
 
 // No calls to malloc / new in this file. They would would cause re-entrancy of
@@ -393,24 +393,24 @@
 // avoid crashes in case of operator new() noexcept.  Thus, operator new()
 // noexcept needs to be routed to
 // allocator_shim::internal::PartitionMallocUnchecked through the shim layer.
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_cpp_symbols.h"
+#include "partition_alloc/shim/allocator_shim_override_cpp_symbols.h"
 #endif
 
 #if BUILDFLAG(IS_ANDROID)
 // Android does not support symbol interposition. The way malloc symbols are
 // intercepted on Android is by using link-time -wrap flags.
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_linker_wrapped_symbols.h"
+#include "partition_alloc/shim/allocator_shim_override_linker_wrapped_symbols.h"
 #elif BUILDFLAG(IS_WIN)
 // On Windows we use plain link-time overriding of the CRT symbols.
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_ucrt_symbols_win.h"
+#include "partition_alloc/shim/allocator_shim_override_ucrt_symbols_win.h"
 #elif BUILDFLAG(IS_APPLE)
 #if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC)
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_apple_default_zone.h"
+#include "partition_alloc/shim/allocator_shim_override_apple_default_zone.h"
 #else  // BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC)
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_apple_symbols.h"
+#include "partition_alloc/shim/allocator_shim_override_apple_symbols.h"
 #endif  // BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC)
 #else
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_libc_symbols.h"
+#include "partition_alloc/shim/allocator_shim_override_libc_symbols.h"
 #endif
 
 // Some glibc versions (until commit 6c444ad6e953dbdf9c7be065308a0a777)
@@ -428,7 +428,7 @@
 // this mechanism.
 
 #if defined(LIBC_GLIBC) && BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC)
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_glibc_weak_symbols.h"
+#include "partition_alloc/shim/allocator_shim_override_glibc_weak_symbols.h"
 #endif
 
 #if BUILDFLAG(IS_APPLE)
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim.h b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim.h
index 838aa34..bcb630ec 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim.h
@@ -8,14 +8,14 @@
 #include <stddef.h>
 #include <stdint.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/types/strong_alias.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/tagging.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/types/strong_alias.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/tagging.h"
 
 #if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && BUILDFLAG(USE_STARSCAN)
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan.h"
+#include "partition_alloc/starscan/pcscan.h"
 #endif
 
 namespace allocator_shim {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_apple_zoned_malloc.cc b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_apple_zoned_malloc.cc
index 27cf53ec..817f3e9 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_apple_zoned_malloc.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_apple_zoned_malloc.cc
@@ -4,9 +4,9 @@
 
 #include <utility>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_interception_apple.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/malloc_zone_functions_apple.h"
+#include "partition_alloc/shim/allocator_interception_apple.h"
+#include "partition_alloc/shim/allocator_shim.h"
+#include "partition_alloc/shim/malloc_zone_functions_apple.h"
 
 namespace allocator_shim {
 namespace {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_glibc.cc b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_glibc.cc
index 9a7501d7..e76cca68 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_glibc.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_glibc.cc
@@ -4,10 +4,10 @@
 
 #include <limits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/oom.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/checked_math.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim.h"
+#include "partition_alloc/oom.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/numerics/checked_math.h"
+#include "partition_alloc/shim/allocator_shim.h"
 
 #include <dlfcn.h>
 #include <malloc.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_linker_wrapped_symbols.cc b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_linker_wrapped_symbols.cc
index 950b932a..03009a44 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_linker_wrapped_symbols.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_linker_wrapped_symbols.cc
@@ -4,8 +4,8 @@
 
 #include <malloc.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim.h"
 #include "build/build_config.h"
+#include "partition_alloc/shim/allocator_shim.h"
 
 // This translation unit defines a default dispatch for the allocator shim which
 // routes allocations to the original libc functions when using the link-time
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc
index a41096c..7ab0ec5 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.h"
+#include "partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.h"
 
 #include <atomic>
 #include <cstddef>
@@ -10,23 +10,23 @@
 #include <string>
 #include <tuple>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/allocation_guard.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/chromecast_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/memory_reclaimer.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/no_destructor.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/checked_math.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_stats.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_internals.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/nonscannable_allocator.h"
 #include "build/build_config.h"
+#include "partition_alloc/allocation_guard.h"
+#include "partition_alloc/chromecast_buildflags.h"
+#include "partition_alloc/memory_reclaimer.h"
+#include "partition_alloc/partition_alloc.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/no_destructor.h"
+#include "partition_alloc/partition_alloc_base/numerics/checked_math.h"
+#include "partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_root.h"
+#include "partition_alloc/partition_stats.h"
+#include "partition_alloc/shim/allocator_shim_internals.h"
+#include "partition_alloc/shim/nonscannable_allocator.h"
 
 #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
 #include <malloc.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.h b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.h
index 99b88fd9..0a84f8e 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.h
@@ -5,9 +5,9 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_SHIM_ALLOCATOR_SHIM_DEFAULT_DISPATCH_TO_PARTITION_ALLOC_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_SHIM_ALLOCATOR_SHIM_DEFAULT_DISPATCH_TO_PARTITION_ALLOC_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim.h"
+#include "partition_alloc/partition_alloc.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/shim/allocator_shim.h"
 
 namespace allocator_shim::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc_unittest.cc
index 0e75848..23a3946 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc_unittest.cc
@@ -2,16 +2,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.h"
+#include "partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.h"
 
 #include <cstdlib>
 #include <cstring>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/page_size.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/memory/page_size.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_constants.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_winheap.cc b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_winheap.cc
index 8c923cc..5a43df5 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_winheap.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_winheap.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim.h"
+#include "partition_alloc/shim/allocator_shim.h"
 
 #include <ostream>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/winheap_stubs_win.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/shim/winheap_stubs_win.h"
 
 namespace {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_apple_default_zone.h b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_apple_default_zone.h
index f0676a44..d0d3b0c 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_apple_default_zone.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_apple_default_zone.h
@@ -18,18 +18,18 @@
 #include <atomic>
 #include <tuple>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/apple/mach_logging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/early_zone_registration_constants.h"
+#include "partition_alloc/partition_alloc_base/apple/mach_logging.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/shim/early_zone_registration_constants.h"
 
 namespace partition_alloc {
 
 // Defined in
-// base/allocator/partition_allocator/src/partition_alloc/partition_root.cc
+// partition_alloc/partition_root.cc
 void PartitionAllocMallocHookOnBeforeForkInParent();
 void PartitionAllocMallocHookOnAfterForkInParent();
 void PartitionAllocMallocHookOnAfterForkInChild();
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_apple_symbols.h b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_apple_symbols.h
index 42ad8be..d288fe10 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_apple_symbols.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_apple_symbols.h
@@ -9,8 +9,8 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_SHIM_ALLOCATOR_SHIM_OVERRIDE_APPLE_SYMBOLS_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_SHIM_ALLOCATOR_SHIM_OVERRIDE_APPLE_SYMBOLS_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/malloc_zone_functions_apple.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/third_party/apple_apsl/malloc.h"
+#include "partition_alloc/shim/malloc_zone_functions_apple.h"
+#include "partition_alloc/third_party/apple_apsl/malloc.h"
 
 namespace allocator_shim {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_cpp_symbols.h b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_cpp_symbols.h
index 5ec1625..f10cce46 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_cpp_symbols.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_cpp_symbols.h
@@ -15,9 +15,9 @@
 
 #include <new>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_internals.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/shim/allocator_shim_internals.h"
 
 #if !BUILDFLAG(IS_APPLE)
 #define SHIM_CPP_SYMBOLS_EXPORT SHIM_ALWAYS_EXPORT
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_glibc_weak_symbols.h b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_glibc_weak_symbols.h
index b1564c7..a46464f 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_glibc_weak_symbols.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_glibc_weak_symbols.h
@@ -26,7 +26,7 @@
 
 #include <new>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_internals.h"
+#include "partition_alloc/shim/allocator_shim_internals.h"
 
 // __MALLOC_HOOK_VOLATILE not defined in all Glibc headers.
 #if !defined(__MALLOC_HOOK_VOLATILE)
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_libc_symbols.h b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_libc_symbols.h
index 624a4461..3e8059d 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_libc_symbols.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_libc_symbols.h
@@ -20,7 +20,7 @@
 #include <malloc.h>
 #endif
 
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_internals.h"
+#include "partition_alloc/shim/allocator_shim_internals.h"
 
 extern "C" {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_linker_wrapped_symbols.h b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_linker_wrapped_symbols.h
index a2413f8..9a5df03a 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_linker_wrapped_symbols.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_linker_wrapped_symbols.h
@@ -18,7 +18,7 @@
 #include <algorithm>
 #include <cstring>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_internals.h"
+#include "partition_alloc/shim/allocator_shim_internals.h"
 
 extern "C" {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_ucrt_symbols_win.h b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_ucrt_symbols_win.h
index 677899f4..d688893 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_ucrt_symbols_win.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_override_ucrt_symbols_win.h
@@ -16,9 +16,9 @@
 
 #include <windows.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/checked_math.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_internals.h"
+#include "partition_alloc/partition_alloc_base/numerics/checked_math.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/shim/allocator_shim_internals.h"
 
 // Even though most C++ allocation operators can be left alone since the
 // interception works at a lower level, these ones should be
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_unittest.cc
index 9bc4056..530b0a8 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim.h"
+#include "partition_alloc/shim/allocator_shim.h"
 
 #include <stdlib.h>
 #include <string.h>
@@ -14,12 +14,12 @@
 #include <sstream>
 #include <vector>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/page_size.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
 #include "base/synchronization/waitable_event.h"
 #include "base/threading/platform_thread.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc.h"
+#include "partition_alloc/partition_alloc_base/memory/page_size.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -29,8 +29,8 @@
 #elif BUILDFLAG(IS_APPLE)
 #include <malloc/malloc.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_interception_apple.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/third_party/apple_apsl/malloc.h"
+#include "partition_alloc/shim/allocator_interception_apple.h"
+#include "partition_alloc/third_party/apple_apsl/malloc.h"
 #else
 #include <malloc.h>
 #endif
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/malloc_zone_functions_apple.cc b/base/allocator/partition_allocator/src/partition_alloc/shim/malloc_zone_functions_apple.cc
index 1c786b1..5d42dbe 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/malloc_zone_functions_apple.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/malloc_zone_functions_apple.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/malloc_zone_functions_apple.h"
+#include "partition_alloc/shim/malloc_zone_functions_apple.h"
 
 #include <atomic>
 #include <type_traits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_lock.h"
+#include "partition_alloc/partition_alloc_base/check.h"
+#include "partition_alloc/partition_lock.h"
 
 namespace allocator_shim {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/malloc_zone_functions_apple.h b/base/allocator/partition_allocator/src/partition_alloc/shim/malloc_zone_functions_apple.h
index 92325543..f964aac0 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/malloc_zone_functions_apple.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/malloc_zone_functions_apple.h
@@ -8,9 +8,9 @@
 #include <malloc/malloc.h>
 #include <stddef.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/immediate_crash.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/third_party/apple_apsl/malloc.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/immediate_crash.h"
+#include "partition_alloc/third_party/apple_apsl/malloc.h"
 
 namespace allocator_shim {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/malloc_zone_functions_apple_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/shim/malloc_zone_functions_apple_unittest.cc
index 365639373..49e1013 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/malloc_zone_functions_apple_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/malloc_zone_functions_apple_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/malloc_zone_functions_apple.h"
+#include "partition_alloc/shim/malloc_zone_functions_apple.h"
 
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/nonscannable_allocator.cc b/base/allocator/partition_allocator/src/partition_alloc/shim/nonscannable_allocator.cc
index 1374476..06046c4 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/nonscannable_allocator.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/nonscannable_allocator.cc
@@ -2,16 +2,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/nonscannable_allocator.h"
+#include "partition_alloc/shim/nonscannable_allocator.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
+#include "partition_alloc/partition_root.h"
 
 #if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC)
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.h"
+#include "partition_alloc/shim/allocator_shim_default_dispatch_to_partition_alloc.h"
 
 #if BUILDFLAG(USE_STARSCAN)
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/metadata_allocator.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan.h"
+#include "partition_alloc/starscan/metadata_allocator.h"
+#include "partition_alloc/starscan/pcscan.h"
 #endif
 #endif  // BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC)
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/nonscannable_allocator.h b/base/allocator/partition_allocator/src/partition_alloc/shim/nonscannable_allocator.h
index 665143ca..6b1cd219 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/nonscannable_allocator.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/nonscannable_allocator.h
@@ -9,15 +9,15 @@
 #include <cstddef>
 #include <memory>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/no_destructor.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/no_destructor.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
 
 #if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc.h"
+#include "partition_alloc/partition_alloc.h"
 
 #if BUILDFLAG(USE_STARSCAN)
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/metadata_allocator.h"
+#include "partition_alloc/starscan/metadata_allocator.h"
 #endif
 #endif  // BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC)
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/winheap_stubs_win.cc b/base/allocator/partition_allocator/src/partition_alloc/shim/winheap_stubs_win.cc
index d4a36d4..ce16f15 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/winheap_stubs_win.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/winheap_stubs_win.cc
@@ -15,9 +15,9 @@
 #include <algorithm>
 #include <limits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/numerics/safe_conversions.h"
+#include "partition_alloc/partition_alloc_check.h"
 
 namespace allocator_shim {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/winheap_stubs_win.h b/base/allocator/partition_allocator/src/partition_alloc/shim/winheap_stubs_win.h
index dba03a36..a91c9b9 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/winheap_stubs_win.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/winheap_stubs_win.h
@@ -11,7 +11,7 @@
 
 #include <stdint.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 namespace allocator_shim {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/shim/winheap_stubs_win_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/shim/winheap_stubs_win_unittest.cc
index bb37798..25bd2d01 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/shim/winheap_stubs_win_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/shim/winheap_stubs_win_unittest.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/shim/winheap_stubs_win.h"
+#include "partition_alloc/shim/winheap_stubs_win.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_check.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace allocator_shim {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.cc b/base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.cc
index 7780111a..c5a87f98 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.h"
+#include "partition_alloc/spinning_mutex.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_check.h"
 
 #if BUILDFLAG(IS_WIN)
 #include <windows.h>
@@ -24,7 +24,7 @@
 #endif  // PA_CONFIG(HAS_LINUX_KERNEL)
 
 #if !PA_CONFIG(HAS_FAST_MUTEX)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread.h"
 
 #if BUILDFLAG(IS_POSIX)
 #include <sched.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.h b/base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.h
index 63d8bbe..70351ebf 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/spinning_mutex.h
@@ -8,16 +8,16 @@
 #include <algorithm>
 #include <atomic>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/yield_processor.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/thread_annotations.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/yield_processor.h"
 
 #if BUILDFLAG(IS_WIN)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/win/windows_types.h"
+#include "partition_alloc/partition_alloc_base/win/windows_types.h"
 #endif
 
 #if BUILDFLAG(IS_POSIX)
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/logging.h b/base/allocator/partition_allocator/src/partition_alloc/starscan/logging.h
index 5c8169d..3b46a81 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/logging.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/logging.h
@@ -5,8 +5,8 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_STARSCAN_LOGGING_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_STARSCAN_LOGGING_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/allocation_guard.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
+#include "partition_alloc/allocation_guard.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/metadata_allocator.cc b/base/allocator/partition_allocator/src/partition_alloc/starscan/metadata_allocator.cc
index 6e2d6cf..e271159 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/metadata_allocator.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/metadata_allocator.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
+#include "partition_alloc/partition_root.h"
 
 #include <cstring>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/no_destructor.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/no_destructor.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/metadata_allocator.h b/base/allocator/partition_allocator/src/partition_alloc/starscan/metadata_allocator.h
index 93b04b48..09d14a79 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/metadata_allocator.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/metadata_allocator.h
@@ -7,9 +7,9 @@
 
 #include <utility>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_root.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan.cc b/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan.cc
index 504658f..2227eef 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan.h"
+#include "partition_alloc/starscan/pcscan.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_internal.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/starscan/pcscan_internal.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan.h b/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan.h
index 0bb7ad3..e43070b 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan.h
@@ -7,15 +7,15 @@
 
 #include <atomic>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_direct_map_extent.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_page.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_scheduling.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/tagging.h"
+#include "partition_alloc/page_allocator.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_alloc_forward.h"
+#include "partition_alloc/partition_direct_map_extent.h"
+#include "partition_alloc/partition_page.h"
+#include "partition_alloc/starscan/pcscan_scheduling.h"
+#include "partition_alloc/tagging.h"
 
 namespace partition_alloc {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_internal.cc b/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_internal.cc
index 8b25637..8b6f478 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_internal.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_internal.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_internal.h"
+#include "partition_alloc/starscan/pcscan_internal.h"
 
 #include <algorithm>
 #include <array>
@@ -17,42 +17,42 @@
 #include <unordered_map>
 #include <vector>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/allocation_guard.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/alias.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/immediate_crash.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/ref_counted.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/scoped_refptr.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/no_destructor.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_page.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/reservation_offset_table.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/metadata_allocator.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_scheduling.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/raceful_worklist.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/scan_loop.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/snapshot.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/stack/stack.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/stats_collector.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/stats_reporter.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/tagging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_cache.h"
 #include "build/build_config.h"
+#include "partition_alloc/address_pool_manager.h"
+#include "partition_alloc/allocation_guard.h"
+#include "partition_alloc/page_allocator.h"
+#include "partition_alloc/page_allocator_constants.h"
+#include "partition_alloc/partition_address_space.h"
+#include "partition_alloc/partition_alloc.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/cpu.h"
+#include "partition_alloc/partition_alloc_base/debug/alias.h"
+#include "partition_alloc/partition_alloc_base/immediate_crash.h"
+#include "partition_alloc/partition_alloc_base/memory/ref_counted.h"
+#include "partition_alloc/partition_alloc_base/memory/scoped_refptr.h"
+#include "partition_alloc/partition_alloc_base/no_destructor.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread.h"
+#include "partition_alloc/partition_alloc_base/time/time.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_page.h"
+#include "partition_alloc/reservation_offset_table.h"
+#include "partition_alloc/starscan/metadata_allocator.h"
+#include "partition_alloc/starscan/pcscan_scheduling.h"
+#include "partition_alloc/starscan/raceful_worklist.h"
+#include "partition_alloc/starscan/scan_loop.h"
+#include "partition_alloc/starscan/snapshot.h"
+#include "partition_alloc/starscan/stack/stack.h"
+#include "partition_alloc/starscan/stats_collector.h"
+#include "partition_alloc/starscan/stats_reporter.h"
+#include "partition_alloc/tagging.h"
+#include "partition_alloc/thread_cache.h"
 
 #if !BUILDFLAG(HAS_64_BIT_POINTERS)
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager_bitmap.h"
+#include "partition_alloc/address_pool_manager_bitmap.h"
 #endif
 
 #if PA_CONFIG(STARSCAN_NOINLINE_SCAN_FUNCTIONS)
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_internal.h b/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_internal.h
index fd7f16b..00c8ac7 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_internal.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_internal.h
@@ -13,12 +13,12 @@
 #include <utility>
 #include <vector>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/memory/scoped_refptr.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/no_destructor.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/metadata_allocator.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/starscan_fwd.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/write_protector.h"
+#include "partition_alloc/partition_alloc_base/memory/scoped_refptr.h"
+#include "partition_alloc/partition_alloc_base/no_destructor.h"
+#include "partition_alloc/starscan/metadata_allocator.h"
+#include "partition_alloc/starscan/pcscan.h"
+#include "partition_alloc/starscan/starscan_fwd.h"
+#include "partition_alloc/starscan/write_protector.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_scheduling.cc b/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_scheduling.cc
index 319e016b..1cbc71e 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_scheduling.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_scheduling.cc
@@ -2,18 +2,18 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_scheduling.h"
+#include "partition_alloc/starscan/pcscan_scheduling.h"
 
 #include <algorithm>
 #include <atomic>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_hooks.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_lock.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/logging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/time/time.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_hooks.h"
+#include "partition_alloc/partition_lock.h"
+#include "partition_alloc/starscan/logging.h"
+#include "partition_alloc/starscan/pcscan.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_scheduling.h b/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_scheduling.h
index f795535f..c1cfce2 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_scheduling.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_scheduling.h
@@ -8,11 +8,11 @@
 #include <atomic>
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_lock.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/thread_annotations.h"
+#include "partition_alloc/partition_alloc_base/time/time.h"
+#include "partition_alloc/partition_lock.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_scheduling_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_scheduling_unittest.cc
index 768080e..d5ee5cd 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_scheduling_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_scheduling_unittest.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_scheduling.h"
+#include "partition_alloc/starscan/pcscan_scheduling.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time_override.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_lock.h"
+#include "partition_alloc/partition_alloc_base/time/time.h"
+#include "partition_alloc/partition_alloc_base/time/time_override.h"
+#include "partition_alloc/partition_lock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace partition_alloc::internal {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_unittest.cc
index 5e8ad61..133dc315 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_unittest.cc
@@ -6,21 +6,21 @@
 
 #if !defined(MEMORY_TOOL_REPLACES_ALLOCATOR)
 
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan.h"
+#include "partition_alloc/starscan/pcscan.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc-inl.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_for_testing.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/stack/stack.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/tagging.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc-inl.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/cpu.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_alloc_for_testing.h"
+#include "partition_alloc/partition_root.h"
+#include "partition_alloc/starscan/stack/stack.h"
+#include "partition_alloc/tagging.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 #if BUILDFLAG(USE_STARSCAN)
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/raceful_worklist.h b/base/allocator/partition_allocator/src/partition_alloc/starscan/raceful_worklist.h
index baa3e05..4927a2dc 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/raceful_worklist.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/raceful_worklist.h
@@ -9,10 +9,10 @@
 #include <atomic>
 #include <vector>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/rand_util.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/metadata_allocator.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/rand_util.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/starscan/metadata_allocator.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/scan_loop.h b/base/allocator/partition_allocator/src/partition_alloc/starscan/scan_loop.h
index ff11624..470a22e 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/scan_loop.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/scan_loop.h
@@ -8,13 +8,13 @@
 #include <cstddef>
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/starscan_fwd.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/tagging.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/starscan/starscan_fwd.h"
+#include "partition_alloc/tagging.h"
 
 #if defined(ARCH_CPU_X86_64)
 // Include order is important, so we disable formatting.
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/scan_loop_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/starscan/scan_loop_unittest.cc
index dd24490b..914be57 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/scan_loop_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/scan_loop_unittest.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/scan_loop.h"
+#include "partition_alloc/starscan/scan_loop.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/cpu.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_config.h"
 
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/snapshot.cc b/base/allocator/partition_allocator/src/partition_alloc/starscan/snapshot.cc
index 311aee4..27945360 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/snapshot.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/snapshot.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/snapshot.h"
+#include "partition_alloc/starscan/snapshot.h"
 
 #include <memory>
 #include <mutex>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_internal.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/starscan/pcscan_internal.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/snapshot.h b/base/allocator/partition_allocator/src/partition_alloc/starscan/snapshot.h
index de9bcdc..695e66c3 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/snapshot.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/snapshot.h
@@ -8,8 +8,8 @@
 #include <memory>
 #include <utility>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan_internal.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/raceful_worklist.h"
+#include "partition_alloc/starscan/pcscan_internal.h"
+#include "partition_alloc/starscan/raceful_worklist.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/stack/stack.cc b/base/allocator/partition_allocator/src/partition_alloc/starscan/stack/stack.cc
index ec6ecbb..86ce054a 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/stack/stack.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/stack/stack.cc
@@ -2,15 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/stack/stack.h"
+#include "partition_alloc/starscan/stack/stack.h"
 
 #include <cstdint>
 #include <limits>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
 
 #if BUILDFLAG(IS_WIN)
 #include <windows.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/stack/stack.h b/base/allocator/partition_allocator/src/partition_alloc/starscan/stack/stack.h
index 74c195e1..9f8fea7 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/stack/stack.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/stack/stack.h
@@ -7,8 +7,8 @@
 
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/stack/stack_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/starscan/stack/stack_unittest.cc
index ecbcd66..b50e9125 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/stack/stack_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/stack/stack_unittest.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/stack/stack.h"
+#include "partition_alloc/starscan/stack/stack.h"
 
 #include <memory>
 #include <ostream>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 #if !defined(MEMORY_TOOL_REPLACES_ALLOCATOR)
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/state_bitmap.h b/base/allocator/partition_allocator/src/partition_alloc/starscan/state_bitmap.h
index bdefe3f..9c4c3be 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/state_bitmap.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/state_bitmap.h
@@ -15,9 +15,9 @@
 #include <tuple>
 #include <utility>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/bits.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_base/bits.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_check.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/state_bitmap_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/starscan/state_bitmap_unittest.cc
index 3878944..ea081d535c 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/state_bitmap_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/state_bitmap_unittest.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/state_bitmap.h"
+#include "partition_alloc/starscan/state_bitmap.h"
 
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/page_allocator.h"
+#include "partition_alloc/partition_alloc_constants.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace partition_alloc::internal {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/stats_collector.cc b/base/allocator/partition_allocator/src/partition_alloc/starscan/stats_collector.cc
index af622d1..36ecf94 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/stats_collector.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/stats_collector.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/stats_collector.h"
+#include "partition_alloc/starscan/stats_collector.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/logging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/stats_reporter.h"
+#include "partition_alloc/partition_alloc_base/time/time.h"
+#include "partition_alloc/starscan/logging.h"
+#include "partition_alloc/starscan/stats_reporter.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/stats_collector.h b/base/allocator/partition_allocator/src/partition_alloc/starscan/stats_collector.h
index af060ad..6de21e92 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/stats_collector.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/stats_collector.h
@@ -14,10 +14,10 @@
 #include <unordered_map>
 #include <utility>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/metadata_allocator.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/starscan_fwd.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread.h"
+#include "partition_alloc/partition_alloc_base/time/time.h"
+#include "partition_alloc/starscan/metadata_allocator.h"
+#include "partition_alloc/starscan/starscan_fwd.h"
 
 namespace partition_alloc {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/stats_reporter.h b/base/allocator/partition_allocator/src/partition_alloc/starscan/stats_reporter.h
index 8f0f910..b2c471f57 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/stats_reporter.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/stats_reporter.h
@@ -5,8 +5,8 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_STARSCAN_STATS_REPORTER_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_STARSCAN_STATS_REPORTER_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/stats_collector.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread.h"
+#include "partition_alloc/starscan/stats_collector.h"
 
 namespace partition_alloc {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/write_protector.cc b/base/allocator/partition_allocator/src/partition_alloc/starscan/write_protector.cc
index cc00c745..d86e15df 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/write_protector.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/write_protector.cc
@@ -2,18 +2,18 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/write_protector.h"
+#include "partition_alloc/starscan/write_protector.h"
 
 #include <mutex>
 #include <thread>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/logging.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/posix/eintr_wrapper.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
 #include "build/build_config.h"
+#include "partition_alloc/address_pool_manager.h"
+#include "partition_alloc/partition_address_space.h"
+#include "partition_alloc/partition_alloc_base/logging.h"
+#include "partition_alloc/partition_alloc_base/posix/eintr_wrapper.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread.h"
+#include "partition_alloc/partition_alloc_check.h"
 
 #if PA_CONFIG(STARSCAN_UFFD_WRITE_PROTECTOR_SUPPORTED)
 #include <fcntl.h>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/starscan/write_protector.h b/base/allocator/partition_allocator/src/partition_alloc/starscan/write_protector.h
index 55a095a6..6b03e1c 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/starscan/write_protector.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/starscan/write_protector.h
@@ -9,10 +9,10 @@
 #include <cstdint>
 #include <mutex>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/metadata_allocator.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/pcscan.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/starscan/raceful_worklist.h"
 #include "build/build_config.h"
+#include "partition_alloc/starscan/metadata_allocator.h"
+#include "partition_alloc/starscan/pcscan.h"
+#include "partition_alloc/starscan/raceful_worklist.h"
 
 namespace partition_alloc::internal {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/tagging.cc b/base/allocator/partition_allocator/src/partition_alloc/tagging.cc
index 9b44119..7590ba05 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/tagging.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/tagging.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/tagging.h"
+#include "partition_alloc/tagging.h"
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/cpu.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_config.h"
 
 #if PA_CONFIG(HAS_MEMORY_TAGGING)
 #include <arm_acle.h>
@@ -42,8 +42,8 @@
 #endif
 
 #if BUILDFLAG(IS_ANDROID)
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/files/file_path.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/native_library.h"
+#include "partition_alloc/partition_alloc_base/files/file_path.h"
+#include "partition_alloc/partition_alloc_base/native_library.h"
 #endif  // BUILDFLAG(IS_ANDROID)
 
 namespace partition_alloc {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/tagging.h b/base/allocator/partition_allocator/src/partition_alloc/tagging.h
index 12ad5e9f..2d3e9e0 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/tagging.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/tagging.h
@@ -11,10 +11,10 @@
 #include <cstddef>
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_config.h"
 
 #if PA_CONFIG(HAS_MEMORY_TAGGING) && BUILDFLAG(IS_ANDROID)
 #include <csignal>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/tagging_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/tagging_unittest.cc
index c0d0f84..7aa5b9b7 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/tagging_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/tagging_unittest.cc
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/tagging.h"
+#include "partition_alloc/tagging.h"
 
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
 #include "build/build_config.h"
+#include "partition_alloc/page_allocator.h"
+#include "partition_alloc/partition_alloc_base/cpu.h"
+#include "partition_alloc/partition_alloc_config.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace partition_alloc::internal {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/thread_cache.cc b/base/allocator/partition_allocator/src/partition_alloc/thread_cache.cc
index 130a7abb..fdffd97 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/thread_cache.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/thread_cache.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_cache.h"
+#include "partition_alloc/thread_cache.h"
 
 #include <sys/types.h>
 
@@ -10,17 +10,17 @@
 #include <atomic>
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc-inl.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/immediate_crash.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc-inl.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/immediate_crash.h"
+#include "partition_alloc/partition_alloc_base/time/time.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_root.h"
 
 namespace partition_alloc {
 
diff --git a/base/allocator/partition_allocator/src/partition_alloc/thread_cache.h b/base/allocator/partition_allocator/src/partition_alloc/thread_cache.h
index d3a8bea..381245c3 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/thread_cache.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/thread_cache.h
@@ -10,21 +10,21 @@
 #include <limits>
 #include <memory>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc-inl.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/time/time.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_bucket_lookup.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_freelist_entry.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_lock.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_stats.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_tls.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc-inl.h"
+#include "partition_alloc/partition_alloc_base/compiler_specific.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/thread_annotations.h"
+#include "partition_alloc/partition_alloc_base/time/time.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_alloc_forward.h"
+#include "partition_alloc/partition_bucket_lookup.h"
+#include "partition_alloc/partition_freelist_entry.h"
+#include "partition_alloc/partition_lock.h"
+#include "partition_alloc/partition_stats.h"
+#include "partition_alloc/partition_tls.h"
 
 #if defined(ARCH_CPU_X86_64) && BUILDFLAG(HAS_64_BIT_POINTERS)
 #include <algorithm>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/thread_cache_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/thread_cache_unittest.cc
index 084da9f..83cdaa77 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/thread_cache_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/thread_cache_unittest.cc
@@ -2,23 +2,23 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_cache.h"
+#include "partition_alloc/thread_cache.h"
 
 #include <algorithm>
 #include <atomic>
 #include <vector>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/extended_api.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_address_space.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/thread_annotations.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_for_testing.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_lock.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/tagging.h"
 #include "build/build_config.h"
+#include "partition_alloc/extended_api.h"
+#include "partition_alloc/partition_address_space.h"
+#include "partition_alloc/partition_alloc_base/thread_annotations.h"
+#include "partition_alloc/partition_alloc_base/threading/platform_thread_for_testing.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_config.h"
+#include "partition_alloc/partition_alloc_for_testing.h"
+#include "partition_alloc/partition_lock.h"
+#include "partition_alloc/partition_root.h"
+#include "partition_alloc/tagging.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 // With *SAN, PartitionAlloc is replaced in partition_alloc.h by ASAN, so we
diff --git a/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/alignment.h b/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/alignment.h
index 0d72d456..d74dcfc 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/alignment.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/alignment.h
@@ -5,11 +5,11 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_THREAD_ISOLATION_ALIGNMENT_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_THREAD_ISOLATION_ALIGNMENT_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
 
 #if BUILDFLAG(ENABLE_THREAD_ISOLATION)
 
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h"
+#include "partition_alloc/page_allocator_constants.h"
 
 #define PA_THREAD_ISOLATED_ALIGN_SZ partition_alloc::internal::SystemPageSize()
 #define PA_THREAD_ISOLATED_ALIGN_OFFSET_MASK (PA_THREAD_ISOLATED_ALIGN_SZ - 1)
diff --git a/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey.cc b/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey.cc
index ad0b8ad..c4c46ed 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey.h"
+#include "partition_alloc/thread_isolation/pkey.h"
 
 #if BUILDFLAG(ENABLE_PKEYS)
 
@@ -11,9 +11,9 @@
 #include <sys/syscall.h>
 #include <unistd.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/cpu.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_isolation/thread_isolation.h"
+#include "partition_alloc/partition_alloc_base/cpu.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/thread_isolation/thread_isolation.h"
 
 #if !BUILDFLAG(IS_LINUX)
 #error "This pkey code is currently only supported on Linux"
diff --git a/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey.h b/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey.h
index 697779f..125b200 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey.h
@@ -5,13 +5,13 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_THREAD_ISOLATION_PKEY_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_THREAD_ISOLATION_PKEY_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
 
 #if BUILDFLAG(ENABLE_PKEYS)
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_isolation/alignment.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/thread_isolation/alignment.h"
 
 #include <cstddef>
 #include <cstdint>
diff --git a/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey_unittest.cc b/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey_unittest.cc
index d0b1b9f..78695965 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey_unittest.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey_unittest.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_root.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_isolation/thread_isolation.h"
+#include "partition_alloc/address_pool_manager.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/partition_root.h"
+#include "partition_alloc/thread_isolation/thread_isolation.h"
 
 #if BUILDFLAG(ENABLE_PKEYS)
 
@@ -14,13 +14,13 @@
 #include <sys/mman.h>
 #include <sys/syscall.h>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_space_stats.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/page_allocator_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/no_destructor.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_forward.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey.h"
+#include "partition_alloc/address_space_stats.h"
+#include "partition_alloc/page_allocator.h"
+#include "partition_alloc/page_allocator_constants.h"
+#include "partition_alloc/partition_alloc.h"
+#include "partition_alloc/partition_alloc_base/no_destructor.h"
+#include "partition_alloc/partition_alloc_forward.h"
+#include "partition_alloc/thread_isolation/pkey.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 #define ISOLATED_FUNCTION extern "C" __attribute__((used))
diff --git a/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/thread_isolation.cc b/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/thread_isolation.cc
index 713d55a6..55491f7 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/thread_isolation.cc
+++ b/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/thread_isolation.cc
@@ -2,17 +2,17 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_isolation/thread_isolation.h"
+#include "partition_alloc/thread_isolation/thread_isolation.h"
 
 #if BUILDFLAG(ENABLE_THREAD_ISOLATION)
 
-#include "base/allocator/partition_allocator/src/partition_alloc/address_pool_manager.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_check.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_constants.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/reservation_offset_table.h"
+#include "partition_alloc/address_pool_manager.h"
+#include "partition_alloc/partition_alloc_check.h"
+#include "partition_alloc/partition_alloc_constants.h"
+#include "partition_alloc/reservation_offset_table.h"
 
 #if BUILDFLAG(ENABLE_PKEYS)
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey.h"
+#include "partition_alloc/thread_isolation/pkey.h"
 #endif
 
 namespace partition_alloc::internal {
diff --git a/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/thread_isolation.h b/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/thread_isolation.h
index a734af9..bf88c39 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/thread_isolation.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/thread_isolation/thread_isolation.h
@@ -5,18 +5,18 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_THREAD_ISOLATION_THREAD_ISOLATION_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_THREAD_ISOLATION_THREAD_ISOLATION_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_buildflags.h"
+#include "partition_alloc/partition_alloc_buildflags.h"
 
 #if BUILDFLAG(ENABLE_THREAD_ISOLATION)
 
 #include <cstddef>
 #include <cstdint>
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/component_export.h"
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
+#include "partition_alloc/partition_alloc_base/component_export.h"
+#include "partition_alloc/partition_alloc_base/debug/debugging_buildflags.h"
 
 #if BUILDFLAG(ENABLE_PKEYS)
-#include "base/allocator/partition_allocator/src/partition_alloc/thread_isolation/pkey.h"
+#include "partition_alloc/thread_isolation/pkey.h"
 #endif
 
 #if !BUILDFLAG(HAS_64_BIT_POINTERS)
diff --git a/base/allocator/partition_allocator/src/partition_alloc/yield_processor.h b/base/allocator/partition_allocator/src/partition_alloc/yield_processor.h
index c61ada7..5748cfb 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/yield_processor.h
+++ b/base/allocator/partition_allocator/src/partition_alloc/yield_processor.h
@@ -5,8 +5,8 @@
 #ifndef BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_YIELD_PROCESSOR_H_
 #define BASE_ALLOCATOR_PARTITION_ALLOCATOR_SRC_PARTITION_ALLOC_YIELD_PROCESSOR_H_
 
-#include "base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h"
 #include "build/build_config.h"
+#include "partition_alloc/partition_alloc_config.h"
 
 // The PA_YIELD_PROCESSOR macro wraps an architecture specific-instruction that
 // informs the processor we're in a busy wait, so it can handle the branch more
diff --git a/base/i18n/icu_string_conversions_unittest.cc b/base/i18n/icu_string_conversions_unittest.cc
index c1a0458..277225b 100644
--- a/base/i18n/icu_string_conversions_unittest.cc
+++ b/base/i18n/icu_string_conversions_unittest.cc
@@ -32,9 +32,9 @@
 // This is to help write tests for functions with std::u16string params until
 // the C++ 0x UTF-16 literal is well-supported by compilers.
 std::u16string BuildString16(const wchar_t* s) {
-#if defined(WCHAR_T_IS_UTF16)
+#if defined(WCHAR_T_IS_16_BIT)
   return WideToUTF16(s);
-#elif defined(WCHAR_T_IS_UTF32)
+#elif defined(WCHAR_T_IS_32_BIT)
   std::u16string u16;
   while (*s != 0) {
     DCHECK_LE(static_cast<unsigned int>(*s), 0xFFFFu);
@@ -99,9 +99,9 @@
      L"\x00A5\x00A8", nullptr},
     // Chinese (GB18030) : A 4 byte sequence mapped to plane 2 (U+20000)
     {"gb18030", "\x95\x32\x82\x36\xD2\xBB", OnStringConversionError::FAIL, true,
-#if defined(WCHAR_T_IS_UTF16)
+#if defined(WCHAR_T_IS_16_BIT)
      L"\xD840\xDC00\x4E00",
-#elif defined(WCHAR_T_IS_UTF32)
+#elif defined(WCHAR_T_IS_32_BIT)
      L"\x20000\x4E00",
 #endif
      L"\xD840\xDC00\x4E00"},
diff --git a/base/i18n/rtl_unittest.cc b/base/i18n/rtl_unittest.cc
index 00935af2..b5d17b99 100644
--- a/base/i18n/rtl_unittest.cc
+++ b/base/i18n/rtl_unittest.cc
@@ -31,65 +31,76 @@
     const wchar_t* text;
     TextDirection direction;
   } cases[] = {
-    // Test pure LTR string.
-    { L"foo bar", LEFT_TO_RIGHT },
-    // Test pure RTL string.
-    { L"\x05d0\x05d1\x05d2 \x05d3\x0d4\x05d5", RIGHT_TO_LEFT},
-    // Test bidi string in which the first character with strong directionality
-    // is a character with type L.
-    { L"foo \x05d0 bar", LEFT_TO_RIGHT },
-    // Test bidi string in which the first character with strong directionality
-    // is a character with type R.
-    { L"\x05d0 foo bar", RIGHT_TO_LEFT },
-    // Test bidi string which starts with a character with weak directionality
-    // and in which the first character with strong directionality is a
-    // character with type L.
-    { L"!foo \x05d0 bar", LEFT_TO_RIGHT },
-    // Test bidi string which starts with a character with weak directionality
-    // and in which the first character with strong directionality is a
-    // character with type R.
-    { L",\x05d0 foo bar", RIGHT_TO_LEFT },
-    // Test bidi string in which the first character with strong directionality
-    // is a character with type LRE.
-    { L"\x202a \x05d0 foo  bar", LEFT_TO_RIGHT },
-    // Test bidi string in which the first character with strong directionality
-    // is a character with type LRO.
-    { L"\x202d \x05d0 foo  bar", LEFT_TO_RIGHT },
-    // Test bidi string in which the first character with strong directionality
-    // is a character with type RLE.
-    { L"\x202b foo \x05d0 bar", RIGHT_TO_LEFT },
-    // Test bidi string in which the first character with strong directionality
-    // is a character with type RLO.
-    { L"\x202e foo \x05d0 bar", RIGHT_TO_LEFT },
-    // Test bidi string in which the first character with strong directionality
-    // is a character with type AL.
-    { L"\x0622 foo \x05d0 bar", RIGHT_TO_LEFT },
-    // Test a string without strong directionality characters.
-    { L",!.{}", LEFT_TO_RIGHT },
-    // Test empty string.
-    { L"", LEFT_TO_RIGHT },
-    // Test characters in non-BMP (e.g. Phoenician letters. Please refer to
-    // http://demo.icu-project.org/icu-bin/ubrowse?scr=151&b=10910 for more
-    // information).
-    {
-#if defined(WCHAR_T_IS_UTF32)
-      L" ! \x10910" L"abc 123",
-#elif defined(WCHAR_T_IS_UTF16)
-      L" ! \xd802\xdd10" L"abc 123",
+      // Test pure LTR string.
+      {L"foo bar", LEFT_TO_RIGHT},
+      // Test pure RTL string.
+      {L"\x05d0\x05d1\x05d2 \x05d3\x0d4\x05d5", RIGHT_TO_LEFT},
+      // Test bidi string in which the first character with strong
+      // directionality
+      // is a character with type L.
+      {L"foo \x05d0 bar", LEFT_TO_RIGHT},
+      // Test bidi string in which the first character with strong
+      // directionality
+      // is a character with type R.
+      {L"\x05d0 foo bar", RIGHT_TO_LEFT},
+      // Test bidi string which starts with a character with weak directionality
+      // and in which the first character with strong directionality is a
+      // character with type L.
+      {L"!foo \x05d0 bar", LEFT_TO_RIGHT},
+      // Test bidi string which starts with a character with weak directionality
+      // and in which the first character with strong directionality is a
+      // character with type R.
+      {L",\x05d0 foo bar", RIGHT_TO_LEFT},
+      // Test bidi string in which the first character with strong
+      // directionality
+      // is a character with type LRE.
+      {L"\x202a \x05d0 foo  bar", LEFT_TO_RIGHT},
+      // Test bidi string in which the first character with strong
+      // directionality
+      // is a character with type LRO.
+      {L"\x202d \x05d0 foo  bar", LEFT_TO_RIGHT},
+      // Test bidi string in which the first character with strong
+      // directionality
+      // is a character with type RLE.
+      {L"\x202b foo \x05d0 bar", RIGHT_TO_LEFT},
+      // Test bidi string in which the first character with strong
+      // directionality
+      // is a character with type RLO.
+      {L"\x202e foo \x05d0 bar", RIGHT_TO_LEFT},
+      // Test bidi string in which the first character with strong
+      // directionality
+      // is a character with type AL.
+      {L"\x0622 foo \x05d0 bar", RIGHT_TO_LEFT},
+      // Test a string without strong directionality characters.
+      {L",!.{}", LEFT_TO_RIGHT},
+      // Test empty string.
+      {L"", LEFT_TO_RIGHT},
+      // Test characters in non-BMP (e.g. Phoenician letters. Please refer to
+      // http://demo.icu-project.org/icu-bin/ubrowse?scr=151&b=10910 for more
+      // information).
+      {
+#if defined(WCHAR_T_IS_32_BIT)
+          L" ! \x10910"
+          L"abc 123",
+#elif defined(WCHAR_T_IS_16_BIT)
+          L" ! \xd802\xdd10"
+          L"abc 123",
 #else
 #error wchar_t should be either UTF-16 or UTF-32
 #endif
-      RIGHT_TO_LEFT },
-    {
-#if defined(WCHAR_T_IS_UTF32)
-      L" ! \x10401" L"abc 123",
-#elif defined(WCHAR_T_IS_UTF16)
-      L" ! \xd801\xdc01" L"abc 123",
+          RIGHT_TO_LEFT},
+      {
+#if defined(WCHAR_T_IS_32_BIT)
+          L" ! \x10401"
+          L"abc 123",
+#elif defined(WCHAR_T_IS_16_BIT)
+          L" ! \xd801\xdc01"
+          L"abc 123",
 #else
 #error wchar_t should be either UTF-16 or UTF-32
 #endif
-      LEFT_TO_RIGHT },
-   };
+          LEFT_TO_RIGHT},
+  };
 
   for (auto& i : cases)
     EXPECT_EQ(i.direction,
@@ -105,53 +116,57 @@
     const wchar_t* text;
     TextDirection direction;
   } cases[] = {
-    // Test pure LTR string.
-    { L"foo bar", LEFT_TO_RIGHT },
-    // Test pure RTL string.
-    { L"\x05d0\x05d1\x05d2 \x05d3\x0d4\x05d5", RIGHT_TO_LEFT},
-    // Test bidi string in which the last character with strong directionality
-    // is a character with type L.
-    { L"foo \x05d0 bar", LEFT_TO_RIGHT },
-    // Test bidi string in which the last character with strong directionality
-    // is a character with type R.
-    { L"\x05d0 foo bar \x05d3", RIGHT_TO_LEFT },
-    // Test bidi string which ends with a character with weak directionality
-    // and in which the last character with strong directionality is a
-    // character with type L.
-    { L"!foo \x05d0 bar!", LEFT_TO_RIGHT },
-    // Test bidi string which ends with a character with weak directionality
-    // and in which the last character with strong directionality is a
-    // character with type R.
-    { L",\x05d0 foo bar \x05d1,", RIGHT_TO_LEFT },
-    // Test bidi string in which the last character with strong directionality
-    // is a character with type AL.
-    { L"\x0622 foo \x05d0 bar \x0622", RIGHT_TO_LEFT },
-    // Test a string without strong directionality characters.
-    { L",!.{}", LEFT_TO_RIGHT },
-    // Test empty string.
-    { L"", LEFT_TO_RIGHT },
-    // Test characters in non-BMP (e.g. Phoenician letters. Please refer to
-    // http://demo.icu-project.org/icu-bin/ubrowse?scr=151&b=10910 for more
-    // information).
-    {
-#if defined(WCHAR_T_IS_UTF32)
-       L"abc 123" L" ! \x10910 !",
-#elif defined(WCHAR_T_IS_UTF16)
-       L"abc 123" L" ! \xd802\xdd10 !",
+      // Test pure LTR string.
+      {L"foo bar", LEFT_TO_RIGHT},
+      // Test pure RTL string.
+      {L"\x05d0\x05d1\x05d2 \x05d3\x0d4\x05d5", RIGHT_TO_LEFT},
+      // Test bidi string in which the last character with strong directionality
+      // is a character with type L.
+      {L"foo \x05d0 bar", LEFT_TO_RIGHT},
+      // Test bidi string in which the last character with strong directionality
+      // is a character with type R.
+      {L"\x05d0 foo bar \x05d3", RIGHT_TO_LEFT},
+      // Test bidi string which ends with a character with weak directionality
+      // and in which the last character with strong directionality is a
+      // character with type L.
+      {L"!foo \x05d0 bar!", LEFT_TO_RIGHT},
+      // Test bidi string which ends with a character with weak directionality
+      // and in which the last character with strong directionality is a
+      // character with type R.
+      {L",\x05d0 foo bar \x05d1,", RIGHT_TO_LEFT},
+      // Test bidi string in which the last character with strong directionality
+      // is a character with type AL.
+      {L"\x0622 foo \x05d0 bar \x0622", RIGHT_TO_LEFT},
+      // Test a string without strong directionality characters.
+      {L",!.{}", LEFT_TO_RIGHT},
+      // Test empty string.
+      {L"", LEFT_TO_RIGHT},
+      // Test characters in non-BMP (e.g. Phoenician letters. Please refer to
+      // http://demo.icu-project.org/icu-bin/ubrowse?scr=151&b=10910 for more
+      // information).
+      {
+#if defined(WCHAR_T_IS_32_BIT)
+          L"abc 123"
+          L" ! \x10910 !",
+#elif defined(WCHAR_T_IS_16_BIT)
+          L"abc 123"
+          L" ! \xd802\xdd10 !",
 #else
 #error wchar_t should be either UTF-16 or UTF-32
 #endif
-      RIGHT_TO_LEFT },
-    {
-#if defined(WCHAR_T_IS_UTF32)
-       L"abc 123" L" ! \x10401 !",
-#elif defined(WCHAR_T_IS_UTF16)
-       L"abc 123" L" ! \xd801\xdc01 !",
+          RIGHT_TO_LEFT},
+      {
+#if defined(WCHAR_T_IS_32_BIT)
+          L"abc 123"
+          L" ! \x10401 !",
+#elif defined(WCHAR_T_IS_16_BIT)
+          L"abc 123"
+          L" ! \xd801\xdc01 !",
 #else
 #error wchar_t should be either UTF-16 or UTF-32
 #endif
-      LEFT_TO_RIGHT },
-   };
+          LEFT_TO_RIGHT},
+  };
 
   for (auto& i : cases)
     EXPECT_EQ(i.direction,
@@ -163,73 +178,77 @@
     const wchar_t* text;
     TextDirection direction;
   } cases[] = {
-    // Test pure LTR string.
-    { L"foobar", LEFT_TO_RIGHT },
-    { L".foobar", LEFT_TO_RIGHT },
-    { L"foo, bar", LEFT_TO_RIGHT },
-    // Test pure LTR with strong directionality characters of type LRE.
-    { L"\x202a\x202a", LEFT_TO_RIGHT },
-    { L".\x202a\x202a", LEFT_TO_RIGHT },
-    { L"\x202a, \x202a", LEFT_TO_RIGHT },
-    // Test pure LTR with strong directionality characters of type LRO.
-    { L"\x202d\x202d", LEFT_TO_RIGHT },
-    { L".\x202d\x202d", LEFT_TO_RIGHT },
-    { L"\x202d, \x202d", LEFT_TO_RIGHT },
-    // Test pure LTR with various types of strong directionality characters.
-    { L"foo \x202a\x202d", LEFT_TO_RIGHT },
-    { L".\x202d foo \x202a", LEFT_TO_RIGHT },
-    { L"\x202a, \x202d foo", LEFT_TO_RIGHT },
-    // Test pure RTL with strong directionality characters of type R.
-    { L"\x05d0\x05d0", RIGHT_TO_LEFT },
-    { L".\x05d0\x05d0", RIGHT_TO_LEFT },
-    { L"\x05d0, \x05d0", RIGHT_TO_LEFT },
-    // Test pure RTL with strong directionality characters of type RLE.
-    { L"\x202b\x202b", RIGHT_TO_LEFT },
-    { L".\x202b\x202b", RIGHT_TO_LEFT },
-    { L"\x202b, \x202b", RIGHT_TO_LEFT },
-    // Test pure RTL with strong directionality characters of type RLO.
-    { L"\x202e\x202e", RIGHT_TO_LEFT },
-    { L".\x202e\x202e", RIGHT_TO_LEFT },
-    { L"\x202e, \x202e", RIGHT_TO_LEFT },
-    // Test pure RTL with strong directionality characters of type AL.
-    { L"\x0622\x0622", RIGHT_TO_LEFT },
-    { L".\x0622\x0622", RIGHT_TO_LEFT },
-    { L"\x0622, \x0622", RIGHT_TO_LEFT },
-    // Test pure RTL with various types of strong directionality characters.
-    { L"\x05d0\x202b\x202e\x0622", RIGHT_TO_LEFT },
-    { L".\x202b\x202e\x0622\x05d0", RIGHT_TO_LEFT },
-    { L"\x0622\x202e, \x202b\x05d0", RIGHT_TO_LEFT },
-    // Test bidi strings.
-    { L"foo \x05d0 bar", UNKNOWN_DIRECTION },
-    { L"\x202b foo bar", UNKNOWN_DIRECTION },
-    { L"!foo \x0622 bar", UNKNOWN_DIRECTION },
-    { L"\x202a\x202b", UNKNOWN_DIRECTION },
-    { L"\x202e\x202d", UNKNOWN_DIRECTION },
-    { L"\x0622\x202a", UNKNOWN_DIRECTION },
-    { L"\x202d\x05d0", UNKNOWN_DIRECTION },
-    // Test a string without strong directionality characters.
-    { L",!.{}", LEFT_TO_RIGHT },
-    // Test empty string.
-    { L"", LEFT_TO_RIGHT },
-    {
-#if defined(WCHAR_T_IS_UTF32)
-      L" ! \x10910" L"abc 123",
-#elif defined(WCHAR_T_IS_UTF16)
-      L" ! \xd802\xdd10" L"abc 123",
+      // Test pure LTR string.
+      {L"foobar", LEFT_TO_RIGHT},
+      {L".foobar", LEFT_TO_RIGHT},
+      {L"foo, bar", LEFT_TO_RIGHT},
+      // Test pure LTR with strong directionality characters of type LRE.
+      {L"\x202a\x202a", LEFT_TO_RIGHT},
+      {L".\x202a\x202a", LEFT_TO_RIGHT},
+      {L"\x202a, \x202a", LEFT_TO_RIGHT},
+      // Test pure LTR with strong directionality characters of type LRO.
+      {L"\x202d\x202d", LEFT_TO_RIGHT},
+      {L".\x202d\x202d", LEFT_TO_RIGHT},
+      {L"\x202d, \x202d", LEFT_TO_RIGHT},
+      // Test pure LTR with various types of strong directionality characters.
+      {L"foo \x202a\x202d", LEFT_TO_RIGHT},
+      {L".\x202d foo \x202a", LEFT_TO_RIGHT},
+      {L"\x202a, \x202d foo", LEFT_TO_RIGHT},
+      // Test pure RTL with strong directionality characters of type R.
+      {L"\x05d0\x05d0", RIGHT_TO_LEFT},
+      {L".\x05d0\x05d0", RIGHT_TO_LEFT},
+      {L"\x05d0, \x05d0", RIGHT_TO_LEFT},
+      // Test pure RTL with strong directionality characters of type RLE.
+      {L"\x202b\x202b", RIGHT_TO_LEFT},
+      {L".\x202b\x202b", RIGHT_TO_LEFT},
+      {L"\x202b, \x202b", RIGHT_TO_LEFT},
+      // Test pure RTL with strong directionality characters of type RLO.
+      {L"\x202e\x202e", RIGHT_TO_LEFT},
+      {L".\x202e\x202e", RIGHT_TO_LEFT},
+      {L"\x202e, \x202e", RIGHT_TO_LEFT},
+      // Test pure RTL with strong directionality characters of type AL.
+      {L"\x0622\x0622", RIGHT_TO_LEFT},
+      {L".\x0622\x0622", RIGHT_TO_LEFT},
+      {L"\x0622, \x0622", RIGHT_TO_LEFT},
+      // Test pure RTL with various types of strong directionality characters.
+      {L"\x05d0\x202b\x202e\x0622", RIGHT_TO_LEFT},
+      {L".\x202b\x202e\x0622\x05d0", RIGHT_TO_LEFT},
+      {L"\x0622\x202e, \x202b\x05d0", RIGHT_TO_LEFT},
+      // Test bidi strings.
+      {L"foo \x05d0 bar", UNKNOWN_DIRECTION},
+      {L"\x202b foo bar", UNKNOWN_DIRECTION},
+      {L"!foo \x0622 bar", UNKNOWN_DIRECTION},
+      {L"\x202a\x202b", UNKNOWN_DIRECTION},
+      {L"\x202e\x202d", UNKNOWN_DIRECTION},
+      {L"\x0622\x202a", UNKNOWN_DIRECTION},
+      {L"\x202d\x05d0", UNKNOWN_DIRECTION},
+      // Test a string without strong directionality characters.
+      {L",!.{}", LEFT_TO_RIGHT},
+      // Test empty string.
+      {L"", LEFT_TO_RIGHT},
+      {
+#if defined(WCHAR_T_IS_32_BIT)
+          L" ! \x10910"
+          L"abc 123",
+#elif defined(WCHAR_T_IS_16_BIT)
+          L" ! \xd802\xdd10"
+          L"abc 123",
 #else
 #error wchar_t should be either UTF-16 or UTF-32
 #endif
-      UNKNOWN_DIRECTION },
-    {
-#if defined(WCHAR_T_IS_UTF32)
-      L" ! \x10401" L"abc 123",
-#elif defined(WCHAR_T_IS_UTF16)
-      L" ! \xd801\xdc01" L"abc 123",
+          UNKNOWN_DIRECTION},
+      {
+#if defined(WCHAR_T_IS_32_BIT)
+          L" ! \x10401"
+          L"abc 123",
+#elif defined(WCHAR_T_IS_16_BIT)
+          L" ! \xd801\xdc01"
+          L"abc 123",
 #else
 #error wchar_t should be either UTF-16 or UTF-32
 #endif
-      LEFT_TO_RIGHT },
-   };
+          LEFT_TO_RIGHT},
+  };
 
   for (auto& i : cases)
     EXPECT_EQ(i.direction, GetStringDirection(WideToUTF16(i.text)));
diff --git a/base/metrics/sample_vector.cc b/base/metrics/sample_vector.cc
index b9f6fda0..596e6738 100644
--- a/base/metrics/sample_vector.cc
+++ b/base/metrics/sample_vector.cc
@@ -10,6 +10,7 @@
 #include "base/debug/crash_logging.h"
 #include "base/lazy_instance.h"
 #include "base/memory/ptr_util.h"
+#include "base/memory/raw_span.h"
 #include "base/metrics/persistent_memory_allocator.h"
 #include "base/notreached.h"
 #include "base/numerics/safe_conversions.h"
@@ -34,20 +35,16 @@
 template <typename T>
 class IteratorTemplate : public SampleCountIterator {
  public:
-  IteratorTemplate(T* counts,
-                   size_t counts_size,
-                   const BucketRanges* bucket_ranges)
-      : counts_(counts),
-        counts_size_(counts_size),
-        bucket_ranges_(bucket_ranges) {
-    DCHECK_GE(bucket_ranges_->bucket_count(), counts_size_);
+  IteratorTemplate(base::span<T> counts, const BucketRanges* bucket_ranges)
+      : counts_(counts), bucket_ranges_(bucket_ranges) {
+    DCHECK_GE(bucket_ranges_->bucket_count(), counts_.size());
     SkipEmptyBuckets();
   }
 
   ~IteratorTemplate() override;
 
   // SampleCountIterator:
-  bool Done() const override { return index_ >= counts_size_; }
+  bool Done() const override { return index_ >= counts_.size(); }
   void Next() override {
     DCHECK(!Done());
     index_++;
@@ -72,7 +69,7 @@
       return;
     }
 
-    while (index_ < counts_size_) {
+    while (index_ < counts_.size()) {
       if (subtle::NoBarrier_Load(&counts_[index_]) != 0) {
         return;
       }
@@ -80,14 +77,12 @@
     }
   }
 
-  raw_ptr<T, AllowPtrArithmetic> counts_;
-  size_t counts_size_;
+  raw_span<T> counts_;
   raw_ptr<const BucketRanges> bucket_ranges_;
-
   size_t index_ = 0;
 };
 
-typedef IteratorTemplate<const HistogramBase::AtomicCount> SampleVectorIterator;
+using SampleVectorIterator = IteratorTemplate<const HistogramBase::AtomicCount>;
 
 template <>
 SampleVectorIterator::~IteratorTemplate() = default;
@@ -103,8 +98,8 @@
   *count = subtle::NoBarrier_Load(&counts_[index_]);
 }
 
-typedef IteratorTemplate<HistogramBase::AtomicCount>
-    ExtractingSampleVectorIterator;
+using ExtractingSampleVectorIterator =
+    IteratorTemplate<HistogramBase::AtomicCount>;
 
 template <>
 ExtractingSampleVectorIterator::~IteratorTemplate() {
@@ -228,12 +223,13 @@
 
   // Handle the multi-sample case.
   if (counts() || MountExistingCountsStorage()) {
-    return std::make_unique<SampleVectorIterator>(counts(), counts_size(),
-                                                  bucket_ranges_);
+    return std::make_unique<SampleVectorIterator>(
+        base::make_span(counts(), counts_size()), bucket_ranges_);
   }
 
   // And the no-value case.
-  return std::make_unique<SampleVectorIterator>(nullptr, 0, bucket_ranges_);
+  return std::make_unique<SampleVectorIterator>(
+      base::span<const HistogramBase::AtomicCount>(), bucket_ranges_);
 }
 
 std::unique_ptr<SampleCountIterator> SampleVectorBase::ExtractingIterator() {
@@ -258,12 +254,12 @@
   // Handle the multi-sample case.
   if (counts() || MountExistingCountsStorage()) {
     return std::make_unique<ExtractingSampleVectorIterator>(
-        counts(), counts_size(), bucket_ranges_);
+        base::make_span(counts(), counts_size()), bucket_ranges_);
   }
 
   // And the no-value case.
-  return std::make_unique<ExtractingSampleVectorIterator>(nullptr, 0,
-                                                          bucket_ranges_);
+  return std::make_unique<ExtractingSampleVectorIterator>(
+      base::span<HistogramBase::AtomicCount>(), bucket_ranges_);
 }
 
 bool SampleVectorBase::AddSubtractImpl(SampleCountIterator* iter,
diff --git a/base/profiler/stack_sampler_unittest.cc b/base/profiler/stack_sampler_unittest.cc
index 6c40480..c5b9b5f 100644
--- a/base/profiler/stack_sampler_unittest.cc
+++ b/base/profiler/stack_sampler_unittest.cc
@@ -102,16 +102,8 @@
                  TimeTicks* timestamp,
                  RegisterContext* thread_context,
                  Delegate* delegate) override {
-    // Returning true means the various out params should be populated.
-    std::array<uintptr_t, 2> fake_stack;
-    std::memcpy(stack_buffer->buffer(), fake_stack.data(), sizeof(fake_stack));
-    *stack_top =
-        reinterpret_cast<uintptr_t>(stack_buffer->buffer() + fake_stack.size());
-    // Set the stack pointer to be consistent with the copied stack.
-    *thread_context = {};
-    RegisterContextStackPointer(thread_context) =
-        reinterpret_cast<uintptr_t>(stack_buffer->buffer());
-    *timestamp = TimeTicks::Now();
+    *stack_top = reinterpret_cast<uintptr_t>(stack_buffer->buffer()) +
+                 10;  // Make msan happy.
     delegate->OnStackCopy();
     return true;
   }
diff --git a/base/strings/string_util.cc b/base/strings/string_util.cc
index 6f44befa..08917057 100644
--- a/base/strings/string_util.cc
+++ b/base/strings/string_util.cc
@@ -233,7 +233,7 @@
   return internal::DoIsStringASCII(str.data(), str.length());
 }
 
-#if defined(WCHAR_T_IS_UTF32)
+#if defined(WCHAR_T_IS_32_BIT)
 bool IsStringASCII(WStringPiece str) {
   return internal::DoIsStringASCII(str.data(), str.length());
 }
diff --git a/base/strings/string_util.h b/base/strings/string_util.h
index bee110bb..c3c638dd 100644
--- a/base/strings/string_util.h
+++ b/base/strings/string_util.h
@@ -344,7 +344,7 @@
 BASE_EXPORT bool IsStringASCII(StringPiece str);
 BASE_EXPORT bool IsStringASCII(StringPiece16 str);
 
-#if defined(WCHAR_T_IS_UTF32)
+#if defined(WCHAR_T_IS_32_BIT)
 BASE_EXPORT bool IsStringASCII(WStringPiece str);
 #endif
 
diff --git a/base/strings/string_util_perftest.cc b/base/strings/string_util_perftest.cc
index 0802c7b..ea8d622 100644
--- a/base/strings/string_util_perftest.cc
+++ b/base/strings/string_util_perftest.cc
@@ -35,7 +35,7 @@
       size_t non_ascii_pos = str_length * non_ascii_loc / 2 + 2;
       MeasureIsStringASCII<std::string>(str_length, non_ascii_pos);
       MeasureIsStringASCII<std::u16string>(str_length, non_ascii_pos);
-#if defined(WCHAR_T_IS_UTF32)
+#if defined(WCHAR_T_IS_32_BIT)
       MeasureIsStringASCII<std::basic_string<wchar_t>>(str_length,
                                                        non_ascii_pos);
 #endif
diff --git a/base/strings/string_util_unittest.cc b/base/strings/string_util_unittest.cc
index b4c797f8..b1b7ced 100644
--- a/base/strings/string_util_unittest.cc
+++ b/base/strings/string_util_unittest.cc
@@ -351,7 +351,7 @@
   EXPECT_EQ(output.compare(""), 0);
 }
 
-#if defined(WCHAR_T_IS_UTF16)
+#if defined(WCHAR_T_IS_16_BIT)
 TEST(StringUtilTest, as_wcstr) {
   char16_t rw_buffer[10] = {};
   static_assert(
@@ -404,7 +404,7 @@
                 "");
   EXPECT_EQ(static_cast<const void*>(piece.data()), as_u16cstr(piece));
 }
-#endif  // defined(WCHAR_T_IS_UTF16)
+#endif  // defined(WCHAR_T_IS_16_BIT)
 
 TEST(StringUtilTest, TrimWhitespace) {
   std::u16string output;  // Allow contents to carry over to next testcase
@@ -565,7 +565,7 @@
     }
   }
 
-#if defined(WCHAR_T_IS_UTF32)
+#if defined(WCHAR_T_IS_32_BIT)
   {
     const size_t string_length = wchar_ascii.length();
     for (size_t len = 0; len < string_length; ++len) {
@@ -583,7 +583,7 @@
       }
     }
   }
-#endif  // WCHAR_T_IS_UTF32
+#endif  // WCHAR_T_IS_32_BIT
 }
 
 TEST(StringUtilTest, ConvertASCII) {
diff --git a/base/strings/sys_string_conversions_unittest.cc b/base/strings/sys_string_conversions_unittest.cc
index 85be25e..96a8d90 100644
--- a/base/strings/sys_string_conversions_unittest.cc
+++ b/base/strings/sys_string_conversions_unittest.cc
@@ -13,7 +13,7 @@
 #include "build/build_config.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-#ifdef WCHAR_T_IS_UTF32
+#ifdef WCHAR_T_IS_32_BIT
 static const std::wstring kSysWideOldItalicLetterA = L"\x10300";
 #else
 static const std::wstring kSysWideOldItalicLetterA = L"\xd800\xdf00";
@@ -143,29 +143,31 @@
 }
 
 static const wchar_t* const kConvertRoundtripCases[] = {
-  L"Google Video",
-  // "网页 图片 资讯更多 »"
-  L"\x7f51\x9875\x0020\x56fe\x7247\x0020\x8d44\x8baf\x66f4\x591a\x0020\x00bb",
-  //  "Παγκόσμιος Ιστός"
-  L"\x03a0\x03b1\x03b3\x03ba\x03cc\x03c3\x03bc\x03b9"
-  L"\x03bf\x03c2\x0020\x0399\x03c3\x03c4\x03cc\x03c2",
-  // "Поиск страниц на русском"
-  L"\x041f\x043e\x0438\x0441\x043a\x0020\x0441\x0442"
-  L"\x0440\x0430\x043d\x0438\x0446\x0020\x043d\x0430"
-  L"\x0020\x0440\x0443\x0441\x0441\x043a\x043e\x043c",
-  // "전체서비스"
-  L"\xc804\xccb4\xc11c\xbe44\xc2a4",
+    L"Google Video",
+    // "网页 图片 资讯更多 »"
+    L"\x7f51\x9875\x0020\x56fe\x7247\x0020\x8d44\x8baf\x66f4\x591a\x0020\x00bb",
+    //  "Παγκόσμιος Ιστός"
+    L"\x03a0\x03b1\x03b3\x03ba\x03cc\x03c3\x03bc\x03b9"
+    L"\x03bf\x03c2\x0020\x0399\x03c3\x03c4\x03cc\x03c2",
+    // "Поиск страниц на русском"
+    L"\x041f\x043e\x0438\x0441\x043a\x0020\x0441\x0442"
+    L"\x0440\x0430\x043d\x0438\x0446\x0020\x043d\x0430"
+    L"\x0020\x0440\x0443\x0441\x0441\x043a\x043e\x043c",
+    // "전체서비스"
+    L"\xc804\xccb4\xc11c\xbe44\xc2a4",
 
-  // Test characters that take more than 16 bits. This will depend on whether
-  // wchar_t is 16 or 32 bits.
-#if defined(WCHAR_T_IS_UTF16)
-  L"\xd800\xdf00",
-  // ?????  (Mathematical Alphanumeric Symbols (U+011d40 - U+011d44 : A,B,C,D,E)
-  L"\xd807\xdd40\xd807\xdd41\xd807\xdd42\xd807\xdd43\xd807\xdd44",
-#elif defined(WCHAR_T_IS_UTF32)
-  L"\x10300",
-  // ?????  (Mathematical Alphanumeric Symbols (U+011d40 - U+011d44 : A,B,C,D,E)
-  L"\x11d40\x11d41\x11d42\x11d43\x11d44",
+// Test characters that take more than 16 bits. This will depend on whether
+// wchar_t is 16 or 32 bits.
+#if defined(WCHAR_T_IS_16_BIT)
+    L"\xd800\xdf00",
+    // ?????  (Mathematical Alphanumeric Symbols (U+011d40 - U+011d44 :
+    // A,B,C,D,E)
+    L"\xd807\xdd40\xd807\xdd41\xd807\xdd42\xd807\xdd43\xd807\xdd44",
+#elif defined(WCHAR_T_IS_32_BIT)
+    L"\x10300",
+    // ?????  (Mathematical Alphanumeric Symbols (U+011d40 - U+011d44 :
+    // A,B,C,D,E)
+    L"\x11d40\x11d41\x11d42\x11d43\x11d44",
 #endif
 };
 
diff --git a/base/strings/utf_string_conversion_utils.cc b/base/strings/utf_string_conversion_utils.cc
index 82632045..a651e1b8 100644
--- a/base/strings/utf_string_conversion_utils.cc
+++ b/base/strings/utf_string_conversion_utils.cc
@@ -66,7 +66,7 @@
   return IsValidCodepoint(*code_point);
 }
 
-#if defined(WCHAR_T_IS_UTF32)
+#if defined(WCHAR_T_IS_32_BIT)
 bool ReadUnicodeCharacter(const wchar_t* src,
                           size_t src_len,
                           size_t* char_index,
@@ -77,7 +77,7 @@
   // Validate the value.
   return IsValidCodepoint(*code_point);
 }
-#endif  // defined(WCHAR_T_IS_UTF32)
+#endif  // defined(WCHAR_T_IS_32_BIT)
 
 // WriteUnicodeCharacter -------------------------------------------------------
 
diff --git a/base/strings/utf_string_conversion_utils.h b/base/strings/utf_string_conversion_utils.h
index 01b5347..32239092 100644
--- a/base/strings/utf_string_conversion_utils.h
+++ b/base/strings/utf_string_conversion_utils.h
@@ -70,13 +70,13 @@
                                       size_t* char_index,
                                       base_icu::UChar32* code_point);
 
-#if defined(WCHAR_T_IS_UTF32)
+#if defined(WCHAR_T_IS_32_BIT)
 // Reads UTF-32 character. The usage is the same as the 8-bit version above.
 BASE_EXPORT bool ReadUnicodeCharacter(const wchar_t* src,
                                       size_t src_len,
                                       size_t* char_index,
                                       base_icu::UChar32* code_point);
-#endif  // defined(WCHAR_T_IS_UTF32)
+#endif  // defined(WCHAR_T_IS_32_BIT)
 
 // WriteUnicodeCharacter -------------------------------------------------------
 
@@ -90,7 +90,7 @@
 BASE_EXPORT size_t WriteUnicodeCharacter(base_icu::UChar32 code_point,
                                          std::u16string* output);
 
-#if defined(WCHAR_T_IS_UTF32)
+#if defined(WCHAR_T_IS_32_BIT)
 // Appends the given UTF-32 character to the given 32-bit string.  Returns the
 // number of 32-bit values written.
 inline size_t WriteUnicodeCharacter(base_icu::UChar32 code_point,
@@ -99,7 +99,7 @@
   output->push_back(static_cast<wchar_t>(code_point));
   return 1;
 }
-#endif  // defined(WCHAR_T_IS_UTF32)
+#endif  // defined(WCHAR_T_IS_32_BIT)
 
 // Generalized Unicode converter -----------------------------------------------
 
diff --git a/base/strings/utf_string_conversions.cc b/base/strings/utf_string_conversions.cc
index fa95913..58cb3b5 100644
--- a/base/strings/utf_string_conversions.cc
+++ b/base/strings/utf_string_conversions.cc
@@ -42,7 +42,7 @@
   static constexpr int value = 3;
 };
 
-#if defined(WCHAR_T_IS_UTF32)
+#if defined(WCHAR_T_IS_32_BIT)
 template <>
 struct SizeCoefficient<wchar_t, char> {
   // UTF-8 uses at most 4 codeunits per character.
@@ -54,7 +54,7 @@
   // UTF-16 uses at most 2 codeunits per character.
   static constexpr int value = 2;
 };
-#endif  // defined(WCHAR_T_IS_UTF32)
+#endif  // defined(WCHAR_T_IS_32_BIT)
 
 template <typename SrcChar, typename DestChar>
 constexpr int size_coefficient_v =
@@ -162,7 +162,7 @@
   return success;
 }
 
-#if defined(WCHAR_T_IS_UTF32)
+#if defined(WCHAR_T_IS_32_BIT)
 
 template <typename DestChar>
 bool DoUTFConversion(const wchar_t* src,
@@ -185,7 +185,7 @@
   return success;
 }
 
-#endif  // defined(WCHAR_T_IS_UTF32)
+#endif  // defined(WCHAR_T_IS_32_BIT)
 
 // UTFConversion --------------------------------------------------------------
 // Function template for generating all UTF conversions.
@@ -246,7 +246,7 @@
 
 // UTF-16 <-> Wide -------------------------------------------------------------
 
-#if defined(WCHAR_T_IS_UTF16)
+#if defined(WCHAR_T_IS_16_BIT)
 // When wide == UTF-16 the conversions are a NOP.
 
 bool WideToUTF16(const wchar_t* src, size_t src_len, std::u16string* output) {
@@ -267,7 +267,7 @@
   return std::wstring(utf16.begin(), utf16.end());
 }
 
-#elif defined(WCHAR_T_IS_UTF32)
+#elif defined(WCHAR_T_IS_32_BIT)
 
 bool WideToUTF16(const wchar_t* src, size_t src_len, std::u16string* output) {
   return UTFConversion(base::WStringPiece(src, src_len), output);
@@ -293,7 +293,7 @@
   return ret;
 }
 
-#endif  // defined(WCHAR_T_IS_UTF32)
+#endif  // defined(WCHAR_T_IS_32_BIT)
 
 // UTF-8 <-> Wide --------------------------------------------------------------
 
@@ -311,7 +311,7 @@
   return ret;
 }
 
-#if defined(WCHAR_T_IS_UTF16)
+#if defined(WCHAR_T_IS_16_BIT)
 // Easy case since we can use the "utf" versions we already wrote above.
 
 bool WideToUTF8(const wchar_t* src, size_t src_len, std::string* output) {
@@ -322,7 +322,7 @@
   return UTF16ToUTF8(StringPiece16(as_u16cstr(wide), wide.size()));
 }
 
-#elif defined(WCHAR_T_IS_UTF32)
+#elif defined(WCHAR_T_IS_32_BIT)
 
 bool WideToUTF8(const wchar_t* src, size_t src_len, std::string* output) {
   return UTFConversion(WStringPiece(src, src_len), output);
@@ -336,7 +336,7 @@
   return ret;
 }
 
-#endif  // defined(WCHAR_T_IS_UTF32)
+#endif  // defined(WCHAR_T_IS_32_BIT)
 
 std::u16string ASCIIToUTF16(StringPiece ascii) {
   DCHECK(IsStringASCII(ascii)) << ascii;
@@ -348,7 +348,7 @@
   return std::string(utf16.begin(), utf16.end());
 }
 
-#if defined(WCHAR_T_IS_UTF16)
+#if defined(WCHAR_T_IS_16_BIT)
 std::wstring ASCIIToWide(StringPiece ascii) {
   DCHECK(IsStringASCII(ascii)) << ascii;
   return std::wstring(ascii.begin(), ascii.end());
@@ -358,6 +358,6 @@
   DCHECK(IsStringASCII(wide)) << wide;
   return std::string(wide.begin(), wide.end());
 }
-#endif  // defined(WCHAR_T_IS_UTF16)
+#endif  // defined(WCHAR_T_IS_16_BIT)
 
 }  // namespace base
diff --git a/base/strings/utf_string_conversions.h b/base/strings/utf_string_conversions.h
index c476dbe1..af1cc0d 100644
--- a/base/strings/utf_string_conversions.h
+++ b/base/strings/utf_string_conversions.h
@@ -55,7 +55,7 @@
 // beforehand.
 [[nodiscard]] BASE_EXPORT std::string UTF16ToASCII(StringPiece16 utf16);
 
-#if defined(WCHAR_T_IS_UTF16)
+#if defined(WCHAR_T_IS_16_BIT)
 // This converts an ASCII string, typically a hardcoded constant, to a wide
 // string.
 [[nodiscard]] BASE_EXPORT std::wstring ASCIIToWide(StringPiece ascii);
@@ -63,7 +63,7 @@
 // Converts to 7-bit ASCII by truncating. The result must be known to be ASCII
 // beforehand.
 [[nodiscard]] BASE_EXPORT std::string WideToASCII(WStringPiece wide);
-#endif  // defined(WCHAR_T_IS_UTF16)
+#endif  // defined(WCHAR_T_IS_16_BIT)
 
 // The conversion functions in this file should not be used to convert string
 // literals. Instead, the corresponding prefixes (e.g. u"" for UTF16 or L"" for
diff --git a/base/strings/utf_string_conversions_unittest.cc b/base/strings/utf_string_conversions_unittest.cc
index 5036a466..53d43a4f 100644
--- a/base/strings/utf_string_conversions_unittest.cc
+++ b/base/strings/utf_string_conversions_unittest.cc
@@ -16,29 +16,31 @@
 namespace {
 
 const wchar_t* const kConvertRoundtripCases[] = {
-  L"Google Video",
-  // "网页 图片 资讯更多 »"
-  L"\x7f51\x9875\x0020\x56fe\x7247\x0020\x8d44\x8baf\x66f4\x591a\x0020\x00bb",
-  //  "Παγκόσμιος Ιστός"
-  L"\x03a0\x03b1\x03b3\x03ba\x03cc\x03c3\x03bc\x03b9"
-  L"\x03bf\x03c2\x0020\x0399\x03c3\x03c4\x03cc\x03c2",
-  // "Поиск страниц на русском"
-  L"\x041f\x043e\x0438\x0441\x043a\x0020\x0441\x0442"
-  L"\x0440\x0430\x043d\x0438\x0446\x0020\x043d\x0430"
-  L"\x0020\x0440\x0443\x0441\x0441\x043a\x043e\x043c",
-  // "전체서비스"
-  L"\xc804\xccb4\xc11c\xbe44\xc2a4",
+    L"Google Video",
+    // "网页 图片 资讯更多 »"
+    L"\x7f51\x9875\x0020\x56fe\x7247\x0020\x8d44\x8baf\x66f4\x591a\x0020\x00bb",
+    //  "Παγκόσμιος Ιστός"
+    L"\x03a0\x03b1\x03b3\x03ba\x03cc\x03c3\x03bc\x03b9"
+    L"\x03bf\x03c2\x0020\x0399\x03c3\x03c4\x03cc\x03c2",
+    // "Поиск страниц на русском"
+    L"\x041f\x043e\x0438\x0441\x043a\x0020\x0441\x0442"
+    L"\x0440\x0430\x043d\x0438\x0446\x0020\x043d\x0430"
+    L"\x0020\x0440\x0443\x0441\x0441\x043a\x043e\x043c",
+    // "전체서비스"
+    L"\xc804\xccb4\xc11c\xbe44\xc2a4",
 
-  // Test characters that take more than 16 bits. This will depend on whether
-  // wchar_t is 16 or 32 bits.
-#if defined(WCHAR_T_IS_UTF16)
-  L"\xd800\xdf00",
-  // ?????  (Mathematical Alphanumeric Symbols (U+011d40 - U+011d44 : A,B,C,D,E)
-  L"\xd807\xdd40\xd807\xdd41\xd807\xdd42\xd807\xdd43\xd807\xdd44",
-#elif defined(WCHAR_T_IS_UTF32)
-  L"\x10300",
-  // ?????  (Mathematical Alphanumeric Symbols (U+011d40 - U+011d44 : A,B,C,D,E)
-  L"\x11d40\x11d41\x11d42\x11d43\x11d44",
+// Test characters that take more than 16 bits. This will depend on whether
+// wchar_t is 16 or 32 bits.
+#if defined(WCHAR_T_IS_16_BIT)
+    L"\xd800\xdf00",
+    // ?????  (Mathematical Alphanumeric Symbols (U+011d40 - U+011d44 :
+    // A,B,C,D,E)
+    L"\xd807\xdd40\xd807\xdd41\xd807\xdd42\xd807\xdd43\xd807\xdd44",
+#elif defined(WCHAR_T_IS_32_BIT)
+    L"\x10300",
+    // ?????  (Mathematical Alphanumeric Symbols (U+011d40 - U+011d44 :
+    // A,B,C,D,E)
+    L"\x11d40\x11d41\x11d42\x11d43\x11d44",
 #endif
 };
 
@@ -87,10 +89,10 @@
     {"\xed\xb0\x80", L"\xfffd\xfffd\xfffd", false},
     // Non-BMP characters. The second is a non-character regarded as valid.
     // The result will either be in UTF-16 or UTF-32.
-#if defined(WCHAR_T_IS_UTF16)
+#if defined(WCHAR_T_IS_16_BIT)
     {"A\xF0\x90\x8C\x80z", L"A\xd800\xdf00z", true},
     {"A\xF4\x8F\xBF\xBEz", L"A\xdbff\xdffez", true},
-#elif defined(WCHAR_T_IS_UTF32)
+#elif defined(WCHAR_T_IS_32_BIT)
     {"A\xF0\x90\x8C\x80z", L"A\x10300z", true},
     {"A\xF4\x8F\xBF\xBEz", L"A\x10fffez", true},
 #endif
@@ -117,7 +119,7 @@
   EXPECT_EQ('B', converted[0]);
 }
 
-#if defined(WCHAR_T_IS_UTF16)
+#if defined(WCHAR_T_IS_16_BIT)
 // This test is only valid when wchar_t == UTF-16.
 TEST(UTFStringConversionsTest, ConvertUTF16ToUTF8) {
   struct WideToUTF8Case {
@@ -147,7 +149,7 @@
   }
 }
 
-#elif defined(WCHAR_T_IS_UTF32)
+#elif defined(WCHAR_T_IS_32_BIT)
 // This test is only valid when wchar_t == UTF-32.
 TEST(UTFStringConversionsTest, ConvertUTF32ToUTF8) {
   struct WideToUTF8Case {
@@ -177,7 +179,7 @@
     EXPECT_EQ(expected, converted);
   }
 }
-#endif  // defined(WCHAR_T_IS_UTF32)
+#endif  // defined(WCHAR_T_IS_32_BIT)
 
 TEST(UTFStringConversionsTest, ConvertMultiString) {
   static char16_t multi16[] = {'f',  'o', 'o', '\0', 'b',  'a', 'r',
diff --git a/build/build_config.h b/build/build_config.h
index 24847036..65a24652 100644
--- a/build/build_config.h
+++ b/build/build_config.h
@@ -356,19 +356,19 @@
 
 // Type detection for wchar_t.
 #if defined(OS_WIN)
-#define WCHAR_T_IS_UTF16
+#define WCHAR_T_IS_16_BIT
 #elif defined(OS_FUCHSIA)
-#define WCHAR_T_IS_UTF32
+#define WCHAR_T_IS_32_BIT
 #elif defined(OS_POSIX) && defined(COMPILER_GCC) && defined(__WCHAR_MAX__) && \
     (__WCHAR_MAX__ == 0x7fffffff || __WCHAR_MAX__ == 0xffffffff)
-#define WCHAR_T_IS_UTF32
+#define WCHAR_T_IS_32_BIT
 #elif defined(OS_POSIX) && defined(COMPILER_GCC) && defined(__WCHAR_MAX__) && \
     (__WCHAR_MAX__ == 0x7fff || __WCHAR_MAX__ == 0xffff)
 // On Posix, we'll detect short wchar_t, but projects aren't guaranteed to
 // compile in this mode (in particular, Chrome doesn't). This is intended for
 // other projects using base who manage their own dependencies and make sure
 // short wchar works for them.
-#define WCHAR_T_IS_UTF16
+#define WCHAR_T_IS_16_BIT
 #else
 #error Please add support for your compiler in build/build_config.h
 #endif
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java
index 8181276..a81477b 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java
@@ -795,6 +795,8 @@
                 mMessageCardProviderCoordinator.getMessageItems();
         for (int i = 0; i < messages.size(); i++) {
             if (!shouldAppendMessage(messages.get(i).model)) continue;
+            messages.get(i).model.set(TabListModel.CardProperties.CARD_ALPHA, 1F);
+
             if (messages.get(i).type == MessageService.MessageType.PRICE_MESSAGE) {
                 mTabListCoordinator.addSpecialListItem(
                         index, TabProperties.UiType.LARGE_MESSAGE, messages.get(i).model);
diff --git a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/PriceAlertsMessageCardTest.java b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/PriceAlertsMessageCardTest.java
index 27dd21a..fbed5bcd 100644
--- a/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/PriceAlertsMessageCardTest.java
+++ b/chrome/android/features/tab_ui/javatests/src/org/chromium/chrome/browser/tasks/tab_management/PriceAlertsMessageCardTest.java
@@ -221,6 +221,7 @@
     @Test
     @MediumTest
     @CommandLineFlags.Add({BASE_PARAMS})
+    @DisabledTest(message = "crbug.com/1500162")
     public void testReviewMessage_AppNotificationsDisabled() {
         final ChromeTabbedActivity cta = mActivityTestRule.getActivity();
         mMockNotificationManager.setNotificationsEnabled(false);
@@ -249,6 +250,7 @@
     @Test
     @MediumTest
     @CommandLineFlags.Add({BASE_PARAMS})
+    @DisabledTest(message = "crbug.com/1500162")
     public void testDismissMessage() {
         final ChromeTabbedActivity cta = mActivityTestRule.getActivity();
 
@@ -269,6 +271,7 @@
     @Test
     @MediumTest
     @CommandLineFlags.Add({BASE_PARAMS})
+    @DisabledTest(message = "crbug.com/1500162")
     public void testSwipeMessage() {
         final ChromeTabbedActivity cta = mActivityTestRule.getActivity();
 
@@ -323,6 +326,7 @@
     @Test
     @MediumTest
     @CommandLineFlags.Add({BASE_PARAMS})
+    @DisabledTest(message = "crbug.com/1500162")
     public void testDisableMessageAfterShowingTenTimes() {
         final ChromeTabbedActivity cta = mActivityTestRule.getActivity();
 
@@ -365,6 +369,7 @@
     @MediumTest
     @Feature({"RenderTest"})
     @CommandLineFlags.Add({BASE_PARAMS})
+    @DisabledTest(message = "crbug.com/1500162")
     public void testRenderMessageCard_Portrait_AppNotificationsDisabled() throws IOException {
         final ChromeTabbedActivity cta = mActivityTestRule.getActivity();
         mMockNotificationManager.setNotificationsEnabled(false);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java
index 17327bd..ee9cc70 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java
@@ -663,9 +663,8 @@
     }
 
     /**
-     * @return The {@link StripLayoutHelperManager} managed by this class.
+     * Returns the {@link StripLayoutHelperManager} managed by this class.
      */
-    @VisibleForTesting
     public StripLayoutHelperManager getStripLayoutHelperManager() {
         return null;
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
index fb664c6..66677cc 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
@@ -12,6 +12,7 @@
 import android.os.SystemClock;
 import android.view.MotionEvent;
 import android.view.View;
+import android.view.View.OnDragListener;
 import android.view.ViewStub;
 
 import androidx.annotation.ColorInt;
@@ -712,6 +713,14 @@
         return rightFadeDrawable;
     }
 
+    /**
+     * Returns drag listener for tab strip.
+     */
+    public OnDragListener getDragListener() {
+        if (mTabDragSource == null) return null;
+        return mTabDragSource.getDragListener();
+    }
+
     void setModelSelectorButtonVisibleForTesting(boolean isVisible) {
         mModelSelectorButton.setVisible(isVisible);
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabDragSource.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabDragSource.java
index 2db9f78..a7952793 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabDragSource.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabDragSource.java
@@ -83,10 +83,12 @@
                         .getDimension(R.dimen.tab_strip_height);
 
         mOnDragListenerImpl = new OnDragListenerImpl();
-        toolbarContainerView.setOnDragListener(mOnDragListenerImpl);
     }
 
-    public OnDragListenerImpl getDragListenerForTesting() {
+    /**
+     * Returns Drag listener for tab strip.
+     */
+    public OnDragListenerImpl getDragListener() {
         return mOnDragListenerImpl;
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
index 2abaf228..127779e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java
@@ -6,11 +6,15 @@
 
 import android.app.Activity;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
+import org.chromium.base.Callback;
 import org.chromium.base.ContextUtils;
 import org.chromium.base.ObserverList;
 import org.chromium.base.ResettersForTesting;
+import org.chromium.base.supplier.ObservableSupplier;
+import org.chromium.base.supplier.ObservableSupplierImpl;
 import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tab.TabCreationState;
@@ -41,12 +45,14 @@
     private TabModelFilterProvider mTabModelFilterProvider = new TabModelFilterProvider();
 
     private final TabModelFilterFactory mTabModelFilterFactory;
-    private int mActiveModelIndex;
+    private final ObservableSupplierImpl<TabModel> mTabModelSupplier =
+            new ObservableSupplierImpl<>();
 
     private final ObserverList<TabModelSelectorObserver> mObservers = new ObserverList<>();
     private final ObserverList<IncognitoTabModelObserver> mIncognitoObservers =
             new ObserverList<>();
 
+    @NonNull private final Callback<TabModel> mIncognitoReauthDialogDelegateCallback;
     @Nullable
     protected IncognitoReauthDialogDelegate mIncognitoReauthDialogDelegate;
 
@@ -61,6 +67,14 @@
         mTabCreatorManager = tabCreatorManager;
         mTabModelFilterFactory = tabModelFilterFactory;
         mStartIncognito = startIncognito;
+        // Notify the re-auth code first so we show the re-auth dialog first.
+        mIncognitoReauthDialogDelegateCallback =
+                (tabModel) -> {
+                    if (mIncognitoReauthDialogDelegate != null && tabModel.isIncognito()) {
+                        mIncognitoReauthDialogDelegate.onBeforeIncognitoTabModelSelected();
+                    }
+                };
+        mTabModelSupplier.addObserver(mIncognitoReauthDialogDelegateCallback);
     }
 
     protected final void initialize(TabModel normalModel, IncognitoTabModel incognitoModel) {
@@ -70,8 +84,8 @@
         mTabModels.add(normalModel);
         mTabModels.add(incognitoModel);
         mIncognitoTabModel = incognitoModel;
-        mActiveModelIndex = getModelIndex(mStartIncognito);
-        assert mActiveModelIndex != MODEL_NOT_FOUND;
+        int activeModelIndex = getModelIndex(mStartIncognito);
+        assert activeModelIndex != MODEL_NOT_FOUND;
         mTabModelFilterProvider.init(mTabModelFilterFactory, mTabModels);
         addObserver(mTabModelFilterProvider);
 
@@ -104,6 +118,7 @@
 
         incognitoModel.setActive(mStartIncognito);
         normalModel.setActive(!mStartIncognito);
+        mTabModelSupplier.set(mTabModels.get(activeModelIndex));
 
         notifyChanged();
     }
@@ -132,18 +147,13 @@
         }
         int newIndex = getModelIndex(incognito);
         assert newIndex != MODEL_NOT_FOUND;
-        if (newIndex == mActiveModelIndex) return;
+        if (mTabModels.get(newIndex) == mTabModelSupplier.get()) return;
 
         TabModel newModel = mTabModels.get(newIndex);
-        TabModel previousModel = mTabModels.get(mActiveModelIndex);
+        TabModel previousModel = mTabModelSupplier.get();
         previousModel.setActive(false);
         newModel.setActive(true);
-        mActiveModelIndex = newIndex;
-
-        // Notify the re-auth code first so we show the re-auth dialog first.
-        if (mIncognitoReauthDialogDelegate != null && newModel.isIncognito()) {
-            mIncognitoReauthDialogDelegate.onBeforeIncognitoTabModelSelected();
-        }
+        mTabModelSupplier.set(newModel);
 
         for (TabModelSelectorObserver listener : mObservers) {
             listener.onTabModelSelected(newModel, previousModel);
@@ -173,9 +183,14 @@
     }
 
     @Override
-    public TabModel getCurrentModel() {
+    public @NonNull TabModel getCurrentModel() {
         if (mTabModels.size() == 0) return EmptyTabModel.getInstance();
-        return mTabModels.get(mActiveModelIndex);
+        return mTabModelSupplier.get();
+    }
+
+    @Override
+    public @NonNull ObservableSupplier<TabModel> getCurrentTabModelSupplier() {
+        return mTabModelSupplier;
     }
 
     @Override
@@ -306,6 +321,7 @@
 
     @Override
     public void destroy() {
+        mTabModelSupplier.removeObserver(mIncognitoReauthDialogDelegateCallback);
         removeObserver(mTabModelFilterProvider);
         mTabModelFilterProvider.destroy();
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
index c453333..fe0e854a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
@@ -53,6 +53,7 @@
 import org.chromium.chrome.browser.compositor.Invalidator;
 import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelManager.OverlayPanelManagerObserver;
 import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator;
+import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerImpl;
 import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
 import org.chromium.chrome.browser.crash.ChromePureJavaExceptionReporter;
@@ -1547,6 +1548,15 @@
         if (layoutManager != null) {
             mLayoutManager = layoutManager;
             mLayoutManager.getOverlayPanelManager().addObserver(mOverlayPanelManagerObserver);
+            // Set drag listener for toolbar container.
+            if (mLayoutManager instanceof LayoutManagerChrome
+                    && ((LayoutManagerChrome) mLayoutManager).getStripLayoutHelperManager()
+                            != null) {
+                mControlContainer.setToolbarContainerDragListener(
+                        ((LayoutManagerChrome) mLayoutManager)
+                                .getStripLayoutHelperManager()
+                                .getDragListener());
+            }
         }
 
         if (mMenuStateObserver != null) {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionControllerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionControllerTest.java
index 50413f4..f6621d34 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionControllerTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionControllerTest.java
@@ -15,7 +15,6 @@
 import org.chromium.base.test.BaseJUnit4ClassRunner;
 import org.chromium.base.test.util.Batch;
 import org.chromium.base.test.util.CommandLineFlags;
-import org.chromium.base.test.util.DisabledTest;
 import org.chromium.base.test.util.HistogramWatcher;
 import org.chromium.chrome.browser.flags.ChromeFeatureList;
 import org.chromium.chrome.browser.flags.ChromeSwitches;
@@ -76,9 +75,9 @@
         ChromeFeatureList.CONTEXTUAL_PAGE_ACTIONS,
         ChromeFeatureList.CONTEXTUAL_PAGE_ACTION_READER_MODE
     })
-    @DisabledTest(message = "https://crbug.com/1495178")
     public void testContextualPageModelExecution_OnReaderModePage() {
         LibraryLoader.getInstance().ensureInitialized();
+        mActivityTestRule.startMainActivityFromLauncher();
 
         var histograms =
                 HistogramWatcher.newBuilder()
@@ -90,7 +89,7 @@
                                 /* value= */ AdaptiveToolbarButtonVariant.READER_MODE)
                         .build();
 
-        mActivityTestRule.startMainActivityWithURL(mReaderModePageUrl);
+        mActivityTestRule.loadUrl(mReaderModePageUrl);
 
         histograms.pollInstrumentationThreadUntilSatisfied();
     }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java
index b0c6917..c915e59 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreTest.java
@@ -944,10 +944,12 @@
 
             // Undoing tab closures one-by-one results in the first tab always being selected after
             // the initial restoration.
+            Tab currentTab =
+                    TestThreadUtils.runOnUiThreadBlockingNoException(selector::getCurrentTab);
             if (i == 0) {
-                Assert.assertEquals(info.selectedTabId, selector.getCurrentTab().getId());
+                Assert.assertEquals(info.selectedTabId, currentTab.getId());
             } else {
-                Assert.assertEquals(info.contents[0].tabId, selector.getCurrentTab().getId());
+                Assert.assertEquals(info.contents[0].tabId, currentTab.getId());
             }
 
             TestThreadUtils.runOnUiThreadBlocking(
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManagerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManagerTest.java
index f0bdd26..2048bd3 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManagerTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManagerTest.java
@@ -673,6 +673,15 @@
                 mStripLayoutHelperManager.getTabDropTargetForTesting());
     }
 
+    @Test
+    @Config(sdk = VERSION_CODES.S)
+    @EnableFeatures(ChromeFeatureList.TAB_LINK_DRAG_DROP_ANDROID)
+    public void testGetDragListener() throws NameNotFoundException {
+        enableMultiInstance();
+        initializeTest();
+        assertNotNull("DragListener should be set.", mStripLayoutHelperManager.getDragListener());
+    }
+
     private void enableMultiInstance() throws NameNotFoundException {
         Context mApplicationContext = Mockito.spy(ContextUtils.getApplicationContext());
         PackageManager packageManager = mock(PackageManager.class);
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/TabDragSourceTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/TabDragSourceTest.java
index c016d4e0..847c1b0 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/TabDragSourceTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/compositor/overlays/strip/TabDragSourceTest.java
@@ -293,7 +293,7 @@
         // Mock same source
         when(mMultiInstanceManager.getCurrentInstanceId()).thenReturn(CURR_INSTANCE_ID);
 
-        OnDragListener dragListener = mTabDragSource.getDragListenerForTesting();
+        OnDragListener dragListener = mTabDragSource.getDragListener();
         if (withinStripLayout) {
             eventsWithinStripLayout(dragListener);
         } else {
@@ -433,7 +433,7 @@
         // Drop event on another Chrome window in the in top half.
         DragDropGlobalState.getInstance().dragSourceInstanceId = CURR_INSTANCE_ID;
         when(mMultiInstanceManager.getCurrentInstanceId()).thenReturn(ANOTHER_INSTANCE_ID);
-        TabDragSource.OnDragListenerImpl dragListener = mTabDragSource.getDragListenerForTesting();
+        TabDragSource.OnDragListenerImpl dragListener = mTabDragSource.getDragListener();
         boolean res =
                 dragListener.canAcceptTabDrop(createDragEvent(DragEvent.ACTION_DROP, 150f, 10f, 0));
         assertTrue("Tab drop should be accepted in another tabs toolbar view.", res);
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImplTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImplTest.java
index 5efc243..9ebc256 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImplTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImplTest.java
@@ -4,6 +4,10 @@
 
 package org.chromium.chrome.browser.tabmodel;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
@@ -14,6 +18,7 @@
 
 import androidx.test.filters.SmallTest;
 
+import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -23,9 +28,10 @@
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.annotation.Config;
-import org.robolectric.annotation.LooperMode;
 import org.robolectric.shadows.ShadowLooper;
 
+import org.chromium.base.Callback;
+import org.chromium.base.supplier.ObservableSupplierImpl;
 import org.chromium.base.supplier.OneshotSupplierImpl;
 import org.chromium.base.test.BaseRobolectricTestRunner;
 import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
@@ -44,24 +50,25 @@
 /** Unit tests for {@link TabModelSelectorImpl}. */
 @RunWith(BaseRobolectricTestRunner.class)
 @Config(manifest = Config.NONE)
-@LooperMode(LooperMode.Mode.PAUSED)
 public class TabModelSelectorImplTest {
     // Test activity type that does not restore tab on cold restart.
     // Any type other than ActivityType.TABBED works.
     private static final @ActivityType int NO_RESTORE_TYPE = ActivityType.CUSTOM_TAB;
 
-    @Mock TabModelFilterFactory mMockTabModelFilterFactory;
-    @Mock TabContentManager mMockTabContentManager;
-    @Mock TabDelegateFactory mTabDelegateFactory;
-    @Mock NextTabPolicySupplier mNextTabPolicySupplier;
+    @Mock private TabModelFilterFactory mMockTabModelFilterFactory;
+    @Mock private TabContentManager mMockTabContentManager;
+    @Mock private TabDelegateFactory mTabDelegateFactory;
+    @Mock private NextTabPolicySupplier mNextTabPolicySupplier;
 
     @Mock
-    IncognitoTabModelObserver.IncognitoReauthDialogDelegate mIncognitoReauthDialogDelegateMock;
+    private IncognitoTabModelObserver.IncognitoReauthDialogDelegate
+            mIncognitoReauthDialogDelegateMock;
 
-    @Mock TabModelSelectorObserver mTabModelSelectorObserverMock;
-    @Mock ProfileProvider mProfileProvider;
-    @Mock Profile mProfile;
-    @Mock Profile mIncognitoProfile;
+    @Mock private Callback<TabModel> mTabModelSupplierObserverMock;
+    @Mock private TabModelSelectorObserver mTabModelSelectorObserverMock;
+    @Mock private ProfileProvider mProfileProvider;
+    @Mock private Profile mProfile;
+    @Mock private Profile mIncognitoProfile;
 
     private TabModelSelectorImpl mTabModelSelector;
     private MockTabCreatorManager mTabCreatorManager;
@@ -86,15 +93,31 @@
                         mTabCreatorManager,
                         mMockTabModelFilterFactory,
                         mNextTabPolicySupplier,
-                        /* supportUndo= */ realAsyncTabParamsManager,
-                        false,
-                        /* startIncognito= */ NO_RESTORE_TYPE,
-                        false);
+                        realAsyncTabParamsManager,
+                        /* supportUndo= */ false,
+                        NO_RESTORE_TYPE,
+                        /* startIncognito= */ false);
+        assertTrue(currentTabModelSupplierHasObservers());
+        assertNull(mTabModelSelector.getCurrentTabModelSupplier().get());
+
         mTabCreatorManager.initialize(mTabModelSelector);
         mTabModelSelector.onNativeLibraryReadyInternal(
                 mMockTabContentManager,
                 new MockTabModel(mProfile, null),
                 new MockTabModel(mIncognitoProfile, null));
+
+        assertEquals(
+                mTabModelSelector.getModel(/* isIncognito= */ false),
+                mTabModelSelector.getCurrentTabModelSupplier().get());
+        assertEquals(
+                mTabModelSelector.getCurrentModel(),
+                mTabModelSelector.getCurrentTabModelSupplier().get());
+    }
+
+    @After
+    public void tearDown() {
+        mTabModelSelector.destroy();
+        assertFalse(currentTabModelSupplierHasObservers());
     }
 
     @Test
@@ -153,15 +176,27 @@
             testIncognitoReauthDialogDelegate_OnBeforeIncognitoTabModelSelected_called_Before() {
         doNothing().when(mIncognitoReauthDialogDelegateMock).onBeforeIncognitoTabModelSelected();
         doNothing().when(mTabModelSelectorObserverMock).onTabModelSelected(any(), any());
+        doNothing().when(mTabModelSupplierObserverMock).onResult(any());
         mTabModelSelector.setIncognitoReauthDialogDelegate(mIncognitoReauthDialogDelegateMock);
         mTabModelSelector.addObserver(mTabModelSelectorObserverMock);
+        mTabModelSelector.getCurrentTabModelSupplier().addObserver(mTabModelSupplierObserverMock);
+        ShadowLooper.runUiThreadTasks();
+        verify(mTabModelSupplierObserverMock).onResult(any());
 
-        InOrder order = inOrder(mIncognitoReauthDialogDelegateMock, mTabModelSelectorObserverMock);
+        InOrder order =
+                inOrder(
+                        mIncognitoReauthDialogDelegateMock,
+                        mTabModelSelectorObserverMock,
+                        mTabModelSupplierObserverMock);
         mTabModelSelector.selectModel(/* incognito= */ true);
 
-        order.verify(mIncognitoReauthDialogDelegateMock, times(1))
-                .onBeforeIncognitoTabModelSelected();
-        order.verify(mTabModelSelectorObserverMock, times(1)).onTabModelSelected(any(), any());
+        order.verify(mIncognitoReauthDialogDelegateMock).onBeforeIncognitoTabModelSelected();
+        order.verify(mTabModelSupplierObserverMock).onResult(any());
+        order.verify(mTabModelSelectorObserverMock).onTabModelSelected(any(), any());
+
+        mTabModelSelector
+                .getCurrentTabModelSupplier()
+                .removeObserver(mTabModelSupplierObserverMock);
     }
 
     /**
@@ -182,6 +217,10 @@
         // separate from the actual test.
         mTabModelSelector.setIncognitoReauthDialogDelegate(mIncognitoReauthDialogDelegateMock);
         mTabModelSelector.addObserver(mTabModelSelectorObserverMock);
+        doNothing().when(mTabModelSupplierObserverMock).onResult(any());
+        mTabModelSelector.getCurrentTabModelSupplier().addObserver(mTabModelSupplierObserverMock);
+        ShadowLooper.runUiThreadTasks();
+        verify(mTabModelSupplierObserverMock).onResult(any());
 
         doNothing().when(mIncognitoReauthDialogDelegateMock).onAfterRegularTabModelChanged();
         doNothing().when(mTabModelSelectorObserverMock).onTabModelSelected(any(), any());
@@ -189,12 +228,22 @@
 
         InOrder order = inOrder(mTabModelSelectorObserverMock, mIncognitoReauthDialogDelegateMock);
         mTabModelSelector.selectModel(/* incognito= */ false);
-        verify(mTabModelSelectorObserverMock, times(1)).onTabModelSelected(any(), any());
+        verify(mTabModelSelectorObserverMock).onTabModelSelected(any(), any());
+        verify(mTabModelSupplierObserverMock, times(2)).onResult(any());
 
         // The onChange method below is posted as a task to the main looper, and therefore we need
         // to wait until it gets executed.
         ShadowLooper.shadowMainLooper().idle();
-        order.verify(mTabModelSelectorObserverMock, times(1)).onChange();
-        order.verify(mIncognitoReauthDialogDelegateMock, times(1)).onAfterRegularTabModelChanged();
+        order.verify(mTabModelSelectorObserverMock).onChange();
+        order.verify(mIncognitoReauthDialogDelegateMock).onAfterRegularTabModelChanged();
+
+        mTabModelSelector
+                .getCurrentTabModelSupplier()
+                .removeObserver(mTabModelSupplierObserverMock);
+    }
+
+    private boolean currentTabModelSupplierHasObservers() {
+        return ((ObservableSupplierImpl<?>) mTabModelSelector.getCurrentTabModelSupplier())
+                .hasObservers();
     }
 }
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index 12f33bd..bd4c17b 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -5868,6 +5868,12 @@
           <message name="IDS_EXTENSIONS_PINNED_BY_ADMIN_ACCESSIBLE_NAME" desc="The accessible name indicating that an extension has been 'pinned' to the toolbar by the controlling administrator (sentence case).">
             <ph name="EXTENSION_NAME">$1<ex>Gmail Checker</ex></ph> is pinned by your administrator
           </message>
+          <message name="IDS_EXTENSIONS_SUBMENU_OPEN_SIDE_PANEL_ITEM" desc="The text for the link in the extensions menu to open the side panel corresponding to the extension (sentence case).">
+            Open side panel
+          </message>
+          <message name="IDS_EXTENSIONS_SUBMENU_CLOSE_SIDE_PANEL_ITEM" desc="The text for the link in the extensions menu to close the side panel corresponding to the extension (sentence case).">
+            Close side panel
+          </message>
           <message name="IDS_MANAGE_EXTENSION" desc="The text for the button in the extension's context menu used to open the chrome://extensions/?id=xxx page and manage a specific extension (sentence case).">
             Manage extension
           </message>
@@ -5963,6 +5969,12 @@
           <message name="IDS_EXTENSIONS_PINNED_BY_ADMIN_ACCESSIBLE_NAME" desc="The accessible name indicating that an extension has been 'pinned' to the toolbar by the controlling administrator (sentence case).">
             <ph name="EXTENSION_NAME">$1<ex>Gmail Checker</ex></ph> is pinned by your Administrator
           </message>
+          <message name="IDS_EXTENSIONS_SUBMENU_OPEN_SIDE_PANEL_ITEM" desc="The text for the link in the extensions menu to open the side panel corresponding to the extension (title case).">
+            Open Side Panel
+          </message>
+          <message name="IDS_EXTENSIONS_SUBMENU_CLOSE_SIDE_PANEL_ITEM" desc="The text for the link in the extensions menu to close the side panel corresponding to the extension (title case).">
+            Close Side Panel
+          </message>
           <message name="IDS_MANAGE_EXTENSION" desc="The text for the button in the extension's context menu used to open the chrome://extensions/?id=xxx page and manage a specific extension (title case).">
             Manage Extension
           </message>
diff --git a/chrome/app/generated_resources_grd/IDS_EXTENSIONS_SUBMENU_CLOSE_SIDE_PANEL_ITEM.png.sha1 b/chrome/app/generated_resources_grd/IDS_EXTENSIONS_SUBMENU_CLOSE_SIDE_PANEL_ITEM.png.sha1
new file mode 100644
index 0000000..5113fd3
--- /dev/null
+++ b/chrome/app/generated_resources_grd/IDS_EXTENSIONS_SUBMENU_CLOSE_SIDE_PANEL_ITEM.png.sha1
@@ -0,0 +1 @@
+e9549d0ce05597a36763b7cf220943f0eda3fe04
\ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_EXTENSIONS_SUBMENU_OPEN_SIDE_PANEL_ITEM.png.sha1 b/chrome/app/generated_resources_grd/IDS_EXTENSIONS_SUBMENU_OPEN_SIDE_PANEL_ITEM.png.sha1
new file mode 100644
index 0000000..974b401
--- /dev/null
+++ b/chrome/app/generated_resources_grd/IDS_EXTENSIONS_SUBMENU_OPEN_SIDE_PANEL_ITEM.png.sha1
@@ -0,0 +1 @@
+080b7f55c6db5e5661c36ef99d171f50c40cce31
\ No newline at end of file
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index c7d307d..71c467a 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -4199,6 +4199,12 @@
       "performance_manager/policies/high_efficiency_mode_policy.h",
       "performance_manager/policies/page_discarding_helper.cc",
       "performance_manager/policies/page_discarding_helper.h",
+      "performance_manager/policies/probabilistic_memory_saver_policy.cc",
+      "performance_manager/policies/probabilistic_memory_saver_policy.h",
+      "performance_manager/policies/probabilistic_memory_saver_sampler.cc",
+      "performance_manager/policies/probabilistic_memory_saver_sampler.h",
+      "performance_manager/policies/revisit_count_revisit_estimator.cc",
+      "performance_manager/policies/revisit_count_revisit_estimator.h",
       "performance_manager/policies/urgent_page_discarding_policy.cc",
       "performance_manager/policies/urgent_page_discarding_policy.h",
       "performance_manager/public/user_tuning/battery_saver_mode_manager.h",
@@ -8011,6 +8017,8 @@
       "compose/compose_session.h",
       "compose/compose_text_usage_logger.cc",
       "compose/compose_text_usage_logger.h",
+      "compose/inner_text_extractor.cc",
+      "compose/inner_text_extractor.h",
       "compose/translate_language_provider.cc",
       "compose/translate_language_provider.h",
     ]
@@ -8605,8 +8613,6 @@
     sources = [
       "signin/token_revoker_test_utils.cc",
       "signin/token_revoker_test_utils.h",
-      "ui/webui/test_data_source.cc",
-      "ui/webui/test_data_source.h",
       "ui/webui/web_ui_test_handler.cc",
       "ui/webui/web_ui_test_handler.h",
     ]
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index ccdba6f..aec921a5 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -1050,16 +1050,6 @@
     {"Hibernate after 24 hours", &kHibernate24, 1, nullptr},
 };
 
-const FeatureEntry::FeatureParam kAutomaticallyGroup = {
-    ash::features::kAutomaticallyLockGroup.name, "true"};
-const FeatureEntry::FeatureParam kManuallyGroup = {
-    ash::features::kAutomaticallyLockGroup.name, "false"};
-
-const FeatureEntry::FeatureVariation kSnapGroupsVariations[] = {
-    {"automatically group", &kAutomaticallyGroup, 1, nullptr},
-    {"manually group", &kManuallyGroup, 1, nullptr},
-};
-
 const char kPreferDcheckInternalName[] = "prefer-dcheck";
 
 const char kLacrosAvailabilityIgnoreInternalName[] =
@@ -4346,9 +4336,7 @@
      FEATURE_VALUE_TYPE(ash::features::kFasterSplitScreenSetup)},
     {"ash-snap-groups", flag_descriptions::kSnapGroupsName,
      flag_descriptions::kSnapGroupsDescription, kOsCrOS,
-     FEATURE_WITH_PARAMS_VALUE_TYPE(ash::features::kSnapGroup,
-                                    kSnapGroupsVariations,
-                                    "SnapGroups")},
+     FEATURE_VALUE_TYPE(ash::features::kSnapGroup)},
     {"rounded-display", flag_descriptions::kRoundedDisplay,
      flag_descriptions::kRoundedDisplayDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(display::features::kRoundedDisplay)},
@@ -11261,6 +11249,14 @@
      FEATURE_VALUE_TYPE(
          autofill::features::kAutofillEnableSaveCardLoadingAndConfirmation)},
 
+    {"autofill-enable-vcn-enroll-loading-and-confirmation",
+     flag_descriptions::kAutofillEnableVcnEnrollLoadingAndConfirmationName,
+     flag_descriptions::
+         kAutofillEnableVcnEnrollLoadingAndConfirmationDescription,
+     kOsAll,
+     FEATURE_VALUE_TYPE(
+         autofill::features::kAutofillEnableVcnEnrollLoadingAndConfirmation)},
+
     // NOTE: Adding a new flag requires adding a corresponding entry to enum
     // "LoginCustomFlags" in tools/metrics/histograms/enums.xml. See "Flag
     // Histograms" in tools/metrics/histograms/README.md (run the
diff --git a/chrome/browser/apps/app_service/launch_utils.cc b/chrome/browser/apps/app_service/launch_utils.cc
index a523b4e..31700cd 100644
--- a/chrome/browser/apps/app_service/launch_utils.cc
+++ b/chrome/browser/apps/app_service/launch_utils.cc
@@ -11,7 +11,7 @@
 #include "base/command_line.h"
 #include "base/files/file_path.h"
 #include "base/notreached.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "build/build_config.h"
 #include "chrome/browser/apps/app_service/app_service_proxy.h"
 #include "chrome/browser/apps/app_service/file_utils.h"
diff --git a/chrome/browser/apps/app_service/metrics/app_platform_metrics.cc b/chrome/browser/apps/app_service/metrics/app_platform_metrics.cc
index d3cb38a3..6ea3a2c 100644
--- a/chrome/browser/apps/app_service/metrics/app_platform_metrics.cc
+++ b/chrome/browser/apps/app_service/metrics/app_platform_metrics.cc
@@ -12,7 +12,7 @@
 #include "base/json/values_util.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/strings/string_number_conversions.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/time/time.h"
 #include "base/unguessable_token.h"
 #include "chrome/browser/apps/app_service/app_service_proxy.h"
diff --git a/chrome/browser/apps/app_service/metrics/app_platform_metrics.h b/chrome/browser/apps/app_service/metrics/app_platform_metrics.h
index 9f2844e..8a9d0520 100644
--- a/chrome/browser/apps/app_service/metrics/app_platform_metrics.h
+++ b/chrome/browser/apps/app_service/metrics/app_platform_metrics.h
@@ -14,7 +14,7 @@
 #include "base/observer_list.h"
 #include "base/observer_list_types.h"
 #include "base/scoped_observation.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/time/time.h"
 #include "base/unguessable_token.h"
 #include "base/values.h"
diff --git a/chrome/browser/apps/app_service/policy_util.h b/chrome/browser/apps/app_service/policy_util.h
index fc783e8..f7ea6de 100644
--- a/chrome/browser/apps/app_service/policy_util.h
+++ b/chrome/browser/apps/app_service/policy_util.h
@@ -21,7 +21,7 @@
 #include <vector>
 
 #include "base/containers/flat_map.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "build/chromeos_buildflags.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 
diff --git a/chrome/browser/apps/app_service/publishers/extension_apps_chromeos_browsertest.cc b/chrome/browser/apps/app_service/publishers/extension_apps_chromeos_browsertest.cc
index 10b75a0..9302075 100644
--- a/chrome/browser/apps/app_service/publishers/extension_apps_chromeos_browsertest.cc
+++ b/chrome/browser/apps/app_service/publishers/extension_apps_chromeos_browsertest.cc
@@ -8,7 +8,7 @@
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
 #include "base/memory/scoped_refptr.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/stringprintf.h"
 #include "base/threading/thread_restrictions.h"
 #include "chrome/browser/apps/app_service/app_service_proxy.h"
diff --git a/chrome/browser/apps/platform_apps/api/media_galleries/media_galleries_api.cc b/chrome/browser/apps/platform_apps/api/media_galleries/media_galleries_api.cc
index 388fc01..677b5df 100644
--- a/chrome/browser/apps/platform_apps/api/media_galleries/media_galleries_api.cc
+++ b/chrome/browser/apps/platform_apps/api/media_galleries/media_galleries_api.cc
@@ -640,8 +640,8 @@
   if (args().size() < 2)
     return RespondNow(Error("options parameter not specified."));
 
-  std::unique_ptr<MediaGalleries::MediaMetadataOptions> options =
-      MediaGalleries::MediaMetadataOptions::FromValueDeprecated(args()[1]);
+  absl::optional<MediaGalleries::MediaMetadataOptions> options =
+      MediaGalleries::MediaMetadataOptions::FromValue(args()[1]);
   if (!options)
     return RespondNow(Error("Invalid value for options parameter."));
 
diff --git a/chrome/browser/ash/BUILD.gn b/chrome/browser/ash/BUILD.gn
index ff7e0ec..cc38c71 100644
--- a/chrome/browser/ash/BUILD.gn
+++ b/chrome/browser/ash/BUILD.gn
@@ -2683,6 +2683,8 @@
     "policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer.h",
     "policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_reported_local_id_manager.cc",
     "policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_reported_local_id_manager.h",
+    "policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_settings_for_test.cc",
+    "policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_settings_for_test.h",
     "policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_uploaded_crash_info_manager.cc",
     "policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_uploaded_crash_info_manager.h",
     "policy/reporting/metrics_reporting/metric_reporting_manager.cc",
diff --git a/chrome/browser/ash/app_list/search/arc/recommend_apps_fetcher_impl.h b/chrome/browser/ash/app_list/search/arc/recommend_apps_fetcher_impl.h
index 389a4421..a84d74d 100644
--- a/chrome/browser/ash/app_list/search/arc/recommend_apps_fetcher_impl.h
+++ b/chrome/browser/ash/app_list/search/arc/recommend_apps_fetcher_impl.h
@@ -7,7 +7,7 @@
 
 #include "base/memory/raw_ptr.h"
 #include "base/memory/weak_ptr.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/time/time.h"
 #include "base/timer/timer.h"
 #include "chrome/browser/ash/app_list/search/arc/recommend_apps_fetcher.h"
diff --git a/chrome/browser/ash/app_list/search/keyboard_shortcut_result.cc b/chrome/browser/ash/app_list/search/keyboard_shortcut_result.cc
index d7bdf0a1..a40d343 100644
--- a/chrome/browser/ash/app_list/search/keyboard_shortcut_result.cc
+++ b/chrome/browser/ash/app_list/search/keyboard_shortcut_result.cc
@@ -23,7 +23,7 @@
 #include "base/i18n/rtl.h"
 #include "base/strings/strcat.h"
 #include "base/strings/string_number_conversions.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
diff --git a/chrome/browser/ash/arc/policy/arc_policy_handler.cc b/chrome/browser/ash/arc/policy/arc_policy_handler.cc
index db5ac73..8e5c4d6 100644
--- a/chrome/browser/ash/arc/policy/arc_policy_handler.cc
+++ b/chrome/browser/ash/arc/policy/arc_policy_handler.cc
@@ -9,7 +9,7 @@
 
 #include "base/check.h"
 #include "base/json/json_reader.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/values.h"
diff --git a/chrome/browser/ash/arc/policy/managed_configuration_variables.cc b/chrome/browser/ash/arc/policy/managed_configuration_variables.cc
index 7d8642d..f7be7597d 100644
--- a/chrome/browser/ash/arc/policy/managed_configuration_variables.cc
+++ b/chrome/browser/ash/arc/policy/managed_configuration_variables.cc
@@ -12,7 +12,7 @@
 #include "base/containers/flat_map.h"
 #include "base/functional/bind.h"
 #include "base/functional/callback_forward.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
 #include "base/strings/stringprintf.h"
diff --git a/chrome/browser/ash/arc/policy/managed_configuration_variables_unittest.cc b/chrome/browser/ash/arc/policy/managed_configuration_variables_unittest.cc
index d7692f6..71db040 100644
--- a/chrome/browser/ash/arc/policy/managed_configuration_variables_unittest.cc
+++ b/chrome/browser/ash/arc/policy/managed_configuration_variables_unittest.cc
@@ -9,7 +9,7 @@
 #include <utility>
 
 #include "base/memory/raw_ptr.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/string_split.h"
 #include "base/strings/stringprintf.h"
 #include "base/values.h"
diff --git a/chrome/browser/ash/arc/tracing/arc_tracing_model.cc b/chrome/browser/ash/arc/tracing/arc_tracing_model.cc
index 4a656f3..39aaf09 100644
--- a/chrome/browser/ash/arc/tracing/arc_tracing_model.cc
+++ b/chrome/browser/ash/arc/tracing/arc_tracing_model.cc
@@ -4,7 +4,7 @@
 
 #include <inttypes.h>
 
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "chrome/browser/ash/arc/tracing/arc_tracing_model.h"
 
 #include "base/json/json_reader.h"
diff --git a/chrome/browser/ash/crosapi/browser_action.h b/chrome/browser/ash/crosapi/browser_action.h
index 5d672139..e93dfb0 100644
--- a/chrome/browser/ash/crosapi/browser_action.h
+++ b/chrome/browser/ash/crosapi/browser_action.h
@@ -6,7 +6,7 @@
 #define CHROME_BROWSER_ASH_CROSAPI_BROWSER_ACTION_H_
 
 #include "base/containers/queue.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "chrome/browser/ui/browser_navigator_params.h"
 #include "chromeos/crosapi/mojom/crosapi.mojom.h"
 #include "components/tab_groups/tab_group_info.h"
diff --git a/chrome/browser/ash/extensions/autotest_private/autotest_private_api.cc b/chrome/browser/ash/extensions/autotest_private/autotest_private_api.cc
index 5cbc78a..495695d 100644
--- a/chrome/browser/ash/extensions/autotest_private/autotest_private_api.cc
+++ b/chrome/browser/ash/extensions/autotest_private/autotest_private_api.cc
@@ -70,7 +70,7 @@
 #include "base/scoped_observation.h"
 #include "base/strings/strcat.h"
 #include "base/strings/string_number_conversions.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/stringprintf.h"
 #include "base/system/sys_info.h"
 #include "base/task/bind_post_task.h"
diff --git a/chrome/browser/ash/extensions/file_manager/file_stream_md5_digester.cc b/chrome/browser/ash/extensions/file_manager/file_stream_md5_digester.cc
index 647a8813..dbb1c3b 100644
--- a/chrome/browser/ash/extensions/file_manager/file_stream_md5_digester.cc
+++ b/chrome/browser/ash/extensions/file_manager/file_stream_md5_digester.cc
@@ -21,7 +21,8 @@
 }  // namespace
 
 FileStreamMd5Digester::FileStreamMd5Digester()
-    : buffer_(base::MakeRefCounted<net::IOBuffer>(kMd5DigestBufferSize)) {}
+    : buffer_(
+          base::MakeRefCounted<net::IOBufferWithSize>(kMd5DigestBufferSize)) {}
 
 FileStreamMd5Digester::~FileStreamMd5Digester() = default;
 
diff --git a/chrome/browser/ash/file_system_provider/fileapi/buffering_file_stream_reader.cc b/chrome/browser/ash/file_system_provider/fileapi/buffering_file_stream_reader.cc
index 974148f..0c417814 100644
--- a/chrome/browser/ash/file_system_provider/fileapi/buffering_file_stream_reader.cc
+++ b/chrome/browser/ash/file_system_provider/fileapi/buffering_file_stream_reader.cc
@@ -23,8 +23,8 @@
       preloading_buffer_length_(preloading_buffer_length),
       max_bytes_to_read_(max_bytes_to_read),
       bytes_read_(0),
-      preloading_buffer_(
-          base::MakeRefCounted<net::IOBuffer>(preloading_buffer_length)),
+      preloading_buffer_(base::MakeRefCounted<net::IOBufferWithSize>(
+          preloading_buffer_length)),
       preloading_buffer_offset_(0),
       preloaded_bytes_(0) {}
 
diff --git a/chrome/browser/ash/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc b/chrome/browser/ash/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc
index 58ce57e..9b458ba 100644
--- a/chrome/browser/ash/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc
@@ -105,8 +105,7 @@
   // For the first read, the internal file stream reader is fired, as there is
   // no data in the preloading buffer.
   {
-    scoped_refptr<net::IOBuffer> buffer =
-        base::MakeRefCounted<net::IOBuffer>(kChunkSize);
+    auto buffer = base::MakeRefCounted<net::IOBufferWithSize>(kChunkSize);
     std::vector<int> read_log;
     const int result = reader.Read(buffer.get(), kChunkSize,
                                    base::BindOnce(&LogValue<int>, &read_log));
@@ -123,8 +122,7 @@
   // the internal file stream reader.
   {
     inner_read_log.clear();
-    scoped_refptr<net::IOBuffer> buffer =
-        base::MakeRefCounted<net::IOBuffer>(kChunkSize);
+    auto buffer = base::MakeRefCounted<net::IOBufferWithSize>(kChunkSize);
     std::vector<int> read_log;
     const int result = reader.Read(buffer.get(), kChunkSize,
                                    base::BindOnce(&LogValue<int>, &read_log));
@@ -140,8 +138,7 @@
   // valid to return less bytes than requested.
   {
     inner_read_log.clear();
-    scoped_refptr<net::IOBuffer> buffer =
-        base::MakeRefCounted<net::IOBuffer>(kChunkSize);
+    auto buffer = base::MakeRefCounted<net::IOBufferWithSize>(kChunkSize);
     std::vector<int> read_log;
     const int result = reader.Read(buffer.get(), kChunkSize,
                                    base::BindOnce(&LogValue<int>, &read_log));
@@ -157,8 +154,7 @@
   // file stream reader.
   {
     inner_read_log.clear();
-    scoped_refptr<net::IOBuffer> buffer =
-        base::MakeRefCounted<net::IOBuffer>(kChunkSize);
+    auto buffer = base::MakeRefCounted<net::IOBufferWithSize>(kChunkSize);
     std::vector<int> read_log;
     const int result = reader.Read(buffer.get(), kChunkSize,
                                    base::BindOnce(&LogValue<int>, &read_log));
@@ -181,8 +177,7 @@
 
   // First read couple of bytes, so the internal buffer is filled out.
   {
-    scoped_refptr<net::IOBuffer> buffer =
-        base::MakeRefCounted<net::IOBuffer>(kChunkSize);
+    auto buffer = base::MakeRefCounted<net::IOBufferWithSize>(kChunkSize);
     std::vector<int> read_log;
     const int result = reader.Read(buffer.get(), kChunkSize,
                                    base::BindOnce(&LogValue<int>, &read_log));
@@ -202,8 +197,7 @@
   // as much as available in the internal buffer.
   {
     inner_read_log.clear();
-    scoped_refptr<net::IOBuffer> buffer =
-        base::MakeRefCounted<net::IOBuffer>(read_bytes);
+    auto buffer = base::MakeRefCounted<net::IOBufferWithSize>(read_bytes);
     std::vector<int> read_log;
     const int result = reader.Read(buffer.get(), read_bytes,
                                    base::BindOnce(&LogValue<int>, &read_log));
@@ -219,8 +213,7 @@
   // the internal buffer.
   {
     inner_read_log.clear();
-    scoped_refptr<net::IOBuffer> buffer =
-        base::MakeRefCounted<net::IOBuffer>(read_bytes);
+    auto buffer = base::MakeRefCounted<net::IOBufferWithSize>(read_bytes);
     std::vector<int> read_log;
     const int result = reader.Read(buffer.get(), read_bytes,
                                    base::BindOnce(&LogValue<int>, &read_log));
@@ -243,8 +236,7 @@
       kPreloadingBufferLength, kFileSize);
   // First read couple of bytes, so the internal buffer is filled out.
   {
-    scoped_refptr<net::IOBuffer> buffer =
-        base::MakeRefCounted<net::IOBuffer>(kChunkSize);
+    auto buffer = base::MakeRefCounted<net::IOBufferWithSize>(kChunkSize);
     std::vector<int> read_log;
     const int result = reader.Read(buffer.get(), kChunkSize,
                                    base::BindOnce(&LogValue<int>, &read_log));
@@ -263,8 +255,7 @@
     inner_read_log.clear();
     const int chunk_size = 20;
     ASSERT_LT(kPreloadingBufferLength, chunk_size);
-    scoped_refptr<net::IOBuffer> buffer =
-        base::MakeRefCounted<net::IOBuffer>(chunk_size);
+    auto buffer = base::MakeRefCounted<net::IOBufferWithSize>(chunk_size);
     std::vector<int> read_log;
     const int result = reader.Read(buffer.get(), chunk_size,
                                    base::BindOnce(&LogValue<int>, &read_log));
@@ -292,8 +283,7 @@
   ASSERT_LT(read_bytes, kPreloadingBufferLength);
   ASSERT_LE(read_bytes, total_bytes_to_read);
 
-  scoped_refptr<net::IOBuffer> buffer =
-      base::MakeRefCounted<net::IOBuffer>(read_bytes);
+  auto buffer = base::MakeRefCounted<net::IOBufferWithSize>(read_bytes);
   std::vector<int> read_log;
   const int result = reader.Read(buffer.get(), read_bytes,
                                  base::BindOnce(&LogValue<int>, &read_log));
@@ -319,8 +309,7 @@
   const int read_bytes = 2;
   ASSERT_LT(read_bytes, kPreloadingBufferLength);
 
-  scoped_refptr<net::IOBuffer> buffer =
-      base::MakeRefCounted<net::IOBuffer>(read_bytes);
+  auto buffer = base::MakeRefCounted<net::IOBufferWithSize>(read_bytes);
   std::vector<int> read_log;
   const int result = reader.Read(buffer.get(), read_bytes,
                                  base::BindOnce(&LogValue<int>, &read_log));
@@ -340,8 +329,7 @@
           new FakeFileStreamReader(&inner_read_log, net::ERR_ACCESS_DENIED)),
       kPreloadingBufferLength, kFileSize);
 
-  scoped_refptr<net::IOBuffer> buffer =
-      base::MakeRefCounted<net::IOBuffer>(kChunkSize);
+  auto buffer = base::MakeRefCounted<net::IOBufferWithSize>(kChunkSize);
   std::vector<int> read_log;
   const int result = reader.Read(buffer.get(), kChunkSize,
                                  base::BindOnce(&LogValue<int>, &read_log));
diff --git a/chrome/browser/ash/file_system_provider/fileapi/buffering_file_stream_writer.cc b/chrome/browser/ash/file_system_provider/fileapi/buffering_file_stream_writer.cc
index cfd185b9..59baae0 100644
--- a/chrome/browser/ash/file_system_provider/fileapi/buffering_file_stream_writer.cc
+++ b/chrome/browser/ash/file_system_provider/fileapi/buffering_file_stream_writer.cc
@@ -19,8 +19,8 @@
     int intermediate_buffer_length)
     : file_stream_writer_(std::move(file_stream_writer)),
       intermediate_buffer_length_(intermediate_buffer_length),
-      intermediate_buffer_(
-          base::MakeRefCounted<net::IOBuffer>(intermediate_buffer_length_)),
+      intermediate_buffer_(base::MakeRefCounted<net::IOBufferWithSize>(
+          intermediate_buffer_length_)),
       buffered_bytes_(0) {}
 
 BufferingFileStreamWriter::~BufferingFileStreamWriter() {
diff --git a/chrome/browser/ash/file_system_provider/fileapi/file_stream_reader_unittest.cc b/chrome/browser/ash/file_system_provider/fileapi/file_stream_reader_unittest.cc
index 3159d73a..9c3ced42 100644
--- a/chrome/browser/ash/file_system_provider/fileapi/file_stream_reader_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/fileapi/file_stream_reader_unittest.cc
@@ -139,7 +139,7 @@
   const int64_t initial_offset = 0;
   FileStreamReader reader(nullptr, file_url_, initial_offset,
                           *fake_file_->metadata->modification_time);
-  scoped_refptr<net::IOBuffer> io_buffer = base::MakeRefCounted<net::IOBuffer>(
+  auto io_buffer = base::MakeRefCounted<net::IOBufferWithSize>(
       base::checked_cast<size_t>(*fake_file_->metadata->size));
 
   const int result =
@@ -162,7 +162,7 @@
   const int64_t initial_offset = 0;
   FileStreamReader reader(nullptr, wrong_file_url_, initial_offset,
                           *fake_file_->metadata->modification_time);
-  scoped_refptr<net::IOBuffer> io_buffer = base::MakeRefCounted<net::IOBuffer>(
+  auto io_buffer = base::MakeRefCounted<net::IOBufferWithSize>(
       base::checked_cast<size_t>(*fake_file_->metadata->size));
 
   const int result =
@@ -183,8 +183,7 @@
                           *fake_file_->metadata->modification_time);
 
   for (int64_t offset = 0; offset < *fake_file_->metadata->size; ++offset) {
-    scoped_refptr<net::IOBuffer> io_buffer =
-        base::MakeRefCounted<net::IOBuffer>(1);
+    auto io_buffer = base::MakeRefCounted<net::IOBufferWithSize>(1);
     const int result =
         reader.Read(io_buffer.get(), 1,
                     base::BindOnce(&EventLogger::OnRead, logger.GetWeakPtr()));
@@ -207,8 +206,7 @@
 
   FileStreamReader reader(nullptr, file_url_, initial_offset,
                           *fake_file_->metadata->modification_time);
-  scoped_refptr<net::IOBuffer> io_buffer =
-      base::MakeRefCounted<net::IOBuffer>(length);
+  auto io_buffer = base::MakeRefCounted<net::IOBufferWithSize>(length);
 
   const int result =
       reader.Read(io_buffer.get(), length,
@@ -234,8 +232,7 @@
 
   FileStreamReader reader(nullptr, file_url_, initial_offset,
                           *fake_file_->metadata->modification_time);
-  scoped_refptr<net::IOBuffer> io_buffer =
-      base::MakeRefCounted<net::IOBuffer>(length);
+  auto io_buffer = base::MakeRefCounted<net::IOBufferWithSize>(length);
 
   const int result =
       reader.Read(io_buffer.get(), length,
@@ -258,7 +255,7 @@
   FileStreamReader reader(nullptr, file_url_, initial_offset,
                           base::Time::Max());
 
-  scoped_refptr<net::IOBuffer> io_buffer = base::MakeRefCounted<net::IOBuffer>(
+  auto io_buffer = base::MakeRefCounted<net::IOBufferWithSize>(
       base::checked_cast<size_t>(*fake_file_->metadata->size));
   const int result =
       reader.Read(io_buffer.get(), *fake_file_->metadata->size,
@@ -277,7 +274,7 @@
   const int64_t initial_offset = 0;
   FileStreamReader reader(nullptr, file_url_, initial_offset, base::Time());
 
-  scoped_refptr<net::IOBuffer> io_buffer = base::MakeRefCounted<net::IOBuffer>(
+  auto io_buffer = base::MakeRefCounted<net::IOBufferWithSize>(
       base::checked_cast<size_t>(*fake_file_->metadata->size));
   const int result =
       reader.Read(io_buffer.get(), *fake_file_->metadata->size,
diff --git a/chrome/browser/ash/file_system_provider/operations/read_file_unittest.cc b/chrome/browser/ash/file_system_provider/operations/read_file_unittest.cc
index d0d50301..10ef428 100644
--- a/chrome/browser/ash/file_system_provider/operations/read_file_unittest.cc
+++ b/chrome/browser/ash/file_system_provider/operations/read_file_unittest.cc
@@ -89,7 +89,7 @@
         kExtensionId, MountOptions(kFileSystemId, "" /* display_name */),
         base::FilePath(), false /* configurable */, true /* watchable */,
         extensions::SOURCE_FILE, IconSet());
-    io_buffer_ = base::MakeRefCounted<net::IOBuffer>(kOffset + kLength);
+    io_buffer_ = base::MakeRefCounted<net::IOBufferWithSize>(kOffset + kLength);
   }
 
   ProvidedFileSystemInfo file_system_info_;
diff --git a/chrome/browser/ash/fileapi/fallback_copy_in_foreign_file.cc b/chrome/browser/ash/fileapi/fallback_copy_in_foreign_file.cc
index 8fb7aac..151dcc0 100644
--- a/chrome/browser/ash/fileapi/fallback_copy_in_foreign_file.cc
+++ b/chrome/browser/ash/fileapi/fallback_copy_in_foreign_file.cc
@@ -157,7 +157,7 @@
       dest_url_(dest_url),
       temp_url_(CreateTempURL(dest_url)),
       temp_url_needs_deleting_(false),
-      io_buffer_(base::MakeRefCounted<net::IOBuffer>(kBufferSize)),
+      io_buffer_(base::MakeRefCounted<net::IOBufferWithSize>(kBufferSize)),
       fs_writer_(nullptr),
       file_(base::File::FILE_ERROR_FAILED) {}
 
diff --git a/chrome/browser/ash/fusebox/fusebox_copy_to_fd.cc b/chrome/browser/ash/fusebox/fusebox_copy_to_fd.cc
index 8779898..4fac73d9 100644
--- a/chrome/browser/ash/fusebox/fusebox_copy_to_fd.cc
+++ b/chrome/browser/ash/fusebox/fusebox_copy_to_fd.cc
@@ -66,7 +66,7 @@
                                                     0,
                                                     INT64_MAX,
                                                     base::Time())),
-      buffer_(base::MakeRefCounted<net::IOBuffer>(kBufferLen)),
+      buffer_(base::MakeRefCounted<net::IOBufferWithSize>(kBufferLen)),
       scoped_fd_(std::move(scoped_fd)),
       callback_(std::move(callback)) {}
 
diff --git a/chrome/browser/ash/fusebox/fusebox_read_writer.cc b/chrome/browser/ash/fusebox/fusebox_read_writer.cc
index 367d54f..220a1b79 100644
--- a/chrome/browser/ash/fusebox/fusebox_read_writer.cc
+++ b/chrome/browser/ash/fusebox/fusebox_read_writer.cc
@@ -296,7 +296,7 @@
 
   constexpr int64_t min_length = 256;
   constexpr int64_t max_length = 262144;  // 256 KiB.
-  scoped_refptr<net::IOBuffer> buffer = base::MakeRefCounted<net::IOBuffer>(
+  auto buffer = base::MakeRefCounted<net::IOBufferWithSize>(
       std::max(min_length, std::min(max_length, length)));
 
   // Save the pointer before we std::move fs_reader into a base::OnceCallback.
diff --git a/chrome/browser/ash/guest_os/guest_os_shelf_utils.h b/chrome/browser/ash/guest_os/guest_os_shelf_utils.h
index b9a3bf5b..7c575b45 100644
--- a/chrome/browser/ash/guest_os/guest_os_shelf_utils.h
+++ b/chrome/browser/ash/guest_os/guest_os_shelf_utils.h
@@ -6,7 +6,7 @@
 #define CHROME_BROWSER_ASH_GUEST_OS_GUEST_OS_SHELF_UTILS_H_
 
 #include <string>
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "components/services/app_service/public/cpp/app_types.h"
 
 class Profile;
diff --git a/chrome/browser/ash/input_method/component_extension_ime_manager_delegate_impl.cc b/chrome/browser/ash/input_method/component_extension_ime_manager_delegate_impl.cc
index 26eceb3d..200ab5da 100644
--- a/chrome/browser/ash/input_method/component_extension_ime_manager_delegate_impl.cc
+++ b/chrome/browser/ash/input_method/component_extension_ime_manager_delegate_impl.cc
@@ -16,7 +16,6 @@
 #include "base/path_service.h"
 #include "base/strings/strcat.h"
 #include "base/strings/string_piece.h"
-#include "base/strings/string_piece_forward.h"
 #include "base/strings/string_util.h"
 #include "base/system/sys_info.h"
 #include "base/task/thread_pool.h"
diff --git a/chrome/browser/ash/input_method/input_method_engine_browsertests.cc b/chrome/browser/ash/input_method/input_method_engine_browsertests.cc
index 5663e36..7162c4f4 100644
--- a/chrome/browser/ash/input_method/input_method_engine_browsertests.cc
+++ b/chrome/browser/ash/input_method/input_method_engine_browsertests.cc
@@ -10,7 +10,7 @@
 #include "base/functional/callback_helpers.h"
 #include "base/memory/raw_ptr.h"
 #include "base/run_loop.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
 #include "chrome/browser/ash/input_method/assistive_window_controller.h"
diff --git a/chrome/browser/ash/login/hwid_checker.h b/chrome/browser/ash/login/hwid_checker.h
index 25e38c2..0f1ec0fc 100644
--- a/chrome/browser/ash/login/hwid_checker.h
+++ b/chrome/browser/ash/login/hwid_checker.h
@@ -5,7 +5,7 @@
 #ifndef CHROME_BROWSER_ASH_LOGIN_HWID_CHECKER_H_
 #define CHROME_BROWSER_ASH_LOGIN_HWID_CHECKER_H_
 
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 
 namespace ash {
 
diff --git a/chrome/browser/ash/login/oobe_quick_start/second_device_auth_broker.cc b/chrome/browser/ash/login/oobe_quick_start/second_device_auth_broker.cc
index f2ac473a..dbd4440 100644
--- a/chrome/browser/ash/login/oobe_quick_start/second_device_auth_broker.cc
+++ b/chrome/browser/ash/login/oobe_quick_start/second_device_auth_broker.cc
@@ -15,7 +15,7 @@
 #include "base/functional/callback_forward.h"
 #include "base/json/json_writer.h"
 #include "base/logging.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/string_util.h"
 #include "base/strings/stringprintf.h"
 #include "base/types/expected.h"
diff --git a/chrome/browser/ash/login/quickstart_controller.cc b/chrome/browser/ash/login/quickstart_controller.cc
index 040d5b2..2408a52 100644
--- a/chrome/browser/ash/login/quickstart_controller.cc
+++ b/chrome/browser/ash/login/quickstart_controller.cc
@@ -182,13 +182,7 @@
       return;
     case Step::CONNECTED:
       controller_state_ = ControllerState::CONNECTED;
-      if (IsConnectedToWiFi()) {
-        // This will cause the QuickStartScreen to exit and the NetworkScreen
-        // will be shown next.
-        UpdateUiState(UiState::WIFI_CREDENTIALS_RECEIVED);
-      } else {
-        bootstrap_controller_->AttemptWifiCredentialTransfer();
-      }
+      OnPhoneConnectionEstablished();
       return;
     case Step::REQUESTING_WIFI_CREDENTIALS:
       UpdateUiState(UiState::CONNECTING_TO_WIFI);
@@ -210,14 +204,12 @@
       return;
     case Step::TRANSFERRING_GOOGLE_ACCOUNT_DETAILS:
       // Intermediate state. Nothing to do.
-      CHECK(controller_state_ ==
-            ControllerState::CONTINUING_AFTER_ENROLLMENT_CHECKS);
+      CHECK(controller_state_ == ControllerState::CONNECTED);
       // TODO(b/298042953): Record Gaia Transfer screen shown once UI is
       // implemented.
       return;
     case Step::TRANSFERRED_GOOGLE_ACCOUNT_DETAILS:
-      CHECK(controller_state_ ==
-            ControllerState::CONTINUING_AFTER_ENROLLMENT_CHECKS);
+      CHECK(controller_state_ == ControllerState::CONNECTED);
       if (absl::holds_alternative<FidoAssertionInfo>(status.payload)) {
         QS_LOG(INFO) << "Successfully received FIDO assertion.";
         fido_ = absl::get<FidoAssertionInfo>(status.payload);
@@ -303,12 +295,35 @@
     CHECK(LoginDisplayHost::default_host()
               ->GetWizardContext()
               ->quick_start_setup_ongoing);
-    controller_state_ = ControllerState::CONTINUING_AFTER_ENROLLMENT_CHECKS;
+
     // OOBE flow cannot go back after enrollment checks, update exit point.
     exit_point_ = QuickStartController::EntryPoint::GAIA_SCREEN;
 
-    bootstrap_controller_->RequestGoogleAccountInfo();
-    UpdateUiState(UiState::TRANSFERRING_GAIA_CREDENTIALS);
+    StartAccountTransfer();
+  }
+}
+
+void QuickStartController::StartAccountTransfer() {
+  UpdateUiState(UiState::TRANSFERRING_GAIA_CREDENTIALS);
+  bootstrap_controller_->RequestGoogleAccountInfo();
+}
+
+void QuickStartController::OnPhoneConnectionEstablished() {
+  // If cancelling the flow would end on the welcome or network screen,
+  // we are still early in the OOBE flow. Transfer WiFi creds if not already
+  // connected.
+  if (exit_point_ == EntryPoint::WELCOME_SCREEN ||
+      exit_point_ == EntryPoint::NETWORK_SCREEN) {
+    if (IsConnectedToWiFi()) {
+      // This will cause the QuickStartScreen to exit and the NetworkScreen
+      // will be shown next.
+      UpdateUiState(UiState::WIFI_CREDENTIALS_RECEIVED);
+    } else {
+      bootstrap_controller_->AttemptWifiCredentialTransfer();
+    }
+  } else {
+    // We are after the 'User Creation' screen. Transfer credentials.
+    StartAccountTransfer();
   }
 }
 
diff --git a/chrome/browser/ash/login/quickstart_controller.h b/chrome/browser/ash/login/quickstart_controller.h
index c5873b8..579d6a8 100644
--- a/chrome/browser/ash/login/quickstart_controller.h
+++ b/chrome/browser/ash/login/quickstart_controller.h
@@ -137,6 +137,14 @@
   // Invoked whenever OOBE transitions into the QuickStart screen.
   void HandleTransitionToQuickStartScreen();
 
+  // Starts transferring the user account from the phone.
+  void StartAccountTransfer();
+
+  // Steps to take when the connection with the phone is fully established.
+  // Either transfers WiFi credentials if early in the OOBE flow, or starts
+  // to transfer the user's credentials.
+  void OnPhoneConnectionEstablished();
+
   void SavePhoneInstanceID();
 
   // Resets all internal values. Invoked when the flow is interrupted.
diff --git a/chrome/browser/ash/login/screens/quick_start_screen_browsertest.cc b/chrome/browser/ash/login/screens/quick_start_screen_browsertest.cc
index 5d971d0..7e7234b 100644
--- a/chrome/browser/ash/login/screens/quick_start_screen_browsertest.cc
+++ b/chrome/browser/ash/login/screens/quick_start_screen_browsertest.cc
@@ -16,12 +16,14 @@
 #include "chrome/browser/ash/login/test/oobe_screen_waiter.h"
 #include "chrome/browser/ash/login/test/oobe_screens_utils.h"
 #include "chrome/browser/ash/login/wizard_controller.h"
+#include "chrome/browser/ui/webui/ash/login/gaia_screen_handler.h"
 #include "chrome/browser/ui/webui/ash/login/network_screen_handler.h"
 #include "chrome/browser/ui/webui/ash/login/quick_start_screen_handler.h"
 #include "chrome/browser/ui/webui/ash/login/update_screen_handler.h"
 #include "chrome/browser/ui/webui/ash/login/user_creation_screen_handler.h"
 #include "chrome/browser/ui/webui/ash/login/welcome_screen_handler.h"
 #include "chrome/grit/generated_resources.h"
+#include "chrome/test/base/fake_gaia_mixin.h"
 #include "chromeos/ash/components/network/network_state_test_helper.h"
 #include "chromeos/ash/components/quick_start/quick_start_metrics.h"
 #include "chromeos/ash/services/nearby/public/mojom/quick_start_decoder_types.mojom.h"
@@ -39,6 +41,7 @@
 constexpr char kLoadingDialog[] = "loadingDialog";
 constexpr char kCancelButton[] = "cancelButton";
 constexpr char kPinCodeWrapper[] = "pinWrapper";
+constexpr char kGaiaTransferDialog[] = "gaiaTransferDialog";
 constexpr char kScreenOpenedHistogram[] = "QuickStart.ScreenOpened";
 constexpr test::UIPath kQuickStartButtonPath = {
     WelcomeView::kScreenId.name, kWelcomeScreen, kQuickStartButton};
@@ -50,6 +53,12 @@
                                              kPinCodeWrapper};
 constexpr test::UIPath kQuickStartQrCodeCanvas = {
     QuickStartView::kScreenId.name, "qrCodeCanvas"};
+constexpr test::UIPath kGaiaTransferDialogPath = {
+    QuickStartView::kScreenId.name, kGaiaTransferDialog};
+constexpr test::UIPath kCancelButtonGaiaTransferDialog = {
+    QuickStartView::kScreenId.name, kGaiaTransferDialog, kCancelButton};
+constexpr test::UIPath kQuickStartButtonGaia = {
+    "gaia-signin", "signin-frame-dialog", "quick-start-signin-button"};
 
 std::string NetworkElementSelector(const std::string& network_name) {
   return test::GetOobeElementPath(
@@ -97,6 +106,16 @@
     OobeBaseTest::TearDownInProcessBrowserTestFixture();
   }
 
+  void SetupAndWaitForGaiaScreen() {
+    // We should be connected in order to test the entry point on the Gaia
+    // screen.
+    SetUpConnectedWifiNetwork();
+
+    WaitForSigninScreen();
+    WaitForGaiaPageLoad();
+    OobeScreenWaiter(GaiaScreenHandler::kScreenId).Wait();
+  }
+
   void EnterQuickStartFlowFromWelcomeScreen() {
     test::WaitForWelcomeScreen();
     test::OobeJS()
@@ -202,7 +221,11 @@
     return connection_broker_factory_.instances().front();
   }
 
-  void SetUpDisconnectedWifiNetwork() {
+  void SetUpDisconnectedWifiNetwork() { SetupNetwork(/*connected=*/false); }
+
+  void SetUpConnectedWifiNetwork() { SetupNetwork(/*connected=*/true); }
+
+  void SetupNetwork(bool connected = false) {
     network_helper_->device_test()->ClearDevices();
     network_helper_->service_test()->ClearServices();
 
@@ -210,7 +233,7 @@
         "/device/stub_wifi_device", shill::kTypeWifi, "stub_wifi_device");
     network_helper_->service_test()->AddService(
         "stub_wifi", "wifi_guid", kWifiNetworkName, shill::kTypeWifi,
-        shill::kStateIdle, true);
+        connected ? shill::kStateOnline : shill::kStateIdle, true);
     network_helper_->service_test()->SetServiceProperty(
         "stub_wifi", shill::kConnectableProperty, base::Value(false));
     network_helper_->service_test()->SetServiceProperty(
@@ -232,6 +255,7 @@
  private:
   std::unique_ptr<NetworkStateTestHelper> network_helper_;
   base::test::ScopedFeatureList feature_list_;
+  FakeGaiaMixin fake_gaia_{&mixin_host_};
 };
 
 class QuickStartNotDeterminedBrowserTest : public QuickStartBrowserTest {
@@ -478,4 +502,58 @@
   EnsureFlowNotActive();
 }
 
+// Test that the flow can be started on the Gaia screen and also cancelled.
+IN_PROC_BROWSER_TEST_F(QuickStartBrowserTest,
+                       GaiaEntryPoint_StartAndCancelFlow) {
+  SetupAndWaitForGaiaScreen();
+
+  test::OobeJS()
+      .CreateVisibilityWaiter(/*visibility=*/true, kQuickStartButtonGaia)
+      ->Wait();
+  test::OobeJS().ClickOnPath(kQuickStartButtonGaia);
+
+  OobeScreenWaiter(QuickStartView::kScreenId).Wait();
+  EnsureFlowActive();
+
+  // Cancel button must be present.
+  test::OobeJS()
+      .CreateVisibilityWaiter(/*visibility=*/true, kCancelButtonLoadingDialog)
+      ->Wait();
+  test::OobeJS().ClickOnPath(kCancelButtonLoadingDialog);
+
+  // Returns to the Gaia screen
+  OobeScreenWaiter(GaiaScreenHandler::kScreenId).Wait();
+}
+
+// Test that the flow can be started on the Gaia screen and also cancelled.
+IN_PROC_BROWSER_TEST_F(QuickStartBrowserTest,
+                       GaiaEntryPoint_TransfersGaiaCredentialsOnceConnected) {
+  SetupAndWaitForGaiaScreen();
+
+  test::OobeJS()
+      .CreateVisibilityWaiter(/*visibility=*/true, kQuickStartButtonGaia)
+      ->Wait();
+  test::OobeJS().ClickOnPath(kQuickStartButtonGaia);
+  OobeScreenWaiter(QuickStartView::kScreenId).Wait();
+  EnsureFlowActive();
+
+  SimulatePhoneConnection();
+  SimulateUserVerification();
+
+  // Gaia credential transfer step should become visible
+  test::OobeJS()
+      .CreateVisibilityWaiter(/*visibility=*/true, kGaiaTransferDialogPath)
+      ->Wait();
+
+  // Cancel and return to the Gaia screen.
+  test::OobeJS()
+      .CreateVisibilityWaiter(/*visibility=*/true,
+                              kCancelButtonGaiaTransferDialog)
+      ->Wait();
+  test::OobeJS().ClickOnPath(kCancelButtonGaiaTransferDialog);
+
+  // Returns to the Gaia screen
+  OobeScreenWaiter(GaiaScreenHandler::kScreenId).Wait();
+}
+
 }  // namespace ash
diff --git a/chrome/browser/ash/login/wizard_controller.cc b/chrome/browser/ash/login/wizard_controller.cc
index ba9570e9..ba806bc8 100644
--- a/chrome/browser/ash/login/wizard_controller.cc
+++ b/chrome/browser/ash/login/wizard_controller.cc
@@ -2759,6 +2759,8 @@
     ShowConsumerUpdateScreen();
   } else if (screen_id == PasswordSelectionScreenView::kScreenId) {
     ShowPasswordSelectionScreen();
+  } else if (screen_id == LocalPasswordSetupView::kScreenId) {
+    ShowLocalPasswordSetupScreen();
   } else if (screen_id == TpmErrorView::kScreenId ||
              screen_id == GaiaPasswordChangedView::kScreenId ||
              screen_id == FamilyLinkNoticeView::kScreenId ||
diff --git a/chrome/browser/ash/policy/dlp/dlp_files_controller_ash_browsertest.cc b/chrome/browser/ash/policy/dlp/dlp_files_controller_ash_browsertest.cc
index dcbb5584..288519d 100644
--- a/chrome/browser/ash/policy/dlp/dlp_files_controller_ash_browsertest.cc
+++ b/chrome/browser/ash/policy/dlp/dlp_files_controller_ash_browsertest.cc
@@ -7,7 +7,7 @@
 #include "base/files/file_path.h"
 #include "base/functional/callback_forward.h"
 #include "base/memory/raw_ptr.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/test/mock_callback.h"
 #include "chrome/browser/ash/file_manager/file_manager_test_util.h"
 #include "chrome/browser/ash/file_system_provider/fake_extension_provider.h"
diff --git a/chrome/browser/ash/policy/handlers/device_name_policy_handler_name_generator.h b/chrome/browser/ash/policy/handlers/device_name_policy_handler_name_generator.h
index 656fe78..bbbbb3a 100644
--- a/chrome/browser/ash/policy/handlers/device_name_policy_handler_name_generator.h
+++ b/chrome/browser/ash/policy/handlers/device_name_policy_handler_name_generator.h
@@ -7,7 +7,7 @@
 
 #include <string>
 
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 
 namespace policy {
 
diff --git a/chrome/browser/ash/policy/remote_commands/device_command_fetch_support_packet_job.cc b/chrome/browser/ash/policy/remote_commands/device_command_fetch_support_packet_job.cc
index 59d87b6f..6660e966 100644
--- a/chrome/browser/ash/policy/remote_commands/device_command_fetch_support_packet_job.cc
+++ b/chrome/browser/ash/policy/remote_commands/device_command_fetch_support_packet_job.cc
@@ -20,7 +20,7 @@
 #include "base/metrics/histogram_functions.h"
 #include "base/strings/strcat.h"
 #include "base/strings/string_number_conversions.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/string_util.h"
 #include "base/strings/stringprintf.h"
 #include "base/syslog_logging.h"
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer.cc b/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer.cc
index c6f34e84..d8bbff2 100644
--- a/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer.cc
+++ b/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer.cc
@@ -24,6 +24,7 @@
 #include "base/types/expected.h"
 #include "base/values.h"
 #include "chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_reported_local_id_manager.h"
+#include "chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_settings_for_test.h"
 #include "chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_uploaded_crash_info_manager.h"
 #include "chromeos/ash/services/cros_healthd/public/cpp/service_connection.h"
 #include "components/reporting/proto/synced/metric_data.pb.h"
@@ -130,26 +131,9 @@
          base::Time::kMicrosecondsPerMillisecond;
 }
 
-void FatalCrashEventsObserver::SetSkippedUnuploadedCrashCallback(
-    base::RepeatingCallback<void(LocalIdEntry)> callback) {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  skipped_unuploaded_callback_ = std::move(callback);
-}
-
-void FatalCrashEventsObserver::SetSkippedUploadedCrashCallback(
-    SkippedUploadedCrashCallback callback) {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  skipped_uploaded_callback_ = std::move(callback);
-}
-
-void FatalCrashEventsObserver::SetEventCollectedBeforeSaveFilesLoadedCallback(
-    EventCollectedBeforeSaveFilesLoadedCallback callback) {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  event_collected_before_save_files_loaded_callback_ = std::move(callback);
-}
-
 void FatalCrashEventsObserver::OnEvent(EventInfoPtr info) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  DCHECK_CALLED_ON_VALID_SEQUENCE(settings_for_test_->sequence_checker);
 
   if (!info->is_crash_event_info()) {
     return;
@@ -158,8 +142,8 @@
   // Events in `event_queue_before_save_files_loaded_` must be processed first.
   // If the events there have not been cleared, enqueue this event there.
   if (!AreSaveFilesLoaded() || !event_queue_before_save_files_loaded_.empty()) {
-    if (event_collected_before_save_files_loaded_callback_) {
-      event_collected_before_save_files_loaded_callback_.Run(
+    if (settings_for_test_->event_collected_before_save_files_loaded_callback) {
+      settings_for_test_->event_collected_before_save_files_loaded_callback.Run(
           info->get_crash_event_info().Clone());
     }
     event_queue_before_save_files_loaded_.push(std::move(info));
@@ -169,8 +153,11 @@
   ProcessEvent(std::move(info));
 }
 
+// TODO(b/266018440): Split this method to two methods for cleaner code:
+// ProcessUploadedCrashEvent and ProcessUnuploadedCrashEvent.
 void FatalCrashEventsObserver::ProcessEvent(EventInfoPtr info) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  DCHECK_CALLED_ON_VALID_SEQUENCE(settings_for_test_->sequence_checker);
   CHECK(info->is_crash_event_info());
 
   const auto& crash_event_info = info->get_crash_event_info();
@@ -188,7 +175,7 @@
                                   should_report_result);
     if (should_report_result !=
         ReportedLocalIdManager::ShouldReportResult::kYes) {
-      skipped_unuploaded_callback_.Run(
+      settings_for_test_->skipped_unuploaded_crash_callback.Run(
           {.local_id = std::move(crash_event_info->local_id),
            .capture_timestamp_us = capture_timestamp_us});
       return;
@@ -199,9 +186,9 @@
             crash_event_info->upload_info)) {
       // The crash is from an earlier part of uploads.log. Skip.
       const auto& upload_info = crash_event_info->upload_info;
-      skipped_uploaded_callback_.Run(upload_info->crash_report_id,
-                                     upload_info->creation_time,
-                                     upload_info->offset);
+      settings_for_test_->skipped_uploaded_crash_callback.Run(
+          upload_info->crash_report_id, upload_info->creation_time,
+          upload_info->offset);
       return;
     }
   }
@@ -209,7 +196,7 @@
   MetricData metric_data = FillFatalCrashTelemetry(crash_event_info);
   OnEventObserved(std::move(metric_data));
 
-  if (interrupted_after_event_observed_for_test_) {
+  if (settings_for_test_->interrupted_after_event_observed) {
     return;
   }
 
@@ -326,10 +313,4 @@
 
   return metric_data;
 }
-
-void FatalCrashEventsObserver::SetInterruptedAfterEventObservedForTest(
-    bool interrupted_after_event_observed) {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  interrupted_after_event_observed_for_test_ = interrupted_after_event_observed;
-}
 }  // namespace reporting
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer.h b/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer.h
index 13ed05cd..236e350 100644
--- a/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer.h
+++ b/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer.h
@@ -11,7 +11,6 @@
 
 #include "base/files/file_path.h"
 #include "base/functional/callback.h"
-#include "base/functional/callback_helpers.h"
 #include "base/gtest_prod_util.h"
 #include "base/memory/scoped_refptr.h"
 #include "base/memory/weak_ptr.h"
@@ -30,6 +29,10 @@
           ash::cros_healthd::mojom::EventObserver>,
       public ash::cros_healthd::mojom::EventObserver {
  public:
+  // Callbacks and other variables created solely for test purposes. Fit the
+  // Chromium code style to not name it "TestSettings" because this struct is
+  // also compiled in production code.
+  struct SettingsForTest;
   // A RAII class that setups the environment for testing this class.
   class TestEnvironment;
 
@@ -40,16 +43,6 @@
     int64_t capture_timestamp_us;
   };
 
-  using SkippedUnuploadedCrashCallback =
-      base::RepeatingCallback<void(LocalIdEntry)>;
-  using SkippedUploadedCrashCallback =
-      base::RepeatingCallback<void(std::string /* crash_report_id */,
-                                   base::Time /* creation_time */,
-                                   uint64_t /* offset */)>;
-  using EventCollectedBeforeSaveFilesLoadedCallback =
-      base::RepeatingCallback<void(
-          ::ash::cros_healthd::mojom::CrashEventInfoPtr)>;
-
   // UMA name for recording the reason that an unuploaded crash should not be
   // reported.
   static constexpr char kUmaUnuploadedCrashShouldNotReportReason[] =
@@ -67,18 +60,6 @@
   // Convert a `base::Time` to a timestamp in microseconds.
   static int64_t ConvertTimeToMicroseconds(base::Time t);
 
-  // Sets the callback that is called when an unuploaded crash is skipped.
-  void SetSkippedUnuploadedCrashCallback(
-      SkippedUnuploadedCrashCallback callback);
-
-  // Sets the callback that is called when an uploaded crash is skipped.
-  void SetSkippedUploadedCrashCallback(SkippedUploadedCrashCallback callback);
-
-  // Sets the callback that is called when a crash is queued due to delayed save
-  // file loading.
-  void SetEventCollectedBeforeSaveFilesLoadedCallback(
-      EventCollectedBeforeSaveFilesLoadedCallback callback);
-
  private:
   // Give `TestEnvironment` the access to the private constructor that
   // specifies the path for the save file.
@@ -126,12 +107,6 @@
   // Processes events that was received before the save files have been loaded.
   void ProcessEventsBeforeSaveFilesLoaded();
 
-  // Sets whether to continue postprocessing after event observed callback is
-  // called. Pass in true to simulate that event observed callback is
-  // interrupted right after it's finished.
-  void SetInterruptedAfterEventObservedForTest(
-      bool interrupted_after_event_observed);
-
   SEQUENCE_CHECKER(sequence_checker_);
 
   // Manages saved local IDs for reported unuploaded crashes.
@@ -149,27 +124,9 @@
       event_queue_before_save_files_loaded_
           GUARDED_BY_CONTEXT(sequence_checker_);
 
-  // Called when an unuploaded crash is skipped and not reported. Currently only
-  // used in tests but production code may also use it in the future.
-  SkippedUnuploadedCrashCallback skipped_unuploaded_callback_
-      GUARDED_BY_CONTEXT(sequence_checker_){base::DoNothing()};
-
-  // Called when an uploaded crash is skipped and not reported. Currently only
-  // used in tests but production code may also use it in the future.
-  SkippedUploadedCrashCallback skipped_uploaded_callback_
-      GUARDED_BY_CONTEXT(sequence_checker_){base::DoNothing()};
-
-  // Called when a crash event is queued due to a delayed save file loading.
-  // Currently only used in tests but production code may also use it in the
-  // future.
-  EventCollectedBeforeSaveFilesLoadedCallback
-      event_collected_before_save_files_loaded_callback_
-          GUARDED_BY_CONTEXT(sequence_checker_);
-
-  // If true, stop the processing after the event observed callback is called.
-  // Only used for testing.
-  bool interrupted_after_event_observed_for_test_
-      GUARDED_BY_CONTEXT(sequence_checker_){false};
+  // Callbacks and variables used for test only.
+  std::unique_ptr<SettingsForTest> settings_for_test_ GUARDED_BY_CONTEXT(
+      sequence_checker_){std::make_unique<SettingsForTest>()};
 
   base::WeakPtrFactory<FatalCrashEventsObserver> weak_factory_{this};
 };
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_settings_for_test.cc b/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_settings_for_test.cc
new file mode 100644
index 0000000..a8748ed
--- /dev/null
+++ b/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_settings_for_test.cc
@@ -0,0 +1,11 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_settings_for_test.h"
+
+namespace reporting {
+
+FatalCrashEventsObserver::SettingsForTest::SettingsForTest() = default;
+FatalCrashEventsObserver::SettingsForTest::~SettingsForTest() = default;
+}  // namespace reporting
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_settings_for_test.h b/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_settings_for_test.h
new file mode 100644
index 0000000..e15c8a8
--- /dev/null
+++ b/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_settings_for_test.h
@@ -0,0 +1,66 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_ASH_POLICY_REPORTING_METRICS_REPORTING_FATAL_CRASH_FATAL_CRASH_EVENTS_OBSERVER_SETTINGS_FOR_TEST_H_
+#define CHROME_BROWSER_ASH_POLICY_REPORTING_METRICS_REPORTING_FATAL_CRASH_FATAL_CRASH_EVENTS_OBSERVER_SETTINGS_FOR_TEST_H_
+
+#include <cstdint>
+#include <string>
+
+#include "base/functional/callback.h"
+#include "base/functional/callback_helpers.h"
+#include "base/sequence_checker.h"
+#include "base/thread_annotations.h"
+#include "base/time/time.h"
+#include "chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer.h"
+#include "chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_events.mojom.h"
+
+namespace reporting {
+struct FatalCrashEventsObserver::SettingsForTest final {
+  using SkippedUnuploadedCrashCallback =
+      base::RepeatingCallback<void(LocalIdEntry)>;
+  using SkippedUploadedCrashCallback =
+      base::RepeatingCallback<void(std::string /* crash_report_id */,
+                                   base::Time /* creation_time */,
+                                   uint64_t /* offset */)>;
+  using EventCollectedBeforeSaveFilesLoadedCallback =
+      base::RepeatingCallback<void(
+          ::ash::cros_healthd::mojom::CrashEventInfoPtr)>;
+
+  SettingsForTest();
+  SettingsForTest(const SettingsForTest&) = delete;
+  SettingsForTest& operator=(const SettingsForTest&) = delete;
+  ~SettingsForTest();
+
+  // This is public because this struct is data-only, thus using data members of
+  // this struct would require the user to check this sequence checker.
+  //
+  // Can't make this private and expose a const reference of it via a method
+  // because the direct use of `base::SequenceChecker` is banned by presubmit.
+  SEQUENCE_CHECKER(sequence_checker);
+
+  // If true, stop the processing after the event observed callback is called.
+  // Setting to true to simulate that event observed callback is interrupted
+  // right after it's finished.
+  bool interrupted_after_event_observed GUARDED_BY_CONTEXT(sequence_checker){
+      false};
+
+  // Called when an unuploaded crash is skipped and not reported.
+  SkippedUnuploadedCrashCallback skipped_unuploaded_crash_callback
+      GUARDED_BY_CONTEXT(sequence_checker){base::DoNothing()};
+
+  // Called when an uploaded crash is skipped and not reported.
+  SkippedUploadedCrashCallback skipped_uploaded_crash_callback
+      GUARDED_BY_CONTEXT(sequence_checker){base::DoNothing()};
+
+  // Called when a crash event is queued due to a delayed save file loading.
+  EventCollectedBeforeSaveFilesLoadedCallback
+      event_collected_before_save_files_loaded_callback
+          GUARDED_BY_CONTEXT(sequence_checker);
+
+ private:
+};
+}  // namespace reporting
+
+#endif  // CHROME_BROWSER_ASH_POLICY_REPORTING_METRICS_REPORTING_FATAL_CRASH_FATAL_CRASH_EVENTS_OBSERVER_SETTINGS_FOR_TEST_H_
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_test_util.cc b/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_test_util.cc
index a0e6873..fa45f07 100644
--- a/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_test_util.cc
+++ b/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_test_util.cc
@@ -16,6 +16,7 @@
 #include "base/time/time.h"
 #include "chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer.h"
 #include "chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_reported_local_id_manager.h"
+#include "chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_settings_for_test.h"
 #include "chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_uploaded_crash_info_manager.h"
 
 namespace reporting {
@@ -55,11 +56,11 @@
 }
 
 // static
-void FatalCrashEventsObserver::TestEnvironment::
-    SetInterruptedAfterEventObserved(FatalCrashEventsObserver& observer,
-                                     bool interrupted_after_event_observed) {
-  observer.SetInterruptedAfterEventObservedForTest(
-      interrupted_after_event_observed);
+FatalCrashEventsObserver::SettingsForTest&
+FatalCrashEventsObserver::TestEnvironment::GetTestSettings(
+    FatalCrashEventsObserver& observer) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(observer.sequence_checker_);
+  return *observer.settings_for_test_;
 }
 
 // static
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_test_util.h b/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_test_util.h
index 3abad2a..0e5c1e1 100644
--- a/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_test_util.h
+++ b/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_test_util.h
@@ -67,11 +67,8 @@
       scoped_refptr<base::SequencedTaskRunner>
           reported_local_id_io_task_runner = nullptr) const;
 
-  // Sets whether to continue postprocessing after event observed callback is
-  // called.
-  static void SetInterruptedAfterEventObserved(
-      FatalCrashEventsObserver& observer,
-      bool interrupted_after_event_observed);
+  // Get the mutable test settings of the observer.
+  static SettingsForTest& GetTestSettings(FatalCrashEventsObserver& observer);
 
   // Gets the size of the queue that saves local IDs. In tests, an access to a
   // private member is not normally recommended since it is generally not
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_unittest.cc b/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_unittest.cc
index 192e112..dd6a7188 100644
--- a/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_unittest.cc
+++ b/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_unittest.cc
@@ -28,6 +28,7 @@
 #include "base/test/test_future.h"
 #include "base/time/time.h"
 #include "chrome/browser/ash/login/users/fake_chrome_user_manager.h"
+#include "chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_settings_for_test.h"
 #include "chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_test_util.h"
 #include "chromeos/ash/components/mojo_service_manager/fake_mojo_service_manager.h"
 #include "chromeos/ash/services/cros_healthd/public/cpp/fake_cros_healthd.h"
@@ -58,13 +59,13 @@
   explicit ScopedInterruptedAfterEventObserved(
       FatalCrashEventsObserver& observer)
       : observer_(&observer) {
-    FatalCrashEventsObserver::TestEnvironment::SetInterruptedAfterEventObserved(
-        *observer_, /*interrupted_after_event_observed=*/true);
+    FatalCrashEventsObserver::TestEnvironment::GetTestSettings(*observer_)
+        .interrupted_after_event_observed = true;
   }
 
   virtual ~ScopedInterruptedAfterEventObserved() {
-    FatalCrashEventsObserver::TestEnvironment::SetInterruptedAfterEventObserved(
-        *observer_, /*interrupted_after_event_observed=*/false);
+    FatalCrashEventsObserver::TestEnvironment::GetTestSettings(*observer_)
+        .interrupted_after_event_observed = false;
   }
 
   ScopedInterruptedAfterEventObserved(
@@ -433,6 +434,9 @@
   // Create and set up the observer object.
   auto observer = fatal_crash_test_environment_.CreateFatalCrashEventsObserver(
       /*reported_local_id_io_task_runner=*/io_task_runner);
+  DCHECK_CALLED_ON_VALID_SEQUENCE(
+      FatalCrashEventsObserver::TestEnvironment::GetTestSettings(*observer)
+          .sequence_checker);
   observer->SetReportingEnabled(true);
   // Not using `TestFuture`, because it can only accept one value at a time and
   // generates an error if another values comes in before the first value is
@@ -450,11 +454,12 @@
       },
       &results, base::SequencedTaskRunner::GetCurrentDefault()));
   base::test::TestFuture<CrashEventInfoPtr> queued_crash_event_result;
-  observer->SetEventCollectedBeforeSaveFilesLoadedCallback(
-      queued_crash_event_result.GetRepeatingCallback());
+  FatalCrashEventsObserver::TestEnvironment::GetTestSettings(*observer)
+      .event_collected_before_save_files_loaded_callback =
+      queued_crash_event_result.GetRepeatingCallback();
 
-  // Emit the first 3 events before the save file is loaded. The event is
-  // queued and saved in RAM.
+  // Emit the first 3 events before the save file is loaded. The event is queued
+  // and saved in RAM.
   for (size_t i = 0; i < 3u; ++i) {
     base::SequencedTaskRunner::GetCurrentDefault()->PostTask(
         FROM_HERE, base::BindOnce(&FatalCrashEventsObserver::OnEvent,
@@ -490,12 +495,13 @@
 
   // All crash events should be available in order, and the event collected call
   // back should never be called from this point on.
-  observer->SetEventCollectedBeforeSaveFilesLoadedCallback(
+  FatalCrashEventsObserver::TestEnvironment::GetTestSettings(*observer)
+      .event_collected_before_save_files_loaded_callback =
       base::BindRepeating([](CrashEventInfoPtr crash_event_info) {
         // Sanity check to ensure that no more crash event is queued.
         EXPECT_FALSE(true) << "Found unexpected queued crash event: "
                            << crash_event_info->local_id;
-      }));
+      });
   base::RunLoop().RunUntilIdle();
   ASSERT_THAT(results, SizeIs(4u));
   for (size_t i = 0; i < results.size(); ++i) {
@@ -661,9 +667,15 @@
       std::string_view local_id,
       base::Time capture_time,
       FatalCrashEventsObserver& fatal_crash_observer) {
+    DCHECK_CALLED_ON_VALID_SEQUENCE(
+        FatalCrashEventsObserver::TestEnvironment::GetTestSettings(
+            fatal_crash_observer)
+            .sequence_checker);
+
     base::test::TestFuture<FatalCrashEventsObserver::LocalIdEntry> result;
-    fatal_crash_observer.SetSkippedUnuploadedCrashCallback(
-        result.GetRepeatingCallback());
+    FatalCrashEventsObserver::TestEnvironment::GetTestSettings(
+        fatal_crash_observer)
+        .skipped_unuploaded_crash_callback = result.GetRepeatingCallback();
 
     auto crash_event_info = NewCrashEventInfo(/*is_uploaded=*/false);
     crash_event_info->local_id = local_id;
@@ -1259,12 +1271,18 @@
       base::Time creation_time,
       uint64_t offset,
       FatalCrashEventsObserver& fatal_crash_observer) {
+    DCHECK_CALLED_ON_VALID_SEQUENCE(
+        FatalCrashEventsObserver::TestEnvironment::GetTestSettings(
+            fatal_crash_observer)
+            .sequence_checker);
+
     base::test::TestFuture<std::string /* crash_report_id */,
                            base::Time /* creation_time */,
                            uint64_t /* offset */>
         result;
-    fatal_crash_observer.SetSkippedUploadedCrashCallback(
-        result.GetRepeatingCallback());
+    FatalCrashEventsObserver::TestEnvironment::GetTestSettings(
+        fatal_crash_observer)
+        .skipped_uploaded_crash_callback = result.GetRepeatingCallback();
 
     auto crash_event_info = NewCrashEventInfo(/*is_uploaded=*/true);
     crash_event_info->upload_info->crash_report_id = crash_report_id;
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_uploaded_crash_info_manager.h b/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_uploaded_crash_info_manager.h
index 4949e97c..32d8d82 100644
--- a/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_uploaded_crash_info_manager.h
+++ b/chrome/browser/ash/policy/reporting/metrics_reporting/fatal_crash/fatal_crash_events_observer_uploaded_crash_info_manager.h
@@ -16,6 +16,7 @@
 #include "components/reporting/util/status.h"
 
 namespace reporting {
+
 class FatalCrashEventsObserver::UploadedCrashInfoManager {
  public:
   static std::unique_ptr<UploadedCrashInfoManager> Create(
diff --git a/chrome/browser/ash/scanning/zeroconf_scanner_detector.cc b/chrome/browser/ash/scanning/zeroconf_scanner_detector.cc
index 7b223ead..5f8da6e 100644
--- a/chrome/browser/ash/scanning/zeroconf_scanner_detector.cc
+++ b/chrome/browser/ash/scanning/zeroconf_scanner_detector.cc
@@ -15,7 +15,6 @@
 #include "base/logging.h"
 #include "base/sequence_checker.h"
 #include "base/strings/string_piece.h"
-#include "base/strings/string_piece_forward.h"
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
 #include "chrome/browser/ash/scanning/zeroconf_scanner_detector_utils.h"
diff --git a/chrome/browser/ash/settings/supervised_user_cros_settings_provider.h b/chrome/browser/ash/settings/supervised_user_cros_settings_provider.h
index 9d09f5b..5dfefc58 100644
--- a/chrome/browser/ash/settings/supervised_user_cros_settings_provider.h
+++ b/chrome/browser/ash/settings/supervised_user_cros_settings_provider.h
@@ -8,7 +8,7 @@
 #include <string>
 
 #include "base/containers/flat_map.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/values.h"
 #include "chromeos/ash/components/settings/cros_settings_provider.h"
 
diff --git a/chrome/browser/ash/system_extensions/system_extension.h b/chrome/browser/ash/system_extensions/system_extension.h
index 0425b95..8701a9f 100644
--- a/chrome/browser/ash/system_extensions/system_extension.h
+++ b/chrome/browser/ash/system_extensions/system_extension.h
@@ -7,7 +7,7 @@
 
 #include <array>
 
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/values.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
 #include "url/gurl.h"
diff --git a/chrome/browser/ash/system_web_apps/system_web_app_manager.cc b/chrome/browser/ash/system_web_apps/system_web_app_manager.cc
index 5203d2c4..c83239fe 100644
--- a/chrome/browser/ash/system_web_apps/system_web_app_manager.cc
+++ b/chrome/browser/ash/system_web_apps/system_web_app_manager.cc
@@ -31,7 +31,7 @@
 #include "base/one_shot_event.h"
 #include "base/ranges/algorithm.h"
 #include "base/run_loop.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/task/single_thread_task_runner.h"
 #include "base/time/time.h"
 #include "base/trace_event/trace_event.h"
diff --git a/chrome/browser/ash/system_web_apps/test_support/test_system_web_app_manager.h b/chrome/browser/ash/system_web_apps/test_support/test_system_web_app_manager.h
index 5527f98..cb04fb02 100644
--- a/chrome/browser/ash/system_web_apps/test_support/test_system_web_app_manager.h
+++ b/chrome/browser/ash/system_web_apps/test_support/test_system_web_app_manager.h
@@ -10,7 +10,7 @@
 
 #include "base/callback_list.h"
 #include "base/functional/callback.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/version.h"
 #include "chrome/browser/ash/system_web_apps/system_web_app_manager.h"
 
diff --git a/chrome/browser/browser_switcher/alternative_browser_driver.h b/chrome/browser/browser_switcher/alternative_browser_driver.h
index 8084cfc..871947e7 100644
--- a/chrome/browser/browser_switcher/alternative_browser_driver.h
+++ b/chrome/browser/browser_switcher/alternative_browser_driver.h
@@ -11,7 +11,7 @@
 #include "base/files/file_path.h"
 #include "base/functional/callback.h"
 #include "base/memory/raw_ptr.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "build/build_config.h"
 
 class GURL;
diff --git a/chrome/browser/chrome_back_forward_cache_browsertest.cc b/chrome/browser/chrome_back_forward_cache_browsertest.cc
index 32837f5..e29d7f62 100644
--- a/chrome/browser/chrome_back_forward_cache_browsertest.cc
+++ b/chrome/browser/chrome_back_forward_cache_browsertest.cc
@@ -769,8 +769,8 @@
 }
 #endif  // BUILDFLAG(ENABLE_PDF)
 
-// Flaky on Mac: crbug.com/1492026
-#if BUILDFLAG(IS_MAC)
+// Flaky on Mac and ChromeOS: crbug.com/1492026
+#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
 #define MAYBE_DoesNotCachePageWithEmbeddedPdfAppendedOnPageLoaded DISABLED_DoesNotCachePageWithEmbeddedPdfAppendedOnPageLoaded
 #else
 #define MAYBE_DoesNotCachePageWithEmbeddedPdfAppendedOnPageLoaded DoesNotCachePageWithEmbeddedPdfAppendedOnPageLoaded
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index f3a34de..8bac01d3 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -1425,13 +1425,11 @@
         profile->IsSameOrParent(
             Profile::FromBrowserContext(rph->GetBrowserContext()))) {
       bool is_top_chrome_renderer_present = false;
-      rph->ForEachRenderFrameHost(base::BindRepeating(
-          [](bool* is_top_chrome_renderer_present,
-             content::RenderFrameHost* rfh) {
-            *is_top_chrome_renderer_present |=
+      rph->ForEachRenderFrameHost(
+          [&is_top_chrome_renderer_present](content::RenderFrameHost* rfh) {
+            is_top_chrome_renderer_present |=
                 IsTopChromeWebUIURL(rfh->GetSiteInstance()->GetSiteURL());
-          },
-          &is_top_chrome_renderer_present));
+          });
 
       // Return true if a rph hosting a top chrome WebUI has been found.
       if (is_top_chrome_renderer_present)
diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h
index d6682cf2..934cb66 100644
--- a/chrome/browser/chrome_content_browser_client.h
+++ b/chrome/browser/chrome_content_browser_client.h
@@ -17,7 +17,7 @@
 #include "base/gtest_prod_util.h"
 #include "base/memory/scoped_refptr.h"
 #include "base/memory/weak_ptr.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/task/sequenced_task_runner.h"
 #include "base/time/time.h"
 #include "base/timer/timer.h"
diff --git a/chrome/browser/chrome_content_browser_client_browsertest.cc b/chrome/browser/chrome_content_browser_client_browsertest.cc
index b4f2945..7b836e4 100644
--- a/chrome/browser/chrome_content_browser_client_browsertest.cc
+++ b/chrome/browser/chrome_content_browser_client_browsertest.cc
@@ -65,6 +65,7 @@
 #include "ui/color/color_provider_key.h"
 #include "ui/color/color_provider_manager.h"
 #include "ui/color/color_provider_source.h"
+#include "ui/color/color_provider_utils.h"
 #include "ui/native_theme/native_theme.h"
 #include "ui/native_theme/test_native_theme.h"
 #include "url/gurl.h"
@@ -429,6 +430,19 @@
     const ui::ColorProvider* GetColorProvider() const override {
       return &provider_;
     }
+
+    const ui::RendererColorMap GetRendererColorMap(
+        ui::ColorProviderKey::ColorMode color_mode,
+        ui::ColorProviderKey::ForcedColors forced_colors) const override {
+      auto key = GetColorProviderKey();
+      key.color_mode = color_mode;
+      key.forced_colors = forced_colors;
+      ui::ColorProvider* color_provider =
+          ui::ColorProviderManager::Get().GetColorProviderFor(key);
+      CHECK(color_provider);
+      return ui::CreateRendererColorMap(*color_provider);
+    }
+
     ui::ColorProviderKey GetColorProviderKey() const override { return key_; }
 
    private:
diff --git a/chrome/browser/component_updater/pki_metadata_component_installer_unittest.cc b/chrome/browser/component_updater/pki_metadata_component_installer_unittest.cc
index a0b67dd..1fc7de9 100644
--- a/chrome/browser/component_updater/pki_metadata_component_installer_unittest.cc
+++ b/chrome/browser/component_updater/pki_metadata_component_installer_unittest.cc
@@ -10,7 +10,7 @@
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
 #include "base/files/scoped_temp_dir.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/test/scoped_feature_list.h"
 #include "chrome/browser/browser_features.h"
 #include "chrome/browser/net/key_pinning.pb.h"
diff --git a/chrome/browser/component_updater/screen_ai_component_installer.cc b/chrome/browser/component_updater/screen_ai_component_installer.cc
index e5dbcc8..e70603d 100644
--- a/chrome/browser/component_updater/screen_ai_component_installer.cc
+++ b/chrome/browser/component_updater/screen_ai_component_installer.cc
@@ -96,8 +96,7 @@
 
 // static
 std::string ScreenAIComponentInstallerPolicy::GetOmahaId() {
-  return crx_file::id_util::GenerateIdFromHash(
-      kScreenAIPublicKeySHA256, std::size(kScreenAIPublicKeySHA256));
+  return crx_file::id_util::GenerateIdFromHash(kScreenAIPublicKeySHA256);
 }
 
 void ScreenAIComponentInstallerPolicy::GetHash(
diff --git a/chrome/browser/component_updater/smart_dim_component_installer.cc b/chrome/browser/component_updater/smart_dim_component_installer.cc
index d8f11ce..cb45004 100644
--- a/chrome/browser/component_updater/smart_dim_component_installer.cc
+++ b/chrome/browser/component_updater/smart_dim_component_installer.cc
@@ -97,8 +97,7 @@
 SmartDimComponentInstallerPolicy::~SmartDimComponentInstallerPolicy() = default;
 
 const std::string SmartDimComponentInstallerPolicy::GetExtensionId() {
-  return crx_file::id_util::GenerateIdFromHash(
-      kSmartDimPublicKeySHA256, sizeof(kSmartDimPublicKeySHA256));
+  return crx_file::id_util::GenerateIdFromHash(kSmartDimPublicKeySHA256);
 }
 
 bool SmartDimComponentInstallerPolicy::
diff --git a/chrome/browser/component_updater/soda_component_installer.cc b/chrome/browser/component_updater/soda_component_installer.cc
index 7247e11..88f22c87 100644
--- a/chrome/browser/component_updater/soda_component_installer.cc
+++ b/chrome/browser/component_updater/soda_component_installer.cc
@@ -83,8 +83,7 @@
 SodaComponentInstallerPolicy::~SodaComponentInstallerPolicy() = default;
 
 const std::string SodaComponentInstallerPolicy::GetExtensionId() {
-  return crx_file::id_util::GenerateIdFromHash(kSodaPublicKeySHA256,
-                                               sizeof(kSodaPublicKeySHA256));
+  return crx_file::id_util::GenerateIdFromHash(kSodaPublicKeySHA256);
 }
 
 void SodaComponentInstallerPolicy::UpdateSodaComponentOnDemand() {
diff --git a/chrome/browser/component_updater/soda_language_pack_component_installer.cc b/chrome/browser/component_updater/soda_language_pack_component_installer.cc
index b7f57083..acae6b3 100644
--- a/chrome/browser/component_updater/soda_language_pack_component_installer.cc
+++ b/chrome/browser/component_updater/soda_language_pack_component_installer.cc
@@ -58,8 +58,7 @@
       speech::GetLanguageComponentConfig(language_code);
 
   if (config) {
-    return crx_file::id_util::GenerateIdFromHash(
-        config.value().public_key_sha, sizeof(config.value().public_key_sha));
+    return crx_file::id_util::GenerateIdFromHash(config.value().public_key_sha);
   }
 
   return std::string();
@@ -70,8 +69,7 @@
   base::flat_set<std::string> ids;
   for (const speech::SodaLanguagePackComponentConfig& config :
        speech::kLanguageComponentConfigs) {
-    ids.insert(crx_file::id_util::GenerateIdFromHash(
-        config.public_key_sha, sizeof(config.public_key_sha)));
+    ids.insert(crx_file::id_util::GenerateIdFromHash(config.public_key_sha));
   }
 
   return ids;
diff --git a/chrome/browser/component_updater/updater_state.cc b/chrome/browser/component_updater/updater_state.cc
index d6380c1..914ca01 100644
--- a/chrome/browser/component_updater/updater_state.cc
+++ b/chrome/browser/component_updater/updater_state.cc
@@ -16,7 +16,7 @@
 #include "base/json/json_reader.h"
 #include "base/json/values_util.h"
 #include "base/strings/string_number_conversions.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/values.h"
 #include "build/branding_buildflags.h"
diff --git a/chrome/browser/component_updater/updater_state.h b/chrome/browser/component_updater/updater_state.h
index 360653a6..74a4166 100644
--- a/chrome/browser/component_updater/updater_state.h
+++ b/chrome/browser/component_updater/updater_state.h
@@ -10,7 +10,7 @@
 
 #include "base/containers/flat_map.h"
 #include "base/gtest_prod_util.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/time/time.h"
 #include "base/values.h"
 #include "base/version.h"
diff --git a/chrome/browser/compose/chrome_compose_client.cc b/chrome/browser/compose/chrome_compose_client.cc
index e55b1338..c67efa1 100644
--- a/chrome/browser/compose/chrome_compose_client.cc
+++ b/chrome/browser/compose/chrome_compose_client.cc
@@ -154,6 +154,7 @@
     // Update existing session (only if session was not removed earlier).
     auto& existing_session = *it->second;
     existing_session.set_compose_callback(std::move(callback));
+    existing_session.RefreshInnerText();
   } else {
     // Insert new session.
     sessions_.emplace(
@@ -165,6 +166,7 @@
   if (!selected_text.empty()) {
     auto& session = sessions_.at(last_compose_field_id_.value());
     session->set_initial_input(selected_text);
+    session->RefreshInnerText();
   }
 }
 
diff --git a/chrome/browser/compose/chrome_compose_client_unittest.cc b/chrome/browser/compose/chrome_compose_client_unittest.cc
index e5d3b41..cba1303 100644
--- a/chrome/browser/compose/chrome_compose_client_unittest.cc
+++ b/chrome/browser/compose/chrome_compose_client_unittest.cc
@@ -504,6 +504,10 @@
   page_handler()->SaveWebUIState("web ui state");
   page_handler()->Compose(compose::mojom::StyleModifiers::New(), "");
 
+  compose::mojom::ComposeResponsePtr response = compose_test_future.Take();
+  EXPECT_FALSE(response->undo_available)
+      << "First Compose() response should say undo not available.";
+
   base::test::TestFuture<compose::mojom::OpenMetadataPtr> test_future;
   page_handler()->RequestInitialState(test_future.GetCallback());
   compose::mojom::OpenMetadataPtr open_metadata = test_future.Take();
@@ -780,12 +784,13 @@
 
   page_handler()->SaveWebUIState("this state should be restored with undo");
   page_handler()->Compose(compose::mojom::StyleModifiers::New(), "");
-  page_handler()->SaveWebUIState("second state");
-  page_handler()->Compose(compose::mojom::StyleModifiers::New(), "");
 
   compose::mojom::ComposeResponsePtr response = compose_future.Take();
   EXPECT_FALSE(response->undo_available) << "First Compose() response should "
                                             "say undo is not available.";
+  page_handler()->SaveWebUIState("second state");
+  page_handler()->Compose(compose::mojom::StyleModifiers::New(), "");
+
   response = compose_future.Take();
   EXPECT_TRUE(response->undo_available) << "Second Compose() response should "
                                            "say undo is available.";
@@ -829,22 +834,26 @@
 
   page_handler()->SaveWebUIState("first state");
   page_handler()->Compose(compose::mojom::StyleModifiers::New(), "");
-  page_handler()->SaveWebUIState("second state");
-  page_handler()->Compose(compose::mojom::StyleModifiers::New(), "");
-  page_handler()->SaveWebUIState("third state");
-  page_handler()->Compose(compose::mojom::StyleModifiers::New(), "");
-  page_handler()->SaveWebUIState("fourth state");
 
   compose::mojom::ComposeResponsePtr response = compose_future.Take();
   EXPECT_FALSE(response->undo_available) << "First Compose() response should "
                                             "say undo is not available.";
+
+  page_handler()->SaveWebUIState("second state");
+  page_handler()->Compose(compose::mojom::StyleModifiers::New(), "");
   response = compose_future.Take();
   EXPECT_TRUE(response->undo_available) << "Second Compose() response should "
                                            "say undo is available.";
+
+  page_handler()->SaveWebUIState("third state");
+  page_handler()->Compose(compose::mojom::StyleModifiers::New(), "");
+
   response = compose_future.Take();
   EXPECT_TRUE(response->undo_available) << "Third Compose() response should "
                                            "say undo is available.";
 
+  page_handler()->SaveWebUIState("fourth state");
+
   base::test::TestFuture<compose::mojom::ComposeStatePtr> undo_future;
   page_handler()->Undo(undo_future.GetCallback());
   compose::mojom::ComposeStatePtr state = undo_future.Take();
@@ -880,16 +889,18 @@
 
   page_handler()->SaveWebUIState("first state");
   page_handler()->Compose(compose::mojom::StyleModifiers::New(), "");
-  page_handler()->SaveWebUIState("second state");
-  page_handler()->Compose(compose::mojom::StyleModifiers::New(), "");
-  page_handler()->SaveWebUIState("wip web ui state");
 
   compose::mojom::ComposeResponsePtr response = compose_future.Take();
   EXPECT_FALSE(response->undo_available) << "First Compose() response should "
                                             "say undo is not available.";
+
+  page_handler()->SaveWebUIState("second state");
+  page_handler()->Compose(compose::mojom::StyleModifiers::New(), "");
+
   response = compose_future.Take();
   EXPECT_TRUE(response->undo_available) << "Second Compose() response should "
                                            "say undo is available.";
+  page_handler()->SaveWebUIState("wip web ui state");
 
   base::test::TestFuture<compose::mojom::ComposeStatePtr> undo_future;
   page_handler()->Undo(undo_future.GetCallback());
diff --git a/chrome/browser/compose/compose_inner_text_browsertest.cc b/chrome/browser/compose/compose_inner_text_browsertest.cc
new file mode 100644
index 0000000..a065b9f
--- /dev/null
+++ b/chrome/browser/compose/compose_inner_text_browsertest.cc
@@ -0,0 +1,37 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/compose/inner_text_extractor.h"
+
+#include "base/test/test_future.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
+#include "chrome/test/base/in_process_browser_test.h"
+#include "chrome/test/base/ui_test_utils.h"
+#include "content/public/test/browser_test.h"
+
+using ComposeInnerTextBrowserTest = InProcessBrowserTest;
+
+namespace compose {
+
+IN_PROC_BROWSER_TEST_F(ComposeInnerTextBrowserTest, Basic) {
+  ASSERT_TRUE(embedded_test_server()->Start());
+  auto* web_contents = browser()->tab_strip_model()->GetActiveWebContents();
+  ASSERT_TRUE(ui_test_utils::NavigateToURL(
+      browser(), embedded_test_server()->GetURL("/compose/test1.html")));
+  base::test::TestFuture<const std::string&> inner_text_future;
+  InnerTextExtractor inner_text_extractor;
+  inner_text_extractor.Extract(web_contents, inner_text_future.GetCallback());
+  EXPECT_EQ("AaB Cb a2D", inner_text_future.Get());
+
+  // Check 2 extractions in parallel.
+  base::test::TestFuture<const std::string&> inner_text_future2;
+  base::test::TestFuture<const std::string&> inner_text_future3;
+  inner_text_extractor.Extract(web_contents, inner_text_future2.GetCallback());
+  inner_text_extractor.Extract(web_contents, inner_text_future3.GetCallback());
+  EXPECT_EQ("AaB Cb a2D", inner_text_future2.Get());
+  EXPECT_EQ("AaB Cb a2D", inner_text_future3.Get());
+}
+
+}  // namespace compose
diff --git a/chrome/browser/compose/compose_session.cc b/chrome/browser/compose/compose_session.cc
index 0dffef0..97d3030 100644
--- a/chrome/browser/compose/compose_session.cc
+++ b/chrome/browser/compose/compose_session.cc
@@ -58,6 +58,9 @@
   callback_ = std::move(callback);
   current_state_ = compose::mojom::ComposeState::New();
   current_state_->style = compose::mojom::StyleModifiers::New();
+  inner_text_extractor_.Extract(web_contents_,
+                                base::BindOnce(&ComposeSession::FindInnerText,
+                                               weak_ptr_factory_.GetWeakPtr()));
 }
 
 ComposeSession::~ComposeSession() = default;
@@ -84,10 +87,19 @@
     ProcessError(compose::mojom::ComposeStatus::kMisconfiguration);
     return;
   }
+  if (inner_text_.has_value()) {
+    ComposeWithInnerText(input, inner_text_.value());
+  } else {
+    input_ = input;
+  }
+}
 
+void ComposeSession::ComposeWithInnerText(const std::string& input,
+                                          const std::string& inner_text) {
   optimization_guide::proto::ComposePageMetadata page_metadata;
   page_metadata.set_page_url(web_contents_->GetLastCommittedURL().spec());
   page_metadata.set_page_title(base::UTF16ToUTF8(web_contents_->GetTitle()));
+  page_metadata.set_page_inner_text(inner_text);
 
   optimization_guide::proto::ComposeRequest request;
   request.set_user_input(input);
@@ -221,3 +233,18 @@
   }
   last_ok_state_ = current_state_->Clone();
 }
+
+void ComposeSession::FindInnerText(const std::string& inner_text) {
+  if (input_.has_value()) {
+    ComposeWithInnerText(input_.value(), inner_text);
+  } else {
+    inner_text_ = inner_text;
+  }
+}
+
+void ComposeSession::RefreshInnerText() {
+  inner_text_ = std::nullopt;
+  inner_text_extractor_.Extract(web_contents_,
+                                base::BindOnce(&ComposeSession::FindInnerText,
+                                               weak_ptr_factory_.GetWeakPtr()));
+}
diff --git a/chrome/browser/compose/compose_session.h b/chrome/browser/compose/compose_session.h
index 38580d3b..d30e2ab 100644
--- a/chrome/browser/compose/compose_session.h
+++ b/chrome/browser/compose/compose_session.h
@@ -10,6 +10,7 @@
 #include <string>
 
 #include "base/check_op.h"
+#include "chrome/browser/compose/inner_text_extractor.h"
 #include "chrome/common/compose/compose.mojom.h"
 #include "components/autofill/core/common/unique_ids.h"
 #include "components/optimization_guide/core/optimization_guide_model_executor.h"
@@ -92,6 +93,9 @@
   // Sets an initial input value for the session given by the renderer.
   void set_initial_input(const std::string input) { initial_input_ = input; }
 
+  // Refresh the inner text on session resumption.
+  void RefreshInnerText();
+
  private:
   void ProcessError(compose::mojom::ComposeStatus status);
   void ModelExecutionCallback(
@@ -99,6 +103,11 @@
       optimization_guide::OptimizationGuideModelExecutionResult result,
       std::unique_ptr<optimization_guide::ModelQualityLogEntry> log_entry);
 
+  // ComposeWithInnerText can either be called synchronously or on a later event
+  // loop
+  void ComposeWithInnerText(const std::string& input,
+                            const std::string& inner_text);
+
   // Outlives `this`.
   raw_ptr<optimization_guide::OptimizationGuideModelExecutor> executor_;
 
@@ -125,6 +134,13 @@
   // A callback to Autofill that triggers filling the field.
   ComposeCallback callback_;
 
+  InnerTextExtractor inner_text_extractor_;
+
+  std::optional<std::string> inner_text_;
+  std::optional<std::string> input_;
+
+  void FindInnerText(const std::string& inner_text);
+
   base::WeakPtrFactory<ComposeSession> weak_ptr_factory_;
 };
 
diff --git a/chrome/browser/compose/inner_text_extractor.cc b/chrome/browser/compose/inner_text_extractor.cc
new file mode 100644
index 0000000..38a83e1
--- /dev/null
+++ b/chrome/browser/compose/inner_text_extractor.cc
@@ -0,0 +1,42 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/compose/inner_text_extractor.h"
+
+#include <string>
+#include <utility>
+
+#include "base/functional/bind.h"
+#include "base/observer_list.h"
+
+#include "content/public/browser/web_contents.h"
+
+InnerTextExtractor::InnerTextExtractor() : weak_ptr_factory_(this) {}
+
+InnerTextExtractor::~InnerTextExtractor() = default;
+
+void InnerTextExtractor::Extract(
+    content::WebContents* web_contents,
+    base::OnceCallback<void(const std::string&)> callback) {
+  if (callbacks_.empty()) {
+    callbacks_.push_back(std::move(callback));
+    previous_web_contents_ = web_contents;
+    content_extraction::GetInnerText(
+        *web_contents->GetPrimaryMainFrame(), /*node_id*/ absl::nullopt,
+        base::BindRepeating(&InnerTextExtractor::InnerTextCallback,
+                            weak_ptr_factory_.GetWeakPtr()));
+  } else if (web_contents == previous_web_contents_) {
+    callbacks_.push_back(std::move(callback));
+  } else {
+    DCHECK(false);
+  }
+}
+
+void InnerTextExtractor::InnerTextCallback(
+    std::unique_ptr<content_extraction::InnerTextResult> result) {
+  for (auto& callback : callbacks_) {
+    std::move(callback).Run(result ? result->inner_text : "");
+  }
+  callbacks_.clear();
+}
diff --git a/chrome/browser/compose/inner_text_extractor.h b/chrome/browser/compose/inner_text_extractor.h
new file mode 100644
index 0000000..43de517
--- /dev/null
+++ b/chrome/browser/compose/inner_text_extractor.h
@@ -0,0 +1,39 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_COMPOSE_INNER_TEXT_EXTRACTOR_H_
+#define CHROME_BROWSER_COMPOSE_INNER_TEXT_EXTRACTOR_H_
+
+#include <memory>
+#include <string>
+
+#include "base/observer_list.h"
+#include "chrome/browser/compose/inner_text_extractor.h"
+#include "chrome/browser/content_extraction/inner_text.h"
+
+namespace content {
+class WebContents;
+}  // namespace content
+
+// An helper class for observing the inner text of a webcontents.
+class InnerTextExtractor {
+ public:
+  InnerTextExtractor();
+  ~InnerTextExtractor();
+
+  void Extract(content::WebContents* web_contents,
+               base::OnceCallback<void(const std::string&)> callback);
+
+ private:
+  void InnerTextCallback(
+      std::unique_ptr<content_extraction::InnerTextResult> result);
+
+  std::vector<base::OnceCallback<void(const std::string&)>> callbacks_;
+
+  raw_ptr<content::WebContents> previous_web_contents_;
+
+  base::WeakPtrFactory<InnerTextExtractor> weak_ptr_factory_;
+};
+
+#endif  // CHROME_BROWSER_COMPOSE_INNER_TEXT_EXTRACTOR_H_
diff --git a/chrome/browser/devtools/device/adb/adb_client_socket.cc b/chrome/browser/devtools/device/adb/adb_client_socket.cc
index 741c1f2a..59c8dff5 100644
--- a/chrome/browser/devtools/device/adb/adb_client_socket.cc
+++ b/chrome/browser/devtools/device/adb/adb_client_socket.cc
@@ -245,8 +245,8 @@
     std::move(callback).Run(result, "IO error");
     return;
   }
-  scoped_refptr<net::IOBuffer> response_buffer =
-      base::MakeRefCounted<net::IOBuffer>(kBufferSize);
+  auto response_buffer =
+      base::MakeRefCounted<net::IOBufferWithSize>(kBufferSize);
   auto split_callback = base::SplitOnceCallback(
       base::BindOnce(&AdbClientSocket::OnResponseHeader, base::Unretained(this),
                      std::move(callback), is_void, response_buffer));
diff --git a/chrome/browser/devtools/device/android_device_manager.cc b/chrome/browser/devtools/device/android_device_manager.cc
index ae52e71..5cbe347 100644
--- a/chrome/browser/devtools/device/android_device_manager.cc
+++ b/chrome/browser/devtools/device/android_device_manager.cc
@@ -197,8 +197,8 @@
     pieces.insert(pieces.end(), {crlf});
 
     std::string request = base::StrCat(pieces);
-    scoped_refptr<net::IOBuffer> base_buffer =
-        base::MakeRefCounted<net::IOBuffer>(request.size());
+    auto base_buffer =
+        base::MakeRefCounted<net::IOBufferWithSize>(request.size());
     memcpy(base_buffer->data(), request.data(), request.size());
     request_ = base::MakeRefCounted<net::DrainableIOBuffer>(
         std::move(base_buffer), request.size());
@@ -210,7 +210,7 @@
     if (!CheckNetResultOrDie(result))
       return;
 
-    response_buffer_ = base::MakeRefCounted<net::IOBuffer>(kBufferSize);
+    response_buffer_ = base::MakeRefCounted<net::IOBufferWithSize>(kBufferSize);
 
     result = socket_->Read(
         response_buffer_.get(), kBufferSize,
diff --git a/chrome/browser/devtools/device/android_web_socket.cc b/chrome/browser/devtools/device/android_web_socket.cc
index e82d815..a6030e7 100644
--- a/chrome/browser/devtools/device/android_web_socket.cc
+++ b/chrome/browser/devtools/device/android_web_socket.cc
@@ -74,9 +74,7 @@
     DCHECK(thread_checker_.CalledOnValidThread());
     DCHECK(socket_);
 
-    scoped_refptr<net::IOBuffer> buffer =
-        base::MakeRefCounted<net::IOBuffer>(kBufferSize);
-
+    auto buffer = base::MakeRefCounted<net::IOBufferWithSize>(kBufferSize);
     if (!response_buffer_.empty())
       ProcessResponseBuffer(buffer);
     else
diff --git a/chrome/browser/devtools/device/port_forwarding_controller.cc b/chrome/browser/devtools/device/port_forwarding_controller.cc
index f2380b8f..d0ce153 100644
--- a/chrome/browser/devtools/device/port_forwarding_controller.cc
+++ b/chrome/browser/devtools/device/port_forwarding_controller.cc
@@ -296,8 +296,7 @@
   void Pump(net::StreamSocket* from, net::StreamSocket* to) {
     DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
 
-    scoped_refptr<net::IOBuffer> buffer =
-        base::MakeRefCounted<net::IOBuffer>(kBufferSize);
+    auto buffer = base::MakeRefCounted<net::IOBufferWithSize>(kBufferSize);
     int result =
         from->Read(buffer.get(), kBufferSize,
                    base::BindOnce(&SocketTunnel::OnRead, base::Unretained(this),
diff --git a/chrome/browser/devtools/device/usb/usb_device_provider.cc b/chrome/browser/devtools/device/usb/usb_device_provider.cc
index 32635cd..67219ad 100644
--- a/chrome/browser/devtools/device/usb/usb_device_provider.cc
+++ b/chrome/browser/devtools/device/usb/usb_device_provider.cc
@@ -62,8 +62,7 @@
     std::move(callback).Run(result, std::string());
     return;
   }
-  scoped_refptr<net::IOBuffer> buffer =
-      base::MakeRefCounted<net::IOBuffer>(kBufferSize);
+  auto buffer = base::MakeRefCounted<net::IOBufferWithSize>(kBufferSize);
   auto split_callback = base::SplitOnceCallback(base::BindOnce(
       &OnRead, socket, buffer, std::string(), std::move(callback)));
   result =
diff --git a/chrome/browser/devtools/devtools_browsertest.cc b/chrome/browser/devtools/devtools_browsertest.cc
index ace24f6..469d363 100644
--- a/chrome/browser/devtools/devtools_browsertest.cc
+++ b/chrome/browser/devtools/devtools_browsertest.cc
@@ -1903,9 +1903,8 @@
           get_info_function.get(),
           content::JsReplace(R"([$1])", extension->id()), browser()->profile());
   ASSERT_TRUE(result);
-  std::unique_ptr<extensions::api::developer_private::ExtensionInfo> info =
-      extensions::api::developer_private::ExtensionInfo::FromValueDeprecated(
-          *result);
+  auto info =
+      extensions::api::developer_private::ExtensionInfo::FromValue(*result);
   ASSERT_TRUE(info);
 
   // The only inspectable view should be the offscreen document. Validate the
diff --git a/chrome/browser/dips/dips_service_unittest.cc b/chrome/browser/dips/dips_service_unittest.cc
index b82fb49..7034146 100644
--- a/chrome/browser/dips/dips_service_unittest.cc
+++ b/chrome/browser/dips/dips_service_unittest.cc
@@ -8,7 +8,7 @@
 #include "base/functional/callback_forward.h"
 #include "base/memory/raw_ptr.h"
 #include "base/run_loop.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/test/bind.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
diff --git a/chrome/browser/dips/dips_utils.h b/chrome/browser/dips/dips_utils.h
index 4b12095..554acb8 100644
--- a/chrome/browser/dips/dips_utils.h
+++ b/chrome/browser/dips/dips_utils.h
@@ -8,7 +8,7 @@
 #include <ostream>
 
 #include "base/files/file_path.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/time/time.h"
 #include "components/content_settings/browser/page_specific_content_settings.h"
 #include "content/public/browser/navigation_handle.h"
diff --git a/chrome/browser/enterprise/remote_commands/OWNERS b/chrome/browser/enterprise/remote_commands/OWNERS
index daea350..8aabedf 100644
--- a/chrome/browser/enterprise/remote_commands/OWNERS
+++ b/chrome/browser/enterprise/remote_commands/OWNERS
@@ -1 +1,2 @@
 anthonyvd@chromium.org
+zmin@chromium.org
diff --git a/chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_registry_unittest.cc b/chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_registry_unittest.cc
index 3cd2659..6e1fb32c 100644
--- a/chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_registry_unittest.cc
+++ b/chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_registry_unittest.cc
@@ -539,12 +539,12 @@
   base::Value::Dict value2 = base::test::ParseJsonDict(kRule2);
 
   std::vector<const api::events::Rule*> rules;
-  api::events::Rule rule1;
-  api::events::Rule rule2;
-  rules.push_back(&rule1);
-  rules.push_back(&rule2);
-  ASSERT_TRUE(api::events::Rule::Populate(value1, rule1));
-  ASSERT_TRUE(api::events::Rule::Populate(value2, rule2));
+  auto rule1 = api::events::Rule::FromValue(value1);
+  auto rule2 = api::events::Rule::FromValue(value2);
+  ASSERT_TRUE(rule1);
+  ASSERT_TRUE(rule2);
+  rules.push_back(&rule1.value());
+  rules.push_back(&rule2.value());
 
   scoped_refptr<WebRequestRulesRegistry> registry(
       new TestWebRequestRulesRegistry(&profile_));
@@ -696,20 +696,20 @@
 
   base::Value::Dict value = base::test::ParseJsonDict(kRule);
 
-  api::events::Rule rule;
-  ASSERT_TRUE(api::events::Rule::Populate(value, rule));
+  auto rule = api::events::Rule::FromValue(value);
+  ASSERT_TRUE(rule);
 
   std::string error;
   URLMatcher matcher;
   std::unique_ptr<WebRequestConditionSet> conditions =
       WebRequestConditionSet::Create(nullptr, matcher.condition_factory(),
-                                     rule.conditions, &error);
+                                     rule->conditions, &error);
   ASSERT_TRUE(error.empty()) << error;
   ASSERT_TRUE(conditions);
 
   bool bad_message = false;
   std::unique_ptr<WebRequestActionSet> actions = WebRequestActionSet::Create(
-      nullptr, nullptr, rule.actions, &error, &bad_message);
+      nullptr, nullptr, rule->actions, &error, &bad_message);
   ASSERT_TRUE(error.empty()) << error;
   ASSERT_FALSE(bad_message);
   ASSERT_TRUE(actions);
@@ -783,9 +783,9 @@
   base::Value::Dict value = base::test::ParseJsonDict(kRule);
 
   std::vector<const api::events::Rule*> rules;
-  api::events::Rule rule;
-  rules.push_back(&rule);
-  ASSERT_TRUE(api::events::Rule::Populate(value, rule));
+  auto rule = api::events::Rule::FromValue(value);
+  ASSERT_TRUE(rule);
+  rules.push_back(&rule.value());
 
   scoped_refptr<WebRequestRulesRegistry> registry(
       new TestWebRequestRulesRegistry(&profile_));
diff --git a/chrome/browser/extensions/api/downloads/downloads_api.cc b/chrome/browser/extensions/api/downloads/downloads_api.cc
index 92a7a81..dc66144 100644
--- a/chrome/browser/extensions/api/downloads/downloads_api.cc
+++ b/chrome/browser/extensions/api/downloads/downloads_api.cc
@@ -169,53 +169,54 @@
     download::DownloadDangerType danger) {
   switch (danger) {
     case download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS:
-      return extensions::api::downloads::DANGER_TYPE_SAFE;
+      return extensions::api::downloads::DangerType::kSafe;
     case download::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE:
-      return extensions::api::downloads::DANGER_TYPE_FILE;
+      return extensions::api::downloads::DangerType::kFile;
     case download::DOWNLOAD_DANGER_TYPE_DANGEROUS_URL:
-      return extensions::api::downloads::DANGER_TYPE_URL;
+      return extensions::api::downloads::DangerType::kUrl;
     case download::DOWNLOAD_DANGER_TYPE_DANGEROUS_CONTENT:
-      return extensions::api::downloads::DANGER_TYPE_CONTENT;
+      return extensions::api::downloads::DangerType::kContent;
     case download::DOWNLOAD_DANGER_TYPE_MAYBE_DANGEROUS_CONTENT:
-      return extensions::api::downloads::DANGER_TYPE_SAFE;
+      return extensions::api::downloads::DangerType::kSafe;
     case download::DOWNLOAD_DANGER_TYPE_UNCOMMON_CONTENT:
-      return extensions::api::downloads::DANGER_TYPE_UNCOMMON;
+      return extensions::api::downloads::DangerType::kUncommon;
     case download::DOWNLOAD_DANGER_TYPE_USER_VALIDATED:
-      return extensions::api::downloads::DANGER_TYPE_ACCEPTED;
+      return extensions::api::downloads::DangerType::kAccepted;
     case download::DOWNLOAD_DANGER_TYPE_DANGEROUS_HOST:
-      return extensions::api::downloads::DANGER_TYPE_HOST;
+      return extensions::api::downloads::DangerType::kHost;
     case download::DOWNLOAD_DANGER_TYPE_POTENTIALLY_UNWANTED:
-      return extensions::api::downloads::DANGER_TYPE_UNWANTED;
+      return extensions::api::downloads::DangerType::kUnwanted;
     case download::DOWNLOAD_DANGER_TYPE_ALLOWLISTED_BY_POLICY:
-      return extensions::api::downloads::DANGER_TYPE_ALLOWLISTEDBYPOLICY;
+      return extensions::api::downloads::DangerType::kAllowlistedByPolicy;
     case download::DOWNLOAD_DANGER_TYPE_ASYNC_SCANNING:
-      return extensions::api::downloads::DANGER_TYPE_ASYNCSCANNING;
+      return extensions::api::downloads::DangerType::kAsyncScanning;
     case download::DOWNLOAD_DANGER_TYPE_BLOCKED_PASSWORD_PROTECTED:
-      return extensions::api::downloads::DANGER_TYPE_PASSWORDPROTECTED;
+      return extensions::api::downloads::DangerType::kPasswordProtected;
     case download::DOWNLOAD_DANGER_TYPE_BLOCKED_TOO_LARGE:
-      return extensions::api::downloads::DANGER_TYPE_BLOCKEDTOOLARGE;
+      return extensions::api::downloads::DangerType::kBlockedTooLarge;
     case download::DOWNLOAD_DANGER_TYPE_SENSITIVE_CONTENT_WARNING:
-      return extensions::api::downloads::DANGER_TYPE_SENSITIVECONTENTWARNING;
+      return extensions::api::downloads::DangerType::kSensitiveContentWarning;
     case download::DOWNLOAD_DANGER_TYPE_SENSITIVE_CONTENT_BLOCK:
-      return extensions::api::downloads::DANGER_TYPE_SENSITIVECONTENTBLOCK;
+      return extensions::api::downloads::DangerType::kSensitiveContentBlock;
     case download::DOWNLOAD_DANGER_TYPE_DEEP_SCANNED_SAFE:
-      return extensions::api::downloads::DANGER_TYPE_DEEPSCANNEDSAFE;
+      return extensions::api::downloads::DangerType::kDeepScannedSafe;
     case download::DOWNLOAD_DANGER_TYPE_DEEP_SCANNED_OPENED_DANGEROUS:
-      return extensions::api::downloads::DANGER_TYPE_DEEPSCANNEDOPENEDDANGEROUS;
+      return extensions::api::downloads::DangerType::
+          kDeepScannedOpenedDangerous;
     case download::DOWNLOAD_DANGER_TYPE_PROMPT_FOR_SCANNING:
-      return extensions::api::downloads::DANGER_TYPE_PROMPTFORSCANNING;
+      return extensions::api::downloads::DangerType::kPromptForScanning;
     case download::DOWNLOAD_DANGER_TYPE_BLOCKED_UNSUPPORTED_FILETYPE:
-      return extensions::api::downloads::DANGER_TYPE_UNSUPPORTEDFILETYPE;
+      return extensions::api::downloads::DangerType::kUnsupportedFileType;
     case download::DOWNLOAD_DANGER_TYPE_DANGEROUS_ACCOUNT_COMPROMISE:
-      return extensions::api::downloads::DANGER_TYPE_ACCOUNTCOMPROMISE;
+      return extensions::api::downloads::DangerType::kAccountCompromise;
     case download::DOWNLOAD_DANGER_TYPE_DEEP_SCANNED_FAILED:
-      return extensions::api::downloads::DANGER_TYPE_DEEPSCANNEDFAILED;
+      return extensions::api::downloads::DangerType::kDeepScannedFailed;
     case download::DOWNLOAD_DANGER_TYPE_PROMPT_FOR_LOCAL_PASSWORD_SCANNING:
-      return extensions::api::downloads::
-          DANGER_TYPE_PROMPTFORLOCALPASSWORDSCANNING;
+      return extensions::api::downloads::DangerType::
+          kPromptForLocalPasswordScanning;
     case download::DOWNLOAD_DANGER_TYPE_MAX:
       NOTREACHED();
-      return extensions::api::downloads::DANGER_TYPE_LAST;
+      return extensions::api::downloads::DangerType::kMaxValue;
   }
 }
 
@@ -235,15 +236,15 @@
     download::DownloadItem::DownloadState state) {
   switch (state) {
     case download::DownloadItem::IN_PROGRESS:
-      return extensions::api::downloads::STATE_IN_PROGRESS;
+      return extensions::api::downloads::State::kInProgress;
     case download::DownloadItem::COMPLETE:
-      return extensions::api::downloads::STATE_COMPLETE;
+      return extensions::api::downloads::State::kComplete;
     case download::DownloadItem::CANCELLED:
-      return extensions::api::downloads::STATE_INTERRUPTED;
+      return extensions::api::downloads::State::kInterrupted;
     case download::DownloadItem::INTERRUPTED:
-      return extensions::api::downloads::STATE_INTERRUPTED;
+      return extensions::api::downloads::State::kInterrupted;
     case download::DownloadItem::MAX_DOWNLOAD_STATE:
-      return extensions::api::downloads::STATE_LAST;
+      return extensions::api::downloads::State::kMaxValue;
   }
 }
 
@@ -263,71 +264,75 @@
 
 extensions::api::downloads::InterruptReason ConvertInterruptReason(
     download::DownloadInterruptReason reason) {
+  // Note: Any new entries to this switch, as a result of a new keys to
+  // DownloadInterruptReason must be follow with a corresponding entry in
+  // api::downloads::InterruptReason, at
+  // chrome/common/extensions/api/downloads.idl.
   switch (reason) {
     case download::DOWNLOAD_INTERRUPT_REASON_NONE:
-      return extensions::api::downloads::INTERRUPT_REASON_NONE;
+      return extensions::api::downloads::InterruptReason::kNone;
     case download::DOWNLOAD_INTERRUPT_REASON_FILE_FAILED:
-      return extensions::api::downloads::INTERRUPT_REASON_FILE_FAILED;
+      return extensions::api::downloads::InterruptReason::kFileFailed;
     case download::DOWNLOAD_INTERRUPT_REASON_FILE_ACCESS_DENIED:
-      return extensions::api::downloads::INTERRUPT_REASON_FILE_ACCESS_DENIED;
+      return extensions::api::downloads::InterruptReason::kFileAccessDenied;
     case download::DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE:
-      return extensions::api::downloads::INTERRUPT_REASON_FILE_NO_SPACE;
+      return extensions::api::downloads::InterruptReason::kFileNoSpace;
     case download::DOWNLOAD_INTERRUPT_REASON_FILE_NAME_TOO_LONG:
-      return extensions::api::downloads::INTERRUPT_REASON_FILE_NAME_TOO_LONG;
+      return extensions::api::downloads::InterruptReason::kFileNameTooLong;
     case download::DOWNLOAD_INTERRUPT_REASON_FILE_TOO_LARGE:
-      return extensions::api::downloads::INTERRUPT_REASON_FILE_TOO_LARGE;
+      return extensions::api::downloads::InterruptReason::kFileTooLarge;
     case download::DOWNLOAD_INTERRUPT_REASON_FILE_VIRUS_INFECTED:
-      return extensions::api::downloads::INTERRUPT_REASON_FILE_VIRUS_INFECTED;
+      return extensions::api::downloads::InterruptReason::kFileVirusInfected;
     case download::DOWNLOAD_INTERRUPT_REASON_FILE_TRANSIENT_ERROR:
-      return extensions::api::downloads::INTERRUPT_REASON_FILE_TRANSIENT_ERROR;
+      return extensions::api::downloads::InterruptReason::kFileTransientError;
     case download::DOWNLOAD_INTERRUPT_REASON_FILE_BLOCKED:
-      return extensions::api::downloads::INTERRUPT_REASON_FILE_BLOCKED;
+      return extensions::api::downloads::InterruptReason::kFileBlocked;
     case download::DOWNLOAD_INTERRUPT_REASON_FILE_SECURITY_CHECK_FAILED:
-      return extensions::api::downloads::
-          INTERRUPT_REASON_FILE_SECURITY_CHECK_FAILED;
+      return extensions::api::downloads::InterruptReason::
+          kFileSecurityCheckFailed;
     case download::DOWNLOAD_INTERRUPT_REASON_FILE_TOO_SHORT:
-      return extensions::api::downloads::INTERRUPT_REASON_FILE_TOO_SHORT;
+      return extensions::api::downloads::InterruptReason::kFileTooShort;
     case download::DOWNLOAD_INTERRUPT_REASON_FILE_HASH_MISMATCH:
-      return extensions::api::downloads::INTERRUPT_REASON_FILE_HASH_MISMATCH;
+      return extensions::api::downloads::InterruptReason::kFileHashMismatch;
     case download::DOWNLOAD_INTERRUPT_REASON_FILE_SAME_AS_SOURCE:
-      return extensions::api::downloads::INTERRUPT_REASON_FILE_SAME_AS_SOURCE;
+      return extensions::api::downloads::InterruptReason::kFileSameAsSource;
     case download::DOWNLOAD_INTERRUPT_REASON_NETWORK_FAILED:
-      return extensions::api::downloads::INTERRUPT_REASON_NETWORK_FAILED;
+      return extensions::api::downloads::InterruptReason::kNetworkFailed;
     case download::DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT:
-      return extensions::api::downloads::INTERRUPT_REASON_NETWORK_TIMEOUT;
+      return extensions::api::downloads::InterruptReason::kNetworkTimeout;
     case download::DOWNLOAD_INTERRUPT_REASON_NETWORK_DISCONNECTED:
-      return extensions::api::downloads::INTERRUPT_REASON_NETWORK_DISCONNECTED;
+      return extensions::api::downloads::InterruptReason::kNetworkDisconnected;
     case download::DOWNLOAD_INTERRUPT_REASON_NETWORK_SERVER_DOWN:
-      return extensions::api::downloads::INTERRUPT_REASON_NETWORK_SERVER_DOWN;
+      return extensions::api::downloads::InterruptReason::kNetworkServerDown;
     case download::DOWNLOAD_INTERRUPT_REASON_NETWORK_INVALID_REQUEST:
-      return extensions::api::downloads::
-          INTERRUPT_REASON_NETWORK_INVALID_REQUEST;
+      return extensions::api::downloads::InterruptReason::
+          kNetworkInvalidRequest;
     case download::DOWNLOAD_INTERRUPT_REASON_SERVER_FAILED:
-      return extensions::api::downloads::INTERRUPT_REASON_SERVER_FAILED;
+      return extensions::api::downloads::InterruptReason::kServerFailed;
     case download::DOWNLOAD_INTERRUPT_REASON_SERVER_NO_RANGE:
-      return extensions::api::downloads::INTERRUPT_REASON_SERVER_NO_RANGE;
+      return extensions::api::downloads::InterruptReason::kServerNoRange;
     case download::DOWNLOAD_INTERRUPT_REASON_SERVER_BAD_CONTENT:
-      return extensions::api::downloads::INTERRUPT_REASON_SERVER_BAD_CONTENT;
+      return extensions::api::downloads::InterruptReason::kServerBadContent;
     case download::DOWNLOAD_INTERRUPT_REASON_SERVER_UNAUTHORIZED:
-      return extensions::api::downloads::INTERRUPT_REASON_SERVER_UNAUTHORIZED;
+      return extensions::api::downloads::InterruptReason::kServerUnauthorized;
     case download::DOWNLOAD_INTERRUPT_REASON_SERVER_CERT_PROBLEM:
-      return extensions::api::downloads::INTERRUPT_REASON_SERVER_CERT_PROBLEM;
+      return extensions::api::downloads::InterruptReason::kServerCertProblem;
     case download::DOWNLOAD_INTERRUPT_REASON_SERVER_FORBIDDEN:
-      return extensions::api::downloads::INTERRUPT_REASON_SERVER_FORBIDDEN;
+      return extensions::api::downloads::InterruptReason::kServerForbidden;
     case download::DOWNLOAD_INTERRUPT_REASON_SERVER_UNREACHABLE:
-      return extensions::api::downloads::INTERRUPT_REASON_SERVER_UNREACHABLE;
+      return extensions::api::downloads::InterruptReason::kServerUnreachable;
     case download::DOWNLOAD_INTERRUPT_REASON_SERVER_CONTENT_LENGTH_MISMATCH:
-      return extensions::api::downloads::
-          INTERRUPT_REASON_SERVER_CONTENT_LENGTH_MISMATCH;
+      return extensions::api::downloads::InterruptReason::
+          kServerContentLengthMismatch;
     case download::DOWNLOAD_INTERRUPT_REASON_SERVER_CROSS_ORIGIN_REDIRECT:
-      return extensions::api::downloads::
-          INTERRUPT_REASON_SERVER_CROSS_ORIGIN_REDIRECT;
+      return extensions::api::downloads::InterruptReason::
+          kServerCrossOriginRedirect;
     case download::DOWNLOAD_INTERRUPT_REASON_USER_CANCELED:
-      return extensions::api::downloads::INTERRUPT_REASON_USER_CANCELED;
+      return extensions::api::downloads::InterruptReason::kUserCanceled;
     case download::DOWNLOAD_INTERRUPT_REASON_USER_SHUTDOWN:
-      return extensions::api::downloads::INTERRUPT_REASON_USER_SHUTDOWN;
+      return extensions::api::downloads::InterruptReason::kUserShutdown;
     case download::DOWNLOAD_INTERRUPT_REASON_CRASH:
-      return extensions::api::downloads::INTERRUPT_REASON_CRASH;
+      return extensions::api::downloads::InterruptReason::kCrash;
   }
 }
 
@@ -718,12 +723,12 @@
 download::DownloadPathReservationTracker::FilenameConflictAction
 ConvertConflictAction(downloads::FilenameConflictAction action) {
   switch (action) {
-    case downloads::FILENAME_CONFLICT_ACTION_NONE:
-    case downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY:
+    case downloads::FilenameConflictAction::kNone:
+    case downloads::FilenameConflictAction::kUniquify:
       return DownloadPathReservationTracker::UNIQUIFY;
-    case downloads::FILENAME_CONFLICT_ACTION_OVERWRITE:
+    case downloads::FilenameConflictAction::kOverwrite:
       return DownloadPathReservationTracker::OVERWRITE;
-    case downloads::FILENAME_CONFLICT_ACTION_PROMPT:
+    case downloads::FilenameConflictAction::kPrompt:
       return DownloadPathReservationTracker::PROMPT;
   }
   NOTREACHED();
@@ -748,9 +753,9 @@
       : updated_(0),
         changed_fired_(0),
         json_(std::move(json_item)),
-        creator_conflict_action_(downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY),
+        creator_conflict_action_(downloads::FilenameConflictAction::kUniquify),
         determined_conflict_action_(
-            downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY),
+            downloads::FilenameConflictAction::kUniquify),
         is_download_completed_(download_item->GetState() ==
                                DownloadItem::COMPLETE),
         is_completed_download_deleted_(
@@ -821,7 +826,7 @@
   void ClearPendingDeterminers() {
     DCHECK_CURRENTLY_ON(BrowserThread::UI);
     determined_filename_.clear();
-    determined_conflict_action_ = downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY;
+    determined_conflict_action_ = downloads::FilenameConflictAction::kUniquify;
     determiner_ = DeterminerInfo();
     filename_changed_.Reset();
     weak_ptr_factory_.reset();
@@ -883,7 +888,7 @@
   void ResetCreatorSuggestion() {
     DCHECK_CURRENTLY_ON(BrowserThread::UI);
     creator_suggested_filename_.clear();
-    creator_conflict_action_ = downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY;
+    creator_conflict_action_ = downloads::FilenameConflictAction::kUniquify;
   }
 
   // Returns false if this |extension_id| was not expected or if this
@@ -905,7 +910,7 @@
         // filename and they take precedence. Extensions that were installed
         // later take precedence over previous extensions.
         if (!filename.empty() ||
-            (conflict_action != downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY)) {
+            (conflict_action != downloads::FilenameConflictAction::kUniquify)) {
           WarningSet warnings;
           std::string winner_extension_id;
           ExtensionDownloadsEventRouter::DetermineFilenameInternal(
@@ -1176,7 +1181,7 @@
     Respond(WithArguments(static_cast<int>(item->GetId())));
     if (!creator_suggested_filename.empty() ||
         (creator_conflict_action !=
-         downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY)) {
+         downloads::FilenameConflictAction::kUniquify)) {
       ExtensionDownloadsEventRouterData* data =
           ExtensionDownloadsEventRouterData::Get(item);
       if (!data) {
@@ -1827,7 +1832,7 @@
     downloads::FilenameConflictAction* determined_conflict_action,
     WarningSet* warnings) {
   DCHECK(!filename.empty() ||
-         (conflict_action != downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY));
+         (conflict_action != downloads::FilenameConflictAction::kUniquify));
   DCHECK(!suggesting_extension_id.empty());
 
   if (incumbent_extension_id.empty()) {
diff --git a/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc b/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc
index 89ae8dc..c7d404c 100644
--- a/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc
+++ b/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc
@@ -945,36 +945,6 @@
   return item->GetState() == DownloadItem::INTERRUPTED;
 }
 
-download::DownloadInterruptReason InterruptReasonExtensionToComponent(
-    downloads::InterruptReason error) {
-  switch (error) {
-    case downloads::INTERRUPT_REASON_NONE:
-      return download::DOWNLOAD_INTERRUPT_REASON_NONE;
-#define INTERRUPT_REASON(name, value)      \
-  case downloads::INTERRUPT_REASON_##name: \
-    return download::DOWNLOAD_INTERRUPT_REASON_##name;
-#include "components/download/public/common/download_interrupt_reason_values.h"
-#undef INTERRUPT_REASON
-  }
-  NOTREACHED();
-  return download::DOWNLOAD_INTERRUPT_REASON_NONE;
-}
-
-downloads::InterruptReason InterruptReasonContentToExtension(
-    download::DownloadInterruptReason error) {
-  switch (error) {
-    case download::DOWNLOAD_INTERRUPT_REASON_NONE:
-      return downloads::INTERRUPT_REASON_NONE;
-#define INTERRUPT_REASON(name, value)              \
-  case download::DOWNLOAD_INTERRUPT_REASON_##name: \
-    return downloads::INTERRUPT_REASON_##name;
-#include "components/download/public/common/download_interrupt_reason_values.h"
-#undef INTERRUPT_REASON
-  }
-  NOTREACHED();
-  return downloads::INTERRUPT_REASON_NONE;
-}
-
 }  // namespace
 
 IN_PROC_BROWSER_TEST_F(DownloadExtensionTest, DownloadExtensionTest_Open) {
@@ -2908,7 +2878,7 @@
   std::string error;
   ASSERT_TRUE(ExtensionDownloadsEventRouter::DetermineFilename(
       current_browser()->profile(), false, GetExtensionId(), result_id,
-      base::FilePath(), downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY, &error));
+      base::FilePath(), downloads::FilenameConflictAction::kUniquify, &error));
   EXPECT_EQ("", error);
 
   // The download should complete successfully.
@@ -3031,7 +3001,7 @@
   std::string error;
   ASSERT_TRUE(ExtensionDownloadsEventRouter::DetermineFilename(
       current_browser()->profile(), false, GetExtensionId(), result_id,
-      base::FilePath(), downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY, &error));
+      base::FilePath(), downloads::FilenameConflictAction::kUniquify, &error));
   EXPECT_EQ("", error);
 
   // Calling DetermineFilename again should return an error instead of calling
@@ -3039,7 +3009,7 @@
   ASSERT_FALSE(ExtensionDownloadsEventRouter::DetermineFilename(
       current_browser()->profile(), false, GetExtensionId(), result_id,
       base::FilePath(FILE_PATH_LITERAL("different")),
-      downloads::FILENAME_CONFLICT_ACTION_OVERWRITE, &error));
+      downloads::FilenameConflictAction::kOverwrite, &error));
   EXPECT_EQ(errors::kTooManyListeners, error);
 
   // The download should complete successfully.
@@ -3149,7 +3119,7 @@
   ASSERT_TRUE(ExtensionDownloadsEventRouter::DetermineFilename(
       current_browser()->profile(), false, GetExtensionId(), result_id,
       base::FilePath(FILE_PATH_LITERAL("overridden.swf")),
-      downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY, &error));
+      downloads::FilenameConflictAction::kUniquify, &error));
   EXPECT_EQ("", error);
 
   ASSERT_TRUE(WaitFor(downloads::OnChanged::kEventName,
@@ -3208,7 +3178,7 @@
   ASSERT_TRUE(ExtensionDownloadsEventRouter::DetermineFilename(
       current_browser()->profile(), false, GetExtensionId(), result_id,
       base::FilePath(FILE_PATH_LITERAL("overridden.txt")),
-      downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY, &error));
+      downloads::FilenameConflictAction::kUniquify, &error));
   EXPECT_EQ("", error);
 
   // Dangerous download prompt will be shown.
@@ -3283,7 +3253,7 @@
   ASSERT_FALSE(ExtensionDownloadsEventRouter::DetermineFilename(
       current_browser()->profile(), false, GetExtensionId(), result_id,
       base::FilePath(FILE_PATH_LITERAL("sneaky/../../sneaky.txt")),
-      downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY, &error));
+      downloads::FilenameConflictAction::kUniquify, &error));
   EXPECT_STREQ(errors::kInvalidFilename, error.c_str());
   ASSERT_TRUE(
       WaitFor(downloads::OnChanged::kEventName,
@@ -3345,7 +3315,7 @@
   ASSERT_FALSE(ExtensionDownloadsEventRouter::DetermineFilename(
       current_browser()->profile(), false, GetExtensionId(), result_id,
       base::FilePath(FILE_PATH_LITERAL("<")),
-      downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY, &error));
+      downloads::FilenameConflictAction::kUniquify, &error));
   EXPECT_STREQ(errors::kInvalidFilename, error.c_str());
   ASSERT_TRUE(
       WaitFor(downloads::OnChanged::kEventName,
@@ -3408,7 +3378,7 @@
       current_browser()->profile(), false, GetExtensionId(), result_id,
       base::FilePath(FILE_PATH_LITERAL(
           "My Computer.{20D04FE0-3AEA-1069-A2D8-08002B30309D}/foo")),
-      downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY, &error));
+      downloads::FilenameConflictAction::kUniquify, &error));
   EXPECT_STREQ(errors::kInvalidFilename, error.c_str());
   ASSERT_TRUE(
       WaitFor(downloads::OnChanged::kEventName,
@@ -3470,7 +3440,7 @@
   ASSERT_FALSE(ExtensionDownloadsEventRouter::DetermineFilename(
       current_browser()->profile(), false, GetExtensionId(), result_id,
       base::FilePath(FILE_PATH_LITERAL("con.foo")),
-      downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY, &error));
+      downloads::FilenameConflictAction::kUniquify, &error));
   EXPECT_STREQ(errors::kInvalidFilename, error.c_str());
   ASSERT_TRUE(
       WaitFor(downloads::OnChanged::kEventName,
@@ -3532,7 +3502,7 @@
   ASSERT_FALSE(ExtensionDownloadsEventRouter::DetermineFilename(
       current_browser()->profile(), false, GetExtensionId(), result_id,
       base::FilePath(FILE_PATH_LITERAL(".")),
-      downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY, &error));
+      downloads::FilenameConflictAction::kUniquify, &error));
   EXPECT_STREQ(errors::kInvalidFilename, error.c_str());
   ASSERT_TRUE(
       WaitFor(downloads::OnChanged::kEventName,
@@ -3594,7 +3564,7 @@
   ASSERT_FALSE(ExtensionDownloadsEventRouter::DetermineFilename(
       current_browser()->profile(), false, GetExtensionId(), result_id,
       base::FilePath(FILE_PATH_LITERAL("..")),
-      downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY, &error));
+      downloads::FilenameConflictAction::kUniquify, &error));
   EXPECT_STREQ(errors::kInvalidFilename, error.c_str());
   ASSERT_TRUE(
       WaitFor(downloads::OnChanged::kEventName,
@@ -3656,7 +3626,7 @@
   ASSERT_FALSE(ExtensionDownloadsEventRouter::DetermineFilename(
       current_browser()->profile(), false, GetExtensionId(), result_id,
       downloads_directory().Append(FILE_PATH_LITERAL("sneaky.txt")),
-      downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY, &error));
+      downloads::FilenameConflictAction::kUniquify, &error));
   EXPECT_STREQ(errors::kInvalidFilename, error.c_str());
 
   ASSERT_TRUE(
@@ -3720,7 +3690,7 @@
   ASSERT_FALSE(ExtensionDownloadsEventRouter::DetermineFilename(
       current_browser()->profile(), false, GetExtensionId(), result_id,
       base::FilePath(FILE_PATH_LITERAL("foo/")),
-      downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY, &error));
+      downloads::FilenameConflictAction::kUniquify, &error));
   EXPECT_STREQ(errors::kInvalidFilename, error.c_str());
 
   ASSERT_TRUE(
@@ -3781,7 +3751,7 @@
   std::string error;
   ASSERT_TRUE(ExtensionDownloadsEventRouter::DetermineFilename(
       current_browser()->profile(), false, GetExtensionId(), result_id,
-      base::FilePath(), downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY, &error));
+      base::FilePath(), downloads::FilenameConflictAction::kUniquify, &error));
   EXPECT_EQ("", error);
 
   ASSERT_TRUE(
@@ -3836,7 +3806,7 @@
   error = "";
   ASSERT_TRUE(ExtensionDownloadsEventRouter::DetermineFilename(
       current_browser()->profile(), false, GetExtensionId(), result_id,
-      base::FilePath(), downloads::FILENAME_CONFLICT_ACTION_OVERWRITE, &error));
+      base::FilePath(), downloads::FilenameConflictAction::kOverwrite, &error));
   EXPECT_EQ("", error);
 
   ASSERT_TRUE(
@@ -3896,7 +3866,7 @@
   std::string error;
   ASSERT_TRUE(ExtensionDownloadsEventRouter::DetermineFilename(
       current_browser()->profile(), false, GetExtensionId(), result_id,
-      base::FilePath(), downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY, &error));
+      base::FilePath(), downloads::FilenameConflictAction::kUniquify, &error));
   EXPECT_EQ("", error);
 
   ASSERT_TRUE(
@@ -3952,7 +3922,7 @@
   ASSERT_TRUE(ExtensionDownloadsEventRouter::DetermineFilename(
       current_browser()->profile(), false, GetExtensionId(), result_id,
       base::FilePath(FILE_PATH_LITERAL("foo")),
-      downloads::FILENAME_CONFLICT_ACTION_OVERWRITE, &error));
+      downloads::FilenameConflictAction::kOverwrite, &error));
   EXPECT_EQ("", error);
 
   ASSERT_TRUE(WaitFor(downloads::OnChanged::kEventName,
@@ -4091,13 +4061,9 @@
   // Respond to the onDeterminingFilename events.
   std::string error;
   ASSERT_TRUE(ExtensionDownloadsEventRouter::DetermineFilename(
-      current_browser()->profile(),
-      false,
-      GetExtensionId(),
-      result_id,
+      current_browser()->profile(), false, GetExtensionId(), result_id,
       base::FilePath(FILE_PATH_LITERAL("42.txt")),
-      downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY,
-      &error));
+      downloads::FilenameConflictAction::kUniquify, &error));
   EXPECT_EQ("", error);
 
   // The download should complete successfully.
@@ -4154,13 +4120,9 @@
   // Respond to the onDeterminingFilename.
   error = "";
   ASSERT_TRUE(ExtensionDownloadsEventRouter::DetermineFilename(
-      current_browser()->profile(),
-      false,
-      GetExtensionId(),
-      result_id,
+      current_browser()->profile(), false, GetExtensionId(), result_id,
       base::FilePath(FILE_PATH_LITERAL("5.txt")),
-      downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY,
-      &error));
+      downloads::FilenameConflictAction::kUniquify, &error));
   EXPECT_EQ("", error);
 
   // The download should complete successfully.
@@ -4232,13 +4194,9 @@
   // Respond to the onDeterminingFilename events.
   std::string error;
   ASSERT_TRUE(ExtensionDownloadsEventRouter::DetermineFilename(
-      current_browser()->profile(),
-      true,
-      GetExtensionId(),
-      result_id,
+      current_browser()->profile(), true, GetExtensionId(), result_id,
       base::FilePath(FILE_PATH_LITERAL("42.txt")),
-      downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY,
-      &error));
+      downloads::FilenameConflictAction::kUniquify, &error));
   EXPECT_EQ("", error);
 
   // The download should complete successfully.
@@ -4294,13 +4252,9 @@
   // Respond to the onDeterminingFilename.
   error = "";
   ASSERT_TRUE(ExtensionDownloadsEventRouter::DetermineFilename(
-      current_browser()->profile(),
-      true,
-      GetExtensionId(),
-      result_id,
+      current_browser()->profile(), true, GetExtensionId(), result_id,
       base::FilePath(FILE_PATH_LITERAL("42.txt")),
-      downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY,
-      &error));
+      downloads::FilenameConflictAction::kUniquify, &error));
   EXPECT_EQ("", error);
 
   // The download should complete successfully.
@@ -4398,13 +4352,9 @@
   // filename determination.
   std::string error;
   ASSERT_TRUE(ExtensionDownloadsEventRouter::DetermineFilename(
-      current_browser()->profile(),
-      false,
-      GetExtensionId(),
-      item->GetId(),
+      current_browser()->profile(), false, GetExtensionId(), item->GetId(),
       base::FilePath(FILE_PATH_LITERAL("42.txt")),
-      downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY,
-      &error))
+      downloads::FilenameConflictAction::kUniquify, &error))
       << error;
   EXPECT_EQ("", error);
   ASSERT_TRUE(WaitFor(downloads::OnChanged::kEventName,
@@ -4720,56 +4670,36 @@
   ASSERT_TRUE(RunExtensionTest("downloads")) << message_;
 }
 
-TEST(DownloadInterruptReasonEnumsSynced,
-     DownloadInterruptReasonEnumsSynced) {
-#define INTERRUPT_REASON(name, value)                                          \
-  EXPECT_EQ(InterruptReasonContentToExtension(                                 \
-                download::DOWNLOAD_INTERRUPT_REASON_##name),                   \
-            downloads::INTERRUPT_REASON_##name);                               \
-  EXPECT_EQ(                                                                   \
-      InterruptReasonExtensionToComponent(downloads::INTERRUPT_REASON_##name), \
-      download::DOWNLOAD_INTERRUPT_REASON_##name);
-#include "build/chromeos_buildflags.h"
-#include "components/download/public/common/download_interrupt_reason_values.h"
-#undef INTERRUPT_REASON
-}
-
 TEST(ExtensionDetermineDownloadFilenameInternal,
      ExtensionDetermineDownloadFilenameInternal) {
   std::string winner_id;
   base::FilePath filename;
   downloads::FilenameConflictAction conflict_action =
-      downloads::FILENAME_CONFLICT_ACTION_UNIQUIFY;
+      downloads::FilenameConflictAction::kUniquify;
   WarningSet warnings;
 
   // Empty incumbent determiner
   warnings.clear();
   ExtensionDownloadsEventRouter::DetermineFilenameInternal(
       base::FilePath(FILE_PATH_LITERAL("a")),
-      downloads::FILENAME_CONFLICT_ACTION_OVERWRITE,
-      "suggester",
-      base::Time::Now(),
-      "",
-      base::Time(),
-      &winner_id,
-      &filename,
-      &conflict_action,
-      &warnings);
+      downloads::FilenameConflictAction::kOverwrite, "suggester",
+      base::Time::Now(), "", base::Time(), &winner_id, &filename,
+      &conflict_action, &warnings);
   EXPECT_EQ("suggester", winner_id);
   EXPECT_EQ(FILE_PATH_LITERAL("a"), filename.value());
-  EXPECT_EQ(downloads::FILENAME_CONFLICT_ACTION_OVERWRITE, conflict_action);
+  EXPECT_EQ(downloads::FilenameConflictAction::kOverwrite, conflict_action);
   EXPECT_TRUE(warnings.empty());
 
   // Incumbent wins
   warnings.clear();
   ExtensionDownloadsEventRouter::DetermineFilenameInternal(
       base::FilePath(FILE_PATH_LITERAL("b")),
-      downloads::FILENAME_CONFLICT_ACTION_PROMPT, "suggester",
+      downloads::FilenameConflictAction::kPrompt, "suggester",
       base::Time::Now() - base::Days(1), "incumbent", base::Time::Now(),
       &winner_id, &filename, &conflict_action, &warnings);
   EXPECT_EQ("incumbent", winner_id);
   EXPECT_EQ(FILE_PATH_LITERAL("a"), filename.value());
-  EXPECT_EQ(downloads::FILENAME_CONFLICT_ACTION_OVERWRITE, conflict_action);
+  EXPECT_EQ(downloads::FilenameConflictAction::kOverwrite, conflict_action);
   EXPECT_FALSE(warnings.empty());
   EXPECT_EQ(Warning::kDownloadFilenameConflict,
             warnings.begin()->warning_type());
@@ -4779,12 +4709,12 @@
   warnings.clear();
   ExtensionDownloadsEventRouter::DetermineFilenameInternal(
       base::FilePath(FILE_PATH_LITERAL("b")),
-      downloads::FILENAME_CONFLICT_ACTION_PROMPT, "suggester",
+      downloads::FilenameConflictAction::kPrompt, "suggester",
       base::Time::Now(), "incumbent", base::Time::Now() - base::Days(1),
       &winner_id, &filename, &conflict_action, &warnings);
   EXPECT_EQ("suggester", winner_id);
   EXPECT_EQ(FILE_PATH_LITERAL("b"), filename.value());
-  EXPECT_EQ(downloads::FILENAME_CONFLICT_ACTION_PROMPT, conflict_action);
+  EXPECT_EQ(downloads::FilenameConflictAction::kPrompt, conflict_action);
   EXPECT_FALSE(warnings.empty());
   EXPECT_EQ(Warning::kDownloadFilenameConflict,
             warnings.begin()->warning_type());
diff --git a/chrome/browser/extensions/api/identity/identity_get_auth_token_error.h b/chrome/browser/extensions/api/identity/identity_get_auth_token_error.h
index 84b4694..d60ede4e 100644
--- a/chrome/browser/extensions/api/identity/identity_get_auth_token_error.h
+++ b/chrome/browser/extensions/api/identity/identity_get_auth_token_error.h
@@ -7,7 +7,7 @@
 
 #include <string>
 
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 
 namespace extensions {
 
diff --git a/chrome/browser/extensions/api/messaging/native_message_process_host.cc b/chrome/browser/extensions/api/messaging/native_message_process_host.cc
index 6dc75ae8..e72bd74 100644
--- a/chrome/browser/extensions/api/messaging/native_message_process_host.cc
+++ b/chrome/browser/extensions/api/messaging/native_message_process_host.cc
@@ -248,7 +248,7 @@
   DCHECK(task_runner_->BelongsToCurrentThread());
 
   while (!closed_ && !read_pending_) {
-    read_buffer_ = base::MakeRefCounted<net::IOBuffer>(kReadBufferSize);
+    read_buffer_ = base::MakeRefCounted<net::IOBufferWithSize>(kReadBufferSize);
     int result =
         read_stream_->Read(read_buffer_.get(), kReadBufferSize,
                            base::BindOnce(&NativeMessageProcessHost::OnRead,
diff --git a/chrome/browser/extensions/api/passwords_private/passwords_private_apitest.cc b/chrome/browser/extensions/api/passwords_private/passwords_private_apitest.cc
index 94e293f5..d76a1e9 100644
--- a/chrome/browser/extensions/api/passwords_private/passwords_private_apitest.cc
+++ b/chrome/browser/extensions/api/passwords_private/passwords_private_apitest.cc
@@ -15,7 +15,7 @@
 #include "base/memory/raw_ptr.h"
 #include "base/numerics/safe_conversions.h"
 #include "base/observer_list.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/time/time.h"
 #include "build/build_config.h"
diff --git a/chrome/browser/extensions/api/passwords_private/passwords_private_delegate.h b/chrome/browser/extensions/api/passwords_private/passwords_private_delegate.h
index 1fcd9fa..7e5573e 100644
--- a/chrome/browser/extensions/api/passwords_private/passwords_private_delegate.h
+++ b/chrome/browser/extensions/api/passwords_private/passwords_private_delegate.h
@@ -13,7 +13,7 @@
 #include "base/functional/callback.h"
 #include "base/memory/scoped_refptr.h"
 #include "base/memory/weak_ptr.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "chrome/common/extensions/api/passwords_private.h"
 #include "components/password_manager/core/browser/export/export_progress_status.h"
 #include "components/password_manager/core/browser/import/import_results.h"
diff --git a/chrome/browser/extensions/api/pdf_viewer_private/BUILD.gn b/chrome/browser/extensions/api/pdf_viewer_private/BUILD.gn
index a2dc953..31ccaa28 100644
--- a/chrome/browser/extensions/api/pdf_viewer_private/BUILD.gn
+++ b/chrome/browser/extensions/api/pdf_viewer_private/BUILD.gn
@@ -17,6 +17,7 @@
 
   deps = [
     "//base",
+    "//chrome/browser/pdf",
     "//chrome/browser/pdf:pdf_pref_names",
     "//chrome/browser/profiles:profile",
     "//chrome/common:constants",
diff --git a/chrome/browser/extensions/api/pdf_viewer_private/pdf_viewer_private_api.cc b/chrome/browser/extensions/api/pdf_viewer_private/pdf_viewer_private_api.cc
index 8d3c746..228f639 100644
--- a/chrome/browser/extensions/api/pdf_viewer_private/pdf_viewer_private_api.cc
+++ b/chrome/browser/extensions/api/pdf_viewer_private/pdf_viewer_private_api.cc
@@ -4,12 +4,18 @@
 
 #include "chrome/browser/extensions/api/pdf_viewer_private/pdf_viewer_private_api.h"
 
+#include <cmath>
+
+#include "base/memory/weak_ptr.h"
+#include "base/numerics/safe_conversions.h"
 #include "base/values.h"
 #include "chrome/browser/pdf/pdf_pref_names.h"
+#include "chrome/browser/pdf/pdf_viewer_stream_manager.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/common/extensions/api/pdf_viewer_private.h"
 #include "chrome/common/pref_names.h"
 #include "components/prefs/pref_service.h"
+#include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h"
 #include "url/url_constants.h"
 
 namespace extensions {
@@ -21,6 +27,9 @@
 
 namespace SetPdfOcrPref = api::pdf_viewer_private::SetPdfOcrPref;
 
+namespace SetPdfPluginAttributes =
+    api::pdf_viewer_private::SetPdfPluginAttributes;
+
 // Check if the current URL is allowed based on a list of allowlisted domains.
 bool IsUrlAllowedToEmbedLocalFiles(
     const GURL& current_url,
@@ -42,8 +51,47 @@
   return false;
 }
 
+// Get the `StreamContainer` associated with the `extension_host`.
+base::WeakPtr<StreamContainer> GetStreamContainer(
+    content::RenderFrameHost* extension_host) {
+  content::RenderFrameHost* embedder_host = extension_host->GetParent();
+  if (!embedder_host) {
+    return nullptr;
+  }
+
+  auto* pdf_viewer_stream_manager =
+      pdf::PdfViewerStreamManager::FromWebContents(
+          content::WebContents::FromRenderFrameHost(embedder_host));
+  if (!pdf_viewer_stream_manager) {
+    return nullptr;
+  }
+
+  return pdf_viewer_stream_manager->GetStreamContainer(embedder_host);
+}
+
 }  // namespace
 
+PdfViewerPrivateGetStreamInfoFunction::PdfViewerPrivateGetStreamInfoFunction() =
+    default;
+
+PdfViewerPrivateGetStreamInfoFunction::
+    ~PdfViewerPrivateGetStreamInfoFunction() = default;
+
+ExtensionFunction::ResponseAction PdfViewerPrivateGetStreamInfoFunction::Run() {
+  base::WeakPtr<StreamContainer> stream =
+      GetStreamContainer(render_frame_host());
+  if (!stream) {
+    return RespondNow(Error("Failed to get StreamContainer"));
+  }
+
+  api::pdf_viewer_private::StreamInfo stream_info;
+  stream_info.original_url = stream->original_url().spec();
+  stream_info.stream_url = stream->stream_url().spec();
+  stream_info.tab_id = stream->tab_id();
+  stream_info.embedded = stream->embedded();
+  return RespondNow(WithArguments(stream_info.ToValue()));
+}
+
 PdfViewerPrivateIsAllowedLocalFileAccessFunction::
     PdfViewerPrivateIsAllowedLocalFileAccessFunction() = default;
 
@@ -115,4 +163,42 @@
   return RespondNow(WithArguments(true));
 }
 
+PdfViewerPrivateSetPdfPluginAttributesFunction::
+    PdfViewerPrivateSetPdfPluginAttributesFunction() = default;
+
+PdfViewerPrivateSetPdfPluginAttributesFunction::
+    ~PdfViewerPrivateSetPdfPluginAttributesFunction() = default;
+
+ExtensionFunction::ResponseAction
+PdfViewerPrivateSetPdfPluginAttributesFunction::Run() {
+  absl::optional<SetPdfPluginAttributes::Params> params =
+      SetPdfPluginAttributes::Params::Create(args());
+  EXTENSION_FUNCTION_VALIDATE(params);
+
+  base::WeakPtr<StreamContainer> stream =
+      GetStreamContainer(render_frame_host());
+  if (!stream) {
+    return RespondNow(Error("Failed to get StreamContainer"));
+  }
+
+  const api::pdf_viewer_private::PdfPluginAttributes& attributes =
+      params->attributes;
+  // Check the `background_color` is an integer.
+  double whole = 0.0;
+  if (std::modf(attributes.background_color, &whole) != 0.0) {
+    return RespondNow(Error("Background color is not an integer"));
+  }
+
+  // Check the `background_color` is within the range of a uint32_t.
+  if (!base::IsValueInRangeForNumericType<uint32_t>(
+          attributes.background_color)) {
+    return RespondNow(Error("Background color out of bounds"));
+  }
+
+  stream->set_pdf_plugin_attributes(mime_handler::PdfPluginAttributes::New(
+      /*background_color=*/attributes.background_color,
+      /*allow_javascript=*/attributes.allow_javascript));
+  return RespondNow(NoArguments());
+}
+
 }  // namespace extensions
diff --git a/chrome/browser/extensions/api/pdf_viewer_private/pdf_viewer_private_api.h b/chrome/browser/extensions/api/pdf_viewer_private/pdf_viewer_private_api.h
index aa7105d..e6d2694a0 100644
--- a/chrome/browser/extensions/api/pdf_viewer_private/pdf_viewer_private_api.h
+++ b/chrome/browser/extensions/api/pdf_viewer_private/pdf_viewer_private_api.h
@@ -9,6 +9,24 @@
 
 namespace extensions {
 
+class PdfViewerPrivateGetStreamInfoFunction : public ExtensionFunction {
+ public:
+  DECLARE_EXTENSION_FUNCTION("pdfViewerPrivate.getStreamInfo",
+                             PDFVIEWERPRIVATE_GETSTREAMINFO)
+
+  PdfViewerPrivateGetStreamInfoFunction();
+  PdfViewerPrivateGetStreamInfoFunction(
+      const PdfViewerPrivateGetStreamInfoFunction&) = delete;
+  PdfViewerPrivateGetStreamInfoFunction& operator=(
+      const PdfViewerPrivateGetStreamInfoFunction&) = delete;
+
+ protected:
+  ~PdfViewerPrivateGetStreamInfoFunction() override;
+
+  // Override from ExtensionFunction:
+  ResponseAction Run() override;
+};
+
 class PdfViewerPrivateIsAllowedLocalFileAccessFunction
     : public ExtensionFunction {
  public:
@@ -64,6 +82,25 @@
   ResponseAction Run() override;
 };
 
+class PdfViewerPrivateSetPdfPluginAttributesFunction
+    : public ExtensionFunction {
+ public:
+  DECLARE_EXTENSION_FUNCTION("pdfViewerPrivate.setPdfPluginAttributes",
+                             PDFVIEWERPRIVATE_SETPDFPLUGINATTRIBUTES)
+
+  PdfViewerPrivateSetPdfPluginAttributesFunction();
+  PdfViewerPrivateSetPdfPluginAttributesFunction(
+      const PdfViewerPrivateSetPdfPluginAttributesFunction&) = delete;
+  PdfViewerPrivateSetPdfPluginAttributesFunction& operator=(
+      const PdfViewerPrivateSetPdfPluginAttributesFunction&) = delete;
+
+ protected:
+  ~PdfViewerPrivateSetPdfPluginAttributesFunction() override;
+
+  // Override from ExtensionFunction:
+  ResponseAction Run() override;
+};
+
 }  // namespace extensions
 
 #endif  // CHROME_BROWSER_EXTENSIONS_API_PDF_VIEWER_PRIVATE_PDF_VIEWER_PRIVATE_API_H_
diff --git a/chrome/browser/extensions/api/pdf_viewer_private/pdf_viewer_private_api_unittest.cc b/chrome/browser/extensions/api/pdf_viewer_private/pdf_viewer_private_api_unittest.cc
new file mode 100644
index 0000000..f9e96d2
--- /dev/null
+++ b/chrome/browser/extensions/api/pdf_viewer_private/pdf_viewer_private_api_unittest.cc
@@ -0,0 +1,268 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/extensions/api/pdf_viewer_private/pdf_viewer_private_api.h"
+
+#include "base/memory/raw_ptr.h"
+#include "base/memory/scoped_refptr.h"
+#include "base/memory/weak_ptr.h"
+#include "base/test/values_test_util.h"
+#include "chrome/browser/extensions/extension_service_test_base.h"
+#include "chrome/browser/pdf/pdf_test_util.h"
+#include "chrome/browser/pdf/pdf_viewer_stream_manager.h"
+#include "chrome/test/base/chrome_render_view_host_test_harness.h"
+#include "content/public/test/navigation_simulator.h"
+#include "extensions/browser/api_test_utils.h"
+#include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
+
+namespace extensions {
+
+namespace {
+
+constexpr char kSampleSetPdfPluginAttributesArgs[] = R"([{
+  "backgroundColor": 10.0,
+  "allowJavascript": false,
+}])";
+
+}  // namespace
+
+class PdfViewerPrivateApiUnitTest : public ChromeRenderViewHostTestHarness {
+ public:
+  PdfViewerPrivateApiUnitTest() = default;
+
+  PdfViewerPrivateApiUnitTest(const PdfViewerPrivateApiUnitTest&) = delete;
+  PdfViewerPrivateApiUnitTest& operator=(const PdfViewerPrivateApiUnitTest&) =
+      delete;
+
+  ~PdfViewerPrivateApiUnitTest() override = default;
+
+ protected:
+  void SetUp() override {
+    ChromeRenderViewHostTestHarness::SetUp();
+    pdf::PdfViewerStreamManager::CreateForWebContents(web_contents());
+
+    // For testing purposes, `main_rfh()` represents the extension's
+    // embedder's frame host, while `extension_host` represents the
+    // extension's frame host. The embedder's frame host is the parent of the
+    // extension's frame host.
+    auto* main_host_tester = content::RenderFrameHostTester::For(main_rfh());
+    main_host_tester->InitializeRenderFrameIfNeeded();
+    extension_host_ = main_host_tester->AppendChild("extension_host");
+  }
+
+  void TearDown() override {
+    extension_host_ = nullptr;
+    web_contents()->RemoveUserData(pdf::PdfViewerStreamManager::UserDataKey());
+    ChromeRenderViewHostTestHarness::TearDown();
+  }
+
+  pdf::PdfViewerStreamManager* pdf_viewer_stream_manager() {
+    return pdf::PdfViewerStreamManager::FromWebContents(web_contents());
+  }
+
+  content::RenderFrameHost* extension_host() { return extension_host_; }
+
+  // Create a claimed stream container in `pdf::PdfViewerStreamManager`. This
+  // updates `extension_host_`, since the navigation deletes the embedder frame
+  // host's child frame hosts.
+  void CreateAndClaimStreamContainer() {
+    extension_host_ = nullptr;
+
+    content::RenderFrameHost* embedder_host =
+        content::NavigationSimulator::NavigateAndCommitFromDocument(
+            GURL("https://original_url1"), main_rfh());
+    pdf::PdfViewerStreamManager::CreateForWebContents(web_contents());
+
+    auto* manager = pdf_viewer_stream_manager();
+    manager->AddStreamContainer(
+        embedder_host->GetFrameTreeNodeId(),
+        pdf_test_util::GenerateSampleStreamContainer(1));
+    manager->ClaimStreamInfoForTesting(embedder_host);
+
+    // After navigation, the extension host needs to be appended again.
+    auto* embedder_host_tester =
+        content::RenderFrameHostTester::For(embedder_host);
+    embedder_host_tester->InitializeRenderFrameIfNeeded();
+    extension_host_ = embedder_host_tester->AppendChild("extension_host");
+  }
+
+ private:
+  raw_ptr<content::RenderFrameHost> extension_host_ = nullptr;
+};
+
+// Getting the stream info should fail if there isn't an embedder host.
+TEST_F(PdfViewerPrivateApiUnitTest, GetStreamInfoNoEmbedderHost) {
+  auto function = base::MakeRefCounted<PdfViewerPrivateGetStreamInfoFunction>();
+  function->SetRenderFrameHost(main_rfh());
+
+  EXPECT_EQ("Failed to get StreamContainer",
+            api_test_utils::RunFunctionAndReturnError(function.get(), "[]",
+                                                      profile()));
+}
+
+// Getting the stream info should fail if there isn't an existing stream
+// container.
+TEST_F(PdfViewerPrivateApiUnitTest, GetStreamInfoNoStreamContainer) {
+  auto function = base::MakeRefCounted<PdfViewerPrivateGetStreamInfoFunction>();
+  function->SetRenderFrameHost(extension_host());
+
+  EXPECT_EQ("Failed to get StreamContainer",
+            api_test_utils::RunFunctionAndReturnError(function.get(), "[]",
+                                                      profile()));
+}
+
+// Succeed in getting the stream info if there's an existing stream container.
+TEST_F(PdfViewerPrivateApiUnitTest, GetStreamInfoValid) {
+  constexpr char kExpectedStreamInfo[] = R"({
+    "embedded": true,
+    "originalUrl": "https://original_url1/",
+    "streamUrl": "stream://url1",
+    "tabId": 1
+  })";
+
+  CreateAndClaimStreamContainer();
+
+  auto function = base::MakeRefCounted<PdfViewerPrivateGetStreamInfoFunction>();
+  function->SetRenderFrameHost(extension_host());
+
+  absl::optional<base::Value> result =
+      api_test_utils::RunFunctionAndReturnSingleResult(function.get(), "[]",
+                                                       profile());
+  ASSERT_TRUE(result);
+  base::Value::Dict* result_dict = result->GetIfDict();
+  ASSERT_TRUE(result_dict);
+
+  EXPECT_THAT(*result_dict, base::test::IsJson(kExpectedStreamInfo));
+}
+
+// Getting the stream info should fail if there isn't an embedder host.
+TEST_F(PdfViewerPrivateApiUnitTest, SetPdfPluginAttributesNoEmbedderHost) {
+  auto function =
+      base::MakeRefCounted<PdfViewerPrivateSetPdfPluginAttributesFunction>();
+  function->SetRenderFrameHost(main_rfh());
+
+  EXPECT_EQ("Failed to get StreamContainer",
+            api_test_utils::RunFunctionAndReturnError(
+                function.get(), kSampleSetPdfPluginAttributesArgs, profile()));
+}
+
+// Setting PDF plugin attributes should fail if there isn't an existing stream
+// container.
+TEST_F(PdfViewerPrivateApiUnitTest, SetPdfPluginAttributesNoStreamContainer) {
+  auto function =
+      base::MakeRefCounted<PdfViewerPrivateSetPdfPluginAttributesFunction>();
+  function->SetRenderFrameHost(extension_host());
+
+  EXPECT_EQ("Failed to get StreamContainer",
+            api_test_utils::RunFunctionAndReturnError(
+                function.get(), kSampleSetPdfPluginAttributesArgs, profile()));
+}
+
+// Succeed in setting PDF plugin attributes if there's an existing stream
+// container.
+TEST_F(PdfViewerPrivateApiUnitTest, SetPdfPluginAttributesValid) {
+  CreateAndClaimStreamContainer();
+
+  auto function =
+      base::MakeRefCounted<PdfViewerPrivateSetPdfPluginAttributesFunction>();
+  function->SetRenderFrameHost(extension_host());
+
+  ASSERT_TRUE(api_test_utils::RunFunction(
+      function.get(), kSampleSetPdfPluginAttributesArgs, profile()));
+
+  base::WeakPtr<StreamContainer> stream =
+      pdf_viewer_stream_manager()->GetStreamContainer(main_rfh());
+  ASSERT_TRUE(stream);
+  auto& attributes = stream->pdf_plugin_attributes();
+  EXPECT_EQ(attributes->background_color, 10);
+  EXPECT_FALSE(attributes->allow_javascript);
+}
+
+// Succeed in setting PDF plugin attributes with JavaScript allowed.
+TEST_F(PdfViewerPrivateApiUnitTest,
+       SetPdfPluginAttributesValidAllowJavaScript) {
+  constexpr char kSetPdfPluginAttributesArgs[] = R"([{
+    "backgroundColor": 500.0,
+    "allowJavascript": true,
+  }])";
+
+  CreateAndClaimStreamContainer();
+
+  auto function =
+      base::MakeRefCounted<PdfViewerPrivateSetPdfPluginAttributesFunction>();
+  function->SetRenderFrameHost(extension_host());
+
+  ASSERT_TRUE(api_test_utils::RunFunction(
+      function.get(), kSetPdfPluginAttributesArgs, profile()));
+
+  base::WeakPtr<StreamContainer> stream =
+      pdf_viewer_stream_manager()->GetStreamContainer(main_rfh());
+  ASSERT_TRUE(stream);
+  auto& attributes = stream->pdf_plugin_attributes();
+  ASSERT_TRUE(attributes);
+  EXPECT_EQ(attributes->background_color, 500);
+  EXPECT_TRUE(attributes->allow_javascript);
+}
+
+// Fail to set the PDF plugin attributes if the background color is not an
+// integer.
+TEST_F(PdfViewerPrivateApiUnitTest,
+       SetPdfPluginAttributesBackgroundColorInvalidInteger) {
+  constexpr char kSetPdfPluginAttributesArgs[] = R"([{
+    "backgroundColor": 10.1,
+    "allowJavascript": false,
+  }])";
+
+  CreateAndClaimStreamContainer();
+
+  auto function =
+      base::MakeRefCounted<PdfViewerPrivateSetPdfPluginAttributesFunction>();
+  function->SetRenderFrameHost(extension_host());
+
+  EXPECT_EQ("Background color is not an integer",
+            api_test_utils::RunFunctionAndReturnError(
+                function.get(), kSetPdfPluginAttributesArgs, profile()));
+}
+
+// Fail to set the PDF plugin attributes if the background color is negative.
+TEST_F(PdfViewerPrivateApiUnitTest,
+       SetPdfPluginAttributesBackgroundColorNegative) {
+  constexpr char kSetPdfPluginAttributesArgs[] = R"([{
+    "backgroundColor": -10.0,
+    "allowJavascript": false,
+  }])";
+
+  CreateAndClaimStreamContainer();
+
+  auto function =
+      base::MakeRefCounted<PdfViewerPrivateSetPdfPluginAttributesFunction>();
+  function->SetRenderFrameHost(extension_host());
+
+  EXPECT_EQ("Background color out of bounds",
+            api_test_utils::RunFunctionAndReturnError(
+                function.get(), kSetPdfPluginAttributesArgs, profile()));
+}
+
+// Fail to set the PDF plugin attributes if the background color isn't within
+// range of a uint32_t.
+TEST_F(PdfViewerPrivateApiUnitTest,
+       SetPdfPluginAttributesBackgroundColorUpperBound) {
+  constexpr char kSetPdfPluginAttributesArgs[] = R"([{
+    "backgroundColor": 4294967296.0,
+    "allowJavascript": false,
+  }])";
+
+  CreateAndClaimStreamContainer();
+
+  auto function =
+      base::MakeRefCounted<PdfViewerPrivateSetPdfPluginAttributesFunction>();
+  function->SetRenderFrameHost(extension_host());
+
+  EXPECT_EQ("Background color out of bounds",
+            api_test_utils::RunFunctionAndReturnError(
+                function.get(), kSetPdfPluginAttributesArgs, profile()));
+}
+
+}  // namespace extensions
diff --git a/chrome/browser/extensions/api/quick_unlock_private/quick_unlock_private_api_unittest.cc b/chrome/browser/extensions/api/quick_unlock_private/quick_unlock_private_api_unittest.cc
index 4034b2e..c2d3098 100644
--- a/chrome/browser/extensions/api/quick_unlock_private/quick_unlock_private_api_unittest.cc
+++ b/chrome/browser/extensions/api/quick_unlock_private/quick_unlock_private_api_unittest.cc
@@ -19,7 +19,7 @@
 #include "base/no_destructor.h"
 #include "base/run_loop.h"
 #include "base/strings/strcat.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/test/bind.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
diff --git a/chrome/browser/extensions/api/side_panel/side_panel_service.cc b/chrome/browser/extensions/api/side_panel/side_panel_service.cc
index f9f0449c..d23a333 100644
--- a/chrome/browser/extensions/api/side_panel/side_panel_service.cc
+++ b/chrome/browser/extensions/api/side_panel/side_panel_service.cc
@@ -12,6 +12,7 @@
 #include "chrome/browser/extensions/extension_tab_util.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/extensions/extension_side_panel_utils.h"
+#include "chrome/browser/ui/ui_features.h"
 #include "chrome/common/extensions/api/side_panel.h"
 #include "chrome/common/extensions/api/side_panel/side_panel_info.h"
 #include "components/sessions/core/session_id.h"
@@ -68,6 +69,23 @@
     return false;
   }
 
+  return HasSidePanelAvailableForTab(extension, tab_id);
+}
+
+bool SidePanelService::HasSidePanelContextMenuActionForTab(
+    const Extension& extension,
+    TabId tab_id) {
+  if (!base::FeatureList::IsEnabled(features::kSidePanelPinning) ||
+      !base::FeatureList::IsEnabled(
+          extensions_features::kExtensionSidePanelIntegration)) {
+    return false;
+  }
+
+  return HasSidePanelAvailableForTab(extension, tab_id);
+}
+
+bool SidePanelService::HasSidePanelAvailableForTab(const Extension& extension,
+                                                   TabId tab_id) {
   api::side_panel::PanelOptions options = GetOptions(extension, tab_id);
   return options.enabled.has_value() && *options.enabled &&
          options.path.has_value();
diff --git a/chrome/browser/extensions/api/side_panel/side_panel_service.h b/chrome/browser/extensions/api/side_panel/side_panel_service.h
index 2cd54dd1..b101bc7 100644
--- a/chrome/browser/extensions/api/side_panel/side_panel_service.h
+++ b/chrome/browser/extensions/api/side_panel/side_panel_service.h
@@ -52,6 +52,11 @@
   // `extension` and `tab_id`.
   bool HasSidePanelActionForTab(const Extension& extension, TabId tab_id);
 
+  // Returns if there is an action to toggle the side panel from the extension
+  // context menu for the given `extension` and `tab_id`.
+  bool HasSidePanelContextMenuActionForTab(const Extension& extension,
+                                           TabId tab_id);
+
   // Get options for `tab_id`. Options are loaded in order first from service
   // storage, manifest, or an empty object will be returned, if they're unset.
   api::side_panel::PanelOptions GetOptions(const Extension& extension,
@@ -122,6 +127,9 @@
   static const bool kServiceRedirectedInIncognito = true;
   static const bool kServiceIsNULLWhileTesting = true;
 
+  // Returns if there is an extension side panel for `tab_id`.
+  bool HasSidePanelAvailableForTab(const Extension& extension, TabId tab_id);
+
   // Remove extension id and associated options from `panels_`.
   void RemoveExtensionOptions(const ExtensionId& id);
 
diff --git a/chrome/browser/extensions/extension_apitest.h b/chrome/browser/extensions/extension_apitest.h
index ba7faa2..16ac7eb8 100644
--- a/chrome/browser/extensions/extension_apitest.h
+++ b/chrome/browser/extensions/extension_apitest.h
@@ -7,7 +7,7 @@
 
 #include <string>
 
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/values.h"
 #include "chrome/browser/extensions/extension_browsertest.h"
 #include "net/test/spawned_test_server/spawned_test_server.h"
diff --git a/chrome/browser/extensions/extension_context_menu_model.cc b/chrome/browser/extensions/extension_context_menu_model.cc
index ded6305c..96ca28f 100644
--- a/chrome/browser/extensions/extension_context_menu_model.cc
+++ b/chrome/browser/extensions/extension_context_menu_model.cc
@@ -14,6 +14,7 @@
 #include "base/metrics/user_metrics_action.h"
 #include "base/notreached.h"
 #include "base/strings/utf_string_conversions.h"
+#include "chrome/browser/extensions/api/side_panel/side_panel_service.h"
 #include "chrome/browser/extensions/chrome_extension_browser_constants.h"
 #include "chrome/browser/extensions/context_menu_matcher.h"
 #include "chrome/browser/extensions/extension_management.h"
@@ -26,8 +27,14 @@
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_window.h"
 #include "chrome/browser/ui/chrome_pages.h"
+#include "chrome/browser/ui/extensions/extension_side_panel_utils.h"
+#include "chrome/browser/ui/side_panel/side_panel_entry_id.h"
+#include "chrome/browser/ui/side_panel/side_panel_entry_key.h"
+#include "chrome/browser/ui/side_panel/side_panel_ui.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
 #include "chrome/browser/ui/toolbar/toolbar_actions_model.h"
+#include "chrome/browser/ui/ui_features.h"
+#include "chrome/common/extensions/api/side_panel.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/grit/branded_strings.h"
 #include "chrome/grit/generated_resources.h"
@@ -48,6 +55,8 @@
 #include "extensions/common/extension_features.h"
 #include "extensions/common/manifest_handlers/options_page_info.h"
 #include "extensions/common/manifest_url_handlers.h"
+#include "extensions/common/permissions/api_permission.h"
+#include "extensions/common/permissions/permissions_data.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/models/image_model.h"
 #include "ui/base/models/menu_separator_types.h"
@@ -125,6 +134,8 @@
       return ContextMenuAction::kToggleVisibility;
     case ExtensionContextMenuModel::UNINSTALL:
       return ContextMenuAction::kUninstall;
+    case ExtensionContextMenuModel::TOGGLE_SIDE_PANEL_VISIBILITY:
+      return ContextMenuAction::kToggleSidePanelVisibility;
     case ExtensionContextMenuModel::MANAGE_EXTENSIONS:
       return ContextMenuAction::kManageExtensions;
     case ExtensionContextMenuModel::INSPECT_POPUP:
@@ -342,6 +353,10 @@
       // Uninstall is always enabled since it will only be visible when the
       // extension can be removed.
       return true;
+    case TOGGLE_SIDE_PANEL_VISIBILITY:
+      // This option is always enabled since it will only be visible when the
+      // extension provides a side panel.
+      return true;
     case POLICY_INSTALLED:
       // This option is always disabled since user cannot remove a policy
       // installed extension.
@@ -412,6 +427,21 @@
       UninstallDialogHelper::UninstallExtension(browser_, extension);
       break;
     }
+    case TOGGLE_SIDE_PANEL_VISIBILITY: {
+      SidePanelService* const side_panel_service = GetSidePanelService();
+      CHECK(side_panel_service);
+
+      // The state of the tab could have changed since we opened the context
+      // menu. This check ensures that the extension has a valid side panel it
+      // can open for `tab_id`.
+      int tab_id = ExtensionTabUtil::GetTabId(GetActiveWebContents());
+      if (side_panel_service->HasSidePanelContextMenuActionForTab(*extension,
+                                                                  tab_id)) {
+        extensions::side_panel_util::ToggleExtensionSidePanel(browser_,
+                                                              extension->id());
+      }
+      break;
+    }
     case MANAGE_EXTENSIONS: {
       chrome::ShowExtensions(browser_, extension->id());
       break;
@@ -630,6 +660,8 @@
     AddItemWithStringId(UNINSTALL, IDS_EXTENSIONS_UNINSTALL);
   }
 
+  AddSidePanelEntryIfPresent(*extension);
+
   // Settings section.
   if (!is_component_) {
     AddSeparator(ui::NORMAL_SEPARATOR);
@@ -710,6 +742,8 @@
     }
   }
 
+  AddSidePanelEntryIfPresent(*extension);
+
   if (!is_component_) {
     AddSeparator(ui::NORMAL_SEPARATOR);
     AddItemWithStringId(MANAGE_EXTENSIONS, IDS_MANAGE_EXTENSION);
@@ -724,6 +758,35 @@
   }
 }
 
+void ExtensionContextMenuModel::AddSidePanelEntryIfPresent(
+    const Extension& extension) {
+  if (!base::FeatureList::IsEnabled(features::kSidePanelPinning) ||
+      !extension.permissions_data()->HasAPIPermission(
+          mojom::APIPermissionID::kSidePanel)) {
+    return;
+  }
+
+  SidePanelService* const side_panel_service = GetSidePanelService();
+  CHECK(side_panel_service);
+
+  int tab_id = ExtensionTabUtil::GetTabId(GetActiveWebContents());
+  if (!side_panel_service->HasSidePanelContextMenuActionForTab(extension,
+                                                               tab_id)) {
+    return;
+  }
+
+  AddSeparator(ui::NORMAL_SEPARATOR);
+  SidePanelUI* const side_panel_ui =
+      SidePanelUI::GetSidePanelUIForBrowser(browser_);
+  CHECK(side_panel_ui);
+  bool is_side_panel_open = side_panel_ui->IsSidePanelEntryShowing(
+      SidePanelEntryKey(SidePanelEntryId::kExtension, extension.id()));
+  AddItemWithStringId(TOGGLE_SIDE_PANEL_VISIBILITY,
+                      is_side_panel_open
+                          ? IDS_EXTENSIONS_SUBMENU_CLOSE_SIDE_PANEL_ITEM
+                          : IDS_EXTENSIONS_SUBMENU_OPEN_SIDE_PANEL_ITEM);
+}
+
 const Extension* ExtensionContextMenuModel::GetExtension() const {
   return ExtensionRegistry::Get(profile_)->enabled_extensions().GetByID(
       extension_id_);
@@ -797,4 +860,8 @@
   return browser_->tab_strip_model()->GetActiveWebContents();
 }
 
+SidePanelService* ExtensionContextMenuModel::GetSidePanelService() const {
+  return SidePanelService::Get(profile_);
+}
+
 }  // namespace extensions
diff --git a/chrome/browser/extensions/extension_context_menu_model.h b/chrome/browser/extensions/extension_context_menu_model.h
index 66138f9..2d185d5 100644
--- a/chrome/browser/extensions/extension_context_menu_model.h
+++ b/chrome/browser/extensions/extension_context_menu_model.h
@@ -25,6 +25,7 @@
 class ContextMenuMatcher;
 class Extension;
 class ExtensionAction;
+class SidePanelService;
 
 // The context menu model for extension icons.
 class ExtensionContextMenuModel : public ui::SimpleMenuModel,
@@ -48,6 +49,7 @@
     PAGE_ACCESS_PERMISSIONS_PAGE,
     VIEW_WEB_PERMISSIONS,
     POLICY_INSTALLED,
+    TOGGLE_SIDE_PANEL_VISIBILITY,
     // NOTE: If you update this, you probably need to update the
     // ContextMenuAction enum below.
   };
@@ -75,7 +77,10 @@
     kPageAccessPermissionsPage = 12,
     kViewWebPermissions = 13,
     kPolicyInstalled = 14,
-    kMaxValue = kPolicyInstalled,
+    kToggleSidePanelVisibility = 15,
+    kMaxValue = kToggleSidePanelVisibility,
+    // NOTE: Please update ExtensionContextMenuAction in enums.xml if you modify
+    // this enum.
   };
 
   // Location where the context menu is open from.
@@ -141,9 +146,16 @@
   // Returns the active web contents.
   content::WebContents* GetActiveWebContents() const;
 
+  // Returns the side panel service for the current profile.
+  SidePanelService* GetSidePanelService() const;
+
   // Appends the extension's context menu items.
   void AppendExtensionItems();
 
+  // Appends the side panel menu item to the context menu if `extension` has one
+  // it can open.
+  void AddSidePanelEntryIfPresent(const Extension& extension);
+
   // A copy of the extension's id.
   ExtensionId extension_id_;
 
diff --git a/chrome/browser/extensions/extension_webui_apitest.cc b/chrome/browser/extensions/extension_webui_apitest.cc
index 33f5dc8..6e3c2c0 100644
--- a/chrome/browser/extensions/extension_webui_apitest.cc
+++ b/chrome/browser/extensions/extension_webui_apitest.cc
@@ -13,10 +13,10 @@
 #include "chrome/browser/extensions/extension_apitest.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
-#include "chrome/browser/ui/webui/test_data_source.h"
 #include "chrome/common/chrome_paths.h"
 #include "chrome/common/webui_url_constants.h"
 #include "chrome/test/base/ui_test_utils.h"
+#include "chrome/test/base/web_ui_test_data_source.h"
 #include "components/guest_view/browser/guest_view_base.h"
 #include "components/guest_view/browser/guest_view_manager_delegate.h"
 #include "components/guest_view/browser/test_guest_view_manager.h"
@@ -31,6 +31,7 @@
 #include "extensions/common/extension.h"
 #include "extensions/test/extension_test_message_listener.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "ui/base/resource/resource_bundle.h"
 
 namespace extensions {
 
@@ -385,13 +386,30 @@
   ASSERT_TRUE(create_failed_listener.WaitUntilSatisfied());
 }
 
+class ExtensionWebUIListenersTest : public ExtensionWebUITest {
+ public:
+  void SetUpOnMainThread() override {
+    ExtensionWebUITest::SetUpOnMainThread();
+
+    // Load browser_tests.pak.
+    base::FilePath pak_path;
+    ASSERT_TRUE(base::PathService::Get(base::DIR_ASSETS, &pak_path));
+    pak_path = pak_path.AppendASCII("browser_tests.pak");
+    ui::ResourceBundle::GetSharedInstance().AddDataPackFromPath(
+        pak_path, ui::kScaleFactorNone);
+    // Register the chrome://webui-test data source.
+    webui::CreateAndAddWebUITestDataSource(profile());
+  }
+};
+
 // Tests crbug.com/1253745 where adding and removing listeners in a WebUI frame
 // causes all listeners to be removed.
-IN_PROC_BROWSER_TEST_F(ExtensionWebUITest, MultipleURLListeners) {
-  content::URLDataSource::Add(profile(),
-                              std::make_unique<TestDataSource>("extensions"));
-  EXPECT_TRUE(ui_test_utils::NavigateToURL(browser(),
-                                           GURL("chrome://test/body1.html")));
+IN_PROC_BROWSER_TEST_F(ExtensionWebUIListenersTest, MultipleURLListeners) {
+  // Use the same URL both for the parent and child frames for convenience.
+  // These could be different WebUI URLs.
+  GURL test_url("chrome://webui-test/whats_new/test.html");
+
+  EXPECT_TRUE(ui_test_utils::NavigateToURL(browser(), test_url));
   content::WebContents* web_contents =
       browser()->tab_strip_model()->GetActiveWebContents();
   content::RenderFrameHost* main_frame = web_contents->GetPrimaryMainFrame();
@@ -403,7 +421,7 @@
       var listener = e => {};
       chrome.test.onMessage.addListener(listener);
       const iframe = document.createElement('iframe');
-      iframe.src = 'chrome://test/body2.html';
+      iframe.src = 'chrome://webui-test/whats_new/test.html';
       document.body.appendChild(iframe);
   )"));
   EXPECT_TRUE(event_router->HasEventListener("test.onMessage"));
@@ -411,8 +429,7 @@
 
   // Add and remove the listener in the child frame.
   content::RenderFrameHost* child_frame = ChildFrameAt(main_frame, 0);
-  EXPECT_EQ(GURL("chrome://test/body2.html"),
-            child_frame->GetLastCommittedURL());
+  EXPECT_EQ(test_url, child_frame->GetLastCommittedURL());
   EXPECT_TRUE(content::ExecJs(child_frame, R"(
       const listener = e => {};
       chrome.test.onMessage.addListener(listener);
diff --git a/chrome/browser/feed/feed_service_factory.h b/chrome/browser/feed/feed_service_factory.h
index f99110a..a149be1 100644
--- a/chrome/browser/feed/feed_service_factory.h
+++ b/chrome/browser/feed/feed_service_factory.h
@@ -6,7 +6,7 @@
 #define CHROME_BROWSER_FEED_FEED_SERVICE_FACTORY_H_
 
 #include "base/no_destructor.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "chrome/browser/profiles/profile_keyed_service_factory.h"
 
 namespace content {
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 86c94815..120c66e 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -663,6 +663,11 @@
     "expiry_milestone": 120
   },
   {
+    "name": "autofill-enable-vcn-enroll-loading-and-confirmation",
+    "owners": [ "kavitasoni@chromium.org", "chrome-payments-team@google.com" ],
+    "expiry_milestone": 127
+  },
+  {
     "name": "autofill-enable-virtual-card-metadata",
     "owners": [ "siyua@chromium.org", "siashah@chromium.org"],
     "expiry_milestone": 120
@@ -979,7 +984,7 @@
   {
     "name": "canvas-2d-layers",
     "owners": [ "fserb@chromium.org", "jpgravel@chromium.org", "yiyix@chromium.org" ],
-    "expiry_milestone": 120
+    "expiry_milestone": 125
   },
   {
     "name": "canvas-oop-rasterization",
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 4b5340955..8f75019 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -547,6 +547,14 @@
     "When enabled, the user will see a new banner logo and text in the bubble "
     "offering to upload their cards to Google Pay.";
 
+const char kAutofillEnableVcnEnrollLoadingAndConfirmationName[] =
+    "Enable showing loading and confirmation screens for virtual card "
+    "enrollment";
+const char kAutofillEnableVcnEnrollLoadingAndConfirmationDescription[] =
+    "When enabled, the virtual card enrollment screen will present a loading "
+    "spinner while enrolling the card to the server and present a confirmation "
+    "screen with the result when completed.";
+
 const char kAutofillEnableVirtualCardMetadataName[] =
     "Enable showing metadata for virtual cards";
 const char kAutofillEnableVirtualCardMetadataDescription[] =
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 086fc94..861d284 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -325,6 +325,9 @@
 extern const char kAutofillEnableNewSaveCardBubbleUiName[];
 extern const char kAutofillEnableNewSaveCardBubbleUiDescription[];
 
+extern const char kAutofillEnableVcnEnrollLoadingAndConfirmationName[];
+extern const char kAutofillEnableVcnEnrollLoadingAndConfirmationDescription[];
+
 extern const char kAutofillEnableVirtualCardMetadataName[];
 extern const char kAutofillEnableVirtualCardMetadataDescription[];
 
diff --git a/chrome/browser/headless/headless_mode_protocol_browsertest.cc b/chrome/browser/headless/headless_mode_protocol_browsertest.cc
index bd797ef..22c24d8 100644
--- a/chrome/browser/headless/headless_mode_protocol_browsertest.cc
+++ b/chrome/browser/headless/headless_mode_protocol_browsertest.cc
@@ -275,11 +275,17 @@
                             "sanity/maximize-restore-window.js")
 HEADLESS_MODE_PROTOCOL_TEST(FullscreenRestoreWindow,
                             "sanity/fullscreen-restore-window.js")
-#endif  // !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_MAC)
+#endif  // !BUILDFLAG(IS_MAC)
 
 HEADLESS_MODE_PROTOCOL_TEST(MaximizedWindowSize,
                             "sanity/maximized-window-size.js")
 
+// This currently fails on Mac,see https://crbug.com/1500046
+#if !BUILDFLAG(IS_MAC)
+HEADLESS_MODE_PROTOCOL_TEST(FullscreenWindowSize,
+                            "sanity/fullscreen-window-size.js")
+#endif  // !BUILDFLAG(IS_MAC)
+
 HEADLESS_MODE_PROTOCOL_TEST(PrintToPdfTinyPage,
                             "sanity/print-to-pdf-tiny-page.js")
 
diff --git a/chrome/browser/headless/test/data/protocol/sanity/fullscreen-window-size-expected.txt b/chrome/browser/headless/test/data/protocol/sanity/fullscreen-window-size-expected.txt
new file mode 100644
index 0000000..668f2c0
--- /dev/null
+++ b/chrome/browser/headless/test/data/protocol/sanity/fullscreen-window-size-expected.txt
@@ -0,0 +1,2 @@
+Tests fullscreen browser window size.
+Success
\ No newline at end of file
diff --git a/chrome/browser/headless/test/data/protocol/sanity/fullscreen-window-size.js b/chrome/browser/headless/test/data/protocol/sanity/fullscreen-window-size.js
new file mode 100644
index 0000000..40735cb
--- /dev/null
+++ b/chrome/browser/headless/test/data/protocol/sanity/fullscreen-window-size.js
@@ -0,0 +1,34 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+(async function(testRunner) {
+  const {dp} =
+      await testRunner.startBlank(`Tests fullscreen browser window size.`);
+
+  await dp.Page.enable();
+
+  async function getWindowSize(windowId) {
+    const {result: {bounds}} = await dp.Browser.getWindowBounds({windowId});
+    return {width: bounds.width, height: bounds.height};
+  }
+
+  const {result: {windowId}} = await dp.Browser.getWindowForTarget();
+
+  const intialSize = await getWindowSize(windowId);
+
+  await dp.Browser.setWindowBounds(
+      {windowId, bounds: {windowState: 'fullscreen'}});
+  await dp.Page.onceFrameResized();
+
+  const fullscreenSize = await getWindowSize(windowId);
+  if (fullscreenSize.width > intialSize.width &&
+      fullscreenSize.height > intialSize.height) {
+    testRunner.log(`Success`);
+  } else {
+    testRunner.log(`Failure:`);
+    testRunner.log(intialSize);
+    testRunner.log(fullscreenSize);
+  }
+
+  testRunner.completeTest();
+})
diff --git a/chrome/browser/media_galleries/fileapi/mtp_file_stream_reader.cc b/chrome/browser/media_galleries/fileapi/mtp_file_stream_reader.cc
index 36bcd56..feb8ea88 100644
--- a/chrome/browser/media_galleries/fileapi/mtp_file_stream_reader.cc
+++ b/chrome/browser/media_galleries/fileapi/mtp_file_stream_reader.cc
@@ -60,7 +60,8 @@
       header_buf_len = buf_len;
     } else {
       // Otherwise, make a special request for the header.
-      header_buf = base::MakeRefCounted<net::IOBuffer>(net::kMaxBytesToSniff);
+      header_buf =
+          base::MakeRefCounted<net::IOBufferWithSize>(net::kMaxBytesToSniff);
       header_buf_len = net::kMaxBytesToSniff;
     }
 
diff --git a/chrome/browser/media_galleries/fileapi/readahead_file_stream_reader.cc b/chrome/browser/media_galleries/fileapi/readahead_file_stream_reader.cc
index e0be7293..b6c741a7 100644
--- a/chrome/browser/media_galleries/fileapi/readahead_file_stream_reader.cc
+++ b/chrome/browser/media_galleries/fileapi/readahead_file_stream_reader.cc
@@ -102,7 +102,7 @@
   source_has_pending_read_ = true;
 
   scoped_refptr<net::IOBuffer> buf =
-      base::MakeRefCounted<net::IOBuffer>(kBufferSize);
+      base::MakeRefCounted<net::IOBufferWithSize>(kBufferSize);
   int result = source_->Read(
       buf.get(), kBufferSize,
       base::BindOnce(&ReadaheadFileStreamReader::OnFinishReadFromSource,
diff --git a/chrome/browser/memory_details.cc b/chrome/browser/memory_details.cc
index 1cf8e88..73f5816d 100644
--- a/chrome/browser/memory_details.cc
+++ b/chrome/browser/memory_details.cc
@@ -325,14 +325,14 @@
       // instances whose primary main RenderFrameHosts are in `process`. Refine
       // our determination of the `process.renderer_type`, and record the page
       // titles.
-      render_process_host->ForEachRenderFrameHost(base::BindRepeating(
-          &UpdateProcessTypeAndTitles,
+      render_process_host->ForEachRenderFrameHost(
+          [&](content::RenderFrameHost* frame) {
+            UpdateProcessTypeAndTitles(
 #if BUILDFLAG(ENABLE_EXTENSIONS)
-          process_is_for_extensions ? extension_set : nullptr,
+                process_is_for_extensions ? extension_set : nullptr,
 #endif
-          // It is safe to use `std::ref` here, since `process` outlives this
-          // callback.
-          std::ref(process)));
+                process, frame);
+          });
     }
 
 #if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID)
diff --git a/chrome/browser/offline_pages/offline_page_request_handler.cc b/chrome/browser/offline_pages/offline_page_request_handler.cc
index effa889..7a8dbf2 100644
--- a/chrome/browser/offline_pages/offline_page_request_handler.cc
+++ b/chrome/browser/offline_pages/offline_page_request_handler.cc
@@ -608,7 +608,8 @@
   }
 
   if (!buffer_)
-    buffer_ = base::MakeRefCounted<net::IOBuffer>(kMaxBufferSizeForValidation);
+    buffer_ = base::MakeRefCounted<net::IOBufferWithSize>(
+        kMaxBufferSizeForValidation);
 
   ReadForValidation();
 }
diff --git a/chrome/browser/offline_pages/offline_page_url_loader.cc b/chrome/browser/offline_pages/offline_page_url_loader.cc
index 21f1385..ff2832ed 100644
--- a/chrome/browser/offline_pages/offline_page_url_loader.cc
+++ b/chrome/browser/offline_pages/offline_page_url_loader.cc
@@ -294,7 +294,7 @@
       base::BindRepeating(&OfflinePageURLLoader::OnHandleReady,
                           weak_ptr_factory_.GetWeakPtr()));
 
-  buffer_ = base::MakeRefCounted<net::IOBuffer>(kBufferSize);
+  buffer_ = base::MakeRefCounted<net::IOBufferWithSize>(kBufferSize);
   ReadRawData();
 }
 
diff --git a/chrome/browser/page_load_metrics/integration_tests/metric_integration_test.h b/chrome/browser/page_load_metrics/integration_tests/metric_integration_test.h
index 7a9834c..94274ae 100644
--- a/chrome/browser/page_load_metrics/integration_tests/metric_integration_test.h
+++ b/chrome/browser/page_load_metrics/integration_tests/metric_integration_test.h
@@ -5,7 +5,7 @@
 #ifndef CHROME_BROWSER_PAGE_LOAD_METRICS_INTEGRATION_TESTS_METRIC_INTEGRATION_TEST_H_
 #define CHROME_BROWSER_PAGE_LOAD_METRICS_INTEGRATION_TESTS_METRIC_INTEGRATION_TEST_H_
 
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "chrome/test/base/in_process_browser_test.h"
 
 #include "base/test/metrics/histogram_tester.h"
diff --git a/chrome/browser/password_check/android/password_check_manager.h b/chrome/browser/password_check/android/password_check_manager.h
index 67e88888..b05d24e 100644
--- a/chrome/browser/password_check/android/password_check_manager.h
+++ b/chrome/browser/password_check/android/password_check_manager.h
@@ -9,7 +9,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/scoped_observation.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "chrome/browser/password_check/android/password_check_ui_status.h"
 #include "chrome/browser/password_entry_edit/android/credential_edit_bridge.h"
 #include "chrome/browser/password_manager/account_password_store_factory.h"
diff --git a/chrome/browser/password_manager/android/all_passwords_bottom_sheet_helper_unittest.cc b/chrome/browser/password_manager/android/all_passwords_bottom_sheet_helper_unittest.cc
index 4b882fef..e187969 100644
--- a/chrome/browser/password_manager/android/all_passwords_bottom_sheet_helper_unittest.cc
+++ b/chrome/browser/password_manager/android/all_passwords_bottom_sheet_helper_unittest.cc
@@ -4,7 +4,7 @@
 
 #include "chrome/browser/password_manager/android/all_passwords_bottom_sheet_helper.h"
 
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/test/mock_callback.h"
 #include "chrome/browser/password_manager/password_manager_test_util.h"
diff --git a/chrome/browser/password_manager/android/password_manager_eviction_util.cc b/chrome/browser/password_manager/android/password_manager_eviction_util.cc
index 7510a729..dca97bc 100644
--- a/chrome/browser/password_manager/android/password_manager_eviction_util.cc
+++ b/chrome/browser/password_manager/android/password_manager_eviction_util.cc
@@ -9,7 +9,7 @@
 #include "base/metrics/field_trial_params.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/strings/string_number_conversions.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/string_split.h"
 #include "chrome/browser/password_manager/android/password_store_android_backend_api_error_codes.h"
 #include "components/password_manager/core/common/password_manager_features.h"
diff --git a/chrome/browser/pdf/BUILD.gn b/chrome/browser/pdf/BUILD.gn
index f881466..dfb86b2 100644
--- a/chrome/browser/pdf/BUILD.gn
+++ b/chrome/browser/pdf/BUILD.gn
@@ -15,6 +15,8 @@
     "pdf_extension_util.h",
     "pdf_frame_util.cc",
     "pdf_frame_util.h",
+    "pdf_viewer_stream_manager.cc",
+    "pdf_viewer_stream_manager.h",
   ]
   deps = [
     "//base",
@@ -64,3 +66,18 @@
     "//chrome/test:test_support",
   ]
 }
+
+source_set("pdf_test_utils") {
+  testonly = true
+  sources = [
+    "pdf_test_util.cc",
+    "pdf_test_util.h",
+  ]
+  deps = [
+    "//base",
+    "//extensions/browser",
+    "//net",
+    "//services/network/public/mojom:url_loader_base",
+    "//url",
+  ]
+}
diff --git a/chrome/browser/pdf/pdf_extension_util.cc b/chrome/browser/pdf/pdf_extension_util.cc
index 1f38b00..3679e4353 100644
--- a/chrome/browser/pdf/pdf_extension_util.cc
+++ b/chrome/browser/pdf/pdf_extension_util.cc
@@ -17,6 +17,7 @@
 #include "components/services/screen_ai/buildflags/buildflags.h"
 #include "components/strings/grit/components_strings.h"
 #include "components/zoom/page_zoom_constants.h"
+#include "pdf/pdf_features.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/resource/resource_bundle.h"
 #include "ui/base/ui_base_features.h"
@@ -53,6 +54,10 @@
   dict->Set("chromeRefresh2023Attribute",
             features::IsChromeWebuiRefresh2023() ? "chrome-refresh-2023" : "");
   dict->Set("presetZoomFactors", zoom::GetPresetZoomFactorsAsJSON());
+  dict->Set("pdfOopifEnabled",
+            base::FeatureList::IsEnabled(chrome_pdf::features::kPdfOopif)
+                ? "pdfOopifEnabled"
+                : "");
 }
 
 // Adds strings that are used only by the stand-alone PDF Viewer.
diff --git a/chrome/browser/pdf/pdf_test_util.cc b/chrome/browser/pdf/pdf_test_util.cc
new file mode 100644
index 0000000..9e76b5b
--- /dev/null
+++ b/chrome/browser/pdf/pdf_test_util.cc
@@ -0,0 +1,41 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/pdf/pdf_test_util.h"
+
+#include <memory>
+
+#include "base/memory/scoped_refptr.h"
+#include "base/strings/string_number_conversions.h"
+#include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h"
+#include "net/http/http_response_headers.h"
+#include "services/network/public/mojom/url_response_head.mojom.h"
+#include "third_party/blink/public/mojom/loader/transferrable_url_loader.mojom.h"
+#include "url/gurl.h"
+
+namespace pdf_test_util {
+
+std::unique_ptr<extensions::StreamContainer> GenerateSampleStreamContainer(
+    int container_number) {
+  const std::string container_number_string =
+      base::NumberToString(container_number);
+  const GURL handler_url =
+      GURL("https://handler_url" + container_number_string);
+  const std::string extension_id = "extension_id" + container_number_string;
+  const GURL original_url =
+      GURL("https://original_url" + container_number_string);
+
+  auto transferrable_loader = blink::mojom::TransferrableURLLoader::New();
+  transferrable_loader->url = GURL("stream://url" + container_number_string);
+  transferrable_loader->head = network::mojom::URLResponseHead::New();
+  transferrable_loader->head->mime_type = "application/pdf";
+  transferrable_loader->head->headers =
+      base::MakeRefCounted<net::HttpResponseHeaders>("HTTP/2 200 OK");
+
+  return std::make_unique<extensions::StreamContainer>(
+      /*tab_id=*/container_number, /*embedded=*/true, handler_url, extension_id,
+      std::move(transferrable_loader), original_url);
+}
+
+}  // namespace pdf_test_util
diff --git a/chrome/browser/pdf/pdf_test_util.h b/chrome/browser/pdf/pdf_test_util.h
new file mode 100644
index 0000000..c7a265a
--- /dev/null
+++ b/chrome/browser/pdf/pdf_test_util.h
@@ -0,0 +1,24 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_PDF_PDF_TEST_UTIL_H_
+#define CHROME_BROWSER_PDF_PDF_TEST_UTIL_H_
+
+#include <memory>
+
+namespace extensions {
+class StreamContainer;
+}  // namespace extensions
+
+namespace pdf_test_util {
+
+// Generates a sample `extensions::StreamContainer` to be used in unit tests.
+// `container_number` is used as the tab ID and is appended to the extension ID
+// and all URLs in the stream container.
+std::unique_ptr<extensions::StreamContainer> GenerateSampleStreamContainer(
+    int container_number);
+
+}  // namespace pdf_test_util
+
+#endif  // CHROME_BROWSER_PDF_PDF_TEST_UTIL_
diff --git a/chrome/browser/pdf/pdf_viewer_stream_manager.cc b/chrome/browser/pdf/pdf_viewer_stream_manager.cc
new file mode 100644
index 0000000..2751f75
--- /dev/null
+++ b/chrome/browser/pdf/pdf_viewer_stream_manager.cc
@@ -0,0 +1,305 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/pdf/pdf_viewer_stream_manager.h"
+
+#include <memory>
+#include <tuple>
+#include <utility>
+
+#include "base/containers/contains.h"
+#include "base/memory/weak_ptr.h"
+#include "content/public/browser/navigation_controller.h"
+#include "content/public/browser/navigation_handle.h"
+#include "content/public/browser/render_frame_host.h"
+#include "content/public/browser/web_contents.h"
+#include "content/public/browser/web_contents_observer.h"
+#include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h"
+#include "url/gurl.h"
+
+namespace pdf {
+
+namespace {
+
+const char kPdfExtensionUrl[] =
+    "chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/index.html";
+
+// Creates a claimed `EmbedderHostInfo` from the `embedder_host`.
+PdfViewerStreamManager::EmbedderHostInfo GetEmbedderHostInfo(
+    content::RenderFrameHost* embedder_host) {
+  return {embedder_host->GetFrameTreeNodeId(), embedder_host->GetGlobalId()};
+}
+
+// Creates a new unclaimed `EmbedderHostInfo` for the given frame tree node ID
+// (without the `content::GlobalRenderFrameHostId`).
+PdfViewerStreamManager::EmbedderHostInfo GetUnclaimedEmbedderHostInfo(
+    int frame_tree_node_id) {
+  return {frame_tree_node_id, content::GlobalRenderFrameHostId()};
+}
+
+}  // namespace
+
+bool PdfViewerStreamManager::EmbedderHostInfo::operator<(
+    const PdfViewerStreamManager::EmbedderHostInfo& other) const {
+  return std::tie(frame_tree_node_id, global_id) <
+         std::tie(other.frame_tree_node_id, other.global_id);
+}
+
+PdfViewerStreamManager::StreamInfo::StreamInfo(
+    std::unique_ptr<extensions::StreamContainer> stream_container)
+    : stream(std::move(stream_container)) {}
+
+PdfViewerStreamManager::StreamInfo::StreamInfo(
+    StreamInfo&& stream_info) noexcept
+    : stream(std::move(stream_info.stream)) {}
+
+PdfViewerStreamManager::StreamInfo::~StreamInfo() = default;
+
+PdfViewerStreamManager::PdfViewerStreamManager(content::WebContents* contents)
+    : content::WebContentsObserver(contents),
+      content::WebContentsUserData<PdfViewerStreamManager>(*contents) {}
+
+PdfViewerStreamManager::~PdfViewerStreamManager() = default;
+
+void PdfViewerStreamManager::AddStreamContainer(
+    int frame_tree_node_id,
+    std::unique_ptr<extensions::StreamContainer> stream_container) {
+  CHECK(stream_container);
+
+  // If an entry with the same frame tree node ID already exists in
+  // `stream_infos_`, then a new PDF navigation has occurred. If the
+  // existing `StreamInfo` hasn't been claimed, replace the entry. This is safe,
+  // since `GetStreamContainer()` verifies the original PDF URL. If the existing
+  // `StreamInfo` has been claimed, and the embedder host is replaced, then the
+  // original `StreamInfo` will eventually be deleted, and the new `StreamInfo`
+  // will be used instead.
+  auto embedder_host_info = GetUnclaimedEmbedderHostInfo(frame_tree_node_id);
+  stream_infos_[embedder_host_info] =
+      std::make_unique<StreamInfo>(std::move(stream_container));
+}
+
+base::WeakPtr<extensions::StreamContainer>
+PdfViewerStreamManager::GetStreamContainer(
+    content::RenderFrameHost* embedder_host) {
+  auto* stream_info = GetClaimedStreamInfo(embedder_host);
+  if (!stream_info) {
+    return nullptr;
+  }
+
+  // It's possible to have multiple `extensions::StreamContainer`s under the
+  // same frame tree node ID. Verify the original URL in the stream container to
+  // avoid a potential URL spoof.
+  if (embedder_host->GetLastCommittedURL() !=
+      stream_info->stream->original_url()) {
+    return nullptr;
+  }
+
+  return stream_info->stream->GetWeakPtr();
+}
+
+void PdfViewerStreamManager::RenderFrameDeleted(
+    content::RenderFrameHost* render_frame_host) {
+  // If this is an unrelated host, ignore.
+  StreamInfo* claimed_stream_info = GetClaimedStreamInfo(render_frame_host);
+  if (!claimed_stream_info &&
+      !ContainsUnclaimedStreamInfo(render_frame_host->GetFrameTreeNodeId())) {
+    return;
+  }
+
+  // An unclaimed `StreamInfo`'s FrameTreeNode may delete a speculative
+  // `content::RenderFrameHost` before the embedder `content::RenderFrameHost`
+  // commits and claims the stream. The speculative `content::RenderFrameHost`
+  // won't be considered active, and shouldn't cause the stream to be deleted.
+  if (!claimed_stream_info && !render_frame_host->IsActive()) {
+    return;
+  }
+
+  DeleteStreamInfo(render_frame_host);
+  // DO NOT add code past this point. `this` may have been deleted.
+}
+
+void PdfViewerStreamManager::RenderFrameHostChanged(
+    content::RenderFrameHost* old_host,
+    content::RenderFrameHost* new_host) {
+  // If the `old_host` is null, then it means that a subframe is being created.
+  // Don't treat this like a host change.
+  if (!old_host) {
+    return;
+  }
+
+  // If this is an unrelated host, ignore.
+  if (!GetClaimedStreamInfo(old_host)) {
+    return;
+  }
+
+  // The `old_host`'s `StreamInfo` should be deleted since this event could be
+  // triggered from navigating the embedder host to a non-PDF URL. If the
+  // embedder host is navigating to another PDF URL, then a new `StreamInfo`
+  // should have already been created and claimed by `new_host`, so it's still
+  // safe to delete `old_host`'s `StreamInfo`.
+  DeleteStreamInfo(old_host);
+}
+
+void PdfViewerStreamManager::FrameDeleted(int frame_tree_node_id) {
+  // If an embedder host is deleted, delete the associated `StreamInfo`.
+  for (auto iter = stream_infos_.begin(); iter != stream_infos_.end();) {
+    if (iter->first.frame_tree_node_id == frame_tree_node_id) {
+      iter = stream_infos_.erase(iter);
+    } else {
+      ++iter;
+    }
+  }
+
+  // Delete `this` if there are no remaining stream infos.
+  if (stream_infos_.empty()) {
+    web_contents()->RemoveUserData(UserDataKey());
+    // DO NOT add code past this point. RemoveUserData() deleted `this`.
+  }
+}
+
+void PdfViewerStreamManager::ReadyToCommitNavigation(
+    content::NavigationHandle* navigation_handle) {
+  // Maybe register a PDF subresource override in the PDF content host, which
+  // would delete the associated `StreamInfo`.
+  if (MaybeRegisterPdfSubresourceOverride(navigation_handle)) {
+    // `MaybeRegisterPdfSubresourceOverride()` might delete `this`, so return
+    // immediately.
+    return;
+  }
+
+  // The initial load notification for the URL being served in the embedder
+  // host. If there isn't already an existing claimed `StreamInfo`, then
+  // `embedder_host` should claim the unclaimed `StreamInfo`.
+  content::RenderFrameHost* embedder_host =
+      navigation_handle->GetRenderFrameHost();
+  if (!GetClaimedStreamInfo(embedder_host) &&
+      !ContainsUnclaimedStreamInfo(embedder_host->GetFrameTreeNodeId())) {
+    return;
+  }
+
+  ClaimStreamInfo(embedder_host);
+}
+
+void PdfViewerStreamManager::DidFinishNavigation(
+    content::NavigationHandle* navigation_handle) {
+  // During PDF navigation, in the embedder host, an about:blank embed is
+  // inserted in a synthetic HTML document as a placeholder for the PDF
+  // extension. Navigate the about:blank embed to the PDF extension URL to load
+  // the PDF extension.
+  if (!navigation_handle->GetURL().IsAboutBlank()) {
+    return;
+  }
+
+  // Ignore any `content::RenderFrameHost`s that aren't the expected PDF
+  // about:blank host. The parent frame should be the tracked embedder
+  // frame.
+  content::RenderFrameHost* about_blank_host =
+      navigation_handle->GetRenderFrameHost();
+  if (!about_blank_host) {
+    return;
+  }
+
+  content::RenderFrameHost* embedder_host = about_blank_host->GetParent();
+  if (!embedder_host) {
+    return;
+  }
+
+  // The `StreamInfo` should already have been claimed. Ignore if the extension
+  // host has already navigated, to avoid multiple about:blanks navigating to
+  // the extension URL.
+  auto* stream_info = GetClaimedStreamInfo(embedder_host);
+  if (!stream_info || stream_info->did_extension_navigate) {
+    return;
+  }
+
+  const GURL url(kPdfExtensionUrl);
+  content::NavigationController::LoadURLParams params(url);
+  params.frame_tree_node_id = about_blank_host->GetFrameTreeNodeId();
+  params.source_site_instance = embedder_host->GetSiteInstance();
+  web_contents()->GetController().LoadURLWithParams(params);
+
+  stream_info->did_extension_navigate = true;
+}
+
+void PdfViewerStreamManager::ClaimStreamInfoForTesting(
+    content::RenderFrameHost* embedder_host) {
+  ClaimStreamInfo(embedder_host);
+}
+
+PdfViewerStreamManager::StreamInfo*
+PdfViewerStreamManager::GetClaimedStreamInfo(
+    content::RenderFrameHost* embedder_host) {
+  auto iter = stream_infos_.find(GetEmbedderHostInfo(embedder_host));
+  if (iter == stream_infos_.end()) {
+    return nullptr;
+  }
+
+  return iter->second.get();
+}
+
+bool PdfViewerStreamManager::ContainsUnclaimedStreamInfo(
+    int frame_tree_node_id) const {
+  return base::Contains(stream_infos_,
+                        GetUnclaimedEmbedderHostInfo(frame_tree_node_id));
+}
+
+void PdfViewerStreamManager::ClaimStreamInfo(
+    content::RenderFrameHost* embedder_host) {
+  auto unclaimed_embedder_info =
+      GetUnclaimedEmbedderHostInfo(embedder_host->GetFrameTreeNodeId());
+  auto iter = stream_infos_.find(unclaimed_embedder_info);
+  CHECK(iter != stream_infos_.end());
+
+  auto claimed_embedder_info = GetEmbedderHostInfo(embedder_host);
+  stream_infos_[claimed_embedder_info] = std::move(iter->second);
+  stream_infos_.erase(iter);
+}
+
+void PdfViewerStreamManager::DeleteStreamInfo(
+    content::RenderFrameHost* embedder_host) {
+  CHECK(stream_infos_.erase(GetEmbedderHostInfo(embedder_host)));
+  if (stream_infos_.empty()) {
+    web_contents()->RemoveUserData(UserDataKey());
+    // DO NOT add code past this point. RemoveUserData() deleted `this`.
+  }
+}
+
+bool PdfViewerStreamManager::MaybeRegisterPdfSubresourceOverride(
+    content::NavigationHandle* navigation_handle) {
+  // Only register the subresource override if `navigation_handle` is for the
+  // PDF content frame. Ignore all other navigations in different frames, such
+  // as navigations in the embedder frame or PDF extension frame.
+  if (!navigation_handle->IsPdf()) {
+    return false;
+  }
+
+  // Since `navigation_handle` is for a PDF content frame, as checked by
+  // `NavigationHandle::IsPdf()`, the parent frame is the PDF extension frame,
+  // and the grandparent frame is the embedder frame.
+  content::RenderFrameHost* extension_host =
+      navigation_handle->GetParentFrame();
+  CHECK(extension_host);
+  content::RenderFrameHost* embedder_host = extension_host->GetParent();
+  CHECK(embedder_host);
+
+  auto* claimed_stream_info = GetClaimedStreamInfo(embedder_host);
+  if (!claimed_stream_info) {
+    return false;
+  }
+
+  // The stream container is no longer needed after registering the subresource
+  // override.
+  navigation_handle->RegisterSubresourceOverride(
+      claimed_stream_info->stream->TakeTransferrableURLLoader());
+
+  // TODO(crbug.com/1445746): The lifetime of the stream container needs to be
+  // extended to last the duration of the PDF viewer to support PDF saving.
+  DeleteStreamInfo(embedder_host);
+  // DO NOT add code past this point. `this` may have been deleted.
+  return true;
+}
+
+WEB_CONTENTS_USER_DATA_KEY_IMPL(PdfViewerStreamManager);
+
+}  // namespace pdf
diff --git a/chrome/browser/pdf/pdf_viewer_stream_manager.h b/chrome/browser/pdf/pdf_viewer_stream_manager.h
new file mode 100644
index 0000000..b0e7e3aa
--- /dev/null
+++ b/chrome/browser/pdf/pdf_viewer_stream_manager.h
@@ -0,0 +1,162 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_PDF_PDF_VIEWER_STREAM_MANAGER_H_
+#define CHROME_BROWSER_PDF_PDF_VIEWER_STREAM_MANAGER_H_
+
+#include <map>
+#include <memory>
+
+#include "base/gtest_prod_util.h"
+#include "base/memory/weak_ptr.h"
+#include "content/public/browser/web_contents_observer.h"
+#include "content/public/browser/web_contents_user_data.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
+
+namespace content {
+struct GlobalRenderFrameHostId;
+class NavigationHandle;
+class WebContents;
+}  // namespace content
+
+namespace extensions {
+class StreamContainer;
+}  // namespace extensions
+
+namespace pdf {
+
+// `PdfViewerStreamManager` is used for PDF navigation. It tracks all
+// PDF navigation events in a `content::WebContents`. It handles multiple PDF
+// viewer instances in a single `content::WebContents`. It is responsible for:
+// 1. Storing the `extensions::StreamContainer` PDF data.
+// 2. Observing for the PDF embedder RFH either navigating or closing (including
+//    by crashing). This is necessary to ensure that streams that aren't claimed
+//    are not leaked, by deleting the stream if any of those events occur.
+// 3. Observing for the RFH created by the PDF embedder RFH to load the PDF
+//    extension URL.
+// 4. Observing for the PDF content RFH to register the stream as a subresource
+//    override for the final PDF commit navigation.
+// `PdfViewerStreamManager` is scoped to the `content::WebContents` it tracks,
+// but it may also delete itself if all PDF streams are no longer used.
+// `extensions::StreamContainer` objects are stored from
+// `PluginResponseInterceptorURLLoaderThrottle::WillProcessResponse()` until
+// the PDF navigation is complete.
+// Use `PdfViewerStreamManager::FromWebContents()` to get an instance.
+class PdfViewerStreamManager
+    : public content::WebContentsObserver,
+      public content::WebContentsUserData<PdfViewerStreamManager> {
+ public:
+  // Information about the PDF embedder RFH needed to store and retrieve stream
+  // containers.
+  struct EmbedderHostInfo {
+    // Need this comparator since this struct is used as a key in the
+    // `stream_infos_` map.
+    bool operator<(const EmbedderHostInfo& other) const;
+
+    // Using the frame tree node ID to identify the embedder RFH is necessary
+    // because entries are added during
+    // `PluginResponseInterceptorURLLoaderThrottle::WillProcessResponse()`,
+    // before the embedder's frame tree node has swapped from its previous RFH
+    // to the embedder RFH that will hold the PDF.
+    int frame_tree_node_id;
+    content::GlobalRenderFrameHostId global_id;
+  };
+
+  PdfViewerStreamManager(const PdfViewerStreamManager&) = delete;
+  PdfViewerStreamManager& operator=(const PdfViewerStreamManager&) = delete;
+  ~PdfViewerStreamManager() override;
+
+  // Starts tracking a `StreamContainer` in an embedder FrameTreeNode, before
+  // the embedder host commits. The `StreamContainer` is considered unclaimed
+  // until the embedder host commits, at which point the `StreamContainer` is
+  // tracked by both the frame tree node ID and the render frame host ID.
+  // Replaces existing unclaimed entries with the same `frame_tree_node_id`.
+  // This can occur if an embedder frame navigating to a PDF starts navigating
+  // to another PDF URL before the original `StreamContainer` is claimed.
+  void AddStreamContainer(
+      int frame_tree_node_id,
+      std::unique_ptr<extensions::StreamContainer> stream_container);
+
+  // Returns a pointer to a stream container that `embedder_host` has claimed or
+  // nullptr if `embedder_host` hasn't claimed any stream containers.
+  base::WeakPtr<extensions::StreamContainer> GetStreamContainer(
+      content::RenderFrameHost* embedder_host);
+
+  // WebContentsObserver overrides.
+  void RenderFrameDeleted(content::RenderFrameHost* render_frame_host) override;
+  void RenderFrameHostChanged(content::RenderFrameHost* old_host,
+                              content::RenderFrameHost* new_host) override;
+  void FrameDeleted(int frame_tree_node_id) override;
+  void ReadyToCommitNavigation(
+      content::NavigationHandle* navigation_handle) override;
+  void DidFinishNavigation(
+      content::NavigationHandle* navigation_handle) override;
+
+  // For testing only. Mark an unclaimed stream info with the same frame tree
+  // node ID as `embedder_host` as claimed by `embedder_host`. Callers must
+  // ensure such a stream info exists before calling this.
+  void ClaimStreamInfoForTesting(content::RenderFrameHost* embedder_host);
+
+ private:
+  FRIEND_TEST_ALL_PREFIXES(PdfViewerStreamManagerTest,
+                           AddAndGetStreamContainer);
+
+  // Stream container stored for a single PDF navigation.
+  // TODO(crbug.com/1445746): Add other info needed for PDFs, such as the
+  // internal id.
+  struct StreamInfo {
+    explicit StreamInfo(
+        std::unique_ptr<extensions::StreamContainer> stream_container);
+
+    StreamInfo(StreamInfo&& stream_info) noexcept;
+
+    StreamInfo(const StreamInfo&) = delete;
+    StreamInfo& operator=(const StreamInfo&) = delete;
+
+    ~StreamInfo();
+
+    std::unique_ptr<extensions::StreamContainer> stream;
+
+    // True if the extension host has navigated to the PDF extension URL. Used
+    // to avoid navigating multiple about:blank child hosts to the PDF extension
+    // URL.
+    bool did_extension_navigate = false;
+  };
+
+  friend class content::WebContentsUserData<PdfViewerStreamManager>;
+  WEB_CONTENTS_USER_DATA_KEY_DECL();
+
+  explicit PdfViewerStreamManager(content::WebContents* contents);
+
+  // Returns the stream info claimed by `embedder_host`, or nullptr if there's
+  // no existing stream.
+  StreamInfo* GetClaimedStreamInfo(content::RenderFrameHost* embedder_host);
+
+  // Returns whether there's an unclaimed stream info with the default embedder
+  // host info.
+  bool ContainsUnclaimedStreamInfo(int frame_tree_node_id) const;
+
+  // Mark an unclaimed stream info with the same frame tree node ID as
+  // `embedder_host` as claimed by `embedder_host`. Callers must ensure such a
+  // stream info exists with `ContainsUnclaimedStreamInfo()` before calling
+  // this. Otherwise, a crash will occur.
+  void ClaimStreamInfo(content::RenderFrameHost* embedder_host);
+
+  // Deletes the stream info associated with `embedder_host`, and deletes
+  // `this` if there are no remaining stream infos.
+  void DeleteStreamInfo(content::RenderFrameHost* embedder_host);
+
+  // Intended to be called during the PDF content frame's
+  // `ReadyToCommitNavigation()` event. Registers navigations occurring in a PDF
+  // content frame as a subresource.
+  bool MaybeRegisterPdfSubresourceOverride(
+      content::NavigationHandle* navigation_handle);
+
+  // Stores stream info by embedder host info.
+  std::map<EmbedderHostInfo, std::unique_ptr<StreamInfo>> stream_infos_;
+};
+
+}  // namespace pdf
+
+#endif  // CHROME_BROWSER_PDF_PDF_VIEWER_STREAM_MANAGER_H_
diff --git a/chrome/browser/pdf/pdf_viewer_stream_manager_unittest.cc b/chrome/browser/pdf/pdf_viewer_stream_manager_unittest.cc
new file mode 100644
index 0000000..f1ef2307
--- /dev/null
+++ b/chrome/browser/pdf/pdf_viewer_stream_manager_unittest.cc
@@ -0,0 +1,387 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/pdf/pdf_viewer_stream_manager.h"
+
+#include <memory>
+
+#include "base/memory/weak_ptr.h"
+#include "chrome/browser/pdf/pdf_test_util.h"
+#include "chrome/test/base/chrome_render_view_host_test_harness.h"
+#include "content/public/browser/global_routing_id.h"
+#include "content/public/browser/navigation_handle.h"
+#include "content/public/browser/render_frame_host.h"
+#include "content/public/browser/web_contents.h"
+#include "content/public/test/mock_navigation_handle.h"
+#include "content/public/test/navigation_simulator.h"
+#include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/blink/public/mojom/loader/transferrable_url_loader.mojom.h"
+#include "url/gurl.h"
+
+namespace pdf {
+
+namespace {
+
+using ::testing::NiceMock;
+using ::testing::Return;
+
+constexpr char kOriginalUrl1[] = "https://original_url1";
+constexpr char kOriginalUrl2[] = "https://original_url2";
+
+}  // namespace
+
+class PdfViewerStreamManagerTest : public ChromeRenderViewHostTestHarness {
+ protected:
+  void TearDown() override {
+    ChromeRenderViewHostTestHarness::web_contents()->RemoveUserData(
+        PdfViewerStreamManager::UserDataKey());
+    ChromeRenderViewHostTestHarness::TearDown();
+  }
+
+  PdfViewerStreamManager* pdf_viewer_stream_manager() {
+    return PdfViewerStreamManager::FromWebContents(
+        ChromeRenderViewHostTestHarness::web_contents());
+  }
+
+  // Simulate a navigation and commit on `host`. The last committed URL will be
+  // `original_url`.
+  content::RenderFrameHost* NavigateAndCommit(content::RenderFrameHost* host,
+                                              const GURL& original_url) {
+    content::RenderFrameHost* new_host =
+        content::NavigationSimulator::NavigateAndCommitFromDocument(
+            original_url, host);
+
+    // Create `PdfViewerStreamManager` if it doesn't exist already. If `host` is
+    // the primary main frame, then the previous `PdfViewerStreamManager` may
+    // have been deleted as part of the above navigation.
+    PdfViewerStreamManager::CreateForWebContents(
+        ChromeRenderViewHostTestHarness::web_contents());
+    return new_host;
+  }
+
+  content::RenderFrameHost* CreateChildRenderFrameHost(
+      content::RenderFrameHost* parent_host,
+      const std::string& frame_name) {
+    auto* parent_host_tester = content::RenderFrameHostTester::For(parent_host);
+    parent_host_tester->InitializeRenderFrameIfNeeded();
+    return parent_host_tester->AppendChild(frame_name);
+  }
+};
+
+// Verify adding and getting an `extensions::StreamContainer`.
+TEST_F(PdfViewerStreamManagerTest, AddAndGetStreamContainer) {
+  content::RenderFrameHost* embedder_host =
+      NavigateAndCommit(main_rfh(), GURL(kOriginalUrl1));
+  int frame_tree_node_id = embedder_host->GetFrameTreeNodeId();
+
+  PdfViewerStreamManager* manager = pdf_viewer_stream_manager();
+  manager->AddStreamContainer(frame_tree_node_id,
+                              pdf_test_util::GenerateSampleStreamContainer(1));
+  EXPECT_TRUE(manager->ContainsUnclaimedStreamInfo(frame_tree_node_id));
+  manager->ClaimStreamInfoForTesting(embedder_host);
+
+  base::WeakPtr<extensions::StreamContainer> result =
+      manager->GetStreamContainer(embedder_host);
+
+  ASSERT_TRUE(result);
+  blink::mojom::TransferrableURLLoaderPtr transferrable_loader =
+      result->TakeTransferrableURLLoader();
+  EXPECT_EQ(result->tab_id(), 1);
+  EXPECT_EQ(result->embedded(), true);
+  EXPECT_EQ(result->handler_url(), GURL("https://handler_url1"));
+  EXPECT_EQ(result->extension_id(), "extension_id1");
+  EXPECT_EQ(transferrable_loader->url, GURL("stream://url1"));
+  EXPECT_EQ(transferrable_loader->head->mime_type, "application/pdf");
+  EXPECT_EQ(result->original_url(), GURL("https://original_url1"));
+  EXPECT_TRUE(pdf_viewer_stream_manager());
+}
+
+// Verify adding an `extensions::StreamContainer` under the same frame tree node
+// ID replaces the original unclaimed `extensions::StreamContainer`.
+TEST_F(PdfViewerStreamManagerTest,
+       AddStreamContainerSameFrameTreeNodeIdUnclaimed) {
+  content::RenderFrameHost* embedder_host =
+      NavigateAndCommit(main_rfh(), GURL(kOriginalUrl2));
+  int frame_tree_node_id = embedder_host->GetFrameTreeNodeId();
+
+  PdfViewerStreamManager* manager = pdf_viewer_stream_manager();
+  manager->AddStreamContainer(frame_tree_node_id,
+                              pdf_test_util::GenerateSampleStreamContainer(1));
+  manager->AddStreamContainer(frame_tree_node_id,
+                              pdf_test_util::GenerateSampleStreamContainer(2));
+  manager->ClaimStreamInfoForTesting(embedder_host);
+
+  base::WeakPtr<extensions::StreamContainer> result =
+      manager->GetStreamContainer(main_rfh());
+
+  ASSERT_TRUE(result);
+  blink::mojom::TransferrableURLLoaderPtr transferrable_loader =
+      result->TakeTransferrableURLLoader();
+  EXPECT_EQ(result->tab_id(), 2);
+  EXPECT_EQ(result->embedded(), true);
+  EXPECT_EQ(result->handler_url(), GURL("https://handler_url2"));
+  EXPECT_EQ(result->extension_id(), "extension_id2");
+  EXPECT_EQ(transferrable_loader->url, GURL("stream://url2"));
+  EXPECT_EQ(transferrable_loader->head->mime_type, "application/pdf");
+  EXPECT_EQ(result->original_url(), GURL("https://original_url2"));
+  EXPECT_TRUE(pdf_viewer_stream_manager());
+}
+
+// Verify getting a `StreamContainer` with a non-matching URL returns nullptr;
+TEST_F(PdfViewerStreamManagerTest, AddAndGetStreamInvalidURL) {
+  content::RenderFrameHost* embedder_host =
+      NavigateAndCommit(main_rfh(), GURL("https://nonmatching_url"));
+
+  PdfViewerStreamManager* manager = pdf_viewer_stream_manager();
+  manager->AddStreamContainer(embedder_host->GetFrameTreeNodeId(),
+                              pdf_test_util::GenerateSampleStreamContainer(1));
+  manager->ClaimStreamInfoForTesting(embedder_host);
+
+  EXPECT_FALSE(manager->GetStreamContainer(embedder_host));
+  EXPECT_TRUE(pdf_viewer_stream_manager());
+}
+
+// Verify adding multiple `extensions::StreamContainer`s for different
+// FrameTreeNodes at once.
+TEST_F(PdfViewerStreamManagerTest, AddMultipleStreamContainers) {
+  auto* embedder_host = NavigateAndCommit(main_rfh(), GURL(kOriginalUrl1));
+  auto* child_host = CreateChildRenderFrameHost(embedder_host, "child host");
+  child_host = NavigateAndCommit(child_host, GURL(kOriginalUrl2));
+
+  PdfViewerStreamManager* manager = pdf_viewer_stream_manager();
+  manager->AddStreamContainer(embedder_host->GetFrameTreeNodeId(),
+                              pdf_test_util::GenerateSampleStreamContainer(1));
+  manager->AddStreamContainer(child_host->GetFrameTreeNodeId(),
+                              pdf_test_util::GenerateSampleStreamContainer(2));
+  manager->ClaimStreamInfoForTesting(embedder_host);
+  manager->ClaimStreamInfoForTesting(child_host);
+
+  base::WeakPtr<extensions::StreamContainer> result =
+      manager->GetStreamContainer(embedder_host);
+
+  ASSERT_TRUE(result);
+  blink::mojom::TransferrableURLLoaderPtr transferrable_loader =
+      result->TakeTransferrableURLLoader();
+  EXPECT_EQ(result->tab_id(), 1);
+  EXPECT_EQ(result->embedded(), true);
+  EXPECT_EQ(result->handler_url(), GURL("https://handler_url1"));
+  EXPECT_EQ(result->extension_id(), "extension_id1");
+  EXPECT_EQ(transferrable_loader->url, GURL("stream://url1"));
+  EXPECT_EQ(transferrable_loader->head->mime_type, "application/pdf");
+  EXPECT_EQ(result->original_url(), GURL("https://original_url1"));
+
+  result = manager->GetStreamContainer(child_host);
+
+  ASSERT_TRUE(result);
+  transferrable_loader = result->TakeTransferrableURLLoader();
+  EXPECT_EQ(result->tab_id(), 2);
+  EXPECT_EQ(result->embedded(), true);
+  EXPECT_EQ(result->handler_url(), GURL("https://handler_url2"));
+  EXPECT_EQ(result->extension_id(), "extension_id2");
+  EXPECT_EQ(transferrable_loader->url, GURL("stream://url2"));
+  EXPECT_EQ(transferrable_loader->head->mime_type, "application/pdf");
+  EXPECT_EQ(result->original_url(), GURL("https://original_url2"));
+  EXPECT_TRUE(pdf_viewer_stream_manager());
+}
+
+// If multiple `extensions::StreamContainer`s exist, then deleting one stream
+// shouldn't delete the other stream.
+TEST_F(PdfViewerStreamManagerTest, DeleteWithMultipleStreamContainers) {
+  content::RenderFrameHost* embedder_host =
+      NavigateAndCommit(main_rfh(), GURL(kOriginalUrl1));
+  auto* child_host = CreateChildRenderFrameHost(embedder_host, "child host");
+  child_host = NavigateAndCommit(child_host, GURL(kOriginalUrl2));
+
+  PdfViewerStreamManager* manager = pdf_viewer_stream_manager();
+  manager->AddStreamContainer(embedder_host->GetFrameTreeNodeId(),
+                              pdf_test_util::GenerateSampleStreamContainer(1));
+  manager->AddStreamContainer(child_host->GetFrameTreeNodeId(),
+                              pdf_test_util::GenerateSampleStreamContainer(2));
+  manager->ClaimStreamInfoForTesting(embedder_host);
+  manager->ClaimStreamInfoForTesting(child_host);
+  ASSERT_TRUE(manager->GetStreamContainer(embedder_host));
+  ASSERT_TRUE(manager->GetStreamContainer(child_host));
+
+  // `PdfViewerStreamManager::RenderFrameDeleted()` should cause the stream
+  // associated with `child_host` to be deleted.
+  manager->RenderFrameDeleted(child_host);
+
+  EXPECT_TRUE(manager->GetStreamContainer(embedder_host));
+  EXPECT_FALSE(manager->GetStreamContainer(child_host));
+  EXPECT_TRUE(pdf_viewer_stream_manager());
+}
+
+// If the embedder render frame is deleted, the stream should be deleted.
+TEST_F(PdfViewerStreamManagerTest, RenderFrameDeleted) {
+  auto* actual_host = CreateChildRenderFrameHost(main_rfh(), "actual host");
+  actual_host = NavigateAndCommit(actual_host, GURL(kOriginalUrl1));
+
+  PdfViewerStreamManager* manager = pdf_viewer_stream_manager();
+  manager->AddStreamContainer(actual_host->GetFrameTreeNodeId(),
+                              pdf_test_util::GenerateSampleStreamContainer(1));
+  manager->ClaimStreamInfoForTesting(actual_host);
+  ASSERT_TRUE(manager->GetStreamContainer(actual_host));
+
+  // Unrelated hosts should be ignored.
+  manager->RenderFrameDeleted(main_rfh());
+  ASSERT_EQ(manager, pdf_viewer_stream_manager());
+
+  // There are no remaining streams, so `PdfViewerStreamManager` should delete
+  // itself.
+  manager->RenderFrameDeleted(actual_host);
+  EXPECT_FALSE(pdf_viewer_stream_manager());
+}
+
+// If the `content::RenderFrameHost` for the stream changes, then the stream
+// should be deleted.
+TEST_F(PdfViewerStreamManagerTest, RenderFrameHostChanged) {
+  content::RenderFrameHost* old_host =
+      NavigateAndCommit(main_rfh(), GURL(kOriginalUrl1));
+  auto* new_host = CreateChildRenderFrameHost(old_host, "new host");
+
+  PdfViewerStreamManager* manager = pdf_viewer_stream_manager();
+  manager->AddStreamContainer(old_host->GetFrameTreeNodeId(),
+                              pdf_test_util::GenerateSampleStreamContainer(1));
+  manager->ClaimStreamInfoForTesting(old_host);
+  ASSERT_TRUE(manager->GetStreamContainer(old_host));
+
+  // If the first parameter to RenderFrameHostChanged() is null, then it means a
+  // subframe is being created and should be ignored.
+  manager->RenderFrameHostChanged(nullptr, old_host);
+  EXPECT_TRUE(manager->GetStreamContainer(old_host));
+
+  // Unrelated hosts should be ignored.
+  manager->RenderFrameHostChanged(new_host, new_host);
+  EXPECT_TRUE(manager->GetStreamContainer(old_host));
+
+  // There are no remaining streams, so `PdfViewerStreamManager` should delete
+  // itself.
+  manager->RenderFrameHostChanged(old_host, new_host);
+  EXPECT_FALSE(pdf_viewer_stream_manager());
+}
+
+// If the `content::RenderFrameHost` for the stream is deleted, then the stream
+// should be deleted.
+TEST_F(PdfViewerStreamManagerTest, FrameDeleted) {
+  content::RenderFrameHost* embedder_host =
+      NavigateAndCommit(main_rfh(), GURL(kOriginalUrl1));
+  int frame_tree_node_id = embedder_host->GetFrameTreeNodeId();
+
+  PdfViewerStreamManager* manager = pdf_viewer_stream_manager();
+  manager->AddStreamContainer(frame_tree_node_id,
+                              pdf_test_util::GenerateSampleStreamContainer(1));
+  manager->ClaimStreamInfoForTesting(embedder_host);
+  ASSERT_TRUE(manager->GetStreamContainer(embedder_host));
+
+  // There are no remaining streams, so `PdfViewerStreamManager` should delete
+  // itself.
+  manager->FrameDeleted(frame_tree_node_id);
+  EXPECT_FALSE(pdf_viewer_stream_manager());
+}
+
+// `PdfViewerStreamManager` should register a subresource
+// override if the navigation handle is for a PDF content frame.
+TEST_F(PdfViewerStreamManagerTest, ReadyToCommitNavigationSubresourceOverride) {
+  content::RenderFrameHost* embedder_host =
+      NavigateAndCommit(main_rfh(), GURL(kOriginalUrl1));
+  auto* extension_host =
+      CreateChildRenderFrameHost(embedder_host, "extension host");
+  auto* pdf_host = CreateChildRenderFrameHost(extension_host, "pdf host");
+
+  PdfViewerStreamManager* manager = pdf_viewer_stream_manager();
+  manager->AddStreamContainer(embedder_host->GetFrameTreeNodeId(),
+                              pdf_test_util::GenerateSampleStreamContainer(1));
+  manager->ClaimStreamInfoForTesting(embedder_host);
+  ASSERT_TRUE(manager->GetStreamContainer(embedder_host));
+
+  NiceMock<content::MockNavigationHandle> navigation_handle;
+
+  // Set `navigation_handle`'s frame host to a grandchild frame host. This acts
+  // as the PDF frame host.
+  ON_CALL(navigation_handle, IsPdf).WillByDefault(Return(true));
+  navigation_handle.set_render_frame_host(pdf_host);
+  navigation_handle.set_url(GURL("navigation_handle_url"));
+
+  EXPECT_CALL(navigation_handle, RegisterSubresourceOverride).Times(1);
+  manager->ReadyToCommitNavigation(&navigation_handle);
+
+  // There are no remaining streams, so `PdfViewerStreamManager` should be
+  // deleted after registering the subresource override.
+  EXPECT_FALSE(pdf_viewer_stream_manager());
+}
+
+// `PdfViewerStreamManager` should be able to handle registering multiple
+// subresource override for multiple PDF streams.
+TEST_F(PdfViewerStreamManagerTest,
+       ReadyToCommitNavigationSubresourceOverrideMultipleStreams) {
+  content::RenderFrameHost* embedder_host1 =
+      NavigateAndCommit(main_rfh(), GURL(kOriginalUrl1));
+  auto* extension_host1 =
+      CreateChildRenderFrameHost(embedder_host1, "extension host1");
+  auto* pdf_host1 = CreateChildRenderFrameHost(extension_host1, "pdf host");
+
+  auto* embedder_host2 =
+      CreateChildRenderFrameHost(embedder_host1, "embedder host2");
+  embedder_host2 = NavigateAndCommit(embedder_host2, GURL(kOriginalUrl2));
+  auto* extension_host2 =
+      CreateChildRenderFrameHost(embedder_host2, "extension host2");
+  auto* pdf_host2 = CreateChildRenderFrameHost(extension_host2, "pdf host2");
+
+  PdfViewerStreamManager* manager = pdf_viewer_stream_manager();
+  manager->AddStreamContainer(embedder_host1->GetFrameTreeNodeId(),
+                              pdf_test_util::GenerateSampleStreamContainer(1));
+  manager->AddStreamContainer(embedder_host2->GetFrameTreeNodeId(),
+                              pdf_test_util::GenerateSampleStreamContainer(2));
+  manager->ClaimStreamInfoForTesting(main_rfh());
+  manager->ClaimStreamInfoForTesting(embedder_host2);
+  ASSERT_TRUE(manager->GetStreamContainer(main_rfh()));
+  ASSERT_TRUE(manager->GetStreamContainer(embedder_host2));
+
+  NiceMock<content::MockNavigationHandle> navigation_handle;
+
+  // Set `navigation_handle`'s frame host to a grandchild frame host. This acts
+  // as the PDF frame host.
+  ON_CALL(navigation_handle, IsPdf).WillByDefault(Return(true));
+  navigation_handle.set_render_frame_host(pdf_host1);
+  navigation_handle.set_url(GURL("navigation_handle_url"));
+
+  EXPECT_CALL(navigation_handle, RegisterSubresourceOverride).Times(2);
+  manager->ReadyToCommitNavigation(&navigation_handle);
+
+  // The first subresource override shouldn't affect the other stream.
+  EXPECT_FALSE(manager->GetStreamContainer(main_rfh()));
+  EXPECT_TRUE(manager->GetStreamContainer(embedder_host2));
+
+  navigation_handle.set_render_frame_host(pdf_host2);
+
+  manager->ReadyToCommitNavigation(&navigation_handle);
+
+  // There are no remaining streams, so `PdfViewerStreamManager` should be
+  // deleted after registering the subresource override.
+  EXPECT_FALSE(pdf_viewer_stream_manager());
+}
+
+// The initial load should claim the stream. If the top level frame is
+// committing a navigation to a different document, the stream should be
+// deleted.
+TEST_F(PdfViewerStreamManagerTest, ReadyToCommitNavigationClaimAndDelete) {
+  content::RenderFrameHost* embedder_host =
+      NavigateAndCommit(main_rfh(), GURL(kOriginalUrl1));
+  PdfViewerStreamManager* manager = pdf_viewer_stream_manager();
+  manager->AddStreamContainer(embedder_host->GetFrameTreeNodeId(),
+                              pdf_test_util::GenerateSampleStreamContainer(1));
+  EXPECT_FALSE(manager->GetStreamContainer(embedder_host));
+
+  NiceMock<content::MockNavigationHandle> navigation_handle;
+  navigation_handle.set_render_frame_host(embedder_host);
+
+  // The initial load should cause the embedder host to claim the stream.
+  manager->ReadyToCommitNavigation(&navigation_handle);
+  EXPECT_TRUE(manager->GetStreamContainer(embedder_host));
+  EXPECT_TRUE(pdf_viewer_stream_manager());
+}
+
+}  // namespace pdf
diff --git a/chrome/browser/performance_manager/metrics/cpu_probe/procfs_stat_cpu_parser_unittest.cc b/chrome/browser/performance_manager/metrics/cpu_probe/procfs_stat_cpu_parser_unittest.cc
index 3bde92b..293ad8c 100644
--- a/chrome/browser/performance_manager/metrics/cpu_probe/procfs_stat_cpu_parser_unittest.cc
+++ b/chrome/browser/performance_manager/metrics/cpu_probe/procfs_stat_cpu_parser_unittest.cc
@@ -11,7 +11,7 @@
 #include "base/files/file.h"
 #include "base/files/file_util.h"
 #include "base/files/scoped_temp_dir.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/chrome/browser/performance_manager/metrics/page_timeline_cpu_monitor.cc b/chrome/browser/performance_manager/metrics/page_timeline_cpu_monitor.cc
index e6fb04f..70daa327 100644
--- a/chrome/browser/performance_manager/metrics/page_timeline_cpu_monitor.cc
+++ b/chrome/browser/performance_manager/metrics/page_timeline_cpu_monitor.cc
@@ -14,6 +14,7 @@
 #include "base/sequence_checker.h"
 #include "base/task/sequenced_task_runner.h"
 #include "base/time/time.h"
+#include "base/types/optional_ref.h"
 #include "components/performance_manager/public/features.h"
 #include "components/performance_manager/public/graph/frame_node.h"
 #include "components/performance_manager/public/graph/graph.h"
@@ -202,14 +203,17 @@
 
   // Swap a new measurement into `cached_cpu_measurements_`, storing the
   // previous contents in `previous_measurements`.
-  std::map<ResourceContext, resource_attribution::CPUTimeResult>
-      previous_measurements = std::exchange(cached_cpu_measurements_, results);
+  resource_attribution::QueryResultMap previous_measurements =
+      std::exchange(cached_cpu_measurements_, results);
 
   CPUUsageMap cpu_usage_map;
-  for (const auto& [context, result] : cached_cpu_measurements_) {
+  for (const auto& [context, query_result] : cached_cpu_measurements_) {
+    using CPUTimeResult = resource_attribution::CPUTimeResult;
     if (!resource_attribution::ContextIs<PageContext>(context)) {
       continue;
     }
+    const auto& result =
+        resource_attribution::AsResult<CPUTimeResult>(query_result).value();
 
     // Let time A be the last time UpdateCPUMeasurements() was called (with the
     // results saved in `previous_measurements`), or the time when
@@ -280,7 +284,9 @@
     base::TimeDelta current_cpu = result.cumulative_cpu;
     const auto it = previous_measurements.find(context);
     if (it != previous_measurements.end()) {
-      current_cpu -= it->second.cumulative_cpu;
+      const auto& previous_result =
+          resource_attribution::AsResult<CPUTimeResult>(it->second).value();
+      current_cpu -= previous_result.cumulative_cpu;
     }
     CHECK(!current_cpu.is_negative());
     cpu_usage_map.emplace(context, current_cpu / measurement_interval);
diff --git a/chrome/browser/performance_manager/metrics/page_timeline_cpu_monitor.h b/chrome/browser/performance_manager/metrics/page_timeline_cpu_monitor.h
index 6f782e99..f6ce22c 100644
--- a/chrome/browser/performance_manager/metrics/page_timeline_cpu_monitor.h
+++ b/chrome/browser/performance_manager/metrics/page_timeline_cpu_monitor.h
@@ -158,9 +158,8 @@
   // If the kUseResourceAttributionCPUMonitor feature parameter is enabled, this
   // will cache the measurements of each page when UpdateCPUMeasurements is
   // called. Otherwise it's unused.
-  std::map<resource_attribution::ResourceContext,
-           resource_attribution::CPUTimeResult>
-      cached_cpu_measurements_ GUARDED_BY_CONTEXT(sequence_checker_);
+  resource_attribution::QueryResultMap cached_cpu_measurements_
+      GUARDED_BY_CONTEXT(sequence_checker_);
 
   base::WeakPtrFactory<PageTimelineCPUMonitor> weak_factory_{this};
 };
diff --git a/chrome/browser/performance_manager/policies/probabilistic_memory_saver_policy.cc b/chrome/browser/performance_manager/policies/probabilistic_memory_saver_policy.cc
new file mode 100644
index 0000000..11ac53f
--- /dev/null
+++ b/chrome/browser/performance_manager/policies/probabilistic_memory_saver_policy.cc
@@ -0,0 +1,52 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/performance_manager/policies/probabilistic_memory_saver_policy.h"
+
+#include "chrome/browser/performance_manager/policies/page_discarding_helper.h"
+#include "chrome/browser/performance_manager/policies/probabilistic_memory_saver_sampler.h"
+#include "chrome/browser/performance_manager/policies/revisit_count_revisit_estimator.h"
+
+namespace performance_manager {
+
+ProbabilisticMemorySaverPolicy::ProbabilisticMemorySaverPolicy(
+    ProbabilisticMemorySaverPolicy::EstimatorCreationFunc
+        estimator_creation_function)
+    : estimator_creation_function_(estimator_creation_function) {}
+
+ProbabilisticMemorySaverPolicy::~ProbabilisticMemorySaverPolicy() = default;
+
+void ProbabilisticMemorySaverPolicy::OnPassedToGraph(Graph* graph) {
+  graph_ = graph;
+  // Unretained is safe because this owns the evaluator for the latter's entire
+  // lifetime.
+  evaluator_ = std::make_unique<ProactiveDiscardEvaluator>(
+      estimator_creation_function_.Run(),
+      std::make_unique<ProbabilisticMemorySaverSampler>(graph),
+      base::BindRepeating(&ProbabilisticMemorySaverPolicy::OnShouldDiscard,
+                          base::Unretained(this)));
+}
+
+void ProbabilisticMemorySaverPolicy::OnTakenFromGraph(Graph* graph) {
+  evaluator_.reset();
+  graph_ = nullptr;
+}
+
+// static
+std::unique_ptr<ProactiveDiscardEvaluator::RevisitProbabilityEstimator>
+ProbabilisticMemorySaverPolicy::CreateDefaultEstimator() {
+  return std::make_unique<RevisitCountRevisitEstimator>();
+}
+
+void ProbabilisticMemorySaverPolicy::OnShouldDiscard(
+    const TabPageDecorator::TabHandle* tab_handle) {
+  CHECK(graph_);
+  CHECK(tab_handle);
+  policies::PageDiscardingHelper::GetFromGraph(graph_)
+      ->ImmediatelyDiscardSpecificPage(
+          tab_handle->page_node(),
+          policies::PageDiscardingHelper::DiscardReason::PROACTIVE);
+}
+
+}  // namespace performance_manager
diff --git a/chrome/browser/performance_manager/policies/probabilistic_memory_saver_policy.h b/chrome/browser/performance_manager/policies/probabilistic_memory_saver_policy.h
new file mode 100644
index 0000000..5ca54ee
--- /dev/null
+++ b/chrome/browser/performance_manager/policies/probabilistic_memory_saver_policy.h
@@ -0,0 +1,41 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_PERFORMANCE_MANAGER_POLICIES_PROBABILISTIC_MEMORY_SAVER_POLICY_H_
+#define CHROME_BROWSER_PERFORMANCE_MANAGER_POLICIES_PROBABILISTIC_MEMORY_SAVER_POLICY_H_
+
+#include <memory>
+
+#include "base/memory/raw_ptr.h"
+#include "components/performance_manager/public/graph/graph.h"
+#include "components/performance_manager/user_tuning/proactive_discard_evaluator.h"
+
+namespace performance_manager {
+
+class ProbabilisticMemorySaverPolicy : public GraphOwned {
+ public:
+  using EstimatorCreationFunc = base::RepeatingCallback<std::unique_ptr<
+      ProactiveDiscardEvaluator::RevisitProbabilityEstimator>(void)>;
+  explicit ProbabilisticMemorySaverPolicy(
+      EstimatorCreationFunc estimator_creation_function = base::BindRepeating(
+          &ProbabilisticMemorySaverPolicy::CreateDefaultEstimator));
+  ~ProbabilisticMemorySaverPolicy() override;
+
+  // GraphOwned:
+  void OnPassedToGraph(Graph* graph) override;
+  void OnTakenFromGraph(Graph* graph) override;
+
+ private:
+  static std::unique_ptr<ProactiveDiscardEvaluator::RevisitProbabilityEstimator>
+  CreateDefaultEstimator();
+  void OnShouldDiscard(const TabPageDecorator::TabHandle* tab_handle);
+
+  std::unique_ptr<ProactiveDiscardEvaluator> evaluator_;
+  raw_ptr<Graph> graph_;
+  EstimatorCreationFunc estimator_creation_function_;
+};
+
+}  // namespace performance_manager
+
+#endif  // CHROME_BROWSER_PERFORMANCE_MANAGER_POLICIES_PROBABILISTIC_MEMORY_SAVER_POLICY_H_
diff --git a/chrome/browser/performance_manager/policies/probabilistic_memory_saver_policy_unittest.cc b/chrome/browser/performance_manager/policies/probabilistic_memory_saver_policy_unittest.cc
new file mode 100644
index 0000000..88e501b
--- /dev/null
+++ b/chrome/browser/performance_manager/policies/probabilistic_memory_saver_policy_unittest.cc
@@ -0,0 +1,102 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/performance_manager/policies/probabilistic_memory_saver_policy.h"
+
+#include "chrome/browser/performance_manager/test_support/page_discarding_utils.h"
+
+namespace performance_manager {
+
+class TestEstimator
+    : public ProactiveDiscardEvaluator::RevisitProbabilityEstimator {
+ public:
+  float ComputeRevisitProbability(
+      const TabPageDecorator::TabHandle* tab_handle) override {
+    auto it = probabilities_.find(tab_handle->page_node());
+    CHECK(it != probabilities_.end());
+    return it->second;
+  }
+
+  void SetProbabilityForPageNode(const PageNode* page_node, float prob) {
+    probabilities_[page_node] = prob;
+  }
+
+  std::map<const PageNode*, float> probabilities_;
+};
+
+class ProbabilisticMemoySaverPolicyTest
+    : public testing::GraphTestHarnessWithMockDiscarder {
+ public:
+  void SetUp() override {
+    testing::GraphTestHarnessWithMockDiscarder::SetUp();
+    graph()->PassToGraph(
+        std::make_unique<performance_manager::TabPageDecorator>());
+
+    // This is usually called when the profile is created. Fake it here since it
+    // doesn't happen in tests.
+    policies::PageDiscardingHelper::GetFromGraph(graph())
+        ->SetNoDiscardPatternsForProfile(
+            static_cast<PageNode*>(page_node())->GetBrowserContextID(), {});
+
+    auto policy = std::make_unique<ProbabilisticMemorySaverPolicy>(
+        base::BindRepeating(&ProbabilisticMemoySaverPolicyTest::CreateEstimator,
+                            base::Unretained(this)));
+    policy_ = policy.get();
+    graph()->PassToGraph(std::move(policy));
+  }
+
+  void TearDown() override {
+    estimator_ = nullptr;
+    // We get the unique_ptr from the graph to keep it alive long enough to
+    // clear our raw_ptr to the policy and thus avoid a dangling raw_ptr.
+    std::unique_ptr<GraphOwned> taken_policy = graph()->TakeFromGraph(policy_);
+    policy_ = nullptr;
+    testing::GraphTestHarnessWithMockDiscarder::TearDown();
+  }
+
+  ProbabilisticMemorySaverPolicy* policy() { return policy_; }
+
+  TestEstimator* estimator() { return estimator_; }
+
+  base::TimeDelta GetHeartbeatInterval() {
+    return features::kProactiveDiscardingSamplingInterval.Get();
+  }
+
+ private:
+  std::unique_ptr<ProactiveDiscardEvaluator::RevisitProbabilityEstimator>
+  CreateEstimator() {
+    CHECK(!estimator_);
+
+    std::unique_ptr<TestEstimator> estimator =
+        std::make_unique<TestEstimator>();
+    estimator_ = estimator.get();
+    return estimator;
+  }
+
+  raw_ptr<TestEstimator> estimator_;
+  raw_ptr<ProbabilisticMemorySaverPolicy> policy_;
+};
+
+TEST_F(ProbabilisticMemoySaverPolicyTest, DontDiscardIfLikelyToRevisit) {
+  page_node()->SetType(PageType::kTab);
+  page_node()->SetIsVisible(true);
+  page_node()->SetIsVisible(false);
+  estimator()->SetProbabilityForPageNode(page_node(), 1.0f);
+  task_env().FastForwardBy(GetHeartbeatInterval());
+  ::testing::Mock::VerifyAndClearExpectations(discarder());
+}
+
+TEST_F(ProbabilisticMemoySaverPolicyTest, DiscardIfUnlikelyToRevisit) {
+  page_node()->SetType(PageType::kTab);
+  page_node()->SetIsVisible(true);
+  page_node()->SetIsVisible(false);
+  estimator()->SetProbabilityForPageNode(page_node(), 0.0f);
+
+  EXPECT_CALL(*discarder(), DiscardPageNodeImpl(page_node()))
+      .WillOnce(::testing::Return(true));
+  task_env().FastForwardBy(GetHeartbeatInterval());
+  ::testing::Mock::VerifyAndClearExpectations(discarder());
+}
+
+}  // namespace performance_manager
diff --git a/chrome/browser/performance_manager/policies/probabilistic_memory_saver_sampler.cc b/chrome/browser/performance_manager/policies/probabilistic_memory_saver_sampler.cc
new file mode 100644
index 0000000..a1cec6c
--- /dev/null
+++ b/chrome/browser/performance_manager/policies/probabilistic_memory_saver_sampler.cc
@@ -0,0 +1,56 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/performance_manager/policies/probabilistic_memory_saver_sampler.h"
+#include "components/performance_manager/public/decorators/page_live_state_decorator.h"
+#include "components/performance_manager/public/features.h"
+#include "components/performance_manager/public/graph/graph.h"
+
+namespace performance_manager {
+
+ProbabilisticMemorySaverSampler::ProbabilisticMemorySaverSampler(Graph* graph)
+    : graph_(graph) {
+  static const base::TimeDelta sampling_interval =
+      features::kProactiveDiscardingSamplingInterval.Get();
+  timer_.Start(FROM_HERE, sampling_interval, this,
+               &ProbabilisticMemorySaverSampler::OnTimerElapsed);
+
+  TabPageDecorator* tab_page_decorator =
+      graph_->GetRegisteredObjectAs<TabPageDecorator>();
+  CHECK(tab_page_decorator);
+  tab_page_decorator->AddObserver(this);
+}
+
+ProbabilisticMemorySaverSampler::~ProbabilisticMemorySaverSampler() {
+  TabPageDecorator* tab_page_decorator =
+      graph_->GetRegisteredObjectAs<TabPageDecorator>();
+  if (tab_page_decorator) {
+    tab_page_decorator->RemoveObserver(this);
+  }
+}
+
+void ProbabilisticMemorySaverSampler::OnTabAdded(
+    TabPageDecorator::TabHandle* tab_handle) {
+  auto inserted = tabs_.insert(tab_handle);
+  CHECK(inserted.second);
+}
+
+void ProbabilisticMemorySaverSampler::OnBeforeTabRemoved(
+    TabPageDecorator::TabHandle* tab_handle) {
+  size_t num_erased = tabs_.erase(tab_handle);
+  CHECK_EQ(num_erased, 1UL);
+}
+
+void ProbabilisticMemorySaverSampler::OnTimerElapsed() {
+  for (auto* tab : tabs_) {
+    PageLiveStateDecorator::Data* live_state_data =
+        PageLiveStateDecorator::Data::GetOrCreateForPageNode(tab->page_node());
+    // Don't need to sample the tab if it's the active tab in its window.
+    if (!live_state_data->IsActiveTab()) {
+      Sample(tab);
+    }
+  }
+}
+
+}  // namespace performance_manager
diff --git a/chrome/browser/performance_manager/policies/probabilistic_memory_saver_sampler.h b/chrome/browser/performance_manager/policies/probabilistic_memory_saver_sampler.h
new file mode 100644
index 0000000..d06446a2
--- /dev/null
+++ b/chrome/browser/performance_manager/policies/probabilistic_memory_saver_sampler.h
@@ -0,0 +1,39 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_PERFORMANCE_MANAGER_POLICIES_PROBABILISTIC_MEMORY_SAVER_SAMPLER_H_
+#define CHROME_BROWSER_PERFORMANCE_MANAGER_POLICIES_PROBABILISTIC_MEMORY_SAVER_SAMPLER_H_
+
+#include <set>
+
+#include "base/timer/timer.h"
+#include "components/performance_manager/public/decorators/tab_page_decorator.h"
+#include "components/performance_manager/user_tuning/proactive_discard_evaluator.h"
+
+namespace performance_manager {
+
+class Graph;
+
+class ProbabilisticMemorySaverSampler
+    : public ProactiveDiscardEvaluator::Sampler,
+      public TabPageObserverDefaultImpl {
+ public:
+  explicit ProbabilisticMemorySaverSampler(Graph* graph);
+  ~ProbabilisticMemorySaverSampler() override;
+
+  // TabPageObserverDefaultImpl:
+  void OnTabAdded(TabPageDecorator::TabHandle* tab_handle) override;
+  void OnBeforeTabRemoved(TabPageDecorator::TabHandle* tab_handle) override;
+
+ private:
+  void OnTimerElapsed();
+
+  std::set<TabPageDecorator::TabHandle*> tabs_;
+  base::RepeatingTimer timer_;
+  raw_ptr<Graph> graph_;
+};
+
+}  // namespace performance_manager
+
+#endif  // CHROME_BROWSER_PERFORMANCE_MANAGER_POLICIES_PROBABILISTIC_MEMORY_SAVER_SAMPLER_H_
diff --git a/chrome/browser/performance_manager/policies/revisit_count_revisit_estimator.cc b/chrome/browser/performance_manager/policies/revisit_count_revisit_estimator.cc
new file mode 100644
index 0000000..021d53a
--- /dev/null
+++ b/chrome/browser/performance_manager/policies/revisit_count_revisit_estimator.cc
@@ -0,0 +1,16 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/performance_manager/policies/revisit_count_revisit_estimator.h"
+
+namespace performance_manager {
+
+float RevisitCountRevisitEstimator::ComputeRevisitProbability(
+    const TabPageDecorator::TabHandle* tab_handle) {
+  // TODO(crbug.com/1469337): Compute the actual probability. 1 means the tab is
+  // as likely to be revisited as possible, so it won't be discarded.
+  return 1.0f;
+}
+
+}  // namespace performance_manager
diff --git a/chrome/browser/performance_manager/policies/revisit_count_revisit_estimator.h b/chrome/browser/performance_manager/policies/revisit_count_revisit_estimator.h
new file mode 100644
index 0000000..73217b7d
--- /dev/null
+++ b/chrome/browser/performance_manager/policies/revisit_count_revisit_estimator.h
@@ -0,0 +1,21 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_PERFORMANCE_MANAGER_POLICIES_REVISIT_COUNT_REVISIT_ESTIMATOR_H_
+#define CHROME_BROWSER_PERFORMANCE_MANAGER_POLICIES_REVISIT_COUNT_REVISIT_ESTIMATOR_H_
+
+#include "components/performance_manager/user_tuning/proactive_discard_evaluator.h"
+
+namespace performance_manager {
+
+class RevisitCountRevisitEstimator
+    : public ProactiveDiscardEvaluator::RevisitProbabilityEstimator {
+ public:
+  float ComputeRevisitProbability(
+      const TabPageDecorator::TabHandle* tab_handle) override;
+};
+
+}  // namespace performance_manager
+
+#endif  // CHROME_BROWSER_PERFORMANCE_MANAGER_POLICIES_REVISIT_COUNT_REVISIT_ESTIMATOR_H_
diff --git a/chrome/browser/printing/system_access_process_print_browsertest.cc b/chrome/browser/printing/system_access_process_print_browsertest.cc
index 31319425..0e1d13b 100644
--- a/chrome/browser/printing/system_access_process_print_browsertest.cc
+++ b/chrome/browser/printing/system_access_process_print_browsertest.cc
@@ -127,7 +127,15 @@
                        .shadowRoot.querySelector('print-preview-button-strip')
                        .shadowRoot.querySelector('.cancel-button');
       button.click();)";
-  ASSERT_TRUE(content::ExecJs(preview_dialog, kScript));
+
+  // It is possible for sufficient processing for the cancel to complete such
+  // that the renderer naturally terminates before ExecJs() returns here.  This
+  // causes ExecJs() to return false, with a JavaScript error of
+  // "Renderer terminated".  Since the termination can actually be a result of
+  // a successful cancel, do not assert on this return result, just ignore the
+  // error instead.  Rely upon tests using other methods to catch errors, such
+  // as monitoring for the Print Preview to be done if that is needed.
+  std::ignore = content::ExecJs(preview_dialog, kScript);
 }
 
 }  // namespace
@@ -1248,14 +1256,8 @@
 #endif
 }
 
-// TODO(crbug.com/1500150): Consistently failing on Linux. Re-enable.
-#if BUILDFLAG(IS_LINUX)
-#define MAYBE_UpdatePrintSettingsFails DISABLED_UpdatePrintSettingsFails
-#else
-#define MAYBE_UpdatePrintSettingsFails UpdatePrintSettingsFails
-#endif
 IN_PROC_BROWSER_TEST_P(SystemAccessProcessPrintBrowserTest,
-                       MAYBE_UpdatePrintSettingsFails) {
+                       UpdatePrintSettingsFails) {
   AddPrinter("printer1");
   SetPrinterNameForSubsequentContexts("printer1");
   PrimeForFailInUpdatePrinterSettings();
@@ -3780,17 +3782,18 @@
       SetNumExpectedMessages(/*num=*/5);
     } else {
       // The expected events for this are:
-      // 1.  Wait for the actual printing job to be destroyed, to ensure
+      // 1.  Update print settings.
+      // 2.  Wait for the actual printing job to be destroyed, to ensure
       //     printing finished cleanly before completing the test.
-      SetNumExpectedMessages(/*num=*/1);
+      SetNumExpectedMessages(/*num=*/2);
     }
   } else {
     print_view_manager->set_on_print_preview_done_closure(base::BindOnce(
         &ContentAnalysisBeforePrintPreviewBrowserTest::CheckForQuit,
         base::Unretained(this)));
-    // Expect an extra message for the print job created after content
-    // analysis to be destroyed.
-    SetNumExpectedMessages(/*num=*/PrintAllowedOrNonBlockingPolicy() ? 2 : 1);
+    // The expected events for this are:
+    // 1.  Print Preview is done.
+    SetNumExpectedMessages(/*num=*/1);
   }
   OpenPdfInPreviewOnceReadyAndLoaded();
 
diff --git a/chrome/browser/privacy_budget/identifiability_study_state.h b/chrome/browser/privacy_budget/identifiability_study_state.h
index 1fa3ff2..a553ad1 100644
--- a/chrome/browser/privacy_budget/identifiability_study_state.h
+++ b/chrome/browser/privacy_budget/identifiability_study_state.h
@@ -14,7 +14,7 @@
 #include "base/containers/flat_set.h"
 #include "base/memory/raw_ptr.h"
 #include "base/sequence_checker.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/thread_annotations.h"
 #include "chrome/browser/privacy_budget/encountered_surface_tracker.h"
 #include "chrome/browser/privacy_budget/mesa_distribution.h"
diff --git a/chrome/browser/privacy_budget/surface_set_equivalence.h b/chrome/browser/privacy_budget/surface_set_equivalence.h
index a666ebc0..c6c3e55 100644
--- a/chrome/browser/privacy_budget/surface_set_equivalence.h
+++ b/chrome/browser/privacy_budget/surface_set_equivalence.h
@@ -6,7 +6,7 @@
 #define CHROME_BROWSER_PRIVACY_BUDGET_SURFACE_SET_EQUIVALENCE_H_
 
 #include "base/containers/flat_map.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "chrome/browser/privacy_budget/representative_surface_set.h"
 #include "chrome/common/privacy_budget/types.h"
 #include "third_party/blink/public/common/privacy_budget/identifiable_surface.h"
diff --git a/chrome/browser/privacy_budget/surface_set_valuation.cc b/chrome/browser/privacy_budget/surface_set_valuation.cc
index 89b7d47..f9aab5a 100644
--- a/chrome/browser/privacy_budget/surface_set_valuation.cc
+++ b/chrome/browser/privacy_budget/surface_set_valuation.cc
@@ -16,7 +16,7 @@
 #include "base/rand_util.h"
 #include "base/ranges/algorithm.h"
 #include "base/stl_util.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "chrome/browser/privacy_budget/representative_surface_set.h"
 #include "chrome/browser/privacy_budget/surface_set_equivalence.h"
 #include "chrome/common/privacy_budget/field_trial_param_conversions.h"
diff --git a/chrome/browser/resources/chromeos/login/screens/oobe/quick_start.html b/chrome/browser/resources/chromeos/login/screens/oobe/quick_start.html
index de8ed6dd1..fd0d3504 100644
--- a/chrome/browser/resources/chromeos/login/screens/oobe/quick_start.html
+++ b/chrome/browser/resources/chromeos/login/screens/oobe/quick_start.html
@@ -172,7 +172,7 @@
   </div>
 </oobe-adaptive-dialog>
 <!-- TRANSFERRING GAIA CREDENTIALS -->
-<oobe-loading-dialog for-step="gaia_credentials"
+<oobe-loading-dialog id="gaiaTransferDialog" for-step="gaia_credentials"
     title-key="quickStartAccountTransferTitle"
     subtitle-key="quickStartAccountTransferSubtitle"
     on-cancel-loading="onCancelClicked_" can-cancel>
diff --git a/chrome/browser/resources/chromeos/login/screens/osauth/local_password_setup.js b/chrome/browser/resources/chromeos/login/screens/osauth/local_password_setup.js
index 9389d1d..6efc444 100644
--- a/chrome/browser/resources/chromeos/login/screens/osauth/local_password_setup.js
+++ b/chrome/browser/resources/chromeos/login/screens/osauth/local_password_setup.js
@@ -140,7 +140,8 @@
     this.userActed(['back', this.$.passwordInput.value]);
   }
 
-  onSubmit_() {
+  async onSubmit_() {
+    await /** @type {!Object} */ (this.$.passwordInput).validate();
     this.setUIStep(LocalPasswordSetupState.PROGRESS);
     this.userActed(['inputPassword', this.$.passwordInput.value]);
   }
diff --git a/chrome/browser/resources/chromeos/login/test_api/test_api.js b/chrome/browser/resources/chromeos/login/test_api/test_api.js
index 1e71087..68bf80d5 100644
--- a/chrome/browser/resources/chromeos/login/test_api/test_api.js
+++ b/chrome/browser/resources/chromeos/login/test_api/test_api.js
@@ -968,6 +968,43 @@
   }
 }
 
+class LocalPasswordSetupScreenTester extends ScreenElementApi {
+  constructor() {
+    super('local-password-setup');
+    this.passwordInput = new PolymerElementApi(this, '#passwordInput');
+    this.firstInput = new TextFieldApi(this.passwordInput, '#firstInput');
+    this.confirmInput = new TextFieldApi(this.passwordInput, '#confirmInput');
+    this.nextButton = new PolymerElementApi(this, '#nextButton');
+    this.doneDialog = new PolymerElementApi(this, '#doneDialog');
+    this.doneButton = new PolymerElementApi(this, '#doneButton');
+  }
+
+  /** @return {boolean} */
+  isReadyForTesting() {
+    return this.isVisible() && this.firstInput.isVisible() &&
+        this.confirmInput.isVisible();
+  }
+
+  enterPassword(password) {
+    this.firstInput.typeInto(password);
+    afterNextRender(assert(this.element()), () => {
+      this.confirmInput.typeInto(password);
+      afterNextRender(assert(this.element()), () => {
+        this.nextButton.click();
+      });
+    });
+  }
+
+  /** @return {boolean} */
+  isDone() {
+    return this.doneDialog.isVisible();
+  }
+
+  clickDone() {
+    this.doneButton.click();
+  }
+}
+
 class GaiaInfoScreenTester extends ScreenElementApi {
   constructor() {
     super('gaia-info');
@@ -1080,6 +1117,7 @@
       ConsolidatedConsentScreen: new ConsolidatedConsentScreenTester(),
       SmartPrivacyProtectionScreen: new SmartPrivacyProtectionScreenTester(),
       CryptohomeRecoverySetupScreen: new CryptohomeRecoverySetupScreenTester(),
+      LocalPasswordSetupScreen: new LocalPasswordSetupScreenTester(),
       GaiaInfoScreen: new GaiaInfoScreenTester(),
       ConsumerUpdateScreen: new ConsumerUpdateScreenTester(),
       ChoobeScreen: new ChoobeScreenTester(),
diff --git a/chrome/browser/resources/chromeos/parent_access/flows/extension_approvals_disabled.html b/chrome/browser/resources/chromeos/parent_access/flows/extension_approvals_disabled.html
index c1c6871..85cb469 100644
--- a/chrome/browser/resources/chromeos/parent_access/flows/extension_approvals_disabled.html
+++ b/chrome/browser/resources/chromeos/parent_access/flows/extension_approvals_disabled.html
@@ -1,4 +1,4 @@
-<style include="common">
+<style>
   .disabled-screen-content {
     color: var(--cros-color-primary);
   }
diff --git a/chrome/browser/resources/chromeos/parent_access/flows/local_web_approvals_after.html b/chrome/browser/resources/chromeos/parent_access/flows/local_web_approvals_after.html
index ef7a786..dacc50f 100644
--- a/chrome/browser/resources/chromeos/parent_access/flows/local_web_approvals_after.html
+++ b/chrome/browser/resources/chromeos/parent_access/flows/local_web_approvals_after.html
@@ -1,4 +1,4 @@
-<style include="common">  
+<style>  
   .after-screen-content {
     color: var(--cros-color-primary);
   }
diff --git a/chrome/browser/resources/new_tab_page/modules/v2/history_clusters/module.ts b/chrome/browser/resources/new_tab_page/modules/v2/history_clusters/module.ts
index 858541d..43bff6a2 100644
--- a/chrome/browser/resources/new_tab_page/modules/v2/history_clusters/module.ts
+++ b/chrome/browser/resources/new_tab_page/modules/v2/history_clusters/module.ts
@@ -10,7 +10,7 @@
 
 import {CrLazyRenderElement} from 'chrome://resources/cr_elements/cr_lazy_render/cr_lazy_render.js';
 import {assert} from 'chrome://resources/js/assert.js';
-import {listenOnce} from 'chrome://resources/js/util_ts.js';
+import {listenOnce} from 'chrome://resources/js/util.js';
 import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 import {Cart} from '../../../cart.mojom-webui.js';
diff --git a/chrome/browser/resources/omnibox/ml/ml_browser_proxy.ts b/chrome/browser/resources/omnibox/ml/ml_browser_proxy.ts
index c7cf4db..70f0990 100644
--- a/chrome/browser/resources/omnibox/ml/ml_browser_proxy.ts
+++ b/chrome/browser/resources/omnibox/ml/ml_browser_proxy.ts
@@ -21,6 +21,7 @@
       OmniboxPageHandler.getRemote();
   private onResponseCallbacks: OnResponseCallback[] = [];
   private version: Promise<MlVersionObj>;
+  private readonly makeMlRequestCache: Record<string, Promise<number>> = {};
 
   constructor() {
     this.callbackRouter.handleNewAutocompleteResponse.addListener(
@@ -62,6 +63,8 @@
   }
 
   makeMlRequest(signals: Signals): Promise<number> {
-    return this.handler.startMl(signals).then(({score}) => score);
+    const cacheKey = String(Object.values(signals));
+    return this.makeMlRequestCache[cacheKey] ||=
+               this.handler.startMl(signals).then(({score}) => score);
   }
 }
diff --git a/chrome/browser/resources/omnibox/ml/ml_calculator.ts b/chrome/browser/resources/omnibox/ml/ml_calculator.ts
index 264a890..9fa6cc0 100644
--- a/chrome/browser/resources/omnibox/ml/ml_calculator.ts
+++ b/chrome/browser/resources/omnibox/ml/ml_calculator.ts
@@ -63,11 +63,10 @@
 
   set mlBrowserProxy(mlBrowserProxy: MlBrowserProxy) {
     this.mlBrowserProxy_ = mlBrowserProxy;
-    mlBrowserProxy.modelVersion.then(
-        version =>
-            createEl(
-                'a', this.getRequiredElement('#version'), [], version.string)
-                .href = version.url);
+    mlBrowserProxy.modelVersion.then(version => {
+      createEl('a', this.getRequiredElement('#version'), [], version.string)
+          .href = version.url;
+    });
     this.update();
   }
 
diff --git a/chrome/browser/resources/omnibox/ml/ml_chart.ts b/chrome/browser/resources/omnibox/ml/ml_chart.ts
index 2973c5a..8dc05adc 100644
--- a/chrome/browser/resources/omnibox/ml/ml_chart.ts
+++ b/chrome/browser/resources/omnibox/ml/ml_chart.ts
@@ -19,11 +19,13 @@
   fontSize: number;
   bold: boolean;
 }
+
 // Represents a single point when drawing a line plot onto the canvas.
 interface PlotPoint {
   position: Vector;
   label: TextLine[];
 }
+
 // Represents a line plot to be drawn onto the canvas.
 interface Plot {
   points: PlotPoint[];
@@ -110,7 +112,6 @@
   private mlBrowserProxy_: MlBrowserProxy;
   private signals_: Signals;
   private plots: Plot[] = [];
-  private readonly nPoints = 29;  // Max number of points per plot.
 
   private context: CanvasRenderingContext2D;
 
@@ -153,25 +154,30 @@
   }
 
   set signals(signals: Signals) {
-    this.setSignals(signals);
-  }
-
-  private async setSignals(signals: Signals) {
+    this.plots = [];
     this.clear();
 
-    // Debounce 1s. E.g., if the user is using the up arrow key to increase a
-    // signal from x to x+100, there's no need to redraw the plot 100 times
-    // which will be laggy; wait until the user's done and draw the final plots.
     this.signals_ = signals;
-    await new Promise(r => setTimeout(r, 1000));
-    if (this.signals_ !== signals) {
+
+    // Set grid [-15, 0] and [15, 1] to line up with the axes' starts and ends.
+    this.gridSize = new Vector(30, 1)
+                        .pointwiseMultiply(this.canvasSize)
+                        .pointwiseDivide(this.canvasSize.subtract(
+                            this.axisPadding.scale(2)));
+    // Subtract half the gridSize from the grid center.
+    this.gridMin = new Vector(0, .5).subtract(this.gridSize.scale(.5));
+
+    this.createPlots();
+  }
+
+  private async createPlots() {
+    if (!this.signals_ || !this.mlBrowserProxy_) {
       return;
     }
 
-    // Set grid [0, 0] and [1, 1] to line up with the axes' starts and ends.
-    this.gridSize = this.canvasSize.pointwiseDivide(
-        this.canvasSize.subtract(this.axisPadding.scale(2)));
-    this.gridMin = this.gridSize.subtract(new Vector(1)).scale(-.5);
+    // Only graph the 1st 4 signals, since those happen to be the one's we're
+    // interested in most often.
+    const chartSignalNames = signalNames.slice(0, 4);
 
     // If there are more than `colors.length` plots, colors will be repeated.
     const colors = [
@@ -180,84 +186,63 @@
       this.getColor(240),  // blue
       this.getColor(300),  // pink
     ];
-    // To draw a plot, all except 1 signal is held constant constant, while that
-    // 1 signal is tweaked from it's initial value by -/+nPoints. Modification
-    // represents a tweak and its score.
-    interface Modification {
-      i: number;
-      newValue: number;
+
+    const minX = Math.floor(this.gridMin.x);
+    const maxX = Math.ceil(this.gridMin.add(this.gridSize).x);
+    const xValues = [...Array(maxX - minX + 1)].map((_, j) => minX + j);
+
+    interface MlRequest {
+      x: number;
+      modifiedSignals: Signals;
       score: number;
     }
-    const modificationSets: Array<{
-      signalName: keyof Signals,
-      modifications: Modification[],
-    }> =
-        (await Promise.all(signalNames.map(
-             async signalName => ({
-               signalName,
-               modifications:
-                   (await Promise.all([
-                     ...Array(this.nPoints),
-                   ].map(async (_, i) => {
-                     const newValue = Number(signals[signalName]) + i -
-                         (this.nPoints - 1) / 2;
-                     if (newValue < 0) {
-                       return;
-                     }
-                     const modifiedSignals = {
-                       ...signals,
-                       [signalName]: String(newValue),
-                     };
-                     const score = await this.mlBrowserProxy_.makeMlRequest(
-                         modifiedSignals);
-                     return {
-                       i,
-                       newValue,
-                       score,
-                     };
-                   }))).filter(modification => modification) as Modification[],
-             }))))
-            .filter(modificationSet => {
-              return modificationSet.modifications.length &&
-                  // Filter out signals that did not affect the score.
-                  modificationSet.modifications.some(
-                      m =>
-                          m!.score !== modificationSet.modifications[0]!.score);
-            });
+    const mlRequestPromises: Array<Array<Promise<MlRequest>>> =
+        chartSignalNames.map(signalName => {
+          return xValues.filter(x => Number(this.signals_[signalName]) + x > 0)
+              .map(async(x): Promise<MlRequest> => {
+                const modifiedSignals = {
+                  ...this.signals_,
+                  [signalName]: String(Number(this.signals_[signalName]) + x),
+                };
+                const score =
+                    await this.mlBrowserProxy_.makeMlRequest(modifiedSignals);
+                return {x, modifiedSignals, score};
+              });
+        });
+    const mlRequests: MlRequest[][] = await Promise.all(
+        mlRequestPromises.map(arrayOfPromises => Promise.all(arrayOfPromises)));
 
-    this.plots = modificationSets.map(
-        (modificationSet, i) => ({
-          points: modificationSet.modifications.map(
-              modification => ({
-                position: new Vector(
-                    modification.i / (this.nPoints - 1), modification.score),
-                label: [
-                  ...modificationSets
-                      .map(modificationSet => modificationSet.signalName)
-                      .map((signalName, j) => ({
-                             text: [
-                               signalName,
-                               signalName === modificationSet.signalName ?
-                                   modification.newValue :
-                                   signals[signalName],
-                             ].join(': '),
-                             color: colors[j % colors.length]!,
-                             fontSize: 12,
-                             bold: signalName === modificationSet.signalName,
-                           })),
-                  {
-                    text: `Score: ${modification.score.toFixed(3)}`,
-                    color: this.primaryColor,
-                    fontSize: 12,
-                    bold: true,
-                  },
-                ],
-              })),
-          label: modificationSet.signalName,
-          color: colors[i % colors.length]!,
-          xAxisLabel: modificationSet.signalName,
-          xAxisOffset: Number(signals[modificationSet.signalName]),
-        }));
+    this.plots = chartSignalNames.map((signalName, i): Plot => {
+      return {
+        points: mlRequests[i]!.map(
+            (mlRequest):
+                PlotPoint => {
+                  return {
+                    position: new Vector(mlRequest.x, mlRequest.score),
+                    label: [
+                      ...chartSignalNames.map(
+                          (signalName2, k): TextLine => ({
+                            text: `${signalName2}: ${
+                                mlRequest.modifiedSignals[signalName2]}`,
+                            color: colors[k % colors.length]!,
+                            fontSize: 12,
+                            bold: signalName2 === signalName,
+                          })),
+                      {
+                        text: `Score: ${mlRequest.score.toFixed(3)}`,
+                        color: this.primaryColor,
+                        fontSize: 12,
+                        bold: true,
+                      },
+                    ],
+                  };
+                }),
+        label: signalName,
+        color: colors[i % colors.length]!,
+        xAxisLabel: signalName,
+        xAxisOffset: Number(this.signals_[signalName]),
+      };
+    });
 
     this.draw();
   }
@@ -270,6 +255,7 @@
     if (this.mouseDown && mouseDown) {
       this.gridMin = this.gridMin.subtract(
           this.invWh(position.subtract(this.mousePosition)));
+      this.createPlots();
     }
     this.mouseDown = mouseDown;
     this.mousePosition = position;
@@ -289,22 +275,22 @@
     this.gridSize = this.gridSize.scale(1 + .15 * zoom);
     this.gridMin = newGridCenter.subtract(this.gridSize.scale(.5));
     this.draw(position);
+    this.createPlots();
   }
 
-  private async draw(mouse: Vector|null = null) {
+  private draw(mouse: Vector|null = null) {
     this.clear();
     if (!this.plots.length) {
       return;
     }
 
     // Find which plot, if any, the mouse is hovering nearest.
-    let closestDistance = 0.003;
+    let closestDistance = 900;  // If the mouse is within 30px.
     let closestPlot: Plot|null = null;
     let closestPoint: PlotPoint|null = null;
     if (mouse) {
-      const gridMouse = this.invXy(mouse);
       this.plots.forEach(plot => plot.points.forEach(point => {
-        const distance = point.position.subtract(gridMouse).magnitudeSqr();
+        const distance = this.xy(point.position).subtract(mouse).magnitudeSqr();
         if (distance < closestDistance) {
           closestDistance = distance;
           closestPlot = plot;
@@ -334,8 +320,7 @@
           tickLength.setX(0), 1, xAxisColor);
       if (closestPlot) {
         this.drawText(
-            (closestPlot!.xAxisOffset + (tickGrid.x - .5) * (this.nPoints - 1))
-                .toFixed(2),
+            (tickGrid.x + closestPlot!.xAxisOffset).toFixed(2),
             tick.setY(axisOrigin.add(labelOffset).y), xAxisColor, 12, false,
             'center', 'middle');
       }
@@ -375,12 +360,11 @@
     }));
 
     // Draw the original signal.
-    if ((this.plots[0]?.points?.length || 0) - 1 > (this.nPoints - 1) / 2) {
-      const centerPoint =
-          this.plots[0]!
-              .points[this.plots[0]!.points.length - (this.nPoints - 1) / 2 - 1]!
-          ;
-      this.drawPoint(this.xy(centerPoint.position), 7, this.primaryColor);
+    const centerPosition = this.plots.flatMap(plot => plot.points)
+                               .map(point => point.position)
+                               .find(position => !position.x);
+    if (centerPosition) {
+      this.drawPoint(this.xy(centerPosition), 7, this.primaryColor);
     }
 
     // Draw the legend.
@@ -498,7 +482,7 @@
   private xy(v: Vector) {
     return v.transform(
         this.gridMin, this.gridSize, this.canvasSize.setX(0),
-        this.canvasSize.invertY(-1));
+        this.canvasSize.invertY(0));
   }
 
   // Converts grid distances to canvas distances. E.g. [1, 1] -> [600, 600].
@@ -509,7 +493,7 @@
   // Converts canvas coordinates to grid coordinates. E.g. [600, 600] -> [1, 0].
   private invXy(v: Vector): Vector {
     return v.transform(
-        this.canvasSize.setX(0), this.canvasSize.invertY(-1), this.gridMin,
+        this.canvasSize.setX(0), this.canvasSize.invertY(0), this.gridMin,
         this.gridSize);
   }
 
diff --git a/chrome/browser/resources/omnibox/ml/ml_ui.ts b/chrome/browser/resources/omnibox/ml/ml_ui.ts
index af1f4e9d..5934421 100644
--- a/chrome/browser/resources/omnibox/ml/ml_ui.ts
+++ b/chrome/browser/resources/omnibox/ml/ml_ui.ts
@@ -59,7 +59,10 @@
                     this.getRequiredElement('#copied-notification');
                 notification.textContent = text;
                 notification.classList.remove('fade-out');
-                setTimeout(() => notification.classList.add('fade-out'), 0);
+                // Querying `offsetHeight` forces a page reflow; otherwise,
+                // the classList changes above and below would be deduped.
+                notification.offsetHeight;
+                notification.classList.add('fade-out');
               });
         }));
     mlCalculator.addEventListener(
diff --git a/chrome/browser/resources/omnibox/omnibox.ts b/chrome/browser/resources/omnibox/omnibox.ts
index bb0760cd..73ed3eeb 100644
--- a/chrome/browser/resources/omnibox/omnibox.ts
+++ b/chrome/browser/resources/omnibox/omnibox.ts
@@ -301,7 +301,7 @@
   }
 
   exportClipboard() {
-    navigator.clipboard.writeText(JSON.stringify(this.exportData, null, 2))
+    navigator.clipboard.writeText(ExportDelegate.jsonStringify(this.exportData))
         .catch(error => console.error('unable to export to clipboard:', error));
   }
 
@@ -318,12 +318,14 @@
       versionDetails: ExportDelegate.getVersionDetails(),
       queryInputs: this.omniboxInput_.queryInputs,
       displayInputs: this.omniboxInput_.displayInputs,
-      responsesHistory: this.omniboxOutput_.responsesHistory,
+      // 20 entries will be about 7mb and 180k lines. That's small enough to
+      // attach to bugs.chromium.org which has a 10mb limit.
+      responsesHistory: this.omniboxOutput_.responsesHistory.slice(-20),
     };
   }
 
   private static download(object: Object, fileName: string) {
-    const content = JSON.stringify(object, null, 2);
+    const content = ExportDelegate.jsonStringify(object);
     const blob = new Blob([content], {type: 'application/json'});
     const url = URL.createObjectURL(blob);
     const a = document.createElement('a');
@@ -332,6 +334,11 @@
     a.click();
   }
 
+  private static jsonStringify(data: Object): string {
+    return JSON.stringify(data, (_, value) =>
+        typeof value === 'bigint' ? value.toString() : value, 2);
+  }
+
   /**
    * Returns a sortable timestamp string for use in filenames.
    */
diff --git a/chrome/browser/resources/pdf/browser_api.ts b/chrome/browser/resources/pdf/browser_api.ts
index 4db3ab9..293464f 100644
--- a/chrome/browser/resources/pdf/browser_api.ts
+++ b/chrome/browser/resources/pdf/browser_api.ts
@@ -173,12 +173,17 @@
 
 /**
  * Creates a BrowserApi for an extension running as a mime handler.
- * @return A promise to a BrowserApi instance constructed using the
- *     mimeHandlerPrivate API.
+ * @return A promise to a BrowserApi instance. The instance is constructed by
+ *     the pdfViewerPrivate API if PDF OOPIF is enabled, otherwise it is
+ *     constructed by the mimeHandlerPrivate API.
  */
 export function createBrowserApi(): Promise<BrowserApi> {
   return new Promise<chrome.mimeHandlerPrivate.StreamInfo>(function(resolve) {
-           chrome.mimeHandlerPrivate.getStreamInfo(resolve);
+           if (document.documentElement.hasAttribute('pdfOopifEnabled')) {
+             chrome.pdfViewerPrivate.getStreamInfo(resolve);
+           } else {
+             chrome.mimeHandlerPrivate.getStreamInfo(resolve);
+           }
          })
       .then(function(streamInfo) {
         const promises = [];
diff --git a/chrome/browser/resources/pdf/index.html b/chrome/browser/resources/pdf/index.html
index ba663b1..f2d8eb2a 100644
--- a/chrome/browser/resources/pdf/index.html
+++ b/chrome/browser/resources/pdf/index.html
@@ -1,6 +1,6 @@
 <!doctype html>
 <html dir="$i18n{textdirection}" lang="$i18n{language}"
-    $i18n{chromeRefresh2023Attribute}>
+    $i18n{chromeRefresh2023Attribute} $i18n{pdfOopifEnabled}>
 <head>
   <meta charset="utf-8">
 
diff --git a/chrome/browser/resources/pdf/pdf_viewer.ts b/chrome/browser/resources/pdf/pdf_viewer.ts
index 2ce9eacc..63e6e4e 100644
--- a/chrome/browser/resources/pdf/pdf_viewer.ts
+++ b/chrome/browser/resources/pdf/pdf_viewer.ts
@@ -313,8 +313,13 @@
     this.inkController_.init(this.viewport);
     this.tracker.add(
         this.inkController_.getEventTarget(),
-        InkControllerEventType.HAS_UNSAVED_CHANGES,
-        () => chrome.mimeHandlerPrivate.setShowBeforeUnloadDialog(true));
+        InkControllerEventType.HAS_UNSAVED_CHANGES, () => {
+          // TODO(crbug.com/1445746): Write an equivalent API call for
+          // chrome.pdfViewerPrivate.
+          if (!this.pdfOopifEnabled) {
+            chrome.mimeHandlerPrivate.setShowBeforeUnloadDialog(true);
+          }
+        });
     // </if>
 
     this.fileName_ = getFilenameFromURL(this.originalUrl);
@@ -917,7 +922,11 @@
             writer.write(blob);
             // Unblock closing the window now that the user has saved
             // successfully.
-            chrome.mimeHandlerPrivate.setShowBeforeUnloadDialog(false);
+            // TODO(crbug.com/1445746): Write an equivalent API call for
+            // chrome.pdfViewerPrivate.
+            if (!this.pdfOopifEnabled) {
+              chrome.mimeHandlerPrivate.setShowBeforeUnloadDialog(false);
+            }
           });
         });
   }
@@ -1048,7 +1057,11 @@
             writer.write(blob);
             // Unblock closing the window now that the user has saved
             // successfully.
-            chrome.mimeHandlerPrivate.setShowBeforeUnloadDialog(false);
+            // TODO(crbug.com/1445746): Write an equivalent API call for
+            // chrome.pdfViewerPrivate.
+            if (!this.pdfOopifEnabled) {
+              chrome.mimeHandlerPrivate.setShowBeforeUnloadDialog(false);
+            }
           });
         });
 
diff --git a/chrome/browser/resources/pdf/pdf_viewer_base.ts b/chrome/browser/resources/pdf/pdf_viewer_base.ts
index 6de461e6..bebf5b5 100644
--- a/chrome/browser/resources/pdf/pdf_viewer_base.ts
+++ b/chrome/browser/resources/pdf/pdf_viewer_base.ts
@@ -54,6 +54,7 @@
   protected lastViewportPosition: Point|null = null;
   protected originalUrl: string = '';
   protected paramsParser: OpenPdfParamsParser|null = null;
+  protected pdfOopifEnabled: boolean = false;
   showErrorDialog: boolean;
   protected strings?: {[key: string]: string};
   protected tracker: EventTracker = new EventTracker();
@@ -117,16 +118,20 @@
       plugin.toggleAttribute('pdf-viewer-update-enabled', true);
     }
 
-    // PDF viewer only, as Print Preview doesn't use
-    // `chrome.mimeHandlerPrivate`.
-    if (chrome.mimeHandlerPrivate) {
-      // Pass the attributes for loading PDF plugin through the
-      // `mimeHandlerPrivate` API.
-      const attributesForLoading:
-          chrome.mimeHandlerPrivate.PdfPluginAttributes = {
-        backgroundColor: this.getBackgroundColor(),
-        allowJavascript: javascript === 'allow',
-      };
+    // Pass the attributes for loading PDF plugin through the `pdfViewerPrivate`
+    // API if OOPIF PDF is enabled, or the `mimeHandlerPrivate` API.
+    const attributesForLoading:
+        chrome.mimeHandlerPrivate.PdfPluginAttributes = {
+      backgroundColor: this.getBackgroundColor(),
+      allowJavascript: javascript === 'allow',
+    };
+
+    // PDF viewer only, as Print Preview doesn't set PDF plugin attributes.
+    if (this.pdfOopifEnabled) {
+      if (chrome.pdfViewerPrivate) {
+        chrome.pdfViewerPrivate.setPdfPluginAttributes(attributesForLoading);
+      }
+    } else if (chrome.mimeHandlerPrivate) {
       chrome.mimeHandlerPrivate.setPdfPluginAttributes(attributesForLoading);
     }
 
@@ -147,6 +152,8 @@
       content: HTMLElement) {
     this.browserApi = browserApi;
     this.originalUrl = this.browserApi!.getStreamInfo().originalUrl;
+    this.pdfOopifEnabled =
+        document.documentElement.hasAttribute('pdfOopifEnabled');
 
     record(UserAction.DOCUMENT_OPENED);
 
diff --git a/chrome/browser/resources/side_panel/customize_chrome/wallpaper_search/combobox/customize_chrome_combobox.ts b/chrome/browser/resources/side_panel/customize_chrome/wallpaper_search/combobox/customize_chrome_combobox.ts
index c70e84b5..740280d 100644
--- a/chrome/browser/resources/side_panel/customize_chrome/wallpaper_search/combobox/customize_chrome_combobox.ts
+++ b/chrome/browser/resources/side_panel/customize_chrome/wallpaper_search/combobox/customize_chrome_combobox.ts
@@ -10,7 +10,7 @@
 import {getTemplate} from './customize_chrome_combobox.html.js';
 
 /* Selector for keyboard focusable items in the dropdown. */
-const HIGHLIGHTABLE_ITEMS_SELECTOR = '[role=group], [role=option]';
+const HIGHLIGHTABLE_ITEMS_SELECTOR = '[role=group] > label, [role=option]';
 
 /* Selector for selectable options in the dropdown. */
 const SELECTABLE_ITEMS_SELECTOR = '[role=option]';
@@ -105,6 +105,7 @@
 
     if (element) {
       element.toggleAttribute('highlighted', true);
+      element.scrollIntoView({block: 'nearest'});
     }
 
     this.highlightedElement_ = element;
@@ -272,6 +273,7 @@
     }
 
     if (!item.matches(SELECTABLE_ITEMS_SELECTOR)) {
+      item.click();
       return false;
     }
 
diff --git a/chrome/browser/resources/side_panel/customize_chrome/wallpaper_search/wallpaper_search.html b/chrome/browser/resources/side_panel/customize_chrome/wallpaper_search/wallpaper_search.html
index 0d62327..1ed32cf 100644
--- a/chrome/browser/resources/side_panel/customize_chrome/wallpaper_search/wallpaper_search.html
+++ b/chrome/browser/resources/side_panel/customize_chrome/wallpaper_search/wallpaper_search.html
@@ -53,9 +53,16 @@
   }
 
   .category-item {
+    display: flex;
     font-weight: 700;
   }
 
+  .category-item iron-icon {
+    --iron-icon-height: 16px;
+    --iron-icon-width: 16px;
+    margin-inline-start: auto;
+  }
+
   .category-item,
   .dropdown-item {
     align-items: center;
@@ -66,10 +73,12 @@
     padding: 0 20px;
   }
 
+  .category-item:hover,
   .dropdown-item:hover {
     background-color: var(--color-combobox-ink-drop-hovered);
   }
 
+  :host-context(.focus-outline-visible) .category-item[highlighted],
   :host-context(.focus-outline-visible) .dropdown-item[highlighted] {
     background: var(--color-button-background-pressed);
   }
@@ -244,12 +253,20 @@
         value="{{selectedDescriptorA_}}">
       <template is="dom-repeat" items="[[descriptors_.descriptorA]]">
         <div class="category" role="group">
-          <span class="category-item">[[item.category]]</span>
-          <template is="dom-repeat" items="[[item.labels]]">
-            <div class="dropdown-item" role="option" value="[[item]]">
-              <iron-icon icon="cr:check"></iron-icon>
-              <span>[[item]]</span>
-            </div>
+          <label class="category-item" on-click="onComboboxCategoryClick_">
+            [[item.category]]
+            <iron-icon icon="[[
+                getCategoryIcon_(item.category, expandedCategories_.*)]]">
+            </iron-icon>
+          </label>
+          <template is="dom-if" restamp if="[[
+              isCategoryExpanded_(item.category, expandedCategories_.*)]]">
+            <template is="dom-repeat" items="[[item.labels]]">
+              <div class="dropdown-item" role="option" value="[[item]]">
+                <iron-icon icon="cr:check"></iron-icon>
+                <span>[[item]]</span>
+              </div>
+            </template>
           </template>
         </div>
       </template>
diff --git a/chrome/browser/resources/side_panel/customize_chrome/wallpaper_search/wallpaper_search.ts b/chrome/browser/resources/side_panel/customize_chrome/wallpaper_search/wallpaper_search.ts
index 3f813f7..0c2db64d 100644
--- a/chrome/browser/resources/side_panel/customize_chrome/wallpaper_search/wallpaper_search.ts
+++ b/chrome/browser/resources/side_panel/customize_chrome/wallpaper_search/wallpaper_search.ts
@@ -11,6 +11,7 @@
 import 'chrome://resources/cr_elements/cr_action_menu/cr_action_menu.js';
 import 'chrome://resources/cr_elements/cr_input/cr_input.js';
 import 'chrome://resources/cr_elements/cr_loading_gradient/cr_loading_gradient.js';
+import 'chrome://resources/cr_elements/icons.html.js';
 import 'chrome://resources/cr_components/theme_color_picker/theme_hue_slider_dialog.js';
 
 import {SpHeading} from 'chrome://customize-chrome-side-panel.top-chrome/shared/sp_heading.js';
@@ -89,6 +90,7 @@
         computed: 'computeErrorState_(status_)',
       },
       emptyContainers_: Object,
+      expandedCategories_: Object,
       loading_: {
         type: Boolean,
         value: false,
@@ -116,6 +118,7 @@
   private emptyContainers_: number[];
   private errorCallback_: (() => void)|undefined;
   private errorState_: ErrorState|null = null;
+  private expandedCategories_: {[category: string]: boolean} = {};
   private loading_: boolean;
   private results_: WallpaperSearchResult[];
   private selectedDefaultColor_: string|undefined;
@@ -255,6 +258,11 @@
     }
   }
 
+  private getCategoryIcon_(category: string): string {
+    return this.expandedCategories_[category] ? 'cr:expand-less' :
+                                                'cr:expand-more';
+  }
+
   private isBackgroundSelected_(id: Token): boolean {
     return !!(
         this.theme_ && this.theme_.backgroundImage &&
@@ -263,6 +271,10 @@
         this.theme_.backgroundImage.localBackgroundId.high === id.high);
   }
 
+  private isCategoryExpanded_(category: string): boolean {
+    return this.expandedCategories_[category];
+  }
+
   private isDefaultColorSelected_(color: string): boolean {
     return color === this.selectedDefaultColor_;
   }
@@ -271,6 +283,12 @@
     this.dispatchEvent(new Event('back-click'));
   }
 
+  private onComboboxCategoryClick_(e: DomRepeatEvent<DescriptorA>) {
+    const category = e.model.item.category;
+    this.set(
+        `expandedCategories_.${category}`, !this.expandedCategories_[category]);
+  }
+
   private onCustomColorClick_() {
     this.$.hueSlider.showAt(this.$.customColorContainer);
   }
diff --git a/chrome/browser/resources/side_panel/read_anything/BUILD.gn b/chrome/browser/resources/side_panel/read_anything/BUILD.gn
index 7f771b1..621a753 100644
--- a/chrome/browser/resources/side_panel/read_anything/BUILD.gn
+++ b/chrome/browser/resources/side_panel/read_anything/BUILD.gn
@@ -22,6 +22,7 @@
 
   ts_composite = true
   ts_deps = [
+    "//chrome/browser/resources/side_panel/shared:build_ts",
     "//third_party/polymer/v3_0:library",
     "//ui/webui/resources/cr_components/color_change_listener:build_ts",
     "//ui/webui/resources/cr_elements:build_ts",
diff --git a/chrome/browser/resources/side_panel/read_anything/app.ts b/chrome/browser/resources/side_panel/read_anything/app.ts
index 5bae9e28..0ed5314 100644
--- a/chrome/browser/resources/side_panel/read_anything/app.ts
+++ b/chrome/browser/resources/side_panel/read_anything/app.ts
@@ -17,7 +17,7 @@
 import {PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
 
 import {getTemplate} from './app.html.js';
-import {ReadAnythingToolbar} from './read_anything_toolbar.js';
+import {ReadAnythingToolbarElement} from './read_anything_toolbar.js';
 
 const ReadAnythingElementBase = WebUiListenerMixin(PolymerElement);
 
@@ -140,6 +140,12 @@
   };
 }
 
+export interface ReadAnythingElement {
+  $: {
+    toolbar: ReadAnythingToolbarElement,
+  };
+}
+
 export class ReadAnythingElement extends ReadAnythingElementBase {
   static get is() {
     return 'read-anything-app';
@@ -487,19 +493,11 @@
 
     // TODO(crbug.com/1474951): Add tests for pause button
     utterance.onstart = event => {
-      const toolbar = this.shadowRoot?.getElementById('toolbar');
-      assert(toolbar);
-      if (toolbar instanceof ReadAnythingToolbar) {
-        toolbar.showVoicePreviewPlaying(event.utterance.voice);
-      }
+      this.$.toolbar.showVoicePreviewPlaying(event.utterance.voice);
     };
 
     utterance.onend = () => {
-      const toolbar = this.shadowRoot?.getElementById('toolbar');
-      assert(toolbar);
-      if (toolbar instanceof ReadAnythingToolbar) {
-        toolbar.showVoicePreviewDone();
-      }
+      this.$.toolbar.showVoicePreviewDone();
     };
 
     this.synth.speak(utterance);
@@ -753,13 +751,7 @@
     this.currentUtteranceIndex_ = 0;
     this.utterancesToSpeak_ = [];
     this.previousHighlight_ = null;
-    const shadowRoot = this.shadowRoot;
-    assert(shadowRoot);
-    const toolbar = shadowRoot.getElementById('toolbar');
-    assert(toolbar);
-    if (toolbar instanceof ReadAnythingToolbar) {
-      toolbar.updateUiForPausing();
-    }
+    this.$.toolbar.updateUiForPausing();
   }
 
   // TODO(b/1465029): Once the IsReadAnythingWebUIEnabled flag is removed
@@ -847,11 +839,7 @@
     }
     // TODO(crbug.com/1474951): investigate using parent/child relationshiop
     // instead of element by id.
-    const toolbar = this.shadowRoot?.getElementById('toolbar');
-    assert(toolbar);
-    if (toolbar instanceof ReadAnythingToolbar) {
-      toolbar.restoreSettingsFromPrefs(colorSuffix);
-    }
+    this.$.toolbar.restoreSettingsFromPrefs(colorSuffix);
   }
 
   private restoreVoiceFromPrefs_() {
@@ -898,12 +886,7 @@
     });
 
     // Also update the font on the toolbar itself with the validated font name.
-    const shadowRoot = this.shadowRoot;
-    assert(shadowRoot);
-    const toolbar = shadowRoot.getElementById('toolbar');
-    if (toolbar) {
-      toolbar.style.fontFamily = validatedFontName;
-    }
+    this.$.toolbar.style.fontFamily = validatedFontName;
   }
 
   updateFontSize() {
@@ -990,24 +973,13 @@
 
   updateFonts() {
     // Also update the font on the toolbar itself with the validated font name.
-    const shadowRoot = this.shadowRoot;
-    assert(shadowRoot);
-    const toolbar = shadowRoot.getElementById('toolbar');
-    if (toolbar instanceof ReadAnythingToolbar) {
-      toolbar.updateFonts();
-    }
+    this.$.toolbar.updateFonts();
   }
 
   private onKeyDown_(e: KeyboardEvent) {
     if (e.key === 'k') {
       e.stopPropagation();
-      const shadowRoot = this.shadowRoot;
-      assert(shadowRoot);
-      const toolbar = shadowRoot.getElementById('toolbar');
-      assert(toolbar);
-      if (toolbar instanceof ReadAnythingToolbar) {
-        toolbar.onPlayPauseClick();
-      }
+      this.$.toolbar.onPlayPauseClick();
     }
   }
 }
diff --git a/chrome/browser/resources/side_panel/read_anything/read_anything_toolbar.ts b/chrome/browser/resources/side_panel/read_anything/read_anything_toolbar.ts
index ba7f5ed..43236ff 100644
--- a/chrome/browser/resources/side_panel/read_anything/read_anything_toolbar.ts
+++ b/chrome/browser/resources/side_panel/read_anything/read_anything_toolbar.ts
@@ -20,7 +20,7 @@
 import {ReadAnythingElement} from './app.js';
 import {getTemplate} from './read_anything_toolbar.html.js';
 
-export interface ReadAnythingToolbar {
+export interface ReadAnythingToolbarElement {
   $: {
     rateMenu: CrActionMenuElement,
     colorMenu: CrActionMenuElement,
@@ -74,8 +74,8 @@
 const moreOptionsClass = '.more-options-icon';
 const activeClass = ' active';
 
-const ReadAnythingToolbarBase = WebUiListenerMixin(PolymerElement);
-export class ReadAnythingToolbar extends ReadAnythingToolbarBase {
+const ReadAnythingToolbarElementBase = WebUiListenerMixin(PolymerElement);
+export class ReadAnythingToolbarElement extends ReadAnythingToolbarElementBase {
   contentPage = document.querySelector('read-anything-app');
   static get is() {
     return 'read-anything-toolbar';
@@ -102,7 +102,7 @@
     // Hide the more options button first to calculate if we need it
     const moreOptionsButton = toolbar.querySelector('#more') as HTMLElement;
     assert(moreOptionsButton);
-    ReadAnythingToolbar.hideElement(moreOptionsButton, false);
+    ReadAnythingToolbarElement.hideElement(moreOptionsButton, false);
 
     // Show all the buttons that would go in the overflow menu to see if they
     // fit
@@ -113,16 +113,16 @@
     const buttonsOnToolbarToMaybeHide =
         buttons.slice(buttons.length - moreOptionsButtons.length);
     buttonsOnToolbarToMaybeHide.forEach(btn => {
-      ReadAnythingToolbar.showElement(btn as HTMLElement);
+      ReadAnythingToolbarElement.showElement(btn as HTMLElement);
     });
 
     // When scroll width and client width are the different, then the content
     // has overflowed.
     if (toolbar.scrollWidth !== toolbar.clientWidth) {
-      ReadAnythingToolbar.showElement(moreOptionsButton);
+      ReadAnythingToolbarElement.showElement(moreOptionsButton);
       // Hide all the buttons on the toolbar that are in the more options menu
       buttonsOnToolbarToMaybeHide.forEach(btn => {
-        ReadAnythingToolbar.hideElement(btn as HTMLElement, true);
+        ReadAnythingToolbarElement.hideElement(btn as HTMLElement, true);
       });
       toolbar.insertBefore(moreOptionsButton, buttonsOnToolbarToMaybeHide[0]);
       (moreOptionsButtons.item(0) as HTMLElement).style.marginLeft = '16px';
@@ -300,7 +300,7 @@
   private onToolbarResize_(entries: ResizeObserverEntry[]) {
     assert(entries.length === 1);
     const toolbar = entries[0].target as HTMLElement;
-    ReadAnythingToolbar.maybeUpdateMoreOptions(toolbar);
+    ReadAnythingToolbarElement.maybeUpdateMoreOptions(toolbar);
   }
 
   private restoreFontMenu_() {
@@ -390,7 +390,7 @@
 
     const toolbar = shadowRoot.getElementById('toolbar-container');
     assert(toolbar);
-    ReadAnythingToolbar.maybeUpdateMoreOptions(toolbar);
+    ReadAnythingToolbarElement.maybeUpdateMoreOptions(toolbar);
   }
 
   showVoicePreviewPlaying(voice: SpeechSynthesisVoice|null) {
@@ -437,7 +437,7 @@
 
     const toolbar = shadowRoot.getElementById('toolbar-container');
     assert(toolbar);
-    ReadAnythingToolbar.maybeUpdateMoreOptions(toolbar);
+    ReadAnythingToolbarElement.maybeUpdateMoreOptions(toolbar);
   }
 
   private closeMenus_() {
@@ -692,10 +692,10 @@
     checkMarks.forEach((element) => {
       assert(element instanceof HTMLElement);
       // TODO(crbug.com/1465029): Ensure this works with screen readers
-      ReadAnythingToolbar.hideElement(element, true);
+      ReadAnythingToolbarElement.hideElement(element, true);
     });
     const checkMark = checkMarks[index] as IronIconElement;
-    ReadAnythingToolbar.showElement(checkMark);
+    ReadAnythingToolbarElement.showElement(checkMark);
   }
 
   private onFontSizeIncreaseClick_() {
@@ -840,4 +840,10 @@
   }
 }
 
-customElements.define('read-anything-toolbar', ReadAnythingToolbar);
+declare global {
+  interface HTMLElementTagNameMap {
+    'read-anything-toolbar': ReadAnythingToolbarElement;
+  }
+}
+
+customElements.define('read-anything-toolbar', ReadAnythingToolbarElement);
diff --git a/chrome/browser/safe_browsing/chrome_password_protection_service.cc b/chrome/browser/safe_browsing/chrome_password_protection_service.cc
index e519c42..f1df033a1 100644
--- a/chrome/browser/safe_browsing/chrome_password_protection_service.cc
+++ b/chrome/browser/safe_browsing/chrome_password_protection_service.cc
@@ -601,8 +601,9 @@
   if (!trigger_manager_)
     return;
 
+  auto* primary_main_frame = web_contents->GetPrimaryMainFrame();
   const content::GlobalRenderFrameHostId primary_main_frame_id =
-      web_contents->GetPrimaryMainFrame()->GetGlobalId();
+      primary_main_frame->GetGlobalId();
   security_interstitials::UnsafeResource resource;
   if (password_type.account_type() ==
       ReusedPasswordAccountType::NON_GAIA_ENTERPRISE) {
@@ -617,7 +618,7 @@
   }
   resource.url = web_contents->GetLastCommittedURL();
   resource.render_process_id = primary_main_frame_id.child_id;
-  resource.render_frame_id = primary_main_frame_id.frame_routing_id;
+  resource.render_frame_token = primary_main_frame->GetFrameToken().value();
   resource.token = token;
   scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory =
       profile_->GetDefaultStoragePartition()
diff --git a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc b/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc
index 537168018..6e94b5e3 100644
--- a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc
+++ b/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc
@@ -3590,15 +3590,16 @@
 
     SafeBrowsingService* sb_service =
         g_browser_process->safe_browsing_service();
+    auto* primary_main_frame = contents->GetPrimaryMainFrame();
     const content::GlobalRenderFrameHostId primary_main_frame_id =
-        contents->GetPrimaryMainFrame()->GetGlobalId();
+        primary_main_frame->GetGlobalId();
     SafeBrowsingBlockingPage::UnsafeResource resource;
 
     resource.url = request_url;
     resource.is_subresource = is_subresource;
     resource.threat_type = testing::get<1>(GetParam());
     resource.render_process_id = primary_main_frame_id.child_id;
-    resource.render_frame_id = primary_main_frame_id.frame_routing_id;
+    resource.render_frame_token = primary_main_frame->GetFrameToken().value();
     resource.threat_source = safe_browsing::ThreatSource::LOCAL_PVER4;
 
     auto* ui_manager = sb_service->ui_manager().get();
diff --git a/chrome/browser/safe_browsing/threat_details_unittest.cc b/chrome/browser/safe_browsing/threat_details_unittest.cc
index bb9dcf75..44ed1d5 100644
--- a/chrome/browser/safe_browsing/threat_details_unittest.cc
+++ b/chrome/browser/safe_browsing/threat_details_unittest.cc
@@ -283,8 +283,9 @@
                     bool is_subresource,
                     const GURL& url,
                     UnsafeResource* resource) {
+    auto* primary_main_frame = web_contents()->GetPrimaryMainFrame();
     const content::GlobalRenderFrameHostId primary_main_frame_id =
-        web_contents()->GetPrimaryMainFrame()->GetGlobalId();
+        primary_main_frame->GetGlobalId();
     resource->url = url;
     resource->is_subresource = is_subresource;
     resource->request_destination =
@@ -293,7 +294,7 @@
     resource->threat_type = threat_type;
     resource->threat_source = threat_source;
     resource->render_process_id = primary_main_frame_id.child_id;
-    resource->render_frame_id = primary_main_frame_id.frame_routing_id;
+    resource->render_frame_token = primary_main_frame->GetFrameToken().value();
   }
 
   void VerifyResults(const ClientSafeBrowsingReportRequest& report_pb,
diff --git a/chrome/browser/safe_browsing/url_checker_delegate_impl.cc b/chrome/browser/safe_browsing/url_checker_delegate_impl.cc
index 087b12c..527fa1b 100644
--- a/chrome/browser/safe_browsing/url_checker_delegate_impl.cc
+++ b/chrome/browser/safe_browsing/url_checker_delegate_impl.cc
@@ -149,7 +149,7 @@
     const GURL& original_url,
     int frame_tree_node_id,
     int render_process_id,
-    int render_frame_id,
+    base::optional_ref<const base::UnguessableToken> render_frame_token,
     bool originated_from_service_worker) {
   // Check for whether the URL matches the Safe Browsing allowlist domains
   // (a.k. a prefs::kSafeBrowsingAllowlistDomains).
diff --git a/chrome/browser/safe_browsing/url_checker_delegate_impl.h b/chrome/browser/safe_browsing/url_checker_delegate_impl.h
index 9efbcad..c217052 100644
--- a/chrome/browser/safe_browsing/url_checker_delegate_impl.h
+++ b/chrome/browser/safe_browsing/url_checker_delegate_impl.h
@@ -50,11 +50,12 @@
   bool IsUrlAllowlisted(const GURL& url) override;
   void SetPolicyAllowlistDomains(
       const std::vector<std::string>& allowlist_domains) override;
-  bool ShouldSkipRequestCheck(const GURL& original_url,
-                              int frame_tree_node_id,
-                              int render_process_id,
-                              int render_frame_id,
-                              bool originated_from_service_worker) override;
+  bool ShouldSkipRequestCheck(
+      const GURL& original_url,
+      int frame_tree_node_id,
+      int render_process_id,
+      base::optional_ref<const base::UnguessableToken> render_frame_token,
+      bool originated_from_service_worker) override;
   void NotifySuspiciousSiteDetected(
       const base::RepeatingCallback<content::WebContents*()>&
           web_contents_getter) override;
diff --git a/chrome/browser/segmentation_platform/client_util/local_tab_handler.cc b/chrome/browser/segmentation_platform/client_util/local_tab_handler.cc
index bbaf257..f9c1419 100644
--- a/chrome/browser/segmentation_platform/client_util/local_tab_handler.cc
+++ b/chrome/browser/segmentation_platform/client_util/local_tab_handler.cc
@@ -31,47 +31,6 @@
 
 namespace {
 
-#if BUILDFLAG(IS_ANDROID)
-
-// Returns a list of all tabs from tab model.
-std::vector<TabFetcher::TabEntry> FetchTabs(const Profile* profile) {
-  std::vector<TabFetcher::TabEntry> tabs;
-  for (const TabModel* model : TabModelList::models()) {
-    if (model->GetProfile() != profile) {
-      continue;
-    }
-    for (int i = 0; i < model->GetTabCount(); ++i) {
-      auto* web_contents = model->GetWebContentsAt(i);
-      auto* tab_android = model->GetTabAt(i);
-      auto tab_id = tab_android->GetSyncedTabDelegate()->GetSessionId();
-      tabs.emplace_back(tab_id, web_contents, tab_android);
-    }
-  }
-  return tabs;
-}
-
-#else  // BUILDFLAG(IS_ANDROID)
-
-// Returns a list of all tabs from tab strip model.
-std::vector<TabFetcher::TabEntry> FetchTabs(const Profile* profile) {
-  const BrowserList* browser_list = BrowserList::GetInstance();
-  std::vector<TabFetcher::TabEntry> tabs;
-  for (const Browser* browser : *browser_list) {
-    if (browser->profile() != profile) {
-      continue;
-    }
-    for (int i = 0; i < browser->tab_strip_model()->GetTabCount(); ++i) {
-      auto* web_contents = browser->tab_strip_model()->GetWebContentsAt(i);
-      auto* tab_delegate =
-          BrowserSyncedTabDelegate::FromWebContents(web_contents);
-      tabs.emplace_back(tab_delegate->GetSessionId(), web_contents, nullptr);
-    }
-  }
-  return tabs;
-}
-
-#endif  // BUILDFLAG(IS_ANDROID)
-
 GURL GetLocalTabURL(const TabFetcher::Tab& tab) {
   if (tab.webcontents) {
     return tab.webcontents->GetURL();
@@ -101,6 +60,74 @@
   return base::Time::Now() - last_modified_timestamp;
 }
 
+#if BUILDFLAG(IS_ANDROID)
+
+// Returns a list of all tabs from tab model.
+std::vector<TabFetcher::TabEntry> FetchTabs(const Profile* profile) {
+  std::vector<TabFetcher::TabEntry> tabs;
+  for (const TabModel* model : TabModelList::models()) {
+    if (model->GetProfile() != profile) {
+      continue;
+    }
+    // Store count in local variable since it makes expensive JNI call.
+    int count = model->GetTabCount();
+    for (int i = 0; i < count; ++i) {
+      auto* web_contents = model->GetWebContentsAt(i);
+      auto* tab_android = model->GetTabAt(i);
+      auto tab_id = tab_android->GetSyncedTabDelegate()->GetSessionId();
+      tabs.emplace_back(tab_id, web_contents, tab_android);
+    }
+  }
+  return tabs;
+}
+
+TabFetcher::Tab FindLocalTabAndroid(const Profile* profile,
+                                    const TabFetcher::TabEntry& entry) {
+  for (const TabModel* model : TabModelList::models()) {
+    if (model->GetProfile() != profile) {
+      continue;
+    }
+    // Store count in local variable since it makes expensive JNI call.
+    int count = model->GetTabCount();
+    for (int i = 0; i < count; ++i) {
+      auto* tab_android = model->GetTabAt(i);
+      SessionID id = tab_android->GetSyncedTabDelegate()->GetSessionId();
+      if (id != entry.tab_id) {
+        continue;
+      }
+      TabFetcher::Tab result;
+      result.webcontents = model->GetWebContentsAt(i);
+      result.tab_android = tab_android;
+      result.time_since_modified = GetLocalTimeSinceModified(result);
+      result.tab_url = GetLocalTabURL(result);
+      return result;
+    }
+  }
+  return TabFetcher::Tab();
+}
+
+#else  // BUILDFLAG(IS_ANDROID)
+
+// Returns a list of all tabs from tab strip model.
+std::vector<TabFetcher::TabEntry> FetchTabs(const Profile* profile) {
+  const BrowserList* browser_list = BrowserList::GetInstance();
+  std::vector<TabFetcher::TabEntry> tabs;
+  for (const Browser* browser : *browser_list) {
+    if (browser->profile() != profile) {
+      continue;
+    }
+    for (int i = 0; i < browser->tab_strip_model()->GetTabCount(); ++i) {
+      auto* web_contents = browser->tab_strip_model()->GetWebContentsAt(i);
+      auto* tab_delegate =
+          BrowserSyncedTabDelegate::FromWebContents(web_contents);
+      tabs.emplace_back(tab_delegate->GetSessionId(), web_contents, nullptr);
+    }
+  }
+  return tabs;
+}
+
+#endif  // BUILDFLAG(IS_ANDROID)
+
 }  // namespace
 
 LocalTabHandler::LocalTabHandler(
@@ -117,6 +144,9 @@
 }
 
 TabFetcher::Tab LocalTabHandler::FindLocalTab(const TabEntry& entry) {
+#if BUILDFLAG(IS_ANDROID)
+  return FindLocalTabAndroid(profile_, entry);
+#else
   TabFetcher::Tab result;
   // Fetch all tabs and verify if the `entry` is still valid.
   auto all_local_tabs = FetchTabs(profile_);
@@ -132,6 +162,7 @@
     }
   }
   return result;
+#endif
 }
 
 LocalTabSource::LocalTabSource(
diff --git a/chrome/browser/segmentation_platform/segmentation_platform_service_factory_unittest.cc b/chrome/browser/segmentation_platform/segmentation_platform_service_factory_unittest.cc
index 57b0a3a8..4b82a686 100644
--- a/chrome/browser/segmentation_platform/segmentation_platform_service_factory_unittest.cc
+++ b/chrome/browser/segmentation_platform/segmentation_platform_service_factory_unittest.cc
@@ -4,7 +4,6 @@
 
 #include "chrome/browser/segmentation_platform/segmentation_platform_service_factory.h"
 
-#include "base/files/scoped_temp_dir.h"
 #include "base/functional/bind.h"
 #include "base/memory/scoped_refptr.h"
 #include "base/test/scoped_command_line.h"
@@ -25,14 +24,12 @@
 #include "components/segmentation_platform/public/features.h"
 #include "components/segmentation_platform/public/prediction_options.h"
 #include "components/segmentation_platform/public/result.h"
-#include "components/segmentation_platform/public/segment_selection_result.h"
 #include "components/segmentation_platform/public/segmentation_platform_service.h"
 #include "components/segmentation_platform/public/service_proxy.h"
 #include "components/ukm/test_ukm_recorder.h"
 #include "content/public/test/browser_task_environment.h"
 #include "services/metrics/public/cpp/ukm_builders.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "testing/platform_test.h"
 
 namespace segmentation_platform {
 namespace {
@@ -191,8 +188,8 @@
     PrefService* pref_service_ = testing_profile_->GetPrefs();
     std::unique_ptr<ClientResultPrefs> result_prefs_ =
         std::make_unique<ClientResultPrefs>(pref_service_);
-    return result_prefs_->ReadClientResultFromPrefs(segmentation_key)
-        .has_value();
+    return result_prefs_->ReadClientResultFromPrefs(segmentation_key) !=
+           nullptr;
   }
 
   void OnClientResultPrefUpdated(const std::string& segmentation_key) {
diff --git a/chrome/browser/segmentation_platform/service_browsertest.cc b/chrome/browser/segmentation_platform/service_browsertest.cc
index a802239..1d2d9570 100644
--- a/chrome/browser/segmentation_platform/service_browsertest.cc
+++ b/chrome/browser/segmentation_platform/service_browsertest.cc
@@ -110,8 +110,8 @@
     PrefService* pref_service = chrome_test_utils::GetProfile(this)->GetPrefs();
     std::unique_ptr<ClientResultPrefs> result_prefs_ =
         std::make_unique<ClientResultPrefs>(pref_service);
-    return result_prefs_->ReadClientResultFromPrefs(segmentation_key)
-        .has_value();
+    return result_prefs_->ReadClientResultFromPrefs(segmentation_key) !=
+           nullptr;
   }
 
   void OnClientResultPrefUpdated() {
diff --git a/chrome/browser/signin/bound_session_credentials/registration_token_helper.h b/chrome/browser/signin/bound_session_credentials/registration_token_helper.h
index 984ae26..f235535e0a 100644
--- a/chrome/browser/signin/bound_session_credentials/registration_token_helper.h
+++ b/chrome/browser/signin/bound_session_credentials/registration_token_helper.h
@@ -11,7 +11,7 @@
 #include "base/functional/callback.h"
 #include "base/memory/raw_ref.h"
 #include "base/memory/weak_ptr.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "components/unexportable_keys/service_error.h"
 #include "components/unexportable_keys/unexportable_key_id.h"
 #include "crypto/signature_verifier.h"
diff --git a/chrome/browser/signin/bound_session_credentials/session_binding_helper.h b/chrome/browser/signin/bound_session_credentials/session_binding_helper.h
index e3bd9b9..e39a4f8 100644
--- a/chrome/browser/signin/bound_session_credentials/session_binding_helper.h
+++ b/chrome/browser/signin/bound_session_credentials/session_binding_helper.h
@@ -10,7 +10,7 @@
 #include "base/functional/callback_forward.h"
 #include "base/gtest_prod_util.h"
 #include "base/memory/raw_ref.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "components/unexportable_keys/service_error.h"
 #include "components/unexportable_keys/unexportable_key_id.h"
 
diff --git a/chrome/browser/signin/signin_ui_delegate_impl_lacros_unittest.cc b/chrome/browser/signin/signin_ui_delegate_impl_lacros_unittest.cc
index 48ef024..45b9d73 100644
--- a/chrome/browser/signin/signin_ui_delegate_impl_lacros_unittest.cc
+++ b/chrome/browser/signin/signin_ui_delegate_impl_lacros_unittest.cc
@@ -10,7 +10,7 @@
 #include "base/run_loop.h"
 #include "base/scoped_observation.h"
 #include "base/strings/strcat.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/metrics/user_action_tester.h"
 #include "chrome/browser/signin/chrome_signin_client_factory.h"
diff --git a/chrome/browser/storage_access_api/api_browsertest.cc b/chrome/browser/storage_access_api/api_browsertest.cc
index 26b1be4..a0bdcfe 100644
--- a/chrome/browser/storage_access_api/api_browsertest.cc
+++ b/chrome/browser/storage_access_api/api_browsertest.cc
@@ -7,7 +7,7 @@
 #include "base/path_service.h"
 #include "base/strings/escape.h"
 #include "base/strings/strcat.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/stringprintf.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
diff --git a/chrome/browser/support_tool/ash/system_logs_data_collector.cc b/chrome/browser/support_tool/ash/system_logs_data_collector.cc
index 7ff4fbc..b053bb8 100644
--- a/chrome/browser/support_tool/ash/system_logs_data_collector.cc
+++ b/chrome/browser/support_tool/ash/system_logs_data_collector.cc
@@ -17,7 +17,7 @@
 #include "base/functional/callback_forward.h"
 #include "base/memory/scoped_refptr.h"
 #include "base/sequence_checker.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/task/sequenced_task_runner.h"
 #include "base/task/task_traits.h"
 #include "base/task/thread_pool.h"
diff --git a/chrome/browser/support_tool/policy_data_collector.cc b/chrome/browser/support_tool/policy_data_collector.cc
index e052195..960f1bc 100644
--- a/chrome/browser/support_tool/policy_data_collector.cc
+++ b/chrome/browser/support_tool/policy_data_collector.cc
@@ -14,7 +14,7 @@
 #include "base/files/file_util.h"
 #include "base/json/json_writer.h"
 #include "base/memory/scoped_refptr.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/task/sequenced_task_runner.h"
 #include "base/task/task_traits.h"
 #include "base/task/thread_pool.h"
diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java
index fa15454..7c254eb2 100644
--- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java
+++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java
@@ -4,8 +4,10 @@
 
 package org.chromium.chrome.browser.tabmodel;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
+import org.chromium.base.supplier.ObservableSupplier;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tab.TabLaunchType;
 import org.chromium.content_public.browser.LoadUrlParams;
@@ -46,13 +48,20 @@
      */
     List<TabModel> getModels();
 
-    /**
-     * Get the current tab model.
-     * @return Never returns null.  Returns a stub when real model is uninitialized.
-     */
+    /** Returns the current tab model or a stub when real model is uninitialized. */
+    @NonNull
     TabModel getCurrentModel();
 
     /**
+     * Gets a supplier for the current tab model.
+     *
+     * @return A supplier for the current tab model. This may hold a null value before the {@link
+     *     TabModelSelector} is initialized.
+     */
+    @NonNull
+    ObservableSupplier<TabModel> getCurrentTabModelSupplier();
+
+    /**
      * Convenience function to get the current tab on the current model
      * @return Current tab or null if none exists or if the model is not initialized.
      */
diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserver.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserver.java
index f1b3d54..c659ef0 100644
--- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserver.java
+++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorObserver.java
@@ -31,9 +31,14 @@
 
     /**
      * Called when a different tab model has been selected.
+     *
      * @param newModel The newly selected tab model.
      * @param oldModel The previously selected tab model.
+     * @deprecated prefer observing {@link TabModelSelector#getCurrentTabModelSupplier()}.
+     *     Especially, if the only method on this observer that is required is to observe changes in
+     *     {@link TabModel}.
      */
+    @Deprecated
     default void onTabModelSelected(TabModel newModel, TabModel oldModel) {}
 
     /**
diff --git a/chrome/browser/task_manager/task_manager_browsertest.cc b/chrome/browser/task_manager/task_manager_browsertest.cc
index dcdc268..4c0145a4 100644
--- a/chrome/browser/task_manager/task_manager_browsertest.cc
+++ b/chrome/browser/task_manager/task_manager_browsertest.cc
@@ -11,7 +11,7 @@
 #include "base/path_service.h"
 #include "base/run_loop.h"
 #include "base/strings/strcat.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
 #include "build/build_config.h"
diff --git a/chrome/browser/task_manager/task_manager_browsertest_util.h b/chrome/browser/task_manager/task_manager_browsertest_util.h
index 77a66ad..3aeb676 100644
--- a/chrome/browser/task_manager/task_manager_browsertest_util.h
+++ b/chrome/browser/task_manager/task_manager_browsertest_util.h
@@ -15,7 +15,7 @@
 
 #include <string>
 
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 
 namespace task_manager {
 namespace browsertest_util {
diff --git a/chrome/browser/tpcd/http_error_observer/BUILD.gn b/chrome/browser/tpcd/http_error_observer/BUILD.gn
index 9908afe..f275a6a 100644
--- a/chrome/browser/tpcd/http_error_observer/BUILD.gn
+++ b/chrome/browser/tpcd/http_error_observer/BUILD.gn
@@ -4,7 +4,10 @@
 
 source_set("browser_tests") {
   testonly = true
-  sources = [ "http_error_tab_helper_browsertest.cc" ]
+  sources = [
+    "http_error_tab_helper_browsertest.cc",
+    "js_error_ukm_browsertest.cc",
+  ]
 
   defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
 
diff --git a/chrome/browser/tpcd/http_error_observer/http_error_tab_helper_browsertest.cc b/chrome/browser/tpcd/http_error_observer/http_error_tab_helper_browsertest.cc
index 7573d8f..ca1d210 100644
--- a/chrome/browser/tpcd/http_error_observer/http_error_tab_helper_browsertest.cc
+++ b/chrome/browser/tpcd/http_error_observer/http_error_tab_helper_browsertest.cc
@@ -31,6 +31,7 @@
 constexpr char kHostA[] = "a.test";
 constexpr char kHostB[] = "b.test";
 
+namespace {
 // Handles Favicon requests so they don't produce a 404 and augment http error
 // metrics during a test
 std::unique_ptr<net::test_server::HttpResponse> HandleFaviconRequest(
@@ -42,6 +43,7 @@
   // console error. Any 200 response will do.
   return std::make_unique<net::test_server::BasicHttpResponse>();
 }
+}  // namespace
 
 class HTTPErrProcBrowserTest : public InProcessBrowserTest {
  public:
diff --git a/chrome/browser/tpcd/http_error_observer/js_error_ukm_browsertest.cc b/chrome/browser/tpcd/http_error_observer/js_error_ukm_browsertest.cc
new file mode 100644
index 0000000..3b51e7e9
--- /dev/null
+++ b/chrome/browser/tpcd/http_error_observer/js_error_ukm_browsertest.cc
@@ -0,0 +1,131 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/test/metrics/histogram_tester.h"
+
+#include "chrome/browser/content_settings/cookie_settings_factory.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/browser_list.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
+#include "chrome/browser/ui/ui_features.h"
+#include "chrome/test/base/in_process_browser_test.h"
+#include "chrome/test/base/ui_test_utils.h"
+#include "components/content_settings/core/browser/cookie_settings.h"
+#include "components/content_settings/core/common/pref_names.h"
+#include "components/prefs/pref_service.h"
+#include "components/ukm/test_ukm_recorder.h"
+#include "content/public/common/content_paths.h"
+#include "content/public/test/browser_test.h"
+#include "content/public/test/browser_test_utils.h"
+#include "content/public/test/content_browser_test_utils.h"
+#include "content/public/test/test_navigation_observer.h"
+#include "net/cookies/cookie_util.h"
+#include "net/dns/mock_host_resolver.h"
+#include "net/test/embedded_test_server/default_handlers.h"
+#include "third_party/blink/public/mojom/loader/resource_load_info.mojom.h"
+
+constexpr char kHostA[] = "a.test";
+
+namespace {
+// Handles Favicon requests so they don't produce a 404 and augment error
+// metrics during a test
+std::unique_ptr<net::test_server::HttpResponse> HandleFaviconRequest(
+    const net::test_server::HttpRequest& request) {
+  if (request.relative_url != "/favicon.ico") {
+    return nullptr;
+  }
+  // The response doesn't have to be a valid favicon to avoid logging a
+  // console error. Any 200 response will do.
+  return std::make_unique<net::test_server::BasicHttpResponse>();
+}
+}  // namespace
+
+class JSErrProcBrowserTest : public InProcessBrowserTest {
+ public:
+  JSErrProcBrowserTest() : https_server_(net::EmbeddedTestServer::TYPE_HTTPS) {}
+
+  net::EmbeddedTestServer* https_server() { return &https_server_; }
+
+  void SetUpOnMainThread() override {
+    host_resolver()->AddRule("*", "127.0.0.1");
+    https_server_.SetSSLConfig(net::EmbeddedTestServer::CERT_TEST_NAMES);
+    https_server_.AddDefaultHandlers(GetChromeTestDataDir());
+    https_server_.RegisterRequestHandler(
+        base::BindRepeating(&HandleFaviconRequest));
+    ASSERT_TRUE(https_server_.Start());
+  }
+
+  // Checks that the JavaScript error has been properly recorded in the metrics
+  void CheckJSErrBreakageMetrics(ukm::TestAutoSetUkmRecorder& ukm_recorder,
+                                 size_t size,
+                                 size_t index,
+                                 const base::Location& location = FROM_HERE) {
+    auto entries = ukm_recorder.GetEntries(
+        "ThirdPartyCookies.BreakageIndicator", {"BreakageIndicatorType"});
+    EXPECT_EQ(entries.size(), size)
+        << "(expected at " << location.ToString() << ")";
+    EXPECT_EQ(entries.at(index).metrics.at("BreakageIndicatorType"),
+              static_cast<int>(
+                  net::cookie_util::BreakageIndicatorType::UNCAUGHT_JS_ERROR))
+        << "(expected at " << location.ToString() << ")";
+  }
+
+ private:
+  net::EmbeddedTestServer https_server_;
+};
+
+// Test that no error is registered when JS with no errors is embedded
+IN_PROC_BROWSER_TEST_F(JSErrProcBrowserTest, NoErr) {
+  ukm::TestAutoSetUkmRecorder ukm_recorder;
+
+  ASSERT_TRUE(ui_test_utils::NavigateToURL(
+      browser(), https_server()->GetURL(kHostA, "/empty_script.html")));
+  EXPECT_EQ(ukm_recorder
+                .GetEntries("ThirdPartyCookies.BreakageIndicator",
+                            {"BreakageIndicatorType"})
+                .size(),
+            0u);
+}
+
+// Test that JS Error is registered on HTML page containing uncaught JS error
+IN_PROC_BROWSER_TEST_F(JSErrProcBrowserTest, JSErr) {
+  ukm::TestAutoSetUkmRecorder ukm_recorder;
+
+  ASSERT_TRUE(ui_test_utils::NavigateToURL(
+      browser(),
+      https_server()->GetURL(kHostA, "/uncaught_error_script.html")));
+  CheckJSErrBreakageMetrics(
+      /*ukm_recorder=*/ukm_recorder,
+      /*size=*/1,
+      /*index=*/0);
+}
+
+// Test that JS Error is registered on Iframe containing uncaught JS error
+IN_PROC_BROWSER_TEST_F(JSErrProcBrowserTest, IframeJSErr) {
+  ukm::TestAutoSetUkmRecorder ukm_recorder;
+
+  ASSERT_TRUE(ui_test_utils::NavigateToURL(
+      browser(), https_server()->GetURL("b.test", "/iframe.html")));
+  ASSERT_TRUE(NavigateIframeToURL(
+      browser()->tab_strip_model()->GetActiveWebContents(), "test",
+      https_server()->GetURL(kHostA, "/uncaught_error_script.html")));
+  CheckJSErrBreakageMetrics(
+      /*ukm_recorder=*/ukm_recorder,
+      /*size=*/1,
+      /*index=*/0);
+}
+
+// Test that no JS Error is registered on embedded script with handled errors
+IN_PROC_BROWSER_TEST_F(JSErrProcBrowserTest, HandledJSErr) {
+  ukm::TestAutoSetUkmRecorder ukm_recorder;
+
+  ASSERT_TRUE(ui_test_utils::NavigateToURL(
+      browser(), https_server()->GetURL(kHostA, "/handles_error_script.html")));
+  EXPECT_EQ(ukm_recorder
+                .GetEntries("ThirdPartyCookies.BreakageIndicator",
+                            {"BreakageIndicatorType"})
+                .size(),
+            0u);
+}
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
index 1635f44..8b67024d 100644
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
@@ -247,6 +247,15 @@
     }
 
     /**
+     * Sets drag listener for toolbar container.
+     *
+     * @param toolbarContainerDragListener Listener to set.
+     */
+    public void setToolbarContainerDragListener(OnDragListener toolbarContainerDragListener) {
+        mToolbarContainer.setOnDragListener(toolbarContainerDragListener);
+    }
+
+    /**
      * The layout that handles generating the toolbar view resource.
      */
     // Only publicly visible due to lint warnings.
diff --git a/chrome/browser/ui/ash/clipboard_history_browsertest.cc b/chrome/browser/ui/ash/clipboard_history_browsertest.cc
index d8663b2f..454c34d 100644
--- a/chrome/browser/ui/ash/clipboard_history_browsertest.cc
+++ b/chrome/browser/ui/ash/clipboard_history_browsertest.cc
@@ -23,7 +23,7 @@
 #include "base/scoped_observation.h"
 #include "base/strings/strcat.h"
 #include "base/strings/string_number_conversions.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/repeating_test_future.h"
 #include "base/test/scoped_feature_list.h"
diff --git a/chrome/browser/ui/ash/shelf/chrome_shelf_prefs.cc b/chrome/browser/ui/ash/shelf/chrome_shelf_prefs.cc
index 2fb8365..db413094b 100644
--- a/chrome/browser/ui/ash/shelf/chrome_shelf_prefs.cc
+++ b/chrome/browser/ui/ash/shelf/chrome_shelf_prefs.cc
@@ -24,7 +24,7 @@
 #include "base/logging.h"
 #include "base/metrics/histogram_functions.h"
 #include "base/ranges/algorithm.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/values.h"
 #include "chrome/browser/apps/app_service/app_service_proxy.h"
 #include "chrome/browser/apps/app_service/app_service_proxy_factory.h"
diff --git a/chrome/browser/ui/ash/system_tray_tray_cast_browsertest_media_router_chromeos.cc b/chrome/browser/ui/ash/system_tray_tray_cast_browsertest_media_router_chromeos.cc
index c4ed627..b059c21f 100644
--- a/chrome/browser/ui/ash/system_tray_tray_cast_browsertest_media_router_chromeos.cc
+++ b/chrome/browser/ui/ash/system_tray_tray_cast_browsertest_media_router_chromeos.cc
@@ -17,7 +17,6 @@
 #include "ash/system/tray/hover_highlight_view.h"
 #include "ash/system/unified/unified_system_tray.h"
 #include "ash/system/unified/unified_system_tray_bubble.h"
-#include "ash/system/unified/unified_system_tray_view.h"
 #include "base/memory/raw_ptr.h"
 #include "chrome/browser/ash/login/login_manager_test.h"
 #include "chrome/browser/ash/login/session/user_session_manager.h"
diff --git a/chrome/browser/ui/commerce/price_tracking/shopping_list_ui_tab_helper.cc b/chrome/browser/ui/commerce/price_tracking/shopping_list_ui_tab_helper.cc
index 4c14be9..047d4e9 100644
--- a/chrome/browser/ui/commerce/price_tracking/shopping_list_ui_tab_helper.cc
+++ b/chrome/browser/ui/commerce/price_tracking/shopping_list_ui_tab_helper.cc
@@ -142,6 +142,10 @@
     return;
   }
 
+  // The page action icon may not have been used for the last page load. If
+  // that's the case, make sure we record it.
+  RecordPriceTrackingIconMetrics(/*from_icon_use=*/false);
+
   previous_main_frame_url_ = navigation_handle->GetURL();
   last_fetched_image_ = gfx::Image();
   last_fetched_image_url_ = GURL();
@@ -155,9 +159,11 @@
   got_initial_subscription_status_for_page_ = false;
   page_has_discounts_ = false;
   page_action_to_expand_ = absl::nullopt;
+  page_action_expanded_ = absl::nullopt;
   pending_tracking_state_.reset();
   is_first_load_for_nav_finished_ = false;
   price_insights_info_.reset();
+  icon_use_recorded_for_page_ = false;
 
   MakeShoppingInsightsSidePanelUnavailable();
 
@@ -211,6 +217,12 @@
   TriggerUpdateForIconView();
 }
 
+void ShoppingListUiTabHelper::WebContentsDestroyed() {
+  // If the tab or browser is closed, try recording whether the price tracking
+  // icon was used.
+  RecordPriceTrackingIconMetrics(/*from_icon_use=*/false);
+}
+
 void ShoppingListUiTabHelper::TriggerUpdateForIconView() {
   if (!ShouldDelayChipUpdate()) {
     if (shopping_service_->IsPriceInsightsEligible()) {
@@ -753,12 +765,64 @@
   // expanding multiple times per page load.
   if (page_action_to_expand_.has_value() &&
       type == page_action_to_expand_.value()) {
+    page_action_expanded_ = page_action_to_expand_.value();
     page_action_to_expand_ = absl::nullopt;
     return true;
   }
   return false;
 }
 
+void ShoppingListUiTabHelper::OnPriceTrackingIconClicked() {
+  RecordPriceTrackingIconMetrics(/*from_icon_use=*/true);
+}
+
+void ShoppingListUiTabHelper::RecordPriceTrackingIconMetrics(
+    bool from_icon_use) {
+  // Ignore cases where these is no cluster ID or the metric was already
+  // recorded for the page.
+  if (!cluster_id_for_page_.has_value() || icon_use_recorded_for_page_) {
+    return;
+  }
+
+  icon_use_recorded_for_page_ = true;
+
+  // Ignore any instances where the product is already tracked. This will not
+  // stop cases where the icon is being used to newly track a product since
+  // this logic will run prior to subscriptions updating.
+  if (is_cluster_id_tracked_by_user_) {
+    return;
+  }
+
+  std::string histogram_name = "Commerce.PriceTracking.IconInteractionState";
+
+  bool price_tracking_expanded =
+      page_action_expanded_.has_value() &&
+      page_action_expanded_.value() == PageActionIconType::kPriceTracking;
+
+  // Clicking the icon for a product that is already tracked does not
+  // immediately untrack the product. If we made it this far, we can assume the
+  // interaction was to track a product, otherwise we would have been blocked
+  // above.
+  if (from_icon_use) {
+    if (price_tracking_expanded) {
+      base::UmaHistogramEnumeration(histogram_name,
+                                    PageActionIconInteractionState::kClicked);
+    } else {
+      base::UmaHistogramEnumeration(
+          histogram_name, PageActionIconInteractionState::kClickedExpanded);
+    }
+
+  } else {
+    if (price_tracking_expanded) {
+      base::UmaHistogramEnumeration(
+          histogram_name, PageActionIconInteractionState::kNotClicked);
+    } else {
+      base::UmaHistogramEnumeration(
+          histogram_name, PageActionIconInteractionState::kNotClickedExpanded);
+    }
+  }
+}
+
 WEB_CONTENTS_USER_DATA_KEY_IMPL(ShoppingListUiTabHelper);
 
 }  // namespace commerce
diff --git a/chrome/browser/ui/commerce/price_tracking/shopping_list_ui_tab_helper.h b/chrome/browser/ui/commerce/price_tracking/shopping_list_ui_tab_helper.h
index b740fd0..c7dd135 100644
--- a/chrome/browser/ui/commerce/price_tracking/shopping_list_ui_tab_helper.h
+++ b/chrome/browser/ui/commerce/price_tracking/shopping_list_ui_tab_helper.h
@@ -41,6 +41,25 @@
 
 struct CommerceSubscription;
 
+// The possible ways a suggested save location can be handled. These must be
+// kept in sync with the values in enums.xml.
+enum class PageActionIconInteractionState {
+  // The icon was shown and the user clicked it.
+  kClicked = 0,
+
+  // The icon was shown and expanded before the user clicked on it.
+  kClickedExpanded = 1,
+
+  // The icon was shown but the user did not interact with it.
+  kNotClicked = 2,
+
+  // The icon was shown and expanded but the user did not interact with it.
+  kNotClickedExpanded = 3,
+
+  // This enum must be last and is only used for histograms.
+  kMaxValue = kNotClickedExpanded
+};
+
 // This tab helper is used to update and maintain the state of the shopping list
 // and price tracking UI on desktop.
 // TODO(b:283833590): Rename this class since it serves for all shopping
@@ -81,6 +100,7 @@
   void DidFinishNavigation(
       content::NavigationHandle* navigation_handle) override;
   void DidStopLoading() override;
+  void WebContentsDestroyed() override;
 
   // SubscriptionsObserver
   void OnSubscribe(const CommerceSubscription& subscription,
@@ -113,6 +133,9 @@
   // once per page load to avoid having the icon expand multiple times.
   virtual bool ShouldExpandPageActionIcon(PageActionIconType type);
 
+  // A notification that the price tracking icon was clicked.
+  void OnPriceTrackingIconClicked();
+
  protected:
   ShoppingListUiTabHelper(content::WebContents* contents,
                           ShoppingService* shopping_service,
@@ -176,6 +199,11 @@
 
   bool IsShowingDiscountsIcon();
 
+  // Record the interaction state with the pricce tracking icon for a page.
+  // |from_icon_use| indicates an interaction to track the product since
+  // clicking the icon a second time does not immediately untrack the product.
+  void RecordPriceTrackingIconMetrics(bool from_icon_use);
+
   // The shopping service is tied to the lifetime of the browser context
   // which will always outlive this tab helper.
   raw_ptr<ShoppingService, DanglingUntriaged> shopping_service_;
@@ -209,6 +237,10 @@
   bool got_initial_subscription_status_for_page_{false};
   bool page_has_discounts_{false};
 
+  // Whether the price tracking icon was recorded for the current page. This
+  // will only record "track" events.
+  bool icon_use_recorded_for_page_{false};
+
   // A flag indicating whether the initial navigation has committed for the web
   // contents. This is used to ensure product info is fetched when a tab is
   // being restored.
@@ -230,9 +262,15 @@
   // The PriceInsightsInfo associated with the last committed URL.
   absl::optional<PriceInsightsInfo> price_insights_info_;
 
-  // The page action that should expand for the current page.
+  // The page action that should expand for the current page. This optional will
+  // be reset once the value is read by the UI.
   absl::optional<PageActionIconType> page_action_to_expand_;
 
+  // The page action that was expanded for the current page load, if any. This
+  // indicates that |page_action_to_expand_| was read by the UI and lets us keep
+  // track of which page action actually expanded.
+  absl::optional<PageActionIconType> page_action_expanded_;
+
   // Automatically remove this observer from its host when destroyed.
   base::ScopedObservation<ShoppingService, SubscriptionsObserver>
       scoped_observation_{this};
diff --git a/chrome/browser/ui/quick_answers/quick_answers_browsertest.cc b/chrome/browser/ui/quick_answers/quick_answers_browsertest.cc
index 05a8e70f..91935cc8 100644
--- a/chrome/browser/ui/quick_answers/quick_answers_browsertest.cc
+++ b/chrome/browser/ui/quick_answers/quick_answers_browsertest.cc
@@ -9,7 +9,7 @@
 #include "base/functional/bind.h"
 #include "base/functional/callback_forward.h"
 #include "base/run_loop.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/time/time.h"
diff --git a/chrome/browser/ui/safety_hub/safety_hub_test_util.cc b/chrome/browser/ui/safety_hub/safety_hub_test_util.cc
index 9d51b93..c220041 100644
--- a/chrome/browser/ui/safety_hub/safety_hub_test_util.cc
+++ b/chrome/browser/ui/safety_hub/safety_hub_test_util.cc
@@ -50,6 +50,15 @@
   extensions::ExtensionRegistry::Get(profile)->AddEnabled(extension);
 }
 
+void RemoveExtension(const std::string& name,
+                     extensions::mojom::ManifestLocation location,
+                     Profile* profile) {
+  const std::string kId = crx_file::id_util::GenerateId(name);
+  extensions::ExtensionPrefs::Get(profile)->OnExtensionUninstalled(
+      kId, location, false);
+  extensions::ExtensionRegistry::Get(profile)->RemoveEnabled(kId);
+}
+
 // These `cws_info` variables are used to test the various states that an
 // extension could be in. Is a trigger due to the malware violation.
 static extensions::CWSInfoService::CWSInfo cws_info_malware{
@@ -154,4 +163,22 @@
                profile);
 }
 
+void CleanAllMockExtensions(Profile* profile) {
+  RemoveExtension("TestExtension1", ManifestLocation::kInternal, profile);
+  RemoveExtension("TestExtension2", ManifestLocation::kInternal, profile);
+  RemoveExtension("TestExtension3", ManifestLocation::kInternal, profile);
+  RemoveExtension("TestExtension4", ManifestLocation::kInternal, profile);
+  RemoveExtension("TestExtension5", ManifestLocation::kInternal, profile);
+  RemoveExtension("TestExtension6", ManifestLocation::kInternal, profile);
+  RemoveExtension("TestExtension7", ManifestLocation::kExternalPolicyDownload,
+                  profile);
+
+  // Check that all extensions were successfully uninstalled.
+  const extensions::ExtensionSet extensions =
+      extensions::ExtensionRegistry::Get(profile)
+          ->GenerateInstalledExtensionsSet(
+              extensions::ExtensionRegistry::ENABLED);
+  EXPECT_TRUE(extensions.empty());
+}
+
 }  // namespace safety_hub_test_util
diff --git a/chrome/browser/ui/safety_hub/safety_hub_test_util.h b/chrome/browser/ui/safety_hub/safety_hub_test_util.h
index d1545e75..42d1660 100644
--- a/chrome/browser/ui/safety_hub/safety_hub_test_util.h
+++ b/chrome/browser/ui/safety_hub/safety_hub_test_util.h
@@ -40,6 +40,9 @@
 // Adds seven extensions, of which one is installed by an external policy.
 void CreateMockExtensions(Profile* profile);
 
+// Deletes all mock extensions that are added by CreateMockExtensions.
+void CleanAllMockExtensions(Profile* profile);
+
 }  // namespace safety_hub_test_util
 
 #endif  // CHROME_BROWSER_UI_SAFETY_HUB_SAFETY_HUB_TEST_UTIL_H_
diff --git a/chrome/browser/ui/side_panel/side_panel_ui.h b/chrome/browser/ui/side_panel/side_panel_ui.h
index 24fb5cb..b5d50b2 100644
--- a/chrome/browser/ui/side_panel/side_panel_ui.h
+++ b/chrome/browser/ui/side_panel/side_panel_ui.h
@@ -43,9 +43,15 @@
   // Close the side panel.
   virtual void Close() = 0;
 
-  // Open side panel when it's close or close side panel when it's only
+  // Open side panel when it's close or close side panel when it's open.
+  // TODO(shibalik): Remove after SidePanelPinning launch.
   virtual void Toggle() = 0;
 
+  // Open the side panel for a key. If side panel for the key is already opened
+  // then close the side panel.
+  virtual void Toggle(SidePanelEntryKey key,
+                      SidePanelOpenTrigger open_trigger) = 0;
+
   // Opens the current side panel contents in a new tab. This is called by the
   // header button, when it's visible.
   virtual void OpenInNewTab() = 0;
diff --git a/chrome/browser/ui/startup/first_run_service.h b/chrome/browser/ui/startup/first_run_service.h
index 1e56469..a3541103 100644
--- a/chrome/browser/ui/startup/first_run_service.h
+++ b/chrome/browser/ui/startup/first_run_service.h
@@ -99,7 +99,7 @@
 
   // Runs `::ShouldOpenFirstRun(Profile*)` with the profile associated with this
   // service instance.
-  bool ShouldOpenFirstRun() const;
+  virtual bool ShouldOpenFirstRun() const;
 
   // This function takes the user through the browser FRE.
   // 1) First, it checks whether the FRE flow can be skipped in the first place.
@@ -118,11 +118,11 @@
   //    again at the next startup.
   // When this method is called again while FRE is in progress, the previous
   // callback is aborted (called with false), and is replaced by `callback`.
-  void OpenFirstRunIfNeeded(EntryPoint entry_point,
-                            ResumeTaskCallback callback);
+  virtual void OpenFirstRunIfNeeded(EntryPoint entry_point,
+                                    ResumeTaskCallback callback);
 
   // Terminates the first run without re-opening a browser window.
-  void FinishFirstRunWithoutResumeTask();
+  virtual void FinishFirstRunWithoutResumeTask();
 
  private:
   friend class FirstRunServiceFactory;
diff --git a/chrome/browser/ui/views/commerce/price_tracking_icon_view.cc b/chrome/browser/ui/views/commerce/price_tracking_icon_view.cc
index f44f01e..b1f2b8fb 100644
--- a/chrome/browser/ui/views/commerce/price_tracking_icon_view.cc
+++ b/chrome/browser/ui/views/commerce/price_tracking_icon_view.cc
@@ -14,6 +14,7 @@
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_element_identifiers.h"
 #include "chrome/browser/ui/commerce/price_tracking/shopping_list_ui_tab_helper.h"
+#include "chrome/browser/ui/ui_features.h"
 #include "chrome/browser/ui/views/commerce/price_tracking_bubble_dialog_view.h"
 #include "chrome/browser/ui/views/frame/browser_view.h"
 #include "chrome/browser/ui/views/page_action/page_action_icon_view.h"
@@ -112,6 +113,7 @@
   CHECK(tab_helper);
 
   const gfx::Image& product_image = tab_helper->GetProductImage();
+  tab_helper->OnPriceTrackingIconClicked();
   DCHECK(!product_image.IsEmpty());
 
   base::RecordAction(
@@ -249,16 +251,18 @@
     base::RecordAction(
         base::UserMetricsAction("Commerce.PriceTracking.OmniboxChip.Tracked"));
     commerce::MaybeEnableEmailNotifications(profile_->GetPrefs());
-    bool should_show_iph = browser_->window()->MaybeShowFeaturePromo(
-        feature_engagement::kIPHPriceTrackingInSidePanelFeature);
-    if (should_show_iph) {
-      SidePanelUI* side_panel_ui =
-          SidePanelUI::GetSidePanelUIForBrowser(browser_);
-      if (side_panel_ui) {
-        SidePanelRegistry* registry =
-            SidePanelCoordinator::GetGlobalSidePanelRegistry(browser_);
-        registry->SetActiveEntry(registry->GetEntryForKey(
-            SidePanelEntry::Key(SidePanelEntry::Id::kBookmarks)));
+    if (!base::FeatureList::IsEnabled(features::kSidePanelPinning)) {
+      bool should_show_iph = browser_->window()->MaybeShowFeaturePromo(
+          feature_engagement::kIPHPriceTrackingInSidePanelFeature);
+      if (should_show_iph) {
+        SidePanelUI* side_panel_ui =
+            SidePanelUI::GetSidePanelUIForBrowser(browser_);
+        if (side_panel_ui) {
+          SidePanelRegistry* registry =
+              SidePanelCoordinator::GetGlobalSidePanelRegistry(browser_);
+          registry->SetActiveEntry(registry->GetEntryForKey(
+              SidePanelEntry::Key(SidePanelEntry::Id::kBookmarks)));
+        }
       }
     }
   }
diff --git a/chrome/browser/ui/views/download/bubble/download_bubble_primary_view.cc b/chrome/browser/ui/views/download/bubble/download_bubble_primary_view.cc
index 9195b55..8df510f 100644
--- a/chrome/browser/ui/views/download/bubble/download_bubble_primary_view.cc
+++ b/chrome/browser/ui/views/download/bubble/download_bubble_primary_view.cc
@@ -5,7 +5,7 @@
 #include "chrome/browser/ui/views/download/bubble/download_bubble_primary_view.h"
 
 #include "base/metrics/histogram_functions.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/time/time.h"
 #include "chrome/browser/download/bubble/download_bubble_prefs.h"
 #include "chrome/browser/profiles/profile.h"
diff --git a/chrome/browser/ui/views/download/bubble/download_bubble_primary_view.h b/chrome/browser/ui/views/download/bubble/download_bubble_primary_view.h
index 5a21ce97..c364242 100644
--- a/chrome/browser/ui/views/download/bubble/download_bubble_primary_view.h
+++ b/chrome/browser/ui/views/download/bubble/download_bubble_primary_view.h
@@ -6,7 +6,7 @@
 #define CHROME_BROWSER_UI_VIEWS_DOWNLOAD_BUBBLE_DOWNLOAD_BUBBLE_PRIMARY_VIEW_H_
 
 #include "base/memory/raw_ptr.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "chrome/browser/download/download_ui_model.h"
 #include "chrome/browser/ui/download/download_bubble_row_list_view_info.h"
 #include "ui/base/metadata/metadata_header_macros.h"
diff --git a/chrome/browser/ui/views/download/bubble/download_dialog_view.h b/chrome/browser/ui/views/download/bubble/download_dialog_view.h
index d40d85d..2095f00 100644
--- a/chrome/browser/ui/views/download/bubble/download_dialog_view.h
+++ b/chrome/browser/ui/views/download/bubble/download_dialog_view.h
@@ -6,7 +6,7 @@
 #define CHROME_BROWSER_UI_VIEWS_DOWNLOAD_BUBBLE_DOWNLOAD_DIALOG_VIEW_H_
 
 #include "base/memory/weak_ptr.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "chrome/browser/ui/download/download_bubble_row_list_view_info.h"
 #include "chrome/browser/ui/views/download/bubble/download_bubble_primary_view.h"
 #include "chrome/browser/ui/views/download/bubble/download_bubble_row_list_view.h"
diff --git a/chrome/browser/ui/views/extensions/web_file_handlers/web_file_handlers_file_launch_browsertest.cc b/chrome/browser/ui/views/extensions/web_file_handlers/web_file_handlers_file_launch_browsertest.cc
index 4000dd6..e9c47ca 100644
--- a/chrome/browser/ui/views/extensions/web_file_handlers/web_file_handlers_file_launch_browsertest.cc
+++ b/chrome/browser/ui/views/extensions/web_file_handlers/web_file_handlers_file_launch_browsertest.cc
@@ -13,7 +13,7 @@
 #include "base/functional/callback_helpers.h"
 #include "base/memory/scoped_refptr.h"
 #include "base/run_loop.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/test/bind.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/threading/thread_restrictions.h"
diff --git a/chrome/browser/ui/views/frame/browser_actions.cc b/chrome/browser/ui/views/frame/browser_actions.cc
index 07acfe1e..d70d24e 100644
--- a/chrome/browser/ui/views/frame/browser_actions.cc
+++ b/chrome/browser/ui/views/frame/browser_actions.cc
@@ -18,6 +18,7 @@
 #include "chrome/browser/ui/views/page_info/page_info_view_factory.h"
 #include "chrome/browser/ui/views/side_panel/history_clusters/history_clusters_side_panel_coordinator.h"
 #include "chrome/browser/ui/views/side_panel/search_companion/search_companion_side_panel_coordinator.h"
+#include "chrome/browser/ui/views/side_panel/side_panel_entry.h"
 #include "chrome/browser/ui/views/side_panel/side_panel_util.h"
 #include "chrome/grit/generated_resources.h"
 #include "components/feed/feed_feature_list.h"
@@ -55,8 +56,8 @@
                            context.GetProperty(kSidePanelOpenTriggerKey));
                    CHECK_GE(open_trigger, SidePanelOpenTrigger::kMinValue);
                    CHECK_LE(open_trigger, SidePanelOpenTrigger::kMaxValue);
-                   SidePanelUI::GetSidePanelUIForBrowser(browser)->Show(
-                       id, open_trigger);
+                   SidePanelUI::GetSidePanelUIForBrowser(browser)->Toggle(
+                       SidePanelEntry::Key(id), open_trigger);
                  },
                  id, browser))
       .SetActionId(action_id)
diff --git a/chrome/browser/ui/views/page_info/about_this_site_side_panel_view.cc b/chrome/browser/ui/views/page_info/about_this_site_side_panel_view.cc
index 427ec71..2586240 100644
--- a/chrome/browser/ui/views/page_info/about_this_site_side_panel_view.cc
+++ b/chrome/browser/ui/views/page_info/about_this_site_side_panel_view.cc
@@ -4,7 +4,7 @@
 
 #include "chrome/browser/ui/views/page_info/about_this_site_side_panel_view.h"
 
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/task/single_thread_task_runner.h"
 #include "chrome/browser/page_info/about_this_site_side_panel_throttle.h"
 #include "chrome/browser/profiles/profile.h"
diff --git a/chrome/browser/ui/views/performance_controls/high_efficiency_interactive_ui_test.cc b/chrome/browser/ui/views/performance_controls/high_efficiency_interactive_ui_test.cc
index df2456d..d4df443a 100644
--- a/chrome/browser/ui/views/performance_controls/high_efficiency_interactive_ui_test.cc
+++ b/chrome/browser/ui/views/performance_controls/high_efficiency_interactive_ui_test.cc
@@ -262,11 +262,10 @@
       TryDiscardTab(0), CheckTabIsNotDiscarded(0));
 }
 
-// Check that a form in the background but was interacted by the user
+// Check that a form in the background but was interacted with by the user
 // won't be discarded
-// TODO(crbug.com/1415833): Re-enable this test
 IN_PROC_BROWSER_TEST_F(HighEfficiencyDiscardPolicyInteractiveTest,
-                       DISABLED_TabWithFormNotDiscarded) {
+                       TabWithFormNotDiscarded) {
   DEFINE_LOCAL_CUSTOM_ELEMENT_EVENT_TYPE(kInputIsFocused);
   DEFINE_LOCAL_CUSTOM_ELEMENT_EVENT_TYPE(kInputValueIsUpated);
   const DeepQuery input_text_box = {"#value"};
@@ -274,19 +273,20 @@
   StateChange input_is_focused;
   input_is_focused.event = kInputIsFocused;
   input_is_focused.where = input_text_box;
-  input_is_focused.type = StateChange::Type::kConditionTrue;
+  input_is_focused.type = StateChange::Type::kExistsAndConditionTrue;
   input_is_focused.test_function =
       "(el) => { return el === document.activeElement; }";
 
   StateChange input_value_updated;
   input_value_updated.event = kInputValueIsUpated;
   input_value_updated.where = input_text_box;
-  input_value_updated.type = StateChange::Type::kConditionTrue;
+  input_value_updated.type = StateChange::Type::kExistsAndConditionTrue;
   input_value_updated.test_function = "(el) => { return el.value === 'a'; }";
 
   RunTestSequence(
       InstrumentTab(kFirstTabContents, 0),
       NavigateWebContents(kFirstTabContents, GetURL("/form_search.html")),
+      WaitForWebContentsReady(kFirstTabContents, GetURL("/form_search.html")),
 
       // Move focus off of the omnibox
       MoveMouseTo(kFirstTabContents, input_text_box), ClickMouse(),
diff --git a/chrome/browser/ui/views/permissions/embedded_permission_prompt_show_system_prompt_view.cc b/chrome/browser/ui/views/permissions/embedded_permission_prompt_show_system_prompt_view.cc
index f76e2cc..1edd58ec 100644
--- a/chrome/browser/ui/views/permissions/embedded_permission_prompt_show_system_prompt_view.cc
+++ b/chrome/browser/ui/views/permissions/embedded_permission_prompt_show_system_prompt_view.cc
@@ -65,6 +65,5 @@
   }
 
   return l10n_util::GetStringFUTF16(IDS_PERMISSION_CHROME_NEEDS_PERMISSION,
-                                    permission_name,
-                                    GetUrlIdentityObject().name);
+                                    permission_name);
 }
diff --git a/chrome/browser/ui/views/permissions/embedded_permission_prompt_system_settings_view.cc b/chrome/browser/ui/views/permissions/embedded_permission_prompt_system_settings_view.cc
index dc3578b..8bd4a84 100644
--- a/chrome/browser/ui/views/permissions/embedded_permission_prompt_system_settings_view.cc
+++ b/chrome/browser/ui/views/permissions/embedded_permission_prompt_system_settings_view.cc
@@ -51,7 +51,12 @@
 
 std::vector<EmbeddedPermissionPromptSystemSettingsView::ButtonConfiguration>
 EmbeddedPermissionPromptSystemSettingsView::GetButtonsConfiguration() const {
-  return {{l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_OPEN_SYSTEM_SETTINGS),
+  std::u16string operating_system_name;
+#if BUILDFLAG(IS_MAC)
+  operating_system_name = l10n_util::GetStringUTF16(IDS_MACOS_NAME_FRAGMENT);
+#endif
+  return {{l10n_util::GetStringFUTF16(IDS_EMBEDDED_PROMPT_OPEN_SYSTEM_SETTINGS,
+                                      operating_system_name),
            ButtonType::kSystemSettings, ui::ButtonStyle::kTonal}};
 }
 
@@ -69,6 +74,5 @@
   }
 
   return l10n_util::GetStringFUTF16(IDS_PERMISSION_OFF_FOR_CHROME,
-                                    permission_name,
-                                    GetUrlIdentityObject().name);
+                                    permission_name);
 }
diff --git a/chrome/browser/ui/views/sharing/sharing_browsertest.h b/chrome/browser/ui/views/sharing/sharing_browsertest.h
index 5264063b..9603509 100644
--- a/chrome/browser/ui/views/sharing/sharing_browsertest.h
+++ b/chrome/browser/ui/views/sharing/sharing_browsertest.h
@@ -9,7 +9,7 @@
 #include <string>
 
 #include "base/memory/raw_ptr.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "chrome/browser/gcm/gcm_profile_service_factory.h"
 #include "chrome/browser/renderer_context_menu/render_view_context_menu_test_util.h"
 #include "chrome/browser/sharing/sharing_message_bridge.h"
diff --git a/chrome/browser/ui/views/side_panel/extensions/extension_side_panel_browsertest.cc b/chrome/browser/ui/views/side_panel/extensions/extension_side_panel_browsertest.cc
index 6b6117d..10c24ea8 100644
--- a/chrome/browser/ui/views/side_panel/extensions/extension_side_panel_browsertest.cc
+++ b/chrome/browser/ui/views/side_panel/extensions/extension_side_panel_browsertest.cc
@@ -7,12 +7,17 @@
 #include "base/test/scoped_feature_list.h"
 #include "chrome/browser/extensions/api/side_panel/side_panel_api.h"
 #include "chrome/browser/extensions/extension_browsertest.h"
+#include "chrome/browser/extensions/extension_context_menu_model.h"
 #include "chrome/browser/extensions/extension_tab_util.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_window.h"
 #include "chrome/browser/ui/extensions/extension_action_test_helper.h"
+#include "chrome/browser/ui/extensions/extensions_container.h"
+#include "chrome/browser/ui/toolbar/toolbar_action_view_controller.h"
 #include "chrome/browser/ui/ui_features.h"
+#include "chrome/browser/ui/views/extensions/extensions_toolbar_container.h"
 #include "chrome/browser/ui/views/frame/browser_actions.h"
+#include "chrome/browser/ui/views/frame/browser_view.h"
 #include "chrome/browser/ui/views/side_panel/extensions/extension_side_panel_coordinator.h"
 #include "chrome/browser/ui/views/side_panel/extensions/extension_side_panel_manager.h"
 #include "chrome/browser/ui/views/side_panel/side_panel_coordinator.h"
@@ -20,7 +25,9 @@
 #include "chrome/browser/ui/views/side_panel/side_panel_entry_observer.h"
 #include "chrome/browser/ui/views/side_panel/side_panel_registry.h"
 #include "chrome/browser/ui/views/side_panel/side_panel_registry_observer.h"
+#include "chrome/browser/ui/views/toolbar/toolbar_view.h"
 #include "chrome/test/base/ui_test_utils.h"
+#include "components/crx_file/id_util.h"
 #include "components/sessions/content/session_tab_helper.h"
 #include "content/public/test/browser_test.h"
 #include "content/public/test/browser_test_utils.h"
@@ -28,6 +35,7 @@
 #include "extensions/browser/api_test_utils.h"
 #include "extensions/browser/test_image_loader.h"
 #include "extensions/common/constants.h"
+#include "extensions/common/extension_builder.h"
 #include "extensions/common/extension_features.h"
 #include "extensions/test/extension_test_message_listener.h"
 #include "extensions/test/test_extension_dir.h"
@@ -37,6 +45,30 @@
 
 namespace extensions {
 namespace {
+enum class CommandState {
+  kAbsent,    // The command is not present in the menu.
+  kEnabled,   // The command is present, and enabled.
+  kDisabled,  // The command is present, and disabled.
+};
+
+CommandState GetCommandState(const ExtensionContextMenuModel& menu,
+                             int command_id) {
+  bool is_present = menu.GetIndexOfCommandId(command_id).has_value();
+  bool is_visible = menu.IsCommandIdVisible(command_id);
+
+  // The command is absent if the menu entry is not present, or the entry is
+  // not visible.
+  if (!is_present || !is_visible) {
+    return CommandState::kAbsent;
+  }
+
+  bool is_enabled = menu.IsCommandIdEnabled(command_id);
+  if (!is_enabled) {
+    return CommandState::kDisabled;
+  }
+
+  return CommandState::kEnabled;
+}
 
 SidePanelEntry::Key GetKey(const ExtensionId& id) {
   return SidePanelEntry::Key(SidePanelEntry::Id::kExtension, id);
@@ -236,6 +268,21 @@
     return action_item;
   }
 
+  ExtensionsToolbarContainer* GetExtensionsToolbarContainer() const {
+    return BrowserView::GetBrowserViewForBrowser(browser())
+        ->toolbar()
+        ->extensions_container();
+  }
+
+  extensions::ExtensionContextMenuModel* GetContextMenuForExtension(
+      const ExtensionId& extension_id) {
+    return static_cast<extensions::ExtensionContextMenuModel*>(
+        GetExtensionsToolbarContainer()
+            ->GetActionForId(extension_id)
+            ->GetContextMenu(extensions::ExtensionContextMenuModel::
+                                 ContextMenuSource::kMenuItem));
+  }
+
   // Runs a script in the extension's side panel WebContents to retrieve the
   // value of document.sidePanelTemp.
   std::string GetGlobalVariableInExtensionSidePanel(
@@ -1298,6 +1345,21 @@
     return extension;
   }
 
+  // Loads up a stub extension.
+  const Extension* LoadNoSidePanelExtension() {
+    TestExtensionDir test_dir;
+    static constexpr char kManifest[] =
+        R"({
+             "name": "No Side Panel Extension",
+             "manifest_version": 3,
+             "version": "0.1"
+           })";
+    test_dir.WriteManifest(kManifest);
+    const Extension* extension = LoadExtension(test_dir.UnpackedPath());
+    test_dirs_.push_back(std::move(test_dir));
+    return extension;
+  }
+
   void RunOpenPanelForTab(const Extension& extension, int tab_id) {
     RunOpenPanel(extension, tab_id, /*window_id=*/absl::nullopt);
   }
@@ -1747,6 +1809,121 @@
       side_panel_coordinator()->IsSidePanelEntryShowing(extension2_key));
 }
 
+// Tests that extension context menus show the "(Open / Close) side panel" menu
+// item when appropriate, and that the menu item toggles the global side panel.
+IN_PROC_BROWSER_TEST_F(
+    ExtensionOpenSidePanelBrowserTest,
+    OpenSidePanel_ContextMenu_GlobalPanel_ToggleSidePanelVisibility) {
+  EXPECT_FALSE(side_panel_coordinator()->IsSidePanelShowing());
+
+  {
+    // Verify the "Open side panel" entry is absent if the extension does not
+    // have the side panel permission.
+    const Extension* no_side_panel_extension = LoadNoSidePanelExtension();
+    ASSERT_TRUE(no_side_panel_extension);
+
+    auto* menu = GetContextMenuForExtension(no_side_panel_extension->id());
+    EXPECT_EQ(
+        GetCommandState(
+            *menu, ExtensionContextMenuModel::TOGGLE_SIDE_PANEL_VISIBILITY),
+        CommandState::kAbsent);
+  }
+
+  const Extension* side_panel_extension = LoadSidePanelExtension();
+  ASSERT_TRUE(side_panel_extension);
+
+  {
+    // Verify the "Open side panel" entry is absent if the extension has the
+    // side panel permission but hasn't set a global panel for the tab.
+    auto* menu = GetContextMenuForExtension(side_panel_extension->id());
+    EXPECT_EQ(
+        GetCommandState(
+            *menu, ExtensionContextMenuModel::TOGGLE_SIDE_PANEL_VISIBILITY),
+        CommandState::kAbsent);
+  }
+
+  {
+    // Verify the "Open side panel" entry is present if the extension has the
+    // side panel permission and sets a global panel.
+    RunSetOptions(*side_panel_extension, /*tab_id=*/absl::nullopt,
+                  /*path=*/"panel_1.html",
+                  /*enabled=*/true);
+    auto* menu = GetContextMenuForExtension(side_panel_extension->id());
+    EXPECT_EQ(
+        GetCommandState(
+            *menu, ExtensionContextMenuModel::TOGGLE_SIDE_PANEL_VISIBILITY),
+        CommandState::kEnabled);
+
+    // Simulate clicking on the "Open side panel" menu item. This should open
+    // the side panel.
+    menu->ExecuteCommand(
+        extensions::ExtensionContextMenuModel::TOGGLE_SIDE_PANEL_VISIBILITY, 0);
+    EXPECT_TRUE(side_panel_coordinator()->IsSidePanelEntryShowing(
+        GetKey(side_panel_extension->id())));
+
+    // Clicking on the menu item again should close the side panel.
+    menu->ExecuteCommand(
+        extensions::ExtensionContextMenuModel::TOGGLE_SIDE_PANEL_VISIBILITY, 0);
+    EXPECT_FALSE(side_panel_coordinator()->IsSidePanelEntryShowing(
+        GetKey(side_panel_extension->id())));
+  }
+}
+
+// Tests that extension context menus show the "(Open / Close) side panel" menu
+// item when appropriate, and that the menu item toggles the contextual side
+// panel.
+IN_PROC_BROWSER_TEST_F(
+    ExtensionOpenSidePanelBrowserTest,
+    OpenSidePanel_ContextMenu_ContextualPanel_ToggleSidePanelVisibility) {
+  EXPECT_FALSE(side_panel_coordinator()->IsSidePanelShowing());
+
+  const Extension* side_panel_extension = LoadSidePanelExtension();
+  ASSERT_TRUE(side_panel_extension);
+
+  // Add a second tab to the browser and set a contextual panel for it.
+  OpenNewForegroundTab();
+  int new_tab_id = GetCurrentTabId();
+  RunSetOptions(*side_panel_extension, /*tab_id=*/new_tab_id,
+                /*path=*/"panel_1.html",
+                /*enabled=*/true);
+
+  {
+    // Verify the "Open side panel" entry is present if the extension has the
+    // side panel permission and a contextual panel is set for the tab.
+    auto* menu = GetContextMenuForExtension(side_panel_extension->id());
+    EXPECT_EQ(
+        GetCommandState(
+            *menu, ExtensionContextMenuModel::TOGGLE_SIDE_PANEL_VISIBILITY),
+        CommandState::kEnabled);
+
+    // Simulate clicking on the "Open side panel" menu item. This should open
+    // the side panel.
+    menu->ExecuteCommand(
+        extensions::ExtensionContextMenuModel::TOGGLE_SIDE_PANEL_VISIBILITY, 0);
+    EXPECT_TRUE(side_panel_coordinator()->IsSidePanelEntryShowing(
+        GetKey(side_panel_extension->id())));
+
+    // Clicking on the menu item again should close the side panel.
+    menu->ExecuteCommand(
+        extensions::ExtensionContextMenuModel::TOGGLE_SIDE_PANEL_VISIBILITY, 0);
+    EXPECT_FALSE(side_panel_coordinator()->IsSidePanelEntryShowing(
+        GetKey(side_panel_extension->id())));
+  }
+
+  // Activate the first tab which does not have a contextual panel.
+  browser()->tab_strip_model()->ActivateTabAt(0);
+
+  {
+    // Verify the "Open side panel" entry is absent if the extension has the
+    // side panel permission but no contextual panel set on the tab.
+    auto* menu = GetContextMenuForExtension(side_panel_extension->id());
+    EXPECT_EQ(
+        GetCommandState(
+            *menu, ExtensionContextMenuModel::TOGGLE_SIDE_PANEL_VISIBILITY),
+        CommandState::kAbsent);
+  }
+}
+
 // TODO(crbug.com/1378048): Add a test here which requires a browser in
 // ExtensionViewHost for both global and contextual extension entries. One
 // example of this is having a link in the page that the user can open in a new
diff --git a/chrome/browser/ui/views/side_panel/extensions/extension_side_panel_manager.cc b/chrome/browser/ui/views/side_panel/extensions/extension_side_panel_manager.cc
index 47b229d..81fedf1 100644
--- a/chrome/browser/ui/views/side_panel/extensions/extension_side_panel_manager.cc
+++ b/chrome/browser/ui/views/side_panel/extensions/extension_side_panel_manager.cc
@@ -144,9 +144,15 @@
                   [](scoped_refptr<const Extension> extension, Browser* browser,
                      actions::ActionItem* item,
                      actions::ActionInvocationContext context) {
-                    SidePanelUI::GetSidePanelUIForBrowser(browser)->Show(
+                    const SidePanelOpenTrigger open_trigger =
+                        static_cast<SidePanelOpenTrigger>(
+                            context.GetProperty(kSidePanelOpenTriggerKey));
+                    CHECK_GE(open_trigger, SidePanelOpenTrigger::kMinValue);
+                    CHECK_LE(open_trigger, SidePanelOpenTrigger::kMaxValue);
+                    SidePanelUI::GetSidePanelUIForBrowser(browser)->Toggle(
                         SidePanelEntry::Key(SidePanelEntry::Id::kExtension,
-                                            extension->id()));
+                                            extension->id()),
+                        open_trigger);
                   },
                   base::WrapRefCounted(extension), browser_))
               .SetText(base::UTF8ToUTF16(extension->short_name()))
diff --git a/chrome/browser/ui/views/side_panel/side_panel_coordinator.cc b/chrome/browser/ui/views/side_panel/side_panel_coordinator.cc
index 9dfd8494..ece3d7d7 100644
--- a/chrome/browser/ui/views/side_panel/side_panel_coordinator.cc
+++ b/chrome/browser/ui/views/side_panel/side_panel_coordinator.cc
@@ -22,6 +22,7 @@
 #include "chrome/browser/ui/color/chrome_color_id.h"
 #include "chrome/browser/ui/side_panel/companion/companion_utils.h"
 #include "chrome/browser/ui/side_panel/side_panel_entry_id.h"
+#include "chrome/browser/ui/side_panel/side_panel_entry_key.h"
 #include "chrome/browser/ui/toolbar/pinned_toolbar_actions_model.h"
 #include "chrome/browser/ui/ui_features.h"
 #include "chrome/browser/ui/views/chrome_layout_provider.h"
@@ -430,6 +431,35 @@
   }
 }
 
+void SidePanelCoordinator::Toggle(
+    SidePanelEntryKey key,
+    SidePanelUtil::SidePanelOpenTrigger open_trigger) {
+  // If an entry is already showing in the sidepanel, the sidepanel
+  // should be closed.
+  if (IsSidePanelEntryShowing(key)) {
+    Close();
+    return;
+  }
+
+  // If the entry is the loading entry and is toggled,
+  // it should also be closed. This handles quick double clicks
+  // to close the sidepanel.
+  if (IsSidePanelShowing()) {
+    SidePanelContentSwappingContainer* content_wrapper =
+        static_cast<SidePanelContentSwappingContainer*>(
+            GetContentContainerView()->GetViewByID(
+                kSidePanelContentWrapperViewId));
+
+    if (content_wrapper->loading_entry() == GetEntryForKey(key)) {
+      content_wrapper->ResetLoadingEntryIfNecessary();
+      Close();
+      return;
+    }
+  }
+
+  Show(key, open_trigger);
+}
+
 void SidePanelCoordinator::OpenInNewTab() {
   if (!GetContentContainerView() || !current_entry_) {
     return;
diff --git a/chrome/browser/ui/views/side_panel/side_panel_coordinator.h b/chrome/browser/ui/views/side_panel/side_panel_coordinator.h
index c9f503e..ffca94f 100644
--- a/chrome/browser/ui/views/side_panel/side_panel_coordinator.h
+++ b/chrome/browser/ui/views/side_panel/side_panel_coordinator.h
@@ -11,7 +11,6 @@
 #include "base/scoped_multi_source_observation.h"
 #include "base/scoped_observation_traits.h"
 #include "base/time/time.h"
-#include "chrome/browser/ui/actions/chrome_action_id.h"
 #include "chrome/browser/ui/side_panel/side_panel_ui.h"
 #include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
 #include "chrome/browser/ui/views/side_panel/side_panel_entry.h"
@@ -72,6 +71,8 @@
                 absl::nullopt) override;
   void Close() override;
   void Toggle() override;
+  void Toggle(SidePanelEntryKey key,
+              SidePanelUtil::SidePanelOpenTrigger open_trigger) override;
   void OpenInNewTab() override;
   void UpdatePinState() override;
   absl::optional<SidePanelEntry::Id> GetCurrentEntryId() const override;
diff --git a/chrome/browser/ui/views/side_panel/side_panel_coordinator_unittest.cc b/chrome/browser/ui/views/side_panel/side_panel_coordinator_unittest.cc
index 3c6dd7d..02a56bf 100644
--- a/chrome/browser/ui/views/side_panel/side_panel_coordinator_unittest.cc
+++ b/chrome/browser/ui/views/side_panel/side_panel_coordinator_unittest.cc
@@ -390,6 +390,44 @@
             SidePanelEntry::Id::kReadingList);
 }
 
+TEST_F(SidePanelCoordinatorTest, SidePanelToggleWithEntriesTest) {
+  // Show reading list sidepanel.
+  coordinator_->Toggle(SidePanelEntry::Key(SidePanelEntry::Id::kReadingList),
+                       SidePanelOpenTrigger::kPinnedEntryToolbarButton);
+  EXPECT_TRUE(browser_view()->unified_side_panel()->GetVisible());
+  EXPECT_TRUE(GetLastActiveEntryKey().has_value());
+  EXPECT_EQ(GetLastActiveEntryKey().value().id(),
+            SidePanelEntry::Id::kReadingList);
+
+  // Toggle reading list sidepanel to close.
+  coordinator_->Toggle(SidePanelEntry::Key(SidePanelEntry::Id::kReadingList),
+                       SidePanelOpenTrigger::kPinnedEntryToolbarButton);
+  EXPECT_FALSE(browser_view()->unified_side_panel()->GetVisible());
+
+  // If the same entry is loading, close the sidepanel.
+  coordinator_->SetNoDelaysForTesting(false);
+  coordinator_->Toggle(SidePanelEntry::Key(SidePanelEntry::Id::kBookmarks),
+                       SidePanelOpenTrigger::kPinnedEntryToolbarButton);
+  EXPECT_FALSE(browser_view()->unified_side_panel()->GetVisible());
+  coordinator_->SetNoDelaysForTesting(true);
+  coordinator_->Toggle(SidePanelEntry::Key(SidePanelEntry::Id::kBookmarks),
+                       SidePanelOpenTrigger::kPinnedEntryToolbarButton);
+  EXPECT_FALSE(browser_view()->unified_side_panel()->GetVisible());
+
+  // Toggling reading list followed by bookmarks shows the reading list side
+  // panel followed by the bookmarks side panel.
+  coordinator_->Toggle(SidePanelEntry::Key(SidePanelEntry::Id::kReadingList),
+                       SidePanelOpenTrigger::kPinnedEntryToolbarButton);
+  EXPECT_TRUE(browser_view()->unified_side_panel()->GetVisible());
+  EXPECT_EQ(GetLastActiveEntryKey().value().id(),
+            SidePanelEntry::Id::kReadingList);
+  coordinator_->Toggle(SidePanelEntry::Key(SidePanelEntry::Id::kBookmarks),
+                       SidePanelOpenTrigger::kPinnedEntryToolbarButton);
+  EXPECT_TRUE(browser_view()->unified_side_panel()->GetVisible());
+  EXPECT_EQ(GetLastActiveEntryKey().value().id(),
+            SidePanelEntry::Id::kBookmarks);
+}
+
 TEST_F(SidePanelCoordinatorTest, ShowOpensSidePanel) {
   coordinator_->Show(SidePanelEntry::Id::kBookmarks);
   EXPECT_TRUE(browser_view()->unified_side_panel()->GetVisible());
diff --git a/chrome/browser/ui/views/translate/translate_bubble_view_interactive_uitest.cc b/chrome/browser/ui/views/translate/translate_bubble_view_interactive_uitest.cc
index f8f1a802..784cbe2 100644
--- a/chrome/browser/ui/views/translate/translate_bubble_view_interactive_uitest.cc
+++ b/chrome/browser/ui/views/translate/translate_bubble_view_interactive_uitest.cc
@@ -10,7 +10,7 @@
 #include "base/functional/bind.h"
 #include "base/functional/callback_helpers.h"
 #include "base/i18n/base_i18n_switches.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/test/bind.h"
 #include "build/build_config.h"
diff --git a/chrome/browser/ui/views/web_apps/deprecated_apps_dialog_view_browsertest.cc b/chrome/browser/ui/views/web_apps/deprecated_apps_dialog_view_browsertest.cc
index 0724db2..fadf3f77 100644
--- a/chrome/browser/ui/views/web_apps/deprecated_apps_dialog_view_browsertest.cc
+++ b/chrome/browser/ui/views/web_apps/deprecated_apps_dialog_view_browsertest.cc
@@ -9,7 +9,7 @@
 #include "base/feature_list.h"
 #include "base/functional/callback_helpers.h"
 #include "base/run_loop.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/test/bind.h"
 #include "base/test/mock_callback.h"
 #include "chrome/browser/extensions/extension_browsertest.h"
diff --git a/chrome/browser/ui/web_applications/test/isolated_web_app_builder.cc b/chrome/browser/ui/web_applications/test/isolated_web_app_builder.cc
index 4c989b8a..776a11a1 100644
--- a/chrome/browser/ui/web_applications/test/isolated_web_app_builder.cc
+++ b/chrome/browser/ui/web_applications/test/isolated_web_app_builder.cc
@@ -8,7 +8,6 @@
 #include <vector>
 
 #include "base/strings/string_piece.h"
-#include "base/strings/string_piece_forward.h"
 #include "base/version.h"
 #include "chrome/browser/ui/web_applications/test/isolated_web_app_test_utils.h"
 #include "chrome/browser/web_applications/test/web_app_icon_test_utils.h"
diff --git a/chrome/browser/ui/web_applications/test/web_app_browsertest_util.h b/chrome/browser/ui/web_applications/test/web_app_browsertest_util.h
index a20bc9fc..156ba84 100644
--- a/chrome/browser/ui/web_applications/test/web_app_browsertest_util.h
+++ b/chrome/browser/ui/web_applications/test/web_app_browsertest_util.h
@@ -10,7 +10,7 @@
 #include "base/memory/raw_ptr.h"
 #include "base/run_loop.h"
 #include "base/scoped_observation.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "chrome/browser/ui/browser_list_observer.h"
 #include "chrome/browser/web_applications/externally_managed_app_manager.h"
 #include "chrome/browser/web_applications/web_app_constants.h"
diff --git a/chrome/browser/ui/web_applications/web_app_browsertest.cc b/chrome/browser/ui/web_applications/web_app_browsertest.cc
index a7b1063..07d29c9 100644
--- a/chrome/browser/ui/web_applications/web_app_browsertest.cc
+++ b/chrome/browser/ui/web_applications/web_app_browsertest.cc
@@ -17,7 +17,7 @@
 #include "base/functional/bind.h"
 #include "base/functional/callback.h"
 #include "base/run_loop.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/stringprintf.h"
 #include "base/test/bind.h"
 #include "base/test/metrics/histogram_tester.h"
diff --git a/chrome/browser/ui/web_applications/web_app_ui_manager_impl.cc b/chrome/browser/ui/web_applications/web_app_ui_manager_impl.cc
index 5d296ca..ee1a993 100644
--- a/chrome/browser/ui/web_applications/web_app_ui_manager_impl.cc
+++ b/chrome/browser/ui/web_applications/web_app_ui_manager_impl.cc
@@ -20,7 +20,7 @@
 #include "base/memory/scoped_refptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/one_shot_event.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/task/sequenced_task_runner.h"
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
index 1adc311..59040cd 100644
--- a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
+++ b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
@@ -313,15 +313,16 @@
       threat_type = safe_browsing::SB_THREAT_TYPE_BILLING;
     }
   }
+  auto* primary_main_frame = web_contents->GetPrimaryMainFrame();
   const content::GlobalRenderFrameHostId primary_main_frame_id =
-      web_contents->GetPrimaryMainFrame()->GetGlobalId();
+      primary_main_frame->GetGlobalId();
   safe_browsing::SafeBrowsingBlockingPage::UnsafeResource resource;
   resource.url = request_url;
   resource.is_subresource = request_url != main_frame_url;
   resource.is_subframe = false;
   resource.threat_type = threat_type;
   resource.render_process_id = primary_main_frame_id.child_id;
-  resource.render_frame_id = primary_main_frame_id.frame_routing_id;
+  resource.render_frame_token = primary_main_frame->GetFrameToken().value();
   resource.threat_source =
       g_browser_process->safe_browsing_service()
           ->database_manager()
@@ -358,15 +359,16 @@
   auto* ui_manager =
       g_browser_process->safe_browsing_service()->ui_manager().get();
 
+  auto* primary_main_frame = web_contents->GetPrimaryMainFrame();
   const content::GlobalRenderFrameHostId primary_main_frame_id =
-      web_contents->GetPrimaryMainFrame()->GetGlobalId();
+      primary_main_frame->GetGlobalId();
   safe_browsing::SafeBrowsingBlockingPage::UnsafeResource resource;
   resource.url = kRequestUrl;
   resource.is_subresource = false;
   resource.is_subframe = false;
   resource.threat_type = safe_browsing::SB_THREAT_TYPE_MANAGED_POLICY_WARN;
   resource.render_process_id = primary_main_frame_id.child_id;
-  resource.render_frame_id = primary_main_frame_id.frame_routing_id;
+  resource.render_frame_token = primary_main_frame->GetFrameToken().value();
   resource.threat_source =
       g_browser_process->safe_browsing_service()
           ->database_manager()
@@ -409,15 +411,16 @@
       is_giant_webview = true;
     }
   }
+  auto* primary_main_frame = web_contents->GetPrimaryMainFrame();
   const content::GlobalRenderFrameHostId primary_main_frame_id =
-      web_contents->GetPrimaryMainFrame()->GetGlobalId();
+      primary_main_frame->GetGlobalId();
   safe_browsing::SafeBrowsingBlockingPage::UnsafeResource resource;
   resource.url = request_url;
   resource.is_subresource = request_url != main_frame_url;
   resource.is_subframe = false;
   resource.threat_type = threat_type;
   resource.render_process_id = primary_main_frame_id.child_id;
-  resource.render_frame_id = primary_main_frame_id.frame_routing_id;
+  resource.render_frame_token = primary_main_frame->GetFrameToken().value();
   resource.threat_source =
       g_browser_process->safe_browsing_service()
           ->database_manager()
diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler_unittest.cc b/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler_unittest.cc
index 0f88c918..9d07fc7 100644
--- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler_unittest.cc
+++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_handler_unittest.cc
@@ -120,6 +120,18 @@
     return &color_provider_;
   }
 
+  const ui::RendererColorMap GetRendererColorMap(
+      ui::ColorProviderKey::ColorMode color_mode,
+      ui::ColorProviderKey::ForcedColors forced_colors) const override {
+    auto key = GetColorProviderKey();
+    key.color_mode = color_mode;
+    key.forced_colors = forced_colors;
+    ui::ColorProvider* color_provider =
+        ui::ColorProviderManager::Get().GetColorProviderFor(key);
+    CHECK(color_provider);
+    return ui::CreateRendererColorMap(*color_provider);
+  }
+
   void SetColor(ui::ColorId id, SkColor color) {
     color_provider_.SetColorForTesting(id, color);
   }
diff --git a/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc b/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc
index 143e1b8..2c439574 100644
--- a/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc
+++ b/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc
@@ -521,7 +521,8 @@
         mojo::ConvertTo<AutocompleteMatch::ScoringSignals>(mojom_signals);
     std::vector<AutocompleteScoringModelService::Result> result =
         service->BatchScoreAutocompleteUrlMatchesSync({&signals}, {""});
-    std::move(callback).Run(result.size() ? *std::get<0>(result[0]) : -1);
+    std::move(callback).Run(result.size() ? std::get<0>(result[0]).value_or(-1)
+                                          : -1);
   } else {
     std::move(callback).Run(-1);
   }
diff --git a/chrome/browser/ui/webui/settings/safety_hub_handler.cc b/chrome/browser/ui/webui/settings/safety_hub_handler.cc
index 59db38f..2a86c63b 100644
--- a/chrome/browser/ui/webui/settings/safety_hub_handler.cc
+++ b/chrome/browser/ui/webui/settings/safety_hub_handler.cc
@@ -15,8 +15,10 @@
 #include "base/values.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
+#include "chrome/browser/extensions/cws_info_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/signin/identity_manager_factory.h"
+#include "chrome/browser/ui/safety_hub/extensions_result.h"
 #include "chrome/browser/ui/safety_hub/notification_permission_review_service.h"
 #include "chrome/browser/ui/safety_hub/notification_permission_review_service_factory.h"
 #include "chrome/browser/ui/safety_hub/password_status_check_service.h"
@@ -608,6 +610,7 @@
   if (CardHasRecommendations(GetSafeBrowsingCardData())) {
     modules.insert(SafetyHubModule::kSafeBrowsing);
   }
+  // Extensions module
   if (GetNumberOfExtensionsThatNeedReview() > 0) {
     modules.insert(SafetyHubModule::kExtensions);
   }
@@ -733,10 +736,18 @@
       service->PopulateNotificationPermissionReviewData());
 }
 
-// TODO(1443466): Replace with the actual method implementation once blocking
-// https://crrev.com/c/4911755 is merged.
 int SafetyHubHandler::GetNumberOfExtensionsThatNeedReview() {
-  return 0;
+  extensions::CWSInfoService* cws_info_service =
+      extensions::CWSInfoServiceFactory::GetForProfile(profile_);
+  absl::optional<std::unique_ptr<SafetyHubService::Result>> sh_result =
+      SafetyHubExtensionsResult::GetResult(cws_info_service, profile_, false);
+  if (!sh_result.has_value()) {
+    return 0;
+  }
+
+  auto* result = static_cast<SafetyHubExtensionsResult*>(sh_result->get());
+
+  return result->GetNumTriggeringExtensions();
 }
 
 void SafetyHubHandler::SetClockForTesting(base::Clock* clock) {
diff --git a/chrome/browser/ui/webui/settings/safety_hub_handler_unittest.cc b/chrome/browser/ui/webui/settings/safety_hub_handler_unittest.cc
index 201778d..a4622a8 100644
--- a/chrome/browser/ui/webui/settings/safety_hub_handler_unittest.cc
+++ b/chrome/browser/ui/webui/settings/safety_hub_handler_unittest.cc
@@ -13,6 +13,7 @@
 #include "base/time/time.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
+#include "chrome/browser/extensions/cws_info_service_factory.h"
 #include "chrome/browser/history/history_service_factory.h"
 #include "chrome/browser/password_manager/password_manager_test_util.h"
 #include "chrome/browser/permissions/notifications_engagement_service_factory.h"
@@ -20,6 +21,7 @@
 #include "chrome/browser/ui/safety_hub/password_status_check_service.h"
 #include "chrome/browser/ui/safety_hub/password_status_check_service_factory.h"
 #include "chrome/browser/ui/safety_hub/safety_hub_constants.h"
+#include "chrome/browser/ui/safety_hub/safety_hub_test_util.h"
 #include "chrome/browser/ui/safety_hub/unused_site_permissions_service.h"
 #include "chrome/browser/ui/webui/settings/safety_hub_handler.h"
 #include "chrome/browser/ui/webui/settings/site_settings_helper.h"
@@ -161,6 +163,16 @@
     EXPECT_EQ(password_service->compromised_credential_count(), 0UL);
   }
 
+  void AddExtensionsForReview() {
+    extensions::CWSInfoServiceFactory::GetInstance()->SetTestingFactory(
+        profile(), base::BindRepeating([](content::BrowserContext* context)
+                                           -> std::unique_ptr<KeyedService> {
+          return safety_hub_test_util::GetMockCWSInfoService(
+              Profile::FromBrowserContext(context));
+        }));
+    safety_hub_test_util::CreateMockExtensions(profile());
+  }
+
   void ExpectRevokedPermission() {
     ContentSettingsForOneType revoked_permissions_list =
         hcsm()->GetSettingsForOneType(
@@ -261,7 +273,6 @@
   void SetupTestToShowOrHideRecommendationForModule(
       SafetyHubHandler::SafetyHubModule module,
       bool isModuleRecommended) {
-    // TODO(crbug.com/1443466): Add Extensions module.
     switch (module) {
       case SafetyHubHandler::SafetyHubModule::kPasswords:
         isModuleRecommended ? CreateLeakedCredential() : FixLeakedCredential();
@@ -283,6 +294,11 @@
             ? SetPrefsForSafeBrowsing(false, false, SettingManager::USER)
             : SetPrefsForSafeBrowsing(true, true, SettingManager::USER);
         break;
+      case SafetyHubHandler::SafetyHubModule::kExtensions:
+        isModuleRecommended
+            ? AddExtensionsForReview()
+            : safety_hub_test_util::CleanAllMockExtensions(profile());
+        break;
       case SafetyHubHandler::SafetyHubModule::kNotifications:
         isModuleRecommended
             ? AddNotificationPermissionsForReview()
@@ -779,10 +795,10 @@
 
 TEST_F(SafetyHubHandlerTest, HandleGetSafetyHubHasRecommendations) {
   std::vector<SafetyHubHandler::SafetyHubModule> modules;
-  // TODO(crbug.com/1443466): Add Extensions module.
   modules.push_back(SafetyHubHandler::SafetyHubModule::kPasswords);
   modules.push_back(SafetyHubHandler::SafetyHubModule::kVersion);
   modules.push_back(SafetyHubHandler::SafetyHubModule::kSafeBrowsing);
+  modules.push_back(SafetyHubHandler::SafetyHubModule::kExtensions);
   modules.push_back(SafetyHubHandler::SafetyHubModule::kNotifications);
   modules.push_back(SafetyHubHandler::SafetyHubModule::kUnusedSitePermissions);
 
@@ -839,7 +855,10 @@
           IDS_SETTINGS_SAFETY_HUB_SAFE_BROWSING_MODULE_NAME),
       SafetyHubHandler::SafetyHubModule::kSafeBrowsing);
 
-  // TODO(crbug.com/1443466): Add Extensions module.
+  ValidateEntryPointSubheader(
+      l10n_util::GetStringUTF8(
+          IDS_SETTINGS_SAFETY_HUB_EXTENSIONS_MODULE_UPPERCASE_NAME),
+      SafetyHubHandler::SafetyHubModule::kExtensions);
 
   ValidateEntryPointSubheader(
       l10n_util::GetStringUTF8(
@@ -881,7 +900,15 @@
   ValidateEntryPointSubheader(expected_subheader,
                               SafetyHubHandler::SafetyHubModule::kSafeBrowsing);
 
-  // TODO(crbug.com/1443466): Add Extensions module.
+  // The expected subheader should be "Passwords, extensions"
+  expected_subheader =
+      l10n_util::GetStringUTF8(IDS_SETTINGS_SAFETY_HUB_PASSWORDS_MODULE_NAME) +
+      l10n_util::GetStringUTF8(IDS_SETTINGS_SAFETY_HUB_MODULE_NAME_SEPARATOR) +
+      " " +
+      l10n_util::GetStringUTF8(
+          IDS_SETTINGS_SAFETY_HUB_EXTENSIONS_MODULE_LOWERCASE_NAME);
+  ValidateEntryPointSubheader(expected_subheader,
+                              SafetyHubHandler::SafetyHubModule::kExtensions);
 
   // The expected subheader should be "Passwords, notifications"
   expected_subheader =
@@ -912,12 +939,13 @@
       SafetyHubHandler::SafetyHubModule::kVersion, true);
   SetupTestToShowOrHideRecommendationForModule(
       SafetyHubHandler::SafetyHubModule::kSafeBrowsing, true);
-  // TODO(crbug.com/1443466): Add Extensions module.
+  SetupTestToShowOrHideRecommendationForModule(
+      SafetyHubHandler::SafetyHubModule::kExtensions, true);
   SetupTestToShowOrHideRecommendationForModule(
       SafetyHubHandler::SafetyHubModule::kNotifications, true);
 
   // The expected subheader should be "Passwords, Chrome update, Safe Browsing,
-  // notifications, permissions"
+  // extensions, notifications, permissions"
   std::string expected_subheader =
       l10n_util::GetStringUTF8(IDS_SETTINGS_SAFETY_HUB_PASSWORDS_MODULE_NAME) +
       l10n_util::GetStringUTF8(IDS_SETTINGS_SAFETY_HUB_MODULE_NAME_SEPARATOR) +
@@ -931,6 +959,10 @@
       l10n_util::GetStringUTF8(IDS_SETTINGS_SAFETY_HUB_MODULE_NAME_SEPARATOR) +
       " " +
       l10n_util::GetStringUTF8(
+          IDS_SETTINGS_SAFETY_HUB_EXTENSIONS_MODULE_LOWERCASE_NAME) +
+      l10n_util::GetStringUTF8(IDS_SETTINGS_SAFETY_HUB_MODULE_NAME_SEPARATOR) +
+      " " +
+      l10n_util::GetStringUTF8(
           IDS_SETTINGS_SAFETY_HUB_NOTIFICATIONS_MODULE_LOWERCASE_NAME) +
       l10n_util::GetStringUTF8(IDS_SETTINGS_SAFETY_HUB_MODULE_NAME_SEPARATOR) +
       " " +
diff --git a/chrome/browser/ui/webui/side_panel/read_anything/read_anything_app_read_aloud_browsertest.cc b/chrome/browser/ui/webui/side_panel/read_anything/read_anything_app_read_aloud_browsertest.cc
index 65a89374..181dcd6 100644
--- a/chrome/browser/ui/webui/side_panel/read_anything/read_anything_app_read_aloud_browsertest.cc
+++ b/chrome/browser/ui/webui/side_panel/read_anything/read_anything_app_read_aloud_browsertest.cc
@@ -89,10 +89,6 @@
   ASSERT_TRUE(RunTest("granularity_hidden_when_paused.js"));
 }
 
-IN_PROC_BROWSER_TEST_F(ReadAnythingAppReadAloudTest, Checkmarks_Visible) {
-  ASSERT_TRUE(RunTest("checkmark_visible_on_selected.js"));
-}
-
 IN_PROC_BROWSER_TEST_F(ReadAnythingAppReadAloudTest,
                        RateCallback_ChangesSpeechRate) {
   ASSERT_TRUE(RunTest("rate_callback_changes_speech_rate.js"));
diff --git a/chrome/browser/ui/webui/side_panel/read_anything/read_anything_untrusted_ui.cc b/chrome/browser/ui/webui/side_panel/read_anything/read_anything_untrusted_ui.cc
index fa62c4b..f9fa3a59 100644
--- a/chrome/browser/ui/webui/side_panel/read_anything/read_anything_untrusted_ui.cc
+++ b/chrome/browser/ui/webui/side_panel/read_anything/read_anything_untrusted_ui.cc
@@ -22,6 +22,7 @@
 #include "content/public/browser/web_ui_data_source.h"
 #include "ui/accessibility/accessibility_features.h"
 #include "ui/base/webui/web_ui_util.h"
+#include "ui/resources/grit/webui_resources.h"
 #include "ui/views/style/platform_style.h"
 
 ReadAnythingUIUntrustedConfig::ReadAnythingUIUntrustedConfig()
@@ -98,6 +99,10 @@
   // but not chrome-untrusted://, ReadAnythingUntrustedUI does not inherit them.
   source->UseStringsJs();
   source->EnableReplaceI18nInJS();
+  source->AddResourcePath("test_loader.js", IDR_WEBUI_JS_TEST_LOADER_JS);
+  source->AddResourcePath("test_loader_util.js",
+                          IDR_WEBUI_JS_TEST_LOADER_UTIL_JS);
+  source->AddResourcePath("test_loader.html", IDR_WEBUI_TEST_LOADER_HTML);
   webui::EnableTrustedTypesCSP(source);
   webui::SetupChromeRefresh2023(source);
   source->AddResourcePaths(base::make_span(
@@ -107,7 +112,8 @@
                                            kSidePanelSharedResourcesSize));
   source->OverrideContentSecurityPolicy(
       network::mojom::CSPDirectiveName::ScriptSrc,
-      "script-src 'self' chrome-untrusted://resources;");
+      "script-src 'self' chrome-untrusted://resources "
+      "chrome-untrusted://webui-test;");
   source->OverrideContentSecurityPolicy(
       network::mojom::CSPDirectiveName::StyleSrc,
       "style-src 'self' chrome-untrusted://resources chrome-untrusted://theme "
diff --git a/chrome/browser/ui/webui/support_tool/support_tool_ui_utils.cc b/chrome/browser/ui/webui/support_tool/support_tool_ui_utils.cc
index 0a65f6d..2dab0e1d 100644
--- a/chrome/browser/ui/webui/support_tool/support_tool_ui_utils.cc
+++ b/chrome/browser/ui/webui/support_tool/support_tool_ui_utils.cc
@@ -12,7 +12,7 @@
 #include "base/base64url.h"
 #include "base/check.h"
 #include "base/containers/contains.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/string_util.h"
 #include "base/values.h"
 #include "build/chromeos_buildflags.h"
diff --git a/chrome/browser/ui/webui/support_tool/support_tool_ui_utils_unittest.cc b/chrome/browser/ui/webui/support_tool/support_tool_ui_utils_unittest.cc
index 62a6e6c..8bfd32c 100644
--- a/chrome/browser/ui/webui/support_tool/support_tool_ui_utils_unittest.cc
+++ b/chrome/browser/ui/webui/support_tool/support_tool_ui_utils_unittest.cc
@@ -10,7 +10,7 @@
 
 #include "base/containers/contains.h"
 #include "base/containers/fixed_flat_map.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/values.h"
 #include "chrome/browser/support_tool/data_collection_module.pb.h"
diff --git a/chrome/browser/ui/webui/test_data_source.cc b/chrome/browser/ui/webui/test_data_source.cc
deleted file mode 100644
index 470e721..0000000
--- a/chrome/browser/ui/webui/test_data_source.cc
+++ /dev/null
@@ -1,180 +0,0 @@
-// Copyright 2019 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/ui/webui/test_data_source.h"
-
-#include <memory>
-
-#include "base/base_paths.h"
-#include "base/files/file_path.h"
-#include "base/files/file_util.h"
-#include "base/memory/ref_counted_memory.h"
-#include "base/path_service.h"
-#include "base/strings/string_util.h"
-#include "base/task/task_traits.h"
-#include "base/task/thread_pool.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/common/chrome_paths.h"
-#include "chrome/common/url_constants.h"
-#include "chrome/common/webui_url_constants.h"
-#include "content/public/browser/url_data_source.h"
-#include "content/public/common/url_constants.h"
-#include "services/network/public/mojom/content_security_policy.mojom.h"
-
-namespace {
-const char kModuleQuery[] = "module=";
-}  // namespace
-
-TestDataSource::TestDataSource(std::string root) {
-  base::FilePath test_data;
-  CHECK(base::PathService::Get(chrome::DIR_TEST_DATA, &test_data));
-  src_root_ = test_data.AppendASCII(root).NormalizePathSeparators();
-  DCHECK(test_data.IsParent(src_root_));
-
-  base::FilePath exe_dir;
-  base::PathService::Get(base::DIR_EXE, &exe_dir);
-  gen_root_ = exe_dir.AppendASCII("gen/chrome/test/data/" + root)
-                  .NormalizePathSeparators();
-  DCHECK(exe_dir.IsParent(gen_root_));
-
-  custom_paths_ = {
-      {"/chai.js", "third_party/node/node_modules/chai/chai.js"},
-      {"/mocha.js", "third_party/node/node_modules/mocha/mocha.js"},
-  };
-}
-
-TestDataSource::~TestDataSource() = default;
-
-std::string TestDataSource::GetSource() {
-  return "test";
-}
-
-void TestDataSource::StartDataRequest(
-    const GURL& url,
-    const content::WebContents::Getter& wc_getter,
-    content::URLDataSource::GotDataCallback callback) {
-  const std::string path = content::URLDataSource::URLToRequestPath(url);
-  base::ThreadPool::PostTask(
-      FROM_HERE, {base::MayBlock(), base::TaskPriority::USER_BLOCKING},
-      base::BindOnce(&TestDataSource::ReadFile, base::Unretained(this), path,
-                     std::move(callback)));
-}
-
-std::string TestDataSource::GetMimeType(const GURL& url) {
-  if (base::EndsWith(url.path_piece(), ".html",
-                     base::CompareCase::INSENSITIVE_ASCII) ||
-      base::StartsWith(url.query_piece(), kModuleQuery,
-                       base::CompareCase::INSENSITIVE_ASCII)) {
-    // Direct request for HTML, or autogenerated HTML response for module query.
-    return "text/html";
-  }
-  // The test data source currently only serves HTML and JS.
-  CHECK(base::EndsWith(url.path_piece(), ".js",
-                       base::CompareCase::INSENSITIVE_ASCII))
-      << "Tried to read file with unexpected type from test data source: "
-      << url.path_piece();
-  return "application/javascript";
-}
-
-bool TestDataSource::ShouldServeMimeTypeAsContentTypeHeader() {
-  return true;
-}
-
-bool TestDataSource::AllowCaching() {
-  return false;
-}
-
-std::string TestDataSource::GetContentSecurityPolicy(
-    network::mojom::CSPDirectiveName directive) {
-  if (directive == network::mojom::CSPDirectiveName::ScriptSrc) {
-    return "script-src chrome://* 'self';";
-  } else if (directive == network::mojom::CSPDirectiveName::WorkerSrc) {
-    return "worker-src blob: chrome://resources 'self';";
-  } else if (directive ==
-                 network::mojom::CSPDirectiveName::RequireTrustedTypesFor ||
-             directive == network::mojom::CSPDirectiveName::TrustedTypes) {
-    return std::string();
-  } else if (directive == network::mojom::CSPDirectiveName::FrameAncestors) {
-    return "frame-ancestors chrome://* 'self';";
-  } else if (directive == network::mojom::CSPDirectiveName::FrameSrc) {
-    return "frame-src chrome://test/;";
-  } else if (directive == network::mojom::CSPDirectiveName::ChildSrc) {
-    return "child-src chrome://test/;";
-  }
-
-  return content::URLDataSource::GetContentSecurityPolicy(directive);
-}
-
-GURL TestDataSource::GetURLForPath(const std::string& path) {
-  return GURL(std::string(content::kChromeUIScheme) + "://" + GetSource() +
-              "/" + path);
-}
-
-void TestDataSource::ReadFile(
-    const std::string& path,
-    content::URLDataSource::GotDataCallback callback) {
-  std::string content;
-
-  GURL url = GetURLForPath(path);
-  CHECK(url.is_valid());
-
-  // First check if a custom path mapping exists for the requested URL.
-  auto it = custom_paths_.find(url.path());
-  if (it != custom_paths_.end()) {
-    base::FilePath src_root;
-    CHECK(base::PathService::Get(base::DIR_SRC_TEST_DATA_ROOT, &src_root));
-    base::FilePath file_path =
-        src_root.AppendASCII(it->second).NormalizePathSeparators();
-    CHECK(base::ReadFileToString(file_path, &content))
-        << url.spec() << "=" << file_path.value();
-    scoped_refptr<base::RefCountedString> response =
-        base::MakeRefCounted<base::RefCountedString>(std::move(content));
-    std::move(callback).Run(response.get());
-    return;
-  }
-
-  if (base::StartsWith(url.query(), kModuleQuery,
-                       base::CompareCase::INSENSITIVE_ASCII)) {
-    std::string js_path = url.query().substr(strlen(kModuleQuery));
-
-    base::FilePath file_path =
-        src_root_.Append(base::FilePath::FromUTF8Unsafe(js_path));
-    // Do some basic validation of the JS file path provided in the query.
-    CHECK_EQ(file_path.Extension(), FILE_PATH_LITERAL(".js"));
-
-    base::FilePath file_path2 =
-        gen_root_.Append(base::FilePath::FromUTF8Unsafe(js_path));
-    CHECK(base::PathExists(file_path) || base::PathExists(file_path2))
-        << url.spec() << "=" << file_path.value();
-    content = "<script type=\"module\" src=\"" + js_path + "\"></script>";
-  } else {
-    // Strip the query
-    size_t query_length = url.query().length();
-    std::string no_query_path =
-        query_length == 0 ? path
-                          : path.substr(0, path.length() - query_length - 1);
-
-    // Try the |gen_root_| folder first, covering cases where the test file is
-    // generated at build time. We do this first as if a test file exists under
-    // the same name in the src and gen directories, the generated file is
-    // generally the desired file (for example, may have been preprocessed).
-    base::FilePath gen_root_file_path =
-        gen_root_.Append(base::FilePath::FromUTF8Unsafe(no_query_path));
-    if (base::PathExists(gen_root_file_path)) {
-      CHECK(base::ReadFileToString(gen_root_file_path, &content))
-          << url.spec() << "=" << gen_root_file_path.value();
-    } else {
-      // Then try the |src_root_| folder, covering cases where the test file is
-      // generated at build time.
-      base::FilePath src_root_file_path =
-          src_root_.Append(base::FilePath::FromUTF8Unsafe(no_query_path));
-      CHECK(base::ReadFileToString(src_root_file_path, &content))
-          << url.spec() << "=" << src_root_file_path.value();
-    }
-  }
-
-  scoped_refptr<base::RefCountedString> response =
-      base::MakeRefCounted<base::RefCountedString>(std::move(content));
-  std::move(callback).Run(response.get());
-}
diff --git a/chrome/browser/ui/webui/test_data_source.h b/chrome/browser/ui/webui/test_data_source.h
deleted file mode 100644
index d1ac927..0000000
--- a/chrome/browser/ui/webui/test_data_source.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2019 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_UI_WEBUI_TEST_DATA_SOURCE_H_
-#define CHROME_BROWSER_UI_WEBUI_TEST_DATA_SOURCE_H_
-
-#include <map>
-#include <string>
-
-#include "base/files/file_path.h"
-#include "content/public/browser/url_data_source.h"
-#include "url/gurl.h"
-
-// Serves files at chrome://test/ from //src/chrome/test/data/<root>.
-class TestDataSource : public content::URLDataSource {
- public:
-  explicit TestDataSource(std::string root);
-
-  TestDataSource(const TestDataSource&) = delete;
-  TestDataSource& operator=(const TestDataSource&) = delete;
-
-  ~TestDataSource() override;
-
- private:
-  void StartDataRequest(
-      const GURL& url,
-      const content::WebContents::Getter& wc_getter,
-      content::URLDataSource::GotDataCallback callback) override;
-
-  std::string GetMimeType(const GURL& url) override;
-
-  bool ShouldServeMimeTypeAsContentTypeHeader() override;
-
-  bool AllowCaching() override;
-
-  std::string GetSource() override;
-
-  std::string GetContentSecurityPolicy(
-      network::mojom::CSPDirectiveName directive) override;
-
-  GURL GetURLForPath(const std::string& path);
-
-  void ReadFile(const std::string& path,
-                content::URLDataSource::GotDataCallback callback);
-
-  base::FilePath src_root_;
-  base::FilePath gen_root_;
-  std::map<std::string, std::string> custom_paths_;
-};
-
-#endif  // CHROME_BROWSER_UI_WEBUI_TEST_DATA_SOURCE_H_
diff --git a/chrome/browser/ui/webui/util/image_util.h b/chrome/browser/ui/webui/util/image_util.h
index 961d69a..ced0ed19 100644
--- a/chrome/browser/ui/webui/util/image_util.h
+++ b/chrome/browser/ui/webui/util/image_util.h
@@ -6,7 +6,7 @@
 #define CHROME_BROWSER_UI_WEBUI_UTIL_IMAGE_UTIL_H_
 
 #include "base/containers/span.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 
 namespace gfx {
 class ImageSkia;
diff --git a/chrome/browser/web_applications/BUILD.gn b/chrome/browser/web_applications/BUILD.gn
index e67c26f4..52460628 100644
--- a/chrome/browser/web_applications/BUILD.gn
+++ b/chrome/browser/web_applications/BUILD.gn
@@ -666,7 +666,6 @@
     "commands/fetch_manifest_and_install_command_unittest.cc",
     "commands/install_app_locally_command_unittest.cc",
     "commands/install_from_sync_command_unittest.cc",
-    "commands/install_placeholder_job_unittest.cc",
     "commands/manifest_update_check_command_unittest.cc",
     "commands/manifest_update_finalize_command_unittest.cc",
     "commands/os_integration_synchronize_command_unittest.cc",
@@ -706,6 +705,7 @@
     "isolated_web_apps/signed_web_bundle_reader_unittest.cc",
     "isolated_web_apps/update_manifest/update_manifest_fetcher_unittest.cc",
     "isolated_web_apps/update_manifest/update_manifest_unittest.cc",
+    "jobs/install_placeholder_job_unittest.cc",
     "locks/web_app_lock_manager_unittest.cc",
     "os_integration/file_handling_sub_manager_unittest.cc",
     "os_integration/os_integration_manager_unittest.cc",
diff --git a/chrome/browser/web_applications/app_service/lacros_web_apps_controller_browsertest.cc b/chrome/browser/web_applications/app_service/lacros_web_apps_controller_browsertest.cc
index 24496fe..c61f667 100644
--- a/chrome/browser/web_applications/app_service/lacros_web_apps_controller_browsertest.cc
+++ b/chrome/browser/web_applications/app_service/lacros_web_apps_controller_browsertest.cc
@@ -20,7 +20,7 @@
 #include "base/notreached.h"
 #include "base/ranges/algorithm.h"
 #include "base/run_loop.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/string_util.h"
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
diff --git a/chrome/browser/web_applications/app_service/web_app_publisher_helper.h b/chrome/browser/web_applications/app_service/web_app_publisher_helper.h
index 29131c1..fa4727c8b 100644
--- a/chrome/browser/web_applications/app_service/web_app_publisher_helper.h
+++ b/chrome/browser/web_applications/app_service/web_app_publisher_helper.h
@@ -14,7 +14,7 @@
 #include "base/memory/raw_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/scoped_observation.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/types/id_type.h"
 #include "build/build_config.h"
 #include "build/buildflag.h"
diff --git a/chrome/browser/web_applications/commands/install_placeholder_command.cc b/chrome/browser/web_applications/commands/install_placeholder_command.cc
deleted file mode 100644
index 50f5978..0000000
--- a/chrome/browser/web_applications/commands/install_placeholder_command.cc
+++ /dev/null
@@ -1,129 +0,0 @@
-// Copyright 2023 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/web_applications/commands/install_placeholder_command.h"
-
-#include <memory>
-#include <utility>
-
-#include "base/functional/bind.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/web_applications/external_install_options.h"
-#include "chrome/browser/web_applications/jobs/uninstall/web_app_uninstall_and_replace_job.h"
-#include "chrome/browser/web_applications/locks/shared_web_contents_with_app_lock.h"
-#include "chrome/browser/web_applications/web_app_helpers.h"
-#include "chrome/browser/web_applications/web_app_install_finalizer.h"
-#include "chrome/browser/web_applications/web_contents/web_app_data_retriever.h"
-#include "components/webapps/browser/install_result_code.h"
-
-namespace web_app {
-
-InstallPlaceholderCommand::InstallPlaceholderCommand(
-    Profile* profile,
-    const ExternalInstallOptions& install_options,
-    InstallAndReplaceCallback callback)
-    : WebAppCommandTemplate<SharedWebContentsWithAppLock>(
-          "InstallPlaceholderCommand"),
-      profile_(profile),
-      // For placeholder installs, the install_url is treated as the start_url.
-      app_id_(GenerateAppIdFromManifestId(
-          GenerateManifestIdFromStartUrlOnly(install_options.install_url))),
-      lock_description_(
-          std::make_unique<SharedWebContentsWithAppLockDescription>(
-              base::flat_set<webapps::AppId>{app_id_})),
-      install_options_(install_options),
-      callback_(std::move(callback)) {}
-
-InstallPlaceholderCommand::~InstallPlaceholderCommand() = default;
-
-void InstallPlaceholderCommand::StartWithLock(
-    std::unique_ptr<SharedWebContentsWithAppLock> lock) {
-  lock_ = std::move(lock);
-  install_placeholder_job_.emplace(
-      profile_.get(), install_options_,
-      base::BindOnce(&InstallPlaceholderCommand::OnPlaceholderInstalled,
-                     weak_factory_.GetWeakPtr()),
-      *lock_);
-  if (data_retriever_for_testing_) {
-    install_placeholder_job_->SetDataRetrieverForTesting(
-        std::move(data_retriever_for_testing_));
-  }
-  install_placeholder_job_->Start();
-}
-
-const LockDescription& InstallPlaceholderCommand::lock_description() const {
-  return *lock_description_;
-}
-
-base::Value InstallPlaceholderCommand::ToDebugValue() const {
-  base::Value::Dict dict;
-  dict.Set("install_placeholder_job",
-           install_placeholder_job_ ? install_placeholder_job_->ToDebugValue()
-                                    : base::Value());
-  dict.Set("uninstall_and_replace_job",
-           uninstall_and_replace_job_
-               ? uninstall_and_replace_job_->ToDebugValue()
-               : base::Value());
-  return base::Value(std::move(dict));
-}
-
-void InstallPlaceholderCommand::OnShutdown() {
-  Abort(webapps::InstallResultCode::kCancelledOnWebAppProviderShuttingDown);
-}
-
-void InstallPlaceholderCommand::SetDataRetrieverForTesting(
-    std::unique_ptr<WebAppDataRetriever> data_retriever) {
-  data_retriever_for_testing_ = std::move(data_retriever);
-}
-
-void InstallPlaceholderCommand::Abort(webapps::InstallResultCode code) {
-  webapps::InstallableMetrics::TrackInstallResult(false);
-  if (!callback_) {
-    return;
-  }
-
-  SignalCompletionAndSelfDestruct(
-      (code ==
-       webapps::InstallResultCode::kCancelledOnWebAppProviderShuttingDown)
-          ? CommandResult::kShutdown
-          : CommandResult::kFailure,
-      base::BindOnce(std::move(callback_),
-                     ExternallyManagedAppManager::InstallResult(
-                         code, app_id_,
-                         /*did_uninstall_and_replace=*/false)));
-}
-
-void InstallPlaceholderCommand::OnPlaceholderInstalled(
-    webapps::InstallResultCode code,
-    webapps::AppId app_id) {
-  webapps::InstallableMetrics::TrackInstallResult(webapps::IsSuccess(code));
-
-  if (!callback_) {
-    return;
-  }
-
-  if (!webapps::IsSuccess(code)) {
-    Abort(code);
-    return;
-  }
-
-  uninstall_and_replace_job_.emplace(
-      profile_.get(), *lock_, install_options_.uninstall_and_replace, app_id_,
-      base::BindOnce(&InstallPlaceholderCommand::OnUninstallAndReplaced,
-                     weak_factory_.GetWeakPtr(), code));
-  uninstall_and_replace_job_->Start();
-}
-
-void InstallPlaceholderCommand::OnUninstallAndReplaced(
-    webapps::InstallResultCode code,
-    bool did_uninstall_and_replace) {
-  SignalCompletionAndSelfDestruct(
-      CommandResult::kSuccess,
-      base::BindOnce(
-          std::move(callback_),
-          ExternallyManagedAppManager::InstallResult(
-              std::move(code), std::move(app_id_), did_uninstall_and_replace)));
-}
-
-}  // namespace web_app
diff --git a/chrome/browser/web_applications/commands/install_placeholder_command.h b/chrome/browser/web_applications/commands/install_placeholder_command.h
deleted file mode 100644
index 54040b2..0000000
--- a/chrome/browser/web_applications/commands/install_placeholder_command.h
+++ /dev/null
@@ -1,80 +0,0 @@
-// Copyright 2023 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_WEB_APPLICATIONS_COMMANDS_INSTALL_PLACEHOLDER_COMMAND_H_
-#define CHROME_BROWSER_WEB_APPLICATIONS_COMMANDS_INSTALL_PLACEHOLDER_COMMAND_H_
-
-#include <memory>
-
-#include "base/memory/raw_ptr.h"
-#include "chrome/browser/web_applications/commands/web_app_command.h"
-#include "chrome/browser/web_applications/external_install_options.h"
-#include "chrome/browser/web_applications/externally_managed_app_manager.h"
-#include "chrome/browser/web_applications/jobs/install_placeholder_job.h"
-#include "chrome/browser/web_applications/jobs/uninstall/web_app_uninstall_and_replace_job.h"
-#include "chrome/browser/web_applications/os_integration/os_integration_manager.h"
-#include "chrome/browser/web_applications/web_contents/web_app_data_retriever.h"
-#include "third_party/abseil-cpp/absl/types/optional.h"
-
-class Profile;
-
-namespace web_app {
-
-class SharedWebContentsWithAppLock;
-class SharedWebContentsWithAppLockDescription;
-class LockDescription;
-class WebAppDataRetriever;
-class WebAppUninstallAndReplaceJob;
-
-// This is used during externally managed app install flow to install a
-// placeholder app instead of the target app when the app's install_url fails to
-// load.
-class InstallPlaceholderCommand
-    : public WebAppCommandTemplate<SharedWebContentsWithAppLock> {
- public:
-  using InstallAndReplaceCallback =
-      base::OnceCallback<void(ExternallyManagedAppManager::InstallResult)>;
-  InstallPlaceholderCommand(Profile* profile,
-                            const ExternalInstallOptions& install_options,
-                            InstallAndReplaceCallback callback);
-
-  ~InstallPlaceholderCommand() override;
-
-  // WebAppCommandTemplate<SharedWebContentsWithAppLock>:
-  void StartWithLock(
-      std::unique_ptr<SharedWebContentsWithAppLock> lock) override;
-  const LockDescription& lock_description() const override;
-  base::Value ToDebugValue() const override;
-  void OnShutdown() override;
-
-  // TODO(b/299879507): Remove explicit data retriever setting for tests.
-  void SetDataRetrieverForTesting(
-      std::unique_ptr<WebAppDataRetriever> data_retriever);
-
- private:
-  void Abort(webapps::InstallResultCode code);
-  void OnPlaceholderInstalled(webapps::InstallResultCode code,
-                              webapps::AppId app_id);
-  void OnUninstallAndReplaced(webapps::InstallResultCode code,
-                              bool did_uninstall_and_replace);
-
-  const raw_ptr<Profile> profile_;
-  const webapps::AppId app_id_;
-  std::unique_ptr<SharedWebContentsWithAppLockDescription> lock_description_;
-  std::unique_ptr<SharedWebContentsWithAppLock> lock_;
-
-  const ExternalInstallOptions install_options_;
-  InstallAndReplaceCallback callback_;
-
-  absl::optional<InstallPlaceholderJob> install_placeholder_job_;
-  absl::optional<WebAppUninstallAndReplaceJob> uninstall_and_replace_job_;
-
-  std::unique_ptr<WebAppDataRetriever> data_retriever_for_testing_;
-
-  base::WeakPtrFactory<InstallPlaceholderCommand> weak_factory_{this};
-};
-
-}  // namespace web_app
-
-#endif  // CHROME_BROWSER_WEB_APPLICATIONS_COMMANDS_INSTALL_PLACEHOLDER_COMMAND_H_
diff --git a/chrome/browser/web_applications/commands/install_placeholder_command_unittest.cc b/chrome/browser/web_applications/commands/install_placeholder_command_unittest.cc
deleted file mode 100644
index 1df4122..0000000
--- a/chrome/browser/web_applications/commands/install_placeholder_command_unittest.cc
+++ /dev/null
@@ -1,191 +0,0 @@
-// Copyright 2023 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/web_applications/commands/install_placeholder_command.h"
-
-#include <memory>
-
-#include "base/test/gmock_callback_support.h"
-#include "base/test/test_future.h"
-#include "chrome/browser/web_applications/external_install_options.h"
-#include "chrome/browser/web_applications/mojom/user_display_mode.mojom.h"
-#include "chrome/browser/web_applications/os_integration/os_integration_manager.h"
-#include "chrome/browser/web_applications/proto/web_app_os_integration_state.pb.h"
-#include "chrome/browser/web_applications/test/fake_os_integration_manager.h"
-#include "chrome/browser/web_applications/test/fake_web_app_provider.h"
-#include "chrome/browser/web_applications/test/mock_data_retriever.h"
-#include "chrome/browser/web_applications/test/web_app_install_test_utils.h"
-#include "chrome/browser/web_applications/test/web_app_test.h"
-#include "chrome/browser/web_applications/web_app_command_manager.h"
-#include "chrome/browser/web_applications/web_app_command_scheduler.h"
-#include "chrome/browser/web_applications/web_app_constants.h"
-#include "chrome/browser/web_applications/web_app_provider.h"
-#include "chrome/browser/web_applications/web_app_registrar.h"
-#include "components/webapps/browser/install_result_code.h"
-#include "components/webapps/common/web_app_id.h"
-#include "content/public/browser/web_contents.h"
-#include "net/http/http_status_code.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "url/gurl.h"
-
-#if BUILDFLAG(IS_WIN)
-#include "base/base_paths_win.h"
-#include "base/test/scoped_path_override.h"
-#endif  // BUILDFLAG(IS_WIN)
-
-namespace web_app {
-namespace {
-
-class InstallPlaceholderCommandTest : public WebAppTest {
- public:
-  const int kIconSize = 96;
-  const GURL kInstallUrl = GURL("https://example.com");
-
-  void SetUp() override {
-    WebAppTest::SetUp();
-    auto shortcut_manager = std::make_unique<TestShortcutManager>(profile());
-    shortcut_manager_ = shortcut_manager.get();
-    FakeWebAppProvider::Get(profile())
-        ->GetOsIntegrationManager()
-        .AsTestOsIntegrationManager()
-        ->SetShortcutManager(std::move(shortcut_manager));
-
-    test::AwaitStartWebAppProviderAndSubsystems(profile());
-  }
-
-  WebAppProvider* provider() { return WebAppProvider::GetForTest(profile()); }
-  FakeOsIntegrationManager& fake_os_integration_manager() {
-    return static_cast<FakeOsIntegrationManager&>(
-        provider()->os_integration_manager());
-  }
-  TestShortcutManager* shortcut_manager() { return shortcut_manager_; }
-
- private:
-#if BUILDFLAG(IS_WIN)
-  // This prevents creating shortcuts in the startup dir.
-  base::ScopedPathOverride override_start_dir_{base::DIR_USER_STARTUP};
-#endif  // BUILDFLAG(IS_WIN)
-  raw_ptr<TestShortcutManager, DanglingUntriaged> shortcut_manager_ = nullptr;
-};
-
-TEST_F(InstallPlaceholderCommandTest, InstallPlaceholder) {
-  ExternalInstallOptions options(kInstallUrl, mojom::UserDisplayMode::kBrowser,
-                                 ExternalInstallSource::kExternalPolicy);
-  base::test::TestFuture<ExternallyManagedAppManager::InstallResult> future;
-  provider()->scheduler().InstallPlaceholder(options, future.GetCallback());
-
-  ExternallyManagedAppManager::InstallResult result = future.Take();
-  EXPECT_EQ(result.code, webapps::InstallResultCode::kSuccessNewInstall);
-  const webapps::AppId app_id = *result.app_id;
-  EXPECT_TRUE(provider()->registrar_unsafe().IsPlaceholderApp(
-      app_id, WebAppManagement::kPolicy));
-  EXPECT_EQ(fake_os_integration_manager().num_create_shortcuts_calls(), 1u);
-  auto last_install_options =
-      fake_os_integration_manager().get_last_install_options();
-  EXPECT_TRUE(last_install_options->add_to_desktop);
-  EXPECT_TRUE(last_install_options->add_to_quick_launch_bar);
-  EXPECT_FALSE(last_install_options->os_hooks[OsHookType::kRunOnOsLogin]);
-  if (AreOsIntegrationSubManagersEnabled()) {
-    absl::optional<proto::WebAppOsIntegrationState> os_state =
-        provider()->registrar_unsafe().GetAppCurrentOsIntegrationState(app_id);
-    ASSERT_TRUE(os_state.has_value());
-    EXPECT_TRUE(os_state->has_shortcut());
-    EXPECT_EQ(os_state->run_on_os_login().run_on_os_login_mode(),
-              proto::RunOnOsLoginMode::NOT_RUN);
-  }
-}
-
-TEST_F(InstallPlaceholderCommandTest, InstallPlaceholderWithOverrideIconUrl) {
-  ExternalInstallOptions options(kInstallUrl, mojom::UserDisplayMode::kBrowser,
-                                 ExternalInstallSource::kExternalPolicy);
-  const GURL icon_url("https://example.com/test.png");
-  options.override_icon_url = icon_url;
-  base::test::TestFuture<ExternallyManagedAppManager::InstallResult> future;
-
-  auto data_retriever =
-      std::make_unique<testing::StrictMock<MockDataRetriever>>();
-
-  bool skip_page_favicons = true;
-  bool fail_all_if_any_fail = false;
-  SkBitmap bitmap;
-  std::vector<gfx::Size> icon_sizes(1, gfx::Size(kIconSize, kIconSize));
-  bitmap.allocN32Pixels(kIconSize, kIconSize);
-  bitmap.eraseColor(SK_ColorRED);
-  IconsMap icons = {{icon_url, {bitmap}}};
-  DownloadedIconsHttpResults http_result = {
-      {icon_url, net::HttpStatusCode::HTTP_OK}};
-  EXPECT_CALL(
-      *data_retriever,
-      GetIcons(testing::_, testing::ElementsAre(icon_url), skip_page_favicons,
-               fail_all_if_any_fail, base::test::IsNotNullCallback()))
-      .WillOnce(base::test::RunOnceCallback<4>(
-          IconsDownloadedResult::kCompleted, std::move(icons), http_result));
-
-  auto command = std::make_unique<InstallPlaceholderCommand>(
-      profile(), options, future.GetCallback());
-  command->SetDataRetrieverForTesting(std::move(data_retriever));
-  provider()->command_manager().ScheduleCommand(std::move(command));
-
-  ExternallyManagedAppManager::InstallResult result = future.Take();
-  EXPECT_EQ(result.code, webapps::InstallResultCode::kSuccessNewInstall);
-  const webapps::AppId app_id = *result.app_id;
-  EXPECT_TRUE(provider()->registrar_unsafe().IsPlaceholderApp(
-      app_id, WebAppManagement::kPolicy));
-  EXPECT_EQ(fake_os_integration_manager().num_create_shortcuts_calls(), 1u);
-  if (AreOsIntegrationSubManagersEnabled()) {
-    absl::optional<proto::WebAppOsIntegrationState> os_state =
-        provider()->registrar_unsafe().GetAppCurrentOsIntegrationState(app_id);
-    ASSERT_TRUE(os_state.has_value());
-    EXPECT_TRUE(os_state->has_shortcut());
-  }
-}
-
-#if !BUILDFLAG(IS_CHROMEOS_LACROS)
-TEST_F(InstallPlaceholderCommandTest,
-       InstallPlaceholderWithUninstallAndReplace) {
-  GURL old_app_url("http://old-app.com");
-  const webapps::AppId old_app =
-      test::InstallDummyWebApp(profile(), "old_app", old_app_url);
-  auto shortcut_info = std::make_unique<ShortcutInfo>();
-  shortcut_info->url = old_app_url;
-  shortcut_manager()->SetShortcutInfoForApp(old_app, std::move(shortcut_info));
-  ShortcutLocations shortcut_locations;
-  shortcut_locations.on_desktop = false;
-  shortcut_locations.in_quick_launch_bar = true;
-  shortcut_locations.in_startup = true;
-  shortcut_manager()->SetAppExistingShortcuts(old_app_url, shortcut_locations);
-
-  ExternalInstallOptions options(kInstallUrl, mojom::UserDisplayMode::kBrowser,
-                                 ExternalInstallSource::kExternalPolicy);
-  options.uninstall_and_replace = {old_app};
-
-  base::test::TestFuture<ExternallyManagedAppManager::InstallResult> future;
-  provider()->scheduler().InstallPlaceholder(options, future.GetCallback());
-
-  ExternallyManagedAppManager::InstallResult result = future.Take();
-  EXPECT_EQ(result.code, webapps::InstallResultCode::kSuccessNewInstall);
-  EXPECT_TRUE(result.did_uninstall_and_replace);
-  const webapps::AppId app_id = *result.app_id;
-  EXPECT_TRUE(provider()->registrar_unsafe().IsPlaceholderApp(
-      app_id, WebAppManagement::kPolicy));
-
-  auto last_install_options =
-      fake_os_integration_manager().get_last_install_options();
-  EXPECT_FALSE(last_install_options->add_to_desktop);
-  EXPECT_TRUE(last_install_options->add_to_quick_launch_bar);
-  EXPECT_TRUE(last_install_options->os_hooks[OsHookType::kRunOnOsLogin]);
-  if (AreOsIntegrationSubManagersEnabled()) {
-    absl::optional<proto::WebAppOsIntegrationState> os_state =
-        provider()->registrar_unsafe().GetAppCurrentOsIntegrationState(app_id);
-    ASSERT_TRUE(os_state.has_value());
-    EXPECT_TRUE(os_state->has_shortcut());
-    EXPECT_TRUE(os_state->has_run_on_os_login());
-    EXPECT_EQ(os_state->run_on_os_login().run_on_os_login_mode(),
-              proto::RunOnOsLoginMode::WINDOWED);
-  }
-}
-#endif  // !BUILDFLAG(IS_CHROMEOS_LACROS)
-
-}  // namespace
-}  // namespace web_app
diff --git a/chrome/browser/web_applications/daily_metrics_helper.cc b/chrome/browser/web_applications/daily_metrics_helper.cc
index ebe2eea2..3c4771f 100644
--- a/chrome/browser/web_applications/daily_metrics_helper.cc
+++ b/chrome/browser/web_applications/daily_metrics_helper.cc
@@ -13,7 +13,7 @@
 #include "base/check.h"
 #include "base/functional/bind.h"
 #include "base/numerics/clamped_math.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/value_iterators.h"
 #include "base/values.h"
 #include "chrome/browser/metrics/ukm_background_recorder_service.h"
diff --git a/chrome/browser/web_applications/daily_metrics_helper_unittest.cc b/chrome/browser/web_applications/daily_metrics_helper_unittest.cc
index 3036d2e..d18a2881 100644
--- a/chrome/browser/web_applications/daily_metrics_helper_unittest.cc
+++ b/chrome/browser/web_applications/daily_metrics_helper_unittest.cc
@@ -8,7 +8,7 @@
 #include <vector>
 
 #include "base/numerics/clamped_math.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/test/task_environment.h"
 #include "base/time/time.h"
 #include "chrome/browser/web_applications/test/web_app_test.h"
diff --git a/chrome/browser/web_applications/isolated_web_apps/install_isolated_web_app_command.h b/chrome/browser/web_applications/isolated_web_apps/install_isolated_web_app_command.h
index 06773f9..53b84a24 100644
--- a/chrome/browser/web_applications/isolated_web_apps/install_isolated_web_app_command.h
+++ b/chrome/browser/web_applications/isolated_web_apps/install_isolated_web_app_command.h
@@ -13,7 +13,7 @@
 #include "base/functional/callback.h"
 #include "base/memory/weak_ptr.h"
 #include "base/sequence_checker.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/types/expected.h"
 #include "base/values.h"
 #include "base/version.h"
diff --git a/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_apply_update_command.h b/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_apply_update_command.h
index dd56bed..8950587 100644
--- a/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_apply_update_command.h
+++ b/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_apply_update_command.h
@@ -13,7 +13,7 @@
 #include "base/functional/callback.h"
 #include "base/memory/weak_ptr.h"
 #include "base/sequence_checker.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/types/expected.h"
 #include "base/values.h"
 #include "chrome/browser/profiles/keep_alive/scoped_profile_keep_alive.h"
diff --git a/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_installation_manager_unittest.cc b/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_installation_manager_unittest.cc
index b8b6521..04d98f31 100644
--- a/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_installation_manager_unittest.cc
+++ b/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_installation_manager_unittest.cc
@@ -12,7 +12,6 @@
 #include "base/functional/callback.h"
 #include "base/path_service.h"
 #include "base/strings/string_piece.h"
-#include "base/strings/string_piece_forward.h"
 #include "base/task/task_traits.h"
 #include "base/test/gmock_expected_support.h"
 #include "base/test/repeating_test_future.h"
diff --git a/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_prepare_and_store_update_command.h b/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_prepare_and_store_update_command.h
index ddad674..04cf1226 100644
--- a/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_prepare_and_store_update_command.h
+++ b/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_prepare_and_store_update_command.h
@@ -13,7 +13,7 @@
 #include "base/functional/callback.h"
 #include "base/memory/weak_ptr.h"
 #include "base/sequence_checker.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/types/expected.h"
 #include "base/types/optional_ref.h"
 #include "base/values.h"
diff --git a/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_version.h b/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_version.h
index 1da8c331..5a958034 100644
--- a/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_version.h
+++ b/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_version.h
@@ -7,7 +7,7 @@
 
 #include <vector>
 
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/types/expected.h"
 
 namespace web_app {
diff --git a/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_external_install_options_unittest.cc b/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_external_install_options_unittest.cc
index b49acd2..92cf321 100644
--- a/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_external_install_options_unittest.cc
+++ b/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_external_install_options_unittest.cc
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 #include "chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_external_install_options.h"
 
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/test/gmock_expected_support.h"
 #include "base/types/expected.h"
 #include "base/values.h"
diff --git a/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager_ash_browsertest.cc b/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager_ash_browsertest.cc
index ee893584..99fe939 100644
--- a/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager_ash_browsertest.cc
+++ b/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager_ash_browsertest.cc
@@ -12,7 +12,7 @@
 #include "base/files/file_path.h"
 #include "base/files/file_util.h"
 #include "base/strings/strcat.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/threading/thread_restrictions.h"
 #include "chrome/browser/apps/app_service/app_service_proxy.h"
 #include "chrome/browser/ash/login/existing_user_controller.h"
diff --git a/chrome/browser/web_applications/isolated_web_apps/signed_web_bundle_reader_unittest.cc b/chrome/browser/web_applications/isolated_web_apps/signed_web_bundle_reader_unittest.cc
index 8233c5be..062f4ee 100644
--- a/chrome/browser/web_applications/isolated_web_apps/signed_web_bundle_reader_unittest.cc
+++ b/chrome/browser/web_applications/isolated_web_apps/signed_web_bundle_reader_unittest.cc
@@ -13,7 +13,7 @@
 #include "base/files/scoped_temp_dir.h"
 #include "base/functional/callback_helpers.h"
 #include "base/run_loop.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/task/sequenced_task_runner.h"
 #include "base/test/bind.h"
 #include "base/test/gmock_expected_support.h"
diff --git a/chrome/browser/web_applications/commands/install_placeholder_job_unittest.cc b/chrome/browser/web_applications/jobs/install_placeholder_job_unittest.cc
similarity index 100%
rename from chrome/browser/web_applications/commands/install_placeholder_job_unittest.cc
rename to chrome/browser/web_applications/jobs/install_placeholder_job_unittest.cc
diff --git a/chrome/browser/web_applications/os_integration/os_integration_manager.h b/chrome/browser/web_applications/os_integration/os_integration_manager.h
index bf0af69..72752c4 100644
--- a/chrome/browser/web_applications/os_integration/os_integration_manager.h
+++ b/chrome/browser/web_applications/os_integration/os_integration_manager.h
@@ -14,7 +14,7 @@
 #include "base/memory/raw_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/scoped_observation.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "chrome/browser/web_applications/os_integration/os_integration_sub_manager.h"
 #include "chrome/browser/web_applications/os_integration/url_handler_manager.h"
 #include "chrome/browser/web_applications/os_integration/web_app_file_handler_manager.h"
diff --git a/chrome/browser/web_applications/os_integration/os_integration_manager_unittest.cc b/chrome/browser/web_applications/os_integration/os_integration_manager_unittest.cc
index 96777f3..8cebe66 100644
--- a/chrome/browser/web_applications/os_integration/os_integration_manager_unittest.cc
+++ b/chrome/browser/web_applications/os_integration/os_integration_manager_unittest.cc
@@ -9,7 +9,7 @@
 #include "base/files/file_path.h"
 #include "base/functional/bind.h"
 #include "base/run_loop.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/test/bind.h"
 #include "base/test/gmock_callback_support.h"
 #include "base/test/scoped_feature_list.h"
diff --git a/chrome/browser/web_applications/os_integration/run_on_os_login_sub_manager_unittest.cc b/chrome/browser/web_applications/os_integration/run_on_os_login_sub_manager_unittest.cc
index 8a590ee..d545c4e1 100644
--- a/chrome/browser/web_applications/os_integration/run_on_os_login_sub_manager_unittest.cc
+++ b/chrome/browser/web_applications/os_integration/run_on_os_login_sub_manager_unittest.cc
@@ -8,7 +8,7 @@
 #include "base/files/file_util.h"
 #include "base/json/json_reader.h"
 #include "base/memory/raw_ptr.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/test/gmock_expected_support.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/test/test_future.h"
diff --git a/chrome/browser/web_applications/preinstalled_app_install_features.h b/chrome/browser/web_applications/preinstalled_app_install_features.h
index e6f8cd1..18e3bad 100644
--- a/chrome/browser/web_applications/preinstalled_app_install_features.h
+++ b/chrome/browser/web_applications/preinstalled_app_install_features.h
@@ -6,7 +6,7 @@
 #define CHROME_BROWSER_WEB_APPLICATIONS_PREINSTALLED_APP_INSTALL_FEATURES_H_
 
 #include "base/auto_reset.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 
 class Profile;
 
diff --git a/chrome/browser/web_applications/test/debug_info_printer.cc b/chrome/browser/web_applications/test/debug_info_printer.cc
index 794cc1d8..fd51840 100644
--- a/chrome/browser/web_applications/test/debug_info_printer.cc
+++ b/chrome/browser/web_applications/test/debug_info_printer.cc
@@ -6,7 +6,7 @@
 
 #include "base/command_line.h"
 #include "base/run_loop.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/test/bind.h"
 #include "base/time/time.h"
 #include "chrome/browser/profiles/profile.h"
diff --git a/chrome/browser/web_applications/test/web_app_test_utils.h b/chrome/browser/web_applications/test/web_app_test_utils.h
index 341487b..cbd38710 100644
--- a/chrome/browser/web_applications/test/web_app_test_utils.h
+++ b/chrome/browser/web_applications/test/web_app_test_utils.h
@@ -9,7 +9,7 @@
 #include <memory>
 #include <string>
 
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "build/chromeos_buildflags.h"
 #include "chrome/browser/web_applications/os_integration/os_integration_sub_manager.h"
 #include "chrome/browser/web_applications/web_app_constants.h"
diff --git a/chrome/browser/web_applications/web_app_icon_manager.cc b/chrome/browser/web_applications/web_app_icon_manager.cc
index f3df7d5..c5cd818 100644
--- a/chrome/browser/web_applications/web_app_icon_manager.cc
+++ b/chrome/browser/web_applications/web_app_icon_manager.cc
@@ -31,7 +31,7 @@
 #include "base/ranges/algorithm.h"
 #include "base/strings/strcat.h"
 #include "base/strings/string_number_conversions.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/stringprintf.h"
 #include "base/task/sequenced_task_runner.h"
 #include "base/task/task_traits.h"
diff --git a/chrome/browser/web_applications/web_app_install_finalizer_unittest.cc b/chrome/browser/web_applications/web_app_install_finalizer_unittest.cc
index 08606a3..5bc74cfe 100644
--- a/chrome/browser/web_applications/web_app_install_finalizer_unittest.cc
+++ b/chrome/browser/web_applications/web_app_install_finalizer_unittest.cc
@@ -11,7 +11,7 @@
 
 #include "base/feature_list.h"
 #include "base/scoped_observation.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/test/bind.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/test/test_future.h"
diff --git a/chrome/browser/web_applications/web_app_install_utils.h b/chrome/browser/web_applications/web_app_install_utils.h
index f6d03b0..e4a2884 100644
--- a/chrome/browser/web_applications/web_app_install_utils.h
+++ b/chrome/browser/web_applications/web_app_install_utils.h
@@ -7,7 +7,7 @@
 
 #include <vector>
 
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "chrome/browser/web_applications/os_integration/os_integration_manager.h"
 #include "chrome/browser/web_applications/web_app_constants.h"
 #include "chrome/browser/web_applications/web_app_install_finalizer.h"
diff --git a/chrome/browser/web_applications/web_app_internals_utils.h b/chrome/browser/web_applications/web_app_internals_utils.h
index 4b1ffd3..5b24316b 100644
--- a/chrome/browser/web_applications/web_app_internals_utils.h
+++ b/chrome/browser/web_applications/web_app_internals_utils.h
@@ -6,7 +6,7 @@
 #define CHROME_BROWSER_WEB_APPLICATIONS_WEB_APP_INTERNALS_UTILS_H_
 
 #include "base/functional/callback_forward.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "chrome/browser/web_applications/web_app_constants.h"
 
 namespace base {
diff --git a/chrome/browser/web_applications/web_app_unittest.cc b/chrome/browser/web_applications/web_app_unittest.cc
index a9be55e6..9daa599 100644
--- a/chrome/browser/web_applications/web_app_unittest.cc
+++ b/chrome/browser/web_applications/web_app_unittest.cc
@@ -16,7 +16,6 @@
 #include "base/json/json_writer.h"
 #include "base/path_service.h"
 #include "base/strings/string_piece.h"
-#include "base/strings/string_piece_forward.h"
 #include "base/values.h"
 #include "build/chromeos_buildflags.h"
 #include "chrome/browser/web_applications/isolated_web_apps/isolated_web_app_location.h"
diff --git a/chrome/browser/web_applications/web_app_utils.cc b/chrome/browser/web_applications/web_app_utils.cc
index d2f5e08..f82b177 100644
--- a/chrome/browser/web_applications/web_app_utils.cc
+++ b/chrome/browser/web_applications/web_app_utils.cc
@@ -22,7 +22,7 @@
 #include "base/memory/weak_ptr.h"
 #include "base/notreached.h"
 #include "base/ranges/algorithm.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/values.h"
diff --git a/chrome/browser/win/conflicts/third_party_conflicts_manager.h b/chrome/browser/win/conflicts/third_party_conflicts_manager.h
index 9588d1c1..d2a9d71 100644
--- a/chrome/browser/win/conflicts/third_party_conflicts_manager.h
+++ b/chrome/browser/win/conflicts/third_party_conflicts_manager.h
@@ -13,7 +13,7 @@
 #include "base/memory/raw_ptr.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "chrome/browser/win/conflicts/module_blocklist_cache_updater.h"
 #include "chrome/browser/win/conflicts/module_database_observer.h"
 #include "chrome/browser/win/conflicts/module_list_component_updater.h"
diff --git a/chrome/build/android-arm32.pgo.txt b/chrome/build/android-arm32.pgo.txt
index d75af232..b6f84592 100644
--- a/chrome/build/android-arm32.pgo.txt
+++ b/chrome/build/android-arm32.pgo.txt
@@ -1 +1 @@
-chrome-android32-main-1699358099-e0a97d69caed424c84892e7ac6f92b344e8d2a2c.profdata
+chrome-android32-main-1699379996-acc847ae2c823683c84b5adef5736027cf85c8da.profdata
diff --git a/chrome/build/android-arm64.pgo.txt b/chrome/build/android-arm64.pgo.txt
index 6844992c..b0b10d6 100644
--- a/chrome/build/android-arm64.pgo.txt
+++ b/chrome/build/android-arm64.pgo.txt
@@ -1 +1 @@
-chrome-android64-main-1699358099-cd451c8416cfd1564ec58a5f427223d50648e64a.profdata
+chrome-android64-main-1699379996-843b517f5ee91680a13eda84516bafbd1ebdb791.profdata
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt
index 20efdee1..eec103e 100644
--- a/chrome/build/linux.pgo.txt
+++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@
-chrome-linux-main-1699358099-c146f40d8a163be8a7c14e919132d9391b42c1e4.profdata
+chrome-linux-main-1699379996-e6e85ac7dc7b5e44395428aa54e8ce6716b990f5.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt
index bfda925..20f58faa 100644
--- a/chrome/build/mac-arm.pgo.txt
+++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@
-chrome-mac-arm-main-1699372758-0234cf96bc8e1c631405af043635db32d9b3f1e8.profdata
+chrome-mac-arm-main-1699379996-41fece3bd39c32e5da8772b7e63240c53aaaade6.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt
index 3b160c8e..a78a999b 100644
--- a/chrome/build/mac.pgo.txt
+++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@
-chrome-mac-main-1699358099-b756d743bb0f7c682a20f6d01bf9906304a9915b.profdata
+chrome-mac-main-1699379996-f3dcaf6e2df109303ad5a4c60cabae360674d412.profdata
diff --git a/chrome/build/win-arm64.pgo.txt b/chrome/build/win-arm64.pgo.txt
index c1a1653..44aefe2 100644
--- a/chrome/build/win-arm64.pgo.txt
+++ b/chrome/build/win-arm64.pgo.txt
@@ -1 +1 @@
-chrome-win-arm64-main-1699358099-4e24a720f66f90fdb7577134bfaafd40ce4793c0.profdata
+chrome-win-arm64-main-1699379996-9e1e22aabcf965b8634ca830d89f9ec04fec84bb.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt
index f8157718..67e782b 100644
--- a/chrome/build/win32.pgo.txt
+++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@
-chrome-win32-main-1699358099-76ab831724c3ec6b1cd6a1f7ce84e77d710dedba.profdata
+chrome-win32-main-1699379996-c29c2d852a177218d76cd49d2c80028e7f253279.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt
index c67d3d4..f65476b 100644
--- a/chrome/build/win64.pgo.txt
+++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@
-chrome-win64-main-1699358099-0f2a54a17ceee616c6b0f7066be5c0389abdb7d3.profdata
+chrome-win64-main-1699379996-52a660d64c886cc0f8672747f947e03c0cbc4db3.profdata
diff --git a/chrome/common/chromeos/extensions/chromeos_system_extensions_api_provider.h b/chrome/common/chromeos/extensions/chromeos_system_extensions_api_provider.h
index 362c477..ca9f29da 100644
--- a/chrome/common/chromeos/extensions/chromeos_system_extensions_api_provider.h
+++ b/chrome/common/chromeos/extensions/chromeos_system_extensions_api_provider.h
@@ -8,7 +8,7 @@
 #include <string>
 
 #include "base/memory/raw_ptr.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "extensions/common/extensions_api_provider.h"
 
 namespace extensions {
diff --git a/chrome/common/extensions/api/downloads.idl b/chrome/common/extensions/api/downloads.idl
index 66cebdd6..e214de9 100644
--- a/chrome/common/extensions/api/downloads.idl
+++ b/chrome/common/extensions/api/downloads.idl
@@ -4,7 +4,7 @@
 
 // Use the <code>chrome.downloads</code> API to programmatically initiate,
 // monitor, manipulate, and search for downloads.
-[permissions=downloads]
+[permissions=downloads, modernised_enums]
 namespace downloads {
   [inline_doc] dictionary HeaderNameValuePair {
     // Name of the HTTP header.
diff --git a/chrome/common/extensions/api/pdf_viewer_private.idl b/chrome/common/extensions/api/pdf_viewer_private.idl
index 67eaab1..1a640f4 100644
--- a/chrome/common/extensions/api/pdf_viewer_private.idl
+++ b/chrome/common/extensions/api/pdf_viewer_private.idl
@@ -6,11 +6,47 @@
 // functionality that the PDF Viewer needs from outside the PDF plugin. This API
 // is exclusively for the PDF Viewer.
 namespace pdfViewerPrivate {
+  // Nearly identical to mimeHandlerPrivate.StreamInfo, but without a mime type
+  // nor a response header field. Those fields are unused by the PDF viewer.
+  dictionary StreamInfo {
+    // The original URL that was intercepted.
+    DOMString originalUrl;
+
+    // The URL that the stream can be read from.
+    DOMString streamUrl;
+
+    // The ID of the tab that opened the stream. If the stream is not opened in
+    // a tab, it will be -1.
+    long tabId;
+
+    // Whether the stream is embedded within another document.
+    boolean embedded;
+  };
+
+  // Identical to mimeHandlerPrivate.StreamInfo.
+  dictionary PdfPluginAttributes {
+    // The background color in ARGB format for painting. Since the background
+    // color is an unsigned 32-bit integer which can be outside the range of
+    // "long" type, define it as a "double" type here.
+    double backgroundColor;
+
+    // Indicates whether the plugin allows to execute JavaScript and maybe XFA.
+    // Loading XFA for PDF forms will automatically be disabled if this flag is
+    // false.
+    boolean allowJavascript;
+  };
+
+  callback GetStreamInfoCallback = void(StreamInfo streamInfo);
   callback IsAllowedLocalFileAccessCallback = void(boolean result);
   callback IsPdfOcrAlwaysActiveCallback = void(boolean result);
   callback OnPdfOcrPrefSetCallback = void(boolean result);
+  callback VoidCallback = void();
 
   interface Functions {
+    // Returns the StreamInfo for the stream for this context if there is one.
+    [supportsPromises] static void getStreamInfo(
+        GetStreamInfoCallback callback);
+
     // Determines if the given URL should be allowed to access local files from
     // the PDF Viewer. |callback|: Called with true if URL should be allowed to
     // access local files from the PDF Viewer, false otherwise.
@@ -29,6 +65,12 @@
     // |callback|: The callback for whether the pref was set or not.
     [supportsPromises] static void setPdfOcrPref(
         boolean value, OnPdfOcrPrefSetCallback callback);
+
+    // Sets PDF plugin attributes in the stream for this context if there is
+    // one.
+    [supportsPromises] static void setPdfPluginAttributes(
+        PdfPluginAttributes attributes,
+        optional VoidCallback callback);
   };
 
   interface Events {
diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h
index 094c6b8f..391cb20 100644
--- a/chrome/common/webui_url_constants.h
+++ b/chrome/common/webui_url_constants.h
@@ -10,7 +10,7 @@
 
 #include <stddef.h>
 
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "build/branding_buildflags.h"
 #include "build/build_config.h"
 #include "build/chromeos_buildflags.h"
diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
index d6a0aa3..4f0b91f9 100644
--- a/chrome/renderer/BUILD.gn
+++ b/chrome/renderer/BUILD.gn
@@ -149,6 +149,7 @@
     "//components/autofill/core/common:features",
     "//components/base32",
     "//components/cdm/renderer",
+    "//components/commerce/content/renderer",
     "//components/commerce/core:commerce_heuristics_data",
     "//components/commerce/core:feature_list",
     "//components/commerce/core:heuristics_provider",
diff --git a/chrome/renderer/DEPS b/chrome/renderer/DEPS
index 6a1e056..b3da9e0 100644
--- a/chrome/renderer/DEPS
+++ b/chrome/renderer/DEPS
@@ -9,6 +9,7 @@
   "+components/autofill/core/common",
   "+components/cdm/renderer",
   "+components/client_hints/common",
+  "+components/commerce/content/renderer",
   "+components/content_capture/common",
   "+components/content_capture/renderer",
   "+components/content_settings/core/common",
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
index 8fe7b4a..44a36c9 100644
--- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -71,6 +71,7 @@
 #include "components/autofill/content/renderer/password_autofill_agent.h"
 #include "components/autofill/content/renderer/password_generation_agent.h"
 #include "components/autofill/core/common/autofill_features.h"
+#include "components/commerce/content/renderer/commerce_web_extractor.h"
 #include "components/commerce/core/commerce_feature_list.h"
 #include "components/content_capture/common/content_capture_features.h"
 #include "components/content_capture/renderer/content_capture_sender.h"
@@ -764,6 +765,10 @@
 #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS)
   MultilineDetector::InstallIfNecessary(render_frame);
 #endif
+
+  if (render_frame->IsMainFrame()) {
+    new commerce::CommerceWebExtractor(render_frame, registry);
+  }
 }
 
 void ChromeContentRendererClient::WebViewCreated(
diff --git a/chrome/renderer/chrome_render_frame_observer.cc b/chrome/renderer/chrome_render_frame_observer.cc
index e86e9a7..9c062f4 100644
--- a/chrome/renderer/chrome_render_frame_observer.cc
+++ b/chrome/renderer/chrome_render_frame_observer.cc
@@ -123,7 +123,7 @@
   return *s;
 }
 
-using FrameHeaderMap = std::map<int, std::string>;
+using FrameHeaderMap = std::map<blink::LocalFrameToken, std::string>;
 
 FrameHeaderMap& GetFrameHeaderMap() {
   GetFrameHeaderMapLock().AssertAcquired();
@@ -207,18 +207,14 @@
       new translate::TranslateAgent(render_frame, ISOLATED_WORLD_ID_TRANSLATE);
 }
 
-ChromeRenderFrameObserver::~ChromeRenderFrameObserver() {
-#if BUILDFLAG(IS_ANDROID)
-  base::AutoLock auto_lock(GetFrameHeaderMapLock());
-  GetFrameHeaderMap().erase(routing_id());
-#endif
-}
+ChromeRenderFrameObserver::~ChromeRenderFrameObserver() = default;
 
 #if BUILDFLAG(IS_ANDROID)
-std::string ChromeRenderFrameObserver::GetCCTClientHeader(int render_frame_id) {
+std::string ChromeRenderFrameObserver::GetCCTClientHeader(
+    const blink::LocalFrameToken& frame_token) {
   base::AutoLock auto_lock(GetFrameHeaderMapLock());
   auto frame_map = GetFrameHeaderMap();
-  auto iter = frame_map.find(render_frame_id);
+  auto iter = frame_map.find(frame_token);
   return iter == frame_map.end() ? std::string() : iter->second;
 }
 #endif
@@ -347,6 +343,14 @@
   delete this;
 }
 
+void ChromeRenderFrameObserver::WillDetach() {
+#if BUILDFLAG(IS_ANDROID)
+  base::AutoLock auto_lock(GetFrameHeaderMapLock());
+  GetFrameHeaderMap().erase(
+      render_frame()->GetWebFrame()->GetLocalFrameToken());
+#endif
+}
+
 void ChromeRenderFrameObserver::DraggableRegionsChanged() {
 #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
     BUILDFLAG(IS_CHROMEOS)
@@ -536,8 +540,12 @@
 
 #if BUILDFLAG(IS_ANDROID)
 void ChromeRenderFrameObserver::SetCCTClientHeader(const std::string& header) {
+  auto* web_frame = render_frame()->GetWebFrame();
+  if (!web_frame) {
+    return;
+  }
   base::AutoLock auto_lock(GetFrameHeaderMapLock());
-  GetFrameHeaderMap()[routing_id()] = header;
+  GetFrameHeaderMap()[web_frame->GetLocalFrameToken()] = header;
 }
 #endif
 
diff --git a/chrome/renderer/chrome_render_frame_observer.h b/chrome/renderer/chrome_render_frame_observer.h
index 9eaeb91..39d416e 100644
--- a/chrome/renderer/chrome_render_frame_observer.h
+++ b/chrome/renderer/chrome_render_frame_observer.h
@@ -64,7 +64,8 @@
 #if BUILDFLAG(IS_ANDROID)
   // This is called on the main thread for subresources or worker threads for
   // dedicated workers.
-  static std::string GetCCTClientHeader(int render_frame_id);
+  static std::string GetCCTClientHeader(
+      const blink::LocalFrameToken& frame_token);
 #endif
 
  private:
@@ -85,6 +86,7 @@
   void DidClearWindowObject() override;
   void DidMeaningfulLayout(blink::WebMeaningfulLayout layout_type) override;
   void OnDestruct() override;
+  void WillDetach() override;
   void DraggableRegionsChanged() override;
 
   // chrome::mojom::ChromeRenderFrame:
diff --git a/chrome/renderer/commerce/DEPS b/chrome/renderer/commerce/DEPS
new file mode 100644
index 0000000..dcfb9c0e
--- /dev/null
+++ b/chrome/renderer/commerce/DEPS
@@ -0,0 +1 @@
+include_rules = ["+components/commerce/core"]
\ No newline at end of file
diff --git a/chrome/renderer/commerce/OWNERS b/chrome/renderer/commerce/OWNERS
new file mode 100644
index 0000000..ddde9c60
--- /dev/null
+++ b/chrome/renderer/commerce/OWNERS
@@ -0,0 +1,3 @@
+yuezhanggg@chromium.org
+
+file://components/commerce/OWNERS
\ No newline at end of file
diff --git a/chrome/renderer/commerce/commerce_web_extractor_browsertest.cc b/chrome/renderer/commerce/commerce_web_extractor_browsertest.cc
new file mode 100644
index 0000000..6ea9e6ad
--- /dev/null
+++ b/chrome/renderer/commerce/commerce_web_extractor_browsertest.cc
@@ -0,0 +1,56 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/test/base/chrome_render_view_test.h"
+#include "components/commerce/content/renderer/commerce_web_extractor.h"
+#include "components/commerce/core/commerce_constants.h"
+
+namespace {
+class CommerceWebExtractorTest : public ChromeRenderViewTest {
+ public:
+  CommerceWebExtractorTest() = default;
+};
+
+TEST_F(CommerceWebExtractorTest, TestValidMetaExtraction) {
+  std::unique_ptr<commerce::CommerceWebExtractor> extractor =
+      std::make_unique<commerce::CommerceWebExtractor>(GetMainRenderFrame(),
+                                                       registry_.get());
+  LoadHTML(
+      "<html>"
+      "<head>"
+      "<meta content=\"product\" property=\"og:type\">"
+      "<meta content=\"product\" property=\"og:type\">"
+      "</head>"
+      "<body>"
+      "</body></html>");
+
+  extractor->ExtractMetaInfo(base::BindOnce([](base::Value result) {
+    ASSERT_TRUE(result.is_dict());
+    auto* str = result.GetDict().FindString(commerce::kOgType);
+    ASSERT_TRUE(str);
+    ASSERT_EQ(*str, commerce::kOgTypeOgProduct);
+  }));
+  base::RunLoop().RunUntilIdle();
+}
+
+TEST_F(CommerceWebExtractorTest, TestInvalidMetaExtraction) {
+  std::unique_ptr<commerce::CommerceWebExtractor> extractor =
+      std::make_unique<commerce::CommerceWebExtractor>(GetMainRenderFrame(),
+                                                       registry_.get());
+  LoadHTML(
+      "<html>"
+      "<head>"
+      "<meta content=\"product\" property=\"type\">"
+      "<meta content=\"product\" type=\"og:type\">"
+      "</head>"
+      "<body>"
+      "</body></html>");
+
+  extractor->ExtractMetaInfo(base::BindOnce([](base::Value result) {
+    ASSERT_TRUE(result.is_dict());
+    ASSERT_TRUE(result.GetDict().empty());
+  }));
+  base::RunLoop().RunUntilIdle();
+}
+}  // namespace
diff --git a/chrome/renderer/url_loader_throttle_provider_impl.cc b/chrome/renderer/url_loader_throttle_provider_impl.cc
index 263c56af..54089e89 100644
--- a/chrome/renderer/url_loader_throttle_provider_impl.cc
+++ b/chrome/renderer/url_loader_throttle_provider_impl.cc
@@ -143,7 +143,7 @@
 
 blink::WebVector<std::unique_ptr<blink::URLLoaderThrottle>>
 URLLoaderThrottleProviderImpl::CreateThrottles(
-    int render_frame_id,
+    base::optional_ref<const blink::LocalFrameToken> local_frame_token,
     const blink::WebURLRequest& request) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
@@ -172,19 +172,19 @@
     }
 
     auto throttle = std::make_unique<safe_browsing::RendererURLLoaderThrottle>(
-        safe_browsing_.get(), render_frame_id,
+        safe_browsing_.get(), local_frame_token,
         extension_web_request_reporter_.get());
 #else
     auto throttle = std::make_unique<safe_browsing::RendererURLLoaderThrottle>(
-        safe_browsing_.get(), render_frame_id);
+        safe_browsing_.get(), local_frame_token);
 #endif  // BUILDFLAG(ENABLE_EXTENSIONS)
     throttles.emplace_back(std::move(throttle));
   }
 
   if (type_ == blink::URLLoaderThrottleProviderType::kFrame &&
-      !is_frame_resource) {
-    auto throttle =
-        prerender::NoStatePrefetchHelper::MaybeCreateThrottle(render_frame_id);
+      !is_frame_resource && local_frame_token.has_value()) {
+    auto throttle = prerender::NoStatePrefetchHelper::MaybeCreateThrottle(
+        local_frame_token.value());
     if (throttle)
       throttles.emplace_back(std::move(throttle));
   }
@@ -205,7 +205,7 @@
       throttles.emplace_back(std::move(throttle));
   }
   std::unique_ptr<blink::URLLoaderThrottle> localization_throttle =
-      extensions::ExtensionLocalizationThrottle::MaybeCreate(render_frame_id,
+      extensions::ExtensionLocalizationThrottle::MaybeCreate(local_frame_token,
                                                              request.Url());
   if (localization_throttle) {
     throttles.emplace_back(std::move(localization_throttle));
@@ -214,9 +214,9 @@
 
 #if BUILDFLAG(IS_ANDROID)
   std::string client_data_header;
-  if (!is_frame_resource && render_frame_id != MSG_ROUTING_NONE) {
-    client_data_header =
-        ChromeRenderFrameObserver::GetCCTClientHeader(render_frame_id);
+  if (!is_frame_resource && local_frame_token.has_value()) {
+    client_data_header = ChromeRenderFrameObserver::GetCCTClientHeader(
+        local_frame_token.value());
   }
 #endif
 
@@ -240,13 +240,13 @@
   // Workers can call us on a background thread. We don't care about such
   // requests because we purposefully only look at resources from frames
   // that the user can interact with.
-  content::RenderFrame* frame =
-      content::RenderThread::IsMainThread()
-          ? content::RenderFrame::FromRoutingID(render_frame_id)
-          : nullptr;
+  blink::WebLocalFrame* frame = nullptr;
+  if (content::RenderThread::IsMainThread() && local_frame_token.has_value()) {
+    frame = blink::WebLocalFrame::FromFrameToken(local_frame_token.value());
+  }
   if (frame) {
     auto throttle = content::MaybeCreateIdentityUrlLoaderThrottle(
-        base::BindRepeating(blink::SetIdpSigninStatus, frame->GetWebFrame()));
+        base::BindRepeating(blink::SetIdpSigninStatus, frame));
     if (throttle)
       throttles.push_back(std::move(throttle));
   }
diff --git a/chrome/renderer/url_loader_throttle_provider_impl.h b/chrome/renderer/url_loader_throttle_provider_impl.h
index 25b4a80..b0235f1 100644
--- a/chrome/renderer/url_loader_throttle_provider_impl.h
+++ b/chrome/renderer/url_loader_throttle_provider_impl.h
@@ -41,7 +41,7 @@
   // blink::URLLoaderThrottleProvider implementation.
   std::unique_ptr<blink::URLLoaderThrottleProvider> Clone() override;
   blink::WebVector<std::unique_ptr<blink::URLLoaderThrottle>> CreateThrottles(
-      int render_frame_id,
+      base::optional_ref<const blink::LocalFrameToken> local_frame_token,
       const blink::WebURLRequest& request) override;
   void SetOnline(bool is_online) override;
 
diff --git a/chrome/renderer/websocket_handshake_throttle_provider_impl.cc b/chrome/renderer/websocket_handshake_throttle_provider_impl.cc
index 0f90850..8c6b240 100644
--- a/chrome/renderer/websocket_handshake_throttle_provider_impl.cc
+++ b/chrome/renderer/websocket_handshake_throttle_provider_impl.cc
@@ -58,7 +58,7 @@
 
 std::unique_ptr<blink::WebSocketHandshakeThrottle>
 WebSocketHandshakeThrottleProviderImpl::CreateThrottle(
-    int render_frame_id,
+    base::optional_ref<const blink::LocalFrameToken> local_frame_token,
     scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   if (pending_safe_browsing_) {
@@ -72,11 +72,11 @@
         std::move(pending_extension_web_request_reporter_));
   }
   auto throttle = std::make_unique<safe_browsing::WebSocketSBHandshakeThrottle>(
-      safe_browsing_.get(), render_frame_id,
+      safe_browsing_.get(), local_frame_token,
       extension_web_request_reporter_.get());
 #else
   auto throttle = std::make_unique<safe_browsing::WebSocketSBHandshakeThrottle>(
-      safe_browsing_.get(), render_frame_id);
+      safe_browsing_.get(), local_frame_token);
 #endif
   return throttle;
 }
diff --git a/chrome/renderer/websocket_handshake_throttle_provider_impl.h b/chrome/renderer/websocket_handshake_throttle_provider_impl.h
index 455f321..ac62c1e9 100644
--- a/chrome/renderer/websocket_handshake_throttle_provider_impl.h
+++ b/chrome/renderer/websocket_handshake_throttle_provider_impl.h
@@ -33,7 +33,7 @@
   std::unique_ptr<blink::WebSocketHandshakeThrottleProvider> Clone(
       scoped_refptr<base::SingleThreadTaskRunner> task_runner) override;
   std::unique_ptr<blink::WebSocketHandshakeThrottle> CreateThrottle(
-      int render_frame_id,
+      base::optional_ref<const blink::LocalFrameToken> local_frame_token,
       scoped_refptr<base::SingleThreadTaskRunner> task_runner) override;
 
  private:
diff --git a/chrome/services/cups_proxy/ipp_validator.h b/chrome/services/cups_proxy/ipp_validator.h
index e6dc435e..d3301b8 100644
--- a/chrome/services/cups_proxy/ipp_validator.h
+++ b/chrome/services/cups_proxy/ipp_validator.h
@@ -9,7 +9,7 @@
 #include <string>
 #include <vector>
 
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "chrome/services/cups_proxy/cups_proxy_service_delegate.h"
 #include "chrome/services/cups_proxy/public/cpp/ipp_messages.h"
 #include "chrome/services/ipp_parser/public/cpp/ipp_converter.h"
diff --git a/chrome/services/cups_proxy/socket_manager.cc b/chrome/services/cups_proxy/socket_manager.cc
index 9578400..817ad10 100644
--- a/chrome/services/cups_proxy/socket_manager.cc
+++ b/chrome/services/cups_proxy/socket_manager.cc
@@ -159,7 +159,8 @@
 
   // Fill io_buffer with request to write.
   in_flight_->io_buffer = base::MakeRefCounted<net::DrainableIOBuffer>(
-      base::MakeRefCounted<net::IOBuffer>(request.size()), request.size());
+      base::MakeRefCounted<net::IOBufferWithSize>(request.size()),
+      request.size());
   base::ranges::copy(request, in_flight_->io_buffer->data());
 
   ConnectIfNeeded();
@@ -220,7 +221,7 @@
   // Prime io_buffer for reading.
   in_flight_->response = std::make_unique<std::vector<uint8_t>>();
   in_flight_->io_buffer = base::MakeRefCounted<net::DrainableIOBuffer>(
-      base::MakeRefCounted<net::IOBuffer>(kHttpMaxBufferSize),
+      base::MakeRefCounted<net::IOBufferWithSize>(kHttpMaxBufferSize),
       kHttpMaxBufferSize);
 
   // Start reading response from CUPS.
diff --git a/chrome/services/sharing/nearby/nearby_connections.cc b/chrome/services/sharing/nearby/nearby_connections.cc
index e64d61b..26af767 100644
--- a/chrome/services/sharing/nearby/nearby_connections.cc
+++ b/chrome/services/sharing/nearby/nearby_connections.cc
@@ -8,7 +8,7 @@
 
 #include "base/feature_list.h"
 #include "base/files/file_util.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/synchronization/waitable_event.h"
 #include "base/task/single_thread_task_runner.h"
 #include "base/time/time.h"
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index cea478f..e2a7693 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -1291,6 +1291,7 @@
       "../renderer/autofill/password_generation_test_utils.h",
       "../renderer/cart/commerce_hint_agent_browsertest.cc",
       "../renderer/cart/commerce_hint_agent_renderer_browsertest.cc",
+      "../renderer/commerce/commerce_web_extractor_browsertest.cc",
       "../renderer/safe_browsing/phishing_classifier_browsertest.cc",
       "android/browsertests_apk/android_browsertests_jni_onload.cc",
       "base/android/android_browser_test_browsertest_android.cc",
@@ -1301,6 +1302,8 @@
       "//components/autofill/content/browser:test_support",
       "//components/back_forward_cache:back_forward_cache",
       "//components/browsing_data/core:core",
+      "//components/commerce/content/renderer",
+      "//components/commerce/core:commerce_constants",
       "//components/enterprise:enterprise",
       "//components/enterprise:test_support",
       "//components/invalidation/impl:test_support",
@@ -1718,7 +1721,9 @@
       "//components/certificate_transparency",
       "//components/certificate_transparency:proto",
       "//components/commerce/content/browser",
+      "//components/commerce/content/renderer",
       "//components/commerce/core:cart_db_content_proto",
+      "//components/commerce/core:commerce_constants",
       "//components/commerce/core:commerce_heuristics_data",
       "//components/commerce/core:coupon_db_content_proto",
       "//components/commerce/core:feature_list",
@@ -2796,6 +2801,7 @@
       "../renderer/chrome_content_renderer_client_browsertest.cc",
       "../renderer/chrome_content_settings_agent_delegate_browsertest.cc",
       "../renderer/chrome_render_frame_observer_browsertest.cc",
+      "../renderer/commerce/commerce_web_extractor_browsertest.cc",
       "../renderer/translate/translate_agent_browsertest.cc",
       "../renderer/translate/translate_script_browsertest.cc",
       "../services/qrcode_generator/qrcode_generator_service_pixeltest.cc",
@@ -2818,6 +2824,10 @@
       "v8/wasm_trap_handler_browsertest.cc",
     ]
 
+    if (enable_compose) {
+      sources += [ "../browser/compose/compose_inner_text_browsertest.cc" ]
+    }
+
     if (enable_supervised_users) {
       sources += [
         # TODO(b/301587955): Fix placement of supervised_user/e2e test files and their dependencies.
@@ -7986,6 +7996,7 @@
       # the High-PMF discard policy aren't supported on Android.
       "../browser/performance_manager/policies/high_efficiency_mode_policy_unittest.cc",
       "../browser/performance_manager/policies/page_discarding_helper_unittest.cc",
+      "../browser/performance_manager/policies/probabilistic_memory_saver_policy_unittest.cc",
       "../browser/performance_manager/policies/urgent_page_discarding_policy_unittest.cc",
       "../browser/performance_manager/user_tuning/battery_saver_mode_manager_unittest.cc",
       "../browser/performance_manager/user_tuning/profile_discard_opt_out_list_helper_unittest.cc",
@@ -9537,8 +9548,22 @@
   }
 
   if (enable_pdf) {
-    sources += [ "../common/pdf_util_unittest.cc" ]
-    deps += [ "//pdf:content_restriction" ]
+    sources += [
+      "../browser/extensions/api/pdf_viewer_private/pdf_viewer_private_api_unittest.cc",
+      "../browser/pdf/pdf_viewer_stream_manager_unittest.cc",
+      "../common/pdf_util_unittest.cc",
+    ]
+    deps += [
+      "//base",
+      "//chrome/browser/extensions/api/pdf_viewer_private",
+      "//chrome/browser/pdf",
+      "//chrome/browser/pdf:pdf_test_utils",
+      "//extensions/browser",
+      "//net",
+      "//pdf:content_restriction",
+      "//services/network/public/mojom:url_loader_base",
+      "//url",
+    ]
   }
 
   if (enable_plugins) {
@@ -9797,7 +9822,6 @@
       "../browser/ui/views/frame/browser_view_unittest.cc",
       "../browser/ui/views/frame/tab_strip_region_view_unittest.cc",
       "../browser/ui/views/frame/web_contents_close_handler_unittest.cc",
-      "../browser/ui/views/global_media_controls/media_item_ui_cast_footer_view_unittest.cc",
       "../browser/ui/views/global_media_controls/media_item_ui_device_selector_view_unittest.cc",
       "../browser/ui/views/global_media_controls/media_item_ui_footer_view_unittest.cc",
       "../browser/ui/views/global_media_controls/media_item_ui_legacy_cast_footer_view_unittest.cc",
@@ -9944,7 +9968,10 @@
   if (use_nss_certs) {
     sources += [ "../browser/certificate_manager_model_unittest.cc" ]
     if (is_chromeos) {
-      sources += [ "../browser/net/nss_temp_certs_cache_chromeos_unittest.cc" ]
+      sources += [
+        "../browser/net/nss_temp_certs_cache_chromeos_unittest.cc",
+        "../browser/ui/views/global_media_controls/media_item_ui_cast_footer_view_unittest.cc",
+      ]
     }
   }
   if (!is_android && use_nss_certs) {
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/ChromeActivityTestRule.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/ChromeActivityTestRule.java
index 2439152c..503fe37 100644
--- a/chrome/test/android/javatests/src/org/chromium/chrome/test/ChromeActivityTestRule.java
+++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/ChromeActivityTestRule.java
@@ -202,7 +202,9 @@
     public void waitForActivityCompletelyLoaded() {
         CriteriaHelper.pollUiThread(
                 () -> getActivity().getActivityTab() != null, "Tab never selected/initialized.");
-        Tab tab = getActivity().getActivityTab();
+        Tab tab =
+                TestThreadUtils.runOnUiThreadBlockingNoException(
+                        () -> getActivity().getActivityTab());
 
         ChromeTabUtils.waitForTabPageLoaded(tab, (String) null);
 
@@ -481,11 +483,10 @@
         return mTestServerRule;
     }
 
-    /**
-     * @return {@link WebContents} of the active tab of the activity.
-     */
+    /** Returns the {@link WebContents} of the active tab of the activity. */
     public WebContents getWebContents() {
-        return getActivity().getActivityTab().getWebContents();
+        return TestThreadUtils.runOnUiThreadBlockingNoException(
+                () -> getActivity().getActivityTab().getWebContents());
     }
 
     /**
diff --git a/chrome/test/base/test_chrome_web_ui_controller_factory.cc b/chrome/test/base/test_chrome_web_ui_controller_factory.cc
index 90cd326..c951364 100644
--- a/chrome/test/base/test_chrome_web_ui_controller_factory.cc
+++ b/chrome/test/base/test_chrome_web_ui_controller_factory.cc
@@ -6,7 +6,6 @@
 
 #include "base/functional/callback_helpers.h"
 #include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/ui/webui/test_data_source.h"
 #include "chrome/common/webui_url_constants.h"
 #include "chrome/test/base/web_ui_test_data_source.h"
 #include "content/public/browser/url_data_source.h"
diff --git a/chrome/test/base/web_ui_test_data_source.cc b/chrome/test/base/web_ui_test_data_source.cc
index c8e73d46..42635ed 100644
--- a/chrome/test/base/web_ui_test_data_source.cc
+++ b/chrome/test/base/web_ui_test_data_source.cc
@@ -38,6 +38,8 @@
   source->OverrideContentSecurityPolicy(
       network::mojom::CSPDirectiveName::FrameAncestors,
       base::StringPrintf("frame-ancestors %s://* 'self';", scheme.c_str()));
+  source->OverrideContentSecurityPolicy(
+      network::mojom::CSPDirectiveName::FrameSrc, "frame-src 'self';");
 
   source->AddResourcePaths(
       base::make_span(kWebuiTestResources, kWebuiTestResourcesSize));
diff --git a/chrome/test/chromedriver/capabilities.cc b/chrome/test/chromedriver/capabilities.cc
index 2e07494..bd1fe93 100644
--- a/chrome/test/chromedriver/capabilities.cc
+++ b/chrome/test/chromedriver/capabilities.cc
@@ -14,7 +14,7 @@
 #include "base/json/string_escape.h"
 #include "base/logging.h"
 #include "base/strings/string_number_conversions.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/string_split.h"
 #include "base/strings/string_tokenizer.h"
 #include "base/strings/string_util.h"
diff --git a/chrome/test/chromedriver/net/adb_client_socket.cc b/chrome/test/chromedriver/net/adb_client_socket.cc
index fe09ae3..189a6cb2 100644
--- a/chrome/test/chromedriver/net/adb_client_socket.cc
+++ b/chrome/test/chromedriver/net/adb_client_socket.cc
@@ -170,8 +170,8 @@
     if (!CheckNetResultOrDie(result))
       return;
 
-    scoped_refptr<net::IOBuffer> response_buffer =
-        base::MakeRefCounted<net::IOBuffer>(kBufferSize);
+    auto response_buffer =
+        base::MakeRefCounted<net::IOBufferWithSize>(kBufferSize);
 
     result = socket_->Read(
         response_buffer.get(), kBufferSize,
diff --git a/chrome/test/chromedriver/net/pipe_connection_posix.cc b/chrome/test/chromedriver/net/pipe_connection_posix.cc
index ea9990c..16e2a035 100644
--- a/chrome/test/chromedriver/net/pipe_connection_posix.cc
+++ b/chrome/test/chromedriver/net/pipe_connection_posix.cc
@@ -240,7 +240,7 @@
       : owning_sequence_(base::SequencedTaskRunner::GetCurrentDefault()),
         pipe_connection_(std::move(pipe_connection)),
         write_buffer_(base::MakeRefCounted<net::DrainableIOBuffer>(
-            base::MakeRefCounted<net::IOBuffer>(),
+            base::MakeRefCounted<net::IOBufferWithSize>(),
             0)),
         thread_(new base::Thread("PipeConnectionPosixWriteThread")) {
     DETACH_FROM_THREAD(io_thread_checker_);
diff --git a/chrome/test/chromedriver/net/websocket.cc b/chrome/test/chromedriver/net/websocket.cc
index 57027a8..058d98f8 100644
--- a/chrome/test/chromedriver/net/websocket.cc
+++ b/chrome/test/chromedriver/net/websocket.cc
@@ -67,7 +67,7 @@
       listener_(listener),
       state_(INITIALIZED),
       write_buffer_(base::MakeRefCounted<net::DrainableIOBuffer>(
-          base::MakeRefCounted<net::IOBuffer>(),
+          base::MakeRefCounted<net::IOBufferWithSize>(),
           0)),
       read_buffer_(
           base::MakeRefCounted<net::IOBufferWithSize>(read_buffer_size)) {}
diff --git a/chrome/test/data/compose/subframe-a.html b/chrome/test/data/compose/subframe-a.html
new file mode 100644
index 0000000..0168d76
--- /dev/null
+++ b/chrome/test/data/compose/subframe-a.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<html>
+<body>
+<p>a
+</body>
+</html>
diff --git a/chrome/test/data/compose/subframe-b.html b/chrome/test/data/compose/subframe-b.html
new file mode 100644
index 0000000..14c92bde
--- /dev/null
+++ b/chrome/test/data/compose/subframe-b.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html>
+<body>
+<p>b
+<iframe name="foo" src="subframe-a.html"></iframe>2
+</body>
+</html>
diff --git a/chrome/test/data/compose/test1.html b/chrome/test/data/compose/test1.html
new file mode 100644
index 0000000..c8cc11e
--- /dev/null
+++ b/chrome/test/data/compose/test1.html
@@ -0,0 +1,6 @@
+<html>
+  <body>
+    A<iframe src="subframe-a.html"></iframe>B
+    C<iframe src="subframe-b.html"></iframe>D
+  </body>
+</html>
diff --git a/chrome/test/data/empty_script.html b/chrome/test/data/empty_script.html
new file mode 100644
index 0000000..06d5afb
--- /dev/null
+++ b/chrome/test/data/empty_script.html
@@ -0,0 +1,3 @@
+<html>
+    <script></script>
+</html>
\ No newline at end of file
diff --git a/chrome/test/data/handles_error_script.html b/chrome/test/data/handles_error_script.html
new file mode 100644
index 0000000..7fa488e
--- /dev/null
+++ b/chrome/test/data/handles_error_script.html
@@ -0,0 +1,11 @@
+<html>
+    <p id="foo"></p>
+    <script>
+        try {
+          throw new Error("A new Error");
+        }
+        catch(err) {
+          document.getElementById("foo").innerHTML = err.message;
+        }
+    </script>
+</html>
\ No newline at end of file
diff --git a/chrome/test/data/pdf/fullscreen_test.ts b/chrome/test/data/pdf/fullscreen_test.ts
index 6d9a1b1..7c5ef74 100644
--- a/chrome/test/data/pdf/fullscreen_test.ts
+++ b/chrome/test/data/pdf/fullscreen_test.ts
@@ -5,7 +5,7 @@
 import {PdfScriptingApi} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/pdf_scripting_api.js';
 import {FittingType} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/pdf_viewer_wrapper.js';
 import {isMac} from 'chrome://resources/js/platform.js';
-import {getDeepActiveElement} from 'chrome://resources/js/util_ts.js';
+import {getDeepActiveElement} from 'chrome://resources/js/util.js';
 import {keyDownOn} from 'chrome://resources/polymer/v3_0/iron-test-helpers/mock-interactions.js';
 import {eventToPromise} from 'chrome://webui-test/test_util.js';
 
diff --git a/chrome/test/data/uncaught_error_script.html b/chrome/test/data/uncaught_error_script.html
new file mode 100644
index 0000000..771ab277
--- /dev/null
+++ b/chrome/test/data/uncaught_error_script.html
@@ -0,0 +1,3 @@
+<script>
+throw new Error("New error message");
+</script>
\ No newline at end of file
diff --git a/chrome/test/data/uncaught_error_script.js b/chrome/test/data/uncaught_error_script.js
new file mode 100644
index 0000000..b6cca212
--- /dev/null
+++ b/chrome/test/data/uncaught_error_script.js
@@ -0,0 +1,4 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+throw new Error("New error message");
\ No newline at end of file
diff --git a/chrome/test/data/webui/BUILD.gn b/chrome/test/data/webui/BUILD.gn
index 8ac569e..fa077f9f 100644
--- a/chrome/test/data/webui/BUILD.gn
+++ b/chrome/test/data/webui/BUILD.gn
@@ -405,6 +405,7 @@
     "settings:build_grdp",
     "side_panel:build_grdp",
     "side_panel/customize_chrome:build_grdp",
+    "side_panel/read_anything:build_grdp",
     "support_tool:build_grdp",
     "sync_internals:build_grdp",
     "tab_search:build_grdp",
@@ -446,6 +447,7 @@
     "$target_gen_dir/sandbox/resources.grdp",
     "$target_gen_dir/settings/resources.grdp",
     "$target_gen_dir/side_panel/customize_chrome/resources.grdp",
+    "$target_gen_dir/side_panel/read_anything/resources.grdp",
     "$target_gen_dir/side_panel/resources.grdp",
     "$target_gen_dir/support_tool/resources.grdp",
     "$target_gen_dir/sync_internals/resources.grdp",
diff --git a/chrome/test/data/webui/cr_components/chromeos/bluetooth/bluetooth_pairing_ui_test.js b/chrome/test/data/webui/cr_components/chromeos/bluetooth/bluetooth_pairing_ui_test.js
index 9ac7713..e91b66883 100644
--- a/chrome/test/data/webui/cr_components/chromeos/bluetooth/bluetooth_pairing_ui_test.js
+++ b/chrome/test/data/webui/cr_components/chromeos/bluetooth/bluetooth_pairing_ui_test.js
@@ -416,12 +416,41 @@
         deviceHandler.completePairDevice(/*success=*/ false);
         await flushTasks();
 
-        // Simulate pairing cancelation.
+        // Simulate clicking cancel button.
         await simulateCancelation();
         // Finish event is fired when canceling from device selection page.
         await finishedPromise;
       });
 
+  test('Cancel pairing without completing pairing', async function() {
+    await init();
+    assertTrue(!!getDeviceSelectionPage());
+    const finishedPromise = eventToPromise('finished', bluetoothPairingUi);
+
+    const device = createDefaultBluetoothDevice(
+        /*id=*/ '123456',
+        /*publicName=*/ 'BeatsX',
+        /*connectionState=*/
+        DeviceConnectionState.kConnected,
+        /*opt_nickname=*/ 'device1',
+        /*opt_audioCapability=*/
+        AudioOutputCapability.kCapableOfAudioOutput,
+        /*opt_deviceType=*/ DeviceType.kMouse);
+
+    bluetoothConfig.appendToDiscoveredDeviceList([device.deviceProperties]);
+    await flushTasks();
+    await selectDevice(device.deviceProperties);
+    await flushTasks();
+
+    // Cancel pairing before it finishes, this should cancel pairing.
+    await simulateCancelation();
+
+    // Clicking cancel again should close the UI.
+    await simulateCancelation();
+    // Finish event is fired when canceling from device selection page.
+    await finishedPromise;
+  });
+
   test('Confirm code', async function() {
     await init();
     const finishedPromise = eventToPromise('finished', bluetoothPairingUi);
diff --git a/chrome/test/data/webui/settings/chromeos/internet_page/internet_detail_subpage_test.ts b/chrome/test/data/webui/settings/chromeos/internet_page/internet_detail_subpage_test.ts
index 91ceb00..9616eb2 100644
--- a/chrome/test/data/webui/settings/chromeos/internet_page/internet_detail_subpage_test.ts
+++ b/chrome/test/data/webui/settings/chromeos/internet_page/internet_detail_subpage_test.ts
@@ -17,7 +17,7 @@
 import {NetworkPropertyListMojoElement} from 'chrome://resources/ash/common/network/network_property_list_mojo.js';
 import {OncMojo} from 'chrome://resources/ash/common/network/onc_mojo.js';
 import {loadTimeData} from 'chrome://resources/js/load_time_data.js';
-import {getDeepActiveElement} from 'chrome://resources/js/util_ts.js';
+import {getDeepActiveElement} from 'chrome://resources/js/util.js';
 import {ActivationStateType, ApnAuthenticationType, ApnIpType, ApnState, DeviceStateProperties, GlobalPolicy, InhibitReason, ManagedOpenVPNProperties, ManagedProperties, MatchType, NetworkStateProperties, ProxyMode, VpnType} from 'chrome://resources/mojo/chromeos/services/network_config/public/mojom/cros_network_config.mojom-webui.js';
 import {ConnectionStateType, DeviceStateType, IPConfigType, NetworkType, OncSource, PolicySource, PortalState} from 'chrome://resources/mojo/chromeos/services/network_config/public/mojom/network_types.mojom-webui.js';
 import {assertEquals, assertFalse, assertNotEquals, assertNull, assertTrue} from 'chrome://webui-test/chai_assert.js';
diff --git a/chrome/test/data/webui/side_panel/customize_chrome/wallpaper_search/combobox_test.ts b/chrome/test/data/webui/side_panel/customize_chrome/wallpaper_search/combobox_test.ts
index ee4e9cc..929d58ad 100644
--- a/chrome/test/data/webui/side_panel/customize_chrome/wallpaper_search/combobox_test.ts
+++ b/chrome/test/data/webui/side_panel/customize_chrome/wallpaper_search/combobox_test.ts
@@ -15,8 +15,11 @@
   function addGroup(): HTMLElement {
     const group = document.createElement('div');
     group.setAttribute('role', 'group');
+    const label = document.createElement('label');
+    label.innerText = 'Group';
+    group.appendChild(label);
     combobox.appendChild(group);
-    return group;
+    return label;
   }
 
   function addOption(parent: HTMLElement = combobox): OptionElement {
@@ -134,7 +137,9 @@
     // Pressing Enter or clicking on an unselectable item should not select it.
     combobox.$.input.click();
     combobox.dispatchEvent(new KeyboardEvent('keydown', {key: 'Home'}));
+    const groupAClickEvent = eventToPromise('click', groupA);
     combobox.dispatchEvent(new KeyboardEvent('keydown', {key: 'Enter'}));
+    await groupAClickEvent;
     assertFalse(groupA.hasAttribute('selected'));
     groupA.dispatchEvent(new Event('click', {composed: true, bubbles: true}));
     assertFalse(groupA.hasAttribute('selected'));
diff --git a/chrome/test/data/webui/side_panel/customize_chrome/wallpaper_search/wallpaper_search_test.ts b/chrome/test/data/webui/side_panel/customize_chrome/wallpaper_search/wallpaper_search_test.ts
index 4d66fe28..0a30067 100644
--- a/chrome/test/data/webui/side_panel/customize_chrome/wallpaper_search/wallpaper_search_test.ts
+++ b/chrome/test/data/webui/side_panel/customize_chrome/wallpaper_search/wallpaper_search_test.ts
@@ -81,9 +81,9 @@
       await flushTasks();
 
       assertEquals(
-          2,
+          1,
           wallpaperSearchElement.shadowRoot!
-              .querySelectorAll('#descriptorComboboxA .dropdown-item')
+              .querySelectorAll('#descriptorComboboxA .category-item')
               .length);
       assertEquals(
           1,
@@ -102,6 +102,44 @@
               .length);
     });
 
+    test('expands and collapses categories', async () => {
+      createWallpaperSearchElementWithDescriptors();
+      await flushTasks();
+
+      // No dropdown items by default since all categories are collapsed.
+      assertEquals(
+          0,
+          wallpaperSearchElement.shadowRoot!
+              .querySelectorAll('#descriptorComboboxA .dropdown-item')
+              .length);
+
+      const categoryLabel =
+          wallpaperSearchElement.shadowRoot!.querySelector<HTMLElement>(
+              '#descriptorComboboxA .category-item')!;
+      const categoryLabelIcon = categoryLabel.querySelector('iron-icon')!;
+      assertEquals('cr:expand-more', categoryLabelIcon.icon);
+
+      // Clicking on a category expands the dropdown items below it.
+      categoryLabel.click();
+      await flushTasks();
+      assertEquals(
+          2,
+          wallpaperSearchElement.shadowRoot!
+              .querySelectorAll('#descriptorComboboxA .dropdown-item')
+              .length);
+      assertEquals('cr:expand-less', categoryLabelIcon.icon);
+
+      // Clicking on the category again hides the dropdown items below it.
+      categoryLabel.click();
+      await flushTasks();
+      assertEquals(
+          0,
+          wallpaperSearchElement.shadowRoot!
+              .querySelectorAll('#descriptorComboboxA .dropdown-item')
+              .length);
+      assertEquals('cr:expand-more', categoryLabelIcon.icon);
+    });
+
     test('check marks one item in descriptorMenuD at a time', async () => {
       createWallpaperSearchElementWithDescriptors();
       await flushTasks();
@@ -155,6 +193,10 @@
 
       $$<HTMLElement>(
           wallpaperSearchElement,
+          '#descriptorComboboxA .category-item')!.click();
+      await flushTasks();
+      $$<HTMLElement>(
+          wallpaperSearchElement,
           '#descriptorComboboxA .dropdown-item')!.click();
       $$<HTMLElement>(
           wallpaperSearchElement,
@@ -228,6 +270,10 @@
 
       $$<HTMLElement>(
           wallpaperSearchElement,
+          '#descriptorComboboxA .category-item')!.click();
+      await flushTasks();
+      $$<HTMLElement>(
+          wallpaperSearchElement,
           '#descriptorComboboxA .dropdown-item')!.click();
       wallpaperSearchElement.$.submitButton.click();
 
diff --git a/chrome/test/data/webui/side_panel/read_anything/BUILD.gn b/chrome/test/data/webui/side_panel/read_anything/BUILD.gn
new file mode 100644
index 0000000..29259ef
--- /dev/null
+++ b/chrome/test/data/webui/side_panel/read_anything/BUILD.gn
@@ -0,0 +1,24 @@
+# Copyright 2023 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("../../build_webui_tests.gni")
+
+assert(!is_android)
+
+build_webui_tests("build") {
+  is_chrome_untrusted = true
+  files = [
+    "checkmark_visible_on_selected.ts",
+    "fake_reading_mode.ts",
+  ]
+
+  ts_definitions = [
+    "//chrome/browser/resources/side_panel/read_anything/read_anything.d.ts",
+  ]
+
+  ts_path_mappings = [ "chrome-untrusted://read-anything-side-panel.top-chrome/*|" + rebase_path(
+                           "$root_gen_dir/chrome/browser/resources/side_panel/read_anything/tsc/*",
+                           target_gen_dir) ]
+  ts_deps = [ "//chrome/browser/resources/side_panel/read_anything:build_ts" ]
+}
diff --git a/chrome/test/data/webui/side_panel/read_anything/checkmark_visible_on_selected.js b/chrome/test/data/webui/side_panel/read_anything/checkmark_visible_on_selected.js
deleted file mode 100644
index f2855fe..0000000
--- a/chrome/test/data/webui/side_panel/read_anything/checkmark_visible_on_selected.js
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2023 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// out/Debug/browser_tests \
-//    --gtest_filter=ReadAnythingAppReadAloudTest.Checkmarks_Visible
-
-// Do not call the real `onConnected()`. As defined in
-// ReadAnythingAppController, onConnected creates mojo pipes to connect to the
-// rest of the Read Anything feature, which we are not testing here.
-(async () => {
-  chrome.readingMode.onConnected = () => {};
-
-  const readAnythingApp =
-      document.querySelector('read-anything-app').shadowRoot;
-  const toolbar =
-      readAnythingApp.querySelector('read-anything-toolbar').shadowRoot;
-
-  let result = true;
-  const assertEquals = (actual, expected) => {
-    const isEqual = actual === expected;
-    if (!isEqual) {
-      console.error(
-          'Expected: ' + JSON.stringify(expected) + ', ' +
-          'Actual: ' + JSON.stringify(actual));
-    }
-    result = result && isEqual;
-    return isEqual;
-  };
-  const assertCheckMarkVisible = (checkMarks, expectedIndex) => {
-    checkMarks.forEach((element, index) => {
-      if (index === expectedIndex) {
-        assertEquals(element.style.visibility, 'visible');
-      } else {
-        assertEquals(element.style.visibility, 'hidden');
-      }
-    });
-  };
-  // Check that the check mark of the selected item is visible
-  const assertCheckMarksForDropdown = (dropdown) => {
-    const buttons = Array.from(dropdown.querySelectorAll('.dropdown-item'));
-    const checkMarks = Array.from(dropdown.querySelectorAll('.check-mark'));
-    buttons.forEach((button, index) => {
-      button.click();
-      assertCheckMarkVisible(checkMarks, index);
-    });
-  };
-
-  assertCheckMarksForDropdown(toolbar.getElementById('fontMenu'));
-  assertCheckMarksForDropdown(toolbar.getElementById('rateMenu'));
-  assertCheckMarksForDropdown(toolbar.getElementById('lineSpacingMenu'));
-  assertCheckMarksForDropdown(toolbar.getElementById('letterSpacingMenu'));
-  assertCheckMarksForDropdown(toolbar.getElementById('colorMenu'));
-  assertCheckMarksForDropdown(toolbar.getElementById('voiceSelectionMenu'));
-
-  return result;
-})();
diff --git a/chrome/test/data/webui/side_panel/read_anything/checkmark_visible_on_selected.ts b/chrome/test/data/webui/side_panel/read_anything/checkmark_visible_on_selected.ts
new file mode 100644
index 0000000..b49f751
--- /dev/null
+++ b/chrome/test/data/webui/side_panel/read_anything/checkmark_visible_on_selected.ts
@@ -0,0 +1,51 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'chrome-untrusted://read-anything-side-panel.top-chrome/read_anything_toolbar.js';
+
+import {ReadAnythingToolbarElement} from 'chrome-untrusted://read-anything-side-panel.top-chrome/read_anything_toolbar.js';
+import {assertEquals} from 'chrome-untrusted://webui-test/chai_assert.js';
+
+import {FakeReadingMode} from './fake_reading_mode.js';
+
+suite('CheckmarkVisibleOnSelected', () => {
+  let toolbar: ReadAnythingToolbarElement;
+
+  setup(function() {
+    const readingMode = new FakeReadingMode();
+    chrome.readingMode = readingMode as unknown as typeof chrome.readingMode;
+
+    toolbar = document.createElement('read-anything-toolbar');
+    document.body.appendChild(toolbar);
+  });
+
+  function assertCheckMarkVisible(
+      checkMarks: NodeListOf<HTMLElement>, expectedIndex: number): void {
+    checkMarks.forEach((element, index) => {
+      assertEquals(
+          element.style.visibility,
+          index === expectedIndex ? 'visible' : 'hidden');
+    });
+  }
+
+  function assertCheckMarksForDropdown(dropdown: HTMLElement): void {
+    const buttons =
+        dropdown.querySelectorAll<HTMLButtonElement>('.dropdown-item');
+    const checkMarks = dropdown.querySelectorAll<HTMLElement>('.check-mark');
+    assertEquals(buttons.length, checkMarks.length);
+    buttons.forEach((button, index) => {
+      button.click();
+      assertCheckMarkVisible(checkMarks, index);
+    });
+  }
+
+  test('test', function() {
+    assertCheckMarksForDropdown(toolbar.$.fontMenu);
+    assertCheckMarksForDropdown(toolbar.$.rateMenu);
+    assertCheckMarksForDropdown(toolbar.$.lineSpacingMenu);
+    assertCheckMarksForDropdown(toolbar.$.letterSpacingMenu);
+    assertCheckMarksForDropdown(toolbar.$.colorMenu);
+    assertCheckMarksForDropdown(toolbar.$.voiceSelectionMenu);
+  });
+});
diff --git a/chrome/test/data/webui/side_panel/read_anything/fake_reading_mode.ts b/chrome/test/data/webui/side_panel/read_anything/fake_reading_mode.ts
new file mode 100644
index 0000000..4a609d4c
--- /dev/null
+++ b/chrome/test/data/webui/side_panel/read_anything/fake_reading_mode.ts
@@ -0,0 +1,245 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+export class FakeReadingMode {
+  // The root AXNodeID of the tree to be displayed.
+  rootId: number = 0;
+
+  startNodeId: number = 0;
+  startOffset: number = 0;
+  endNodeId: number = 0;
+  endOffset: number = 0;
+
+  // Items in the ReadAnythingTheme struct, see read_anything.mojom for info.
+  fontName: string = 'MyFont';
+  fontSize: number = 0;
+  foregroundColor: number = 0;
+  backgroundColor: number = 0;
+  lineSpacing: number = 0;
+  letterSpacing: number = 0;
+
+  // The current color theme value.
+  colorTheme: number = 0;
+
+  // Current audio settings values.
+  speechRate: number = 0;
+  highlightGranularity: number = 0;
+
+  // Enum values for various visual theme changes.
+  standardLineSpacing: number = 0;
+  looseLineSpacing: number = 0;
+  veryLooseLineSpacing: number = 0;
+  standardLetterSpacing: number = 0;
+  wideLetterSpacing: number = 0;
+  veryWideLetterSpacing: number = 0;
+  defaultTheme: number = 0;
+  lightTheme: number = 0;
+  darkTheme: number = 0;
+  yellowTheme: number = 0;
+  blueTheme: number = 0;
+  highlightOn: number = 0;
+
+  // Whether the WebUI toolbar feature flag is enabled.
+  isWebUIToolbarVisible: boolean = true;
+
+  // Whether the Read Aloud feature flag is enabled.
+  isReadAloudEnabled: boolean = false;
+
+  // Indicates if select-to-distill works on the web page. Used to
+  // determine which empty state to display.
+  isSelectable: boolean = false;
+
+  // Fonts supported by the browser's preferred language.
+  supportedFonts: string[] = ['roboto'];
+
+  // The language code that should be used for speech synthesis voices.
+  speechSynthesisLanguageCode: string = '';
+
+  // Returns the stored user voice preference for the given language.
+  getStoredVoice(_lang: string): string {
+    return 'abc';
+  }
+
+  // Returns a list of AXNodeIDs corresponding to the unignored children of
+  // the AXNode for the provided AXNodeID. If there is a selection contained
+  // in this node, only returns children which are partially or entirely
+  // contained within the selection.
+  getChildren(_nodeId: number): number[] {
+    return [];
+  }
+
+  // Returns the HTML tag of the AXNode for the provided AXNodeID.
+  getHtmlTag(_nodeId: number): string {
+    return 'div';
+  }
+
+  // Returns the language of the AXNode for the provided AXNodeID.
+  getLanguage(_nodeId: number): string {
+    return 'en-us';
+  }
+
+  // Returns the text content of the AXNode for the provided AXNodeID. If a
+  // selection begins or ends in this node, truncates the text to only return
+  // the selected text.
+  getTextContent(_nodeId: number): string {
+    return 'foo';
+  }
+
+  // Returns the text direction of the AXNode for the provided AXNodeID.
+  getTextDirection(_nodeId: number): string {
+    return 'ltr';
+  }
+
+  // Returns the url of the AXNode for the provided AXNodeID.
+  getUrl(_nodeId: number): string {
+    return 'foo';
+  }
+
+  // Returns true if the text node / element should be bolded.
+  shouldBold(_nodeId: number): boolean {
+    return false;
+  }
+
+  // Returns true if the element has overline text styling.
+  isOverline(_nodeId: number): boolean {
+    return false;
+  }
+
+  // Connects to the browser process. Called by ts when the read anything
+  // element is added to the document.
+  onConnected() {}
+
+  // Called when a user tries to copy text from reading mode with keyboard
+  // shortcuts.
+  onCopy() {}
+
+  // Called when the Read Anything panel is scrolled.
+  onScroll(_onSelection: boolean) {}
+
+  // Called when a user clicks a link. NodeID is an AXNodeID which identifies
+  // the link's corresponding AXNode in the main pane.
+  onLinkClicked(_nodeId: number) {}
+
+  // Called when the line spacing is changed via the webui toolbar.
+  onStandardLineSpacing() {}
+  onLooseLineSpacing() {}
+  onVeryLooseLineSpacing() {}
+
+  // Called when a user makes a font size change via the webui toolbar.
+  onFontSizeChanged(_increase: boolean) {}
+  onFontSizeReset() {}
+
+  // Called when the letter spacing is changed via the webui toolbar.
+  onStandardLetterSpacing() {}
+  onWideLetterSpacing() {}
+  onVeryWideLetterSpacing() {}
+
+  // Called when the color theme is changed via the webui toolbar.
+  onDefaultTheme() {}
+  onLightTheme() {}
+  onDarkTheme() {}
+  onYellowTheme() {}
+  onBlueTheme() {}
+
+  // Called when the font is changed via the webui toolbar.
+  onFontChange(_font: string) {}
+
+  // Called when the speech rate is changed via the webui toolbar.
+  onSpeechRateChange(_rate: number) {}
+
+  // Called when the voice used for speech is changed via the webui toolbar.
+  onVoiceChange(_voice: string, _lang: string) {}
+
+  // Called when the highlight granularity is changed via the webui toolbar.
+  turnedHighlightOn() {}
+  turnedHighlightOff() {}
+
+  // Returns the actual spacing value to use based on the given lineSpacing
+  // category.
+  getLineSpacingValue(lineSpacing: number): number {
+    return lineSpacing;
+  }
+
+  // Returns the actual spacing value to use based on the given letterSpacing
+  // category.
+  getLetterSpacingValue(letterSpacing: number): number {
+    return letterSpacing;
+  }
+
+  // Called when a user makes a selection change. AnchorNodeID and
+  // focusAXNodeID are AXNodeIDs which identify the anchor and focus AXNodes
+  // in the main pane. The selection can either be forward or backwards.
+  onSelectionChange(
+      _anchorNodeId: number, _anchorOffset: number, _focusNodeId: number,
+      _focusOffset: number) {}
+
+  // Called when a user collapses the selection. This is usually accomplished
+  // by clicking.
+  onCollapseSelection() {}
+
+  // Set the content. Used by tests only.
+  // SnapshotLite is a data structure which resembles an AXTreeUpdate. E.g.:
+  //   const axTree = {
+  //     rootId: 1,
+  //     nodes: [
+  //       {
+  //         id: 1,
+  //         role: 'rootWebArea',
+  //         childIds: [2],
+  //       },
+  //       {
+  //         id: 2,
+  //         role: 'staticText',
+  //         name: 'Some text.',
+  //       },
+  //     ],
+  //   };
+  setContentForTesting(_snapshotLite: Object, _contentNodeIds: number[]) {}
+
+  // Set the theme. Used by tests only.
+  setThemeForTesting(
+      _fontName: string, _fontSize: number, _foregroundColor: number,
+      _backgroundColor: number, _lineSpacing: number, _letterSpacing: number) {}
+
+  // Sets the default language. Used by tests only.
+  setLanguageForTesting(_code: string) {}
+
+  ////////////////////////////////////////////////////////////////
+  // Implemented in read_anything/app.ts and called by native c++.
+  ////////////////////////////////////////////////////////////////
+
+  // Display a loading screen to tell the user we are distilling the page.
+  showLoading() {}
+
+  // Display the empty state page to tell the user we can't distill the page.
+  showEmpty() {}
+
+  // Ping that an AXTree has been distilled for the active tab's render frame
+  // and is available to consume.
+  updateContent() {}
+
+  // Ping that the selection has been updated.
+  updateSelection() {}
+
+  // Ping that the theme choices of the user have been changed using the
+  // toolbar and are ready to consume.
+  updateTheme() {}
+
+  // Ping that the theme choices of the user have been retrieved from
+  // preferences and can be used to set up the page.
+  restoreSettingsFromPrefs() {}
+
+  // Returns the index of the next sentence of the given text, such that the
+  // next sentence is equivalent to text.substr(0, <returned_index>).
+  // If the sentence exceeds the maximum text length, the sentence will be
+  // cropped to the nearest word boundary that doesn't exceed the maximum
+  // text length.
+  getNextSentence(_value: string, _maxTextLength: number): number {
+    return 0;
+  }
+
+  // Signal that the supported fonts should be updated i.e. that the brower's
+  // preferred language has changed.
+  updateFonts() {}
+}
diff --git a/chrome/test/data/webui/side_panel/read_anything/read_anything_browsertest.cc b/chrome/test/data/webui/side_panel/read_anything/read_anything_browsertest.cc
index 16da070..16ffa49 100644
--- a/chrome/test/data/webui/side_panel/read_anything/read_anything_browsertest.cc
+++ b/chrome/test/data/webui/side_panel/read_anything/read_anything_browsertest.cc
@@ -2,12 +2,32 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "base/test/scoped_feature_list.h"
 #include "chrome/common/webui_url_constants.h"
 #include "chrome/test/base/web_ui_mocha_browser_test.h"
+#include "content/public/common/url_constants.h"
 #include "content/public/test/browser_test.h"
+#include "ui/accessibility/accessibility_features.h"
 
 using SidePanelReadingListTest = WebUIMochaBrowserTest;
 IN_PROC_BROWSER_TEST_F(SidePanelReadingListTest, App) {
   set_test_loader_host(chrome::kChromeUIReadLaterHost);
   RunTest("side_panel/reading_list/reading_list_app_test.js", "mocha.run()");
 }
+
+class ReadAnythingMochaBrowserTest : public WebUIMochaBrowserTest {
+ protected:
+  ReadAnythingMochaBrowserTest() {
+    set_test_loader_host(chrome::kChromeUIUntrustedReadAnythingSidePanelHost);
+    set_test_loader_scheme(content::kChromeUIUntrustedScheme);
+  }
+
+  base::test::ScopedFeatureList scoped_feature_list_{features::kReadAnything};
+};
+
+using ReadAnythingMochaTest = ReadAnythingMochaBrowserTest;
+
+IN_PROC_BROWSER_TEST_F(ReadAnythingMochaTest, CheckmarkVisibleOnSelected) {
+  RunTest("side_panel/read_anything/checkmark_visible_on_selected.js",
+          "mocha.run()");
+}
diff --git a/chrome/test/interaction/interactive_browser_test_internal.h b/chrome/test/interaction/interactive_browser_test_internal.h
index d6b743a..94f2fcf 100644
--- a/chrome/test/interaction/interactive_browser_test_internal.h
+++ b/chrome/test/interaction/interactive_browser_test_internal.h
@@ -9,7 +9,7 @@
 #include <utility>
 #include <vector>
 
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/stringprintf.h"
 #include "base/template_util.h"
 #include "base/values.h"
diff --git a/chrome/test/supervised_user/api_mock_setup_mixin.cc b/chrome/test/supervised_user/api_mock_setup_mixin.cc
index cbeaaf44..900e4ba 100644
--- a/chrome/test/supervised_user/api_mock_setup_mixin.cc
+++ b/chrome/test/supervised_user/api_mock_setup_mixin.cc
@@ -8,7 +8,7 @@
 #include "base/functional/bind.h"
 #include "base/logging.h"
 #include "base/strings/strcat.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/test/supervised_user/api_mock_setup_mixin.h"
diff --git a/chrome/test/supervised_user/api_mock_setup_mixin.h b/chrome/test/supervised_user/api_mock_setup_mixin.h
index 63c9b23..e2c390c 100644
--- a/chrome/test/supervised_user/api_mock_setup_mixin.h
+++ b/chrome/test/supervised_user/api_mock_setup_mixin.h
@@ -7,7 +7,7 @@
 
 #include "base/command_line.h"
 #include "base/memory/raw_ptr.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/test/scoped_feature_list.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/mixin_based_in_process_browser_test.h"
diff --git a/chrome/test/supervised_user/embedded_test_server_setup_mixin.cc b/chrome/test/supervised_user/embedded_test_server_setup_mixin.cc
index 41c7e2c7..2254b2d 100644
--- a/chrome/test/supervised_user/embedded_test_server_setup_mixin.cc
+++ b/chrome/test/supervised_user/embedded_test_server_setup_mixin.cc
@@ -11,7 +11,7 @@
 #include "base/logging.h"
 #include "base/ranges/algorithm.h"
 #include "base/strings/strcat.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "base/strings/string_split.h"
 #include "base/strings/string_util.h"
 #include "chrome/test/base/mixin_based_in_process_browser_test.h"
diff --git a/chrome/test/supervised_user/supervision_mixin.cc b/chrome/test/supervised_user/supervision_mixin.cc
index 6a6e573a..9b4e037 100644
--- a/chrome/test/supervised_user/supervision_mixin.cc
+++ b/chrome/test/supervised_user/supervision_mixin.cc
@@ -10,7 +10,7 @@
 #include "base/check.h"
 #include "base/functional/bind.h"
 #include "base/notreached.h"
-#include "base/strings/string_piece_forward.h"
+#include "base/strings/string_piece.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/signin/identity_test_environment_profile_adaptor.h"
 #include "chrome/browser/ui/browser.h"
diff --git a/chrome/updater/app/server/win/com_classes_legacy.cc b/chrome/updater/app/server/win/com_classes_legacy.cc
index a2e95fd5..44de8ec 100644
--- a/chrome/updater/app/server/win/com_classes_legacy.cc
+++ b/chrome/updater/app/server/win/com_classes_legacy.cc
@@ -515,8 +515,8 @@
     LONG install_progress_percentage = -1;
     LONG error_code = 0;
     LONG extra_code1 = 0;
-    std::wstring completion_message;
-    LONG installer_result_code = 0;
+    std::wstring installer_text;
+    std::wstring installer_cmd_line;
 
     if (state_update_) {
       // `state_value` is set to the state of update as seen by the on-demand
@@ -563,22 +563,10 @@
       total_bytes_to_download = state_update_->total_bytes;
       install_progress_percentage = state_update_->install_progress;
 
-      if (state_update_->state ==
-          UpdateService::UpdateState::State::kUpdateError) {
-        error_code = state_update_->error_code;
-        extra_code1 = state_update_->extra_code1;
-
-        if (state_update_->error_code == kErrorApplicationInstallerFailed) {
-          // In the error case, if an installer error occurred, it remaps the
-          // installer error to the legacy installer error value, for backward
-          // compatibility.
-          error_code = GOOPDATEINSTALL_E_INSTALLER_FAILED;
-          completion_message =
-              GetLocalizedString(IDS_INSTALL_UPDATER_FAILED_BASE, language_);
-          installer_result_code = state_update_->extra_code1;
-        }
-      }
-
+      error_code = state_update_->error_code;
+      extra_code1 = state_update_->extra_code1;
+      installer_text = base::UTF8ToWide(state_update_->installer_text);
+      installer_cmd_line = base::UTF8ToWide(state_update_->installer_cmd_line);
     } else if (result_) {
       CHECK_NE(result_.value(), UpdateService::Result::kSuccess);
       state_value = STATE_ERROR;
@@ -593,9 +581,10 @@
         /*next_retry_time=*/-1, install_progress_percentage,
         /*install_time_remaining_ms=*/-1,
         /*is_canceled=*/VARIANT_FALSE, error_code, extra_code1,
-        completion_message, installer_result_code,
-        /*installer_result_extra_code1=*/-1,
-        /*post_install_launch_command_line=*/L"",
+        /*completion_message=*/installer_text,
+        /*installer_result_code=*/error_code,
+        /*installer_result_extra_code1=*/extra_code1,
+        /*post_install_launch_command_line=*/installer_cmd_line,
         /*post_install_url=*/L"",
         /*post_install_action=*/0);
   }
diff --git a/chrome/updater/test/integration_tests.cc b/chrome/updater/test/integration_tests.cc
index 263226d..ee8413f 100644
--- a/chrome/updater/test/integration_tests.cc
+++ b/chrome/updater/test/integration_tests.cc
@@ -2597,6 +2597,45 @@
   }
 }
 
+TEST_P(IntegrationInstallerResultsTest, OnDemandTestCases) {
+  if (GetParam().interactive_install) {
+    GTEST_SKIP();
+  }
+
+  const base::FilePath crx_relative_path = GetInstallerPath(kMsiCrx);
+  const bool should_install_successfully =
+      !GetParam().error_code ||
+      GetParam().error_code == ERROR_SUCCESS_REBOOT_REQUIRED;
+
+  ASSERT_NO_FATAL_FAILURE(Install());
+  ASSERT_NO_FATAL_FAILURE(InstallApp(kMsiAppId, base::Version({0, 0, 0, 0})));
+
+  ASSERT_NO_FATAL_FAILURE(ExpectUpdateCheckSequence(
+      test_server_.get(), kMsiAppId, UpdateService::Priority::kForeground,
+      base::Version({0, 0, 0, 0}), kMsiUpdatedVersion));
+
+  ExpectAppsUpdateSequence(
+      UpdaterScope::kSystem, test_server_.get(),
+      /*request_attributes=*/{},
+      {
+          AppUpdateExpectation(
+              GetParam().command_line_args, kMsiAppId,
+              base::Version({0, 0, 0, 0}), kMsiUpdatedVersion,
+              /*is_install=*/false, should_install_successfully, false, "", "",
+              crx_relative_path,
+              /*always_serve_crx=*/GetParam().custom_app_response.empty(),
+              UpdateService::ErrorCategory::kInstall, GetParam().error_code,
+              /*EVENT_UPDATE_COMPLETE=*/3, GetParam().custom_app_response),
+      });
+  ASSERT_NO_FATAL_FAILURE(ExpectUninstallPing(test_server_.get()));
+
+  ASSERT_NO_FATAL_FAILURE(ExpectLegacyUpdate3WebSucceeds(
+      kMsiAppId, AppBundleWebCreateMode::kCreateInstalledApp,
+      should_install_successfully ? STATE_INSTALL_COMPLETE : STATE_ERROR,
+      GetParam().error_code));
+  ASSERT_NO_FATAL_FAILURE(Uninstall());
+}
+
 #endif  // BUILDFLAG(IS_WIN)
 #endif  // BUILDFLAG(IS_WIN) || !defined(COMPONENT_BUILD)
 
diff --git a/chrome/updater/test/integration_tests_win.cc b/chrome/updater/test/integration_tests_win.cc
index a4ded19..90de15b 100644
--- a/chrome/updater/test/integration_tests_win.cc
+++ b/chrome/updater/test/integration_tests_win.cc
@@ -1199,6 +1199,7 @@
 
   LONG state_value = 0;
   LONG error_code = 0;
+  std::wstring extra_data;
   while (!done && (timer.Elapsed() < kExpirationTimeout)) {
     Microsoft::WRL::ComPtr<IDispatch> app_dispatch;
     EXPECT_HRESULT_SUCCEEDED(bundle->get_appWeb(0, &app_dispatch));
@@ -1219,9 +1220,9 @@
                                : __uuidof(ICurrentStateUser),
         IID_PPV_ARGS_Helper(&state)));
     EXPECT_HRESULT_SUCCEEDED(state->get_stateValue(&state_value));
+    EXPECT_HRESULT_SUCCEEDED(state->get_errorCode(&error_code));
 
     std::wstring state_description;
-    std::wstring extra_data;
     done = state_value == expected_final_state;
     switch (state_value) {
       case STATE_INIT:
@@ -1317,7 +1318,6 @@
 
       case STATE_ERROR: {
         state_description = L"Error!";
-        EXPECT_HRESULT_SUCCEEDED(state->get_errorCode(&error_code));
         base::win::ScopedBstr completion_message;
         EXPECT_HRESULT_SUCCEEDED(
             state->get_completionMessage(completion_message.Receive()));
@@ -1341,9 +1341,9 @@
 
   EXPECT_TRUE(done)
       << "The test timed out, consider increasing kExpirationTimeout which is: "
-      << kExpirationTimeout;
-  EXPECT_EQ(expected_final_state, state_value);
-  EXPECT_EQ(expected_error_code, error_code);
+      << kExpirationTimeout << ": " << extra_data;
+  EXPECT_EQ(expected_final_state, state_value) << extra_data;
+  EXPECT_EQ(expected_error_code, error_code) << extra_data;
   return S_OK;
 }
 
diff --git a/chrome/updater/win/setup/setup_util.cc b/chrome/updater/win/setup/setup_util.cc
index 27a99223..5c1806b 100644
--- a/chrome/updater/win/setup/setup_util.cc
+++ b/chrome/updater/win/setup/setup_util.cc
@@ -248,6 +248,8 @@
 bool AreComInterfacesPresent(UpdaterScope scope, bool is_internal) {
   VLOG(1) << __func__ << ": scope: " << scope
           << ": is_internal: " << is_internal;
+
+  bool are_interfaces_present = true;
   for (const auto& [iid, interface_name] : GetInterfaces(is_internal, scope)) {
     const HKEY root = UpdaterScopeToHKeyRoot(scope);
     const std::wstring iid_path = GetComIidRegistryPath(iid);
@@ -258,14 +260,15 @@
       for (const auto& key_flag : {KEY_WOW64_32KEY, KEY_WOW64_64KEY}) {
         if (!base::win::RegKey(root, path.c_str(), KEY_QUERY_VALUE | key_flag)
                  .Valid()) {
-          VLOG(2) << __func__ << ": interface missing: " << iid_path;
-          return false;
+          VLOG(2) << __func__ << ": interface entry missing: " << interface_name
+                  << ": path: " << path << ": key_flag: " << key_flag;
+          are_interfaces_present = false;
         }
       }
     }
   }
-  VLOG(2) << __func__ << ": all interfaces present";
-  return true;
+  VLOG_IF(2, are_interfaces_present) << __func__ << ": all interfaces present";
+  return are_interfaces_present;
 }
 
 // Adds work items to `list` to install the interface `iid`.
@@ -277,14 +280,11 @@
   const std::wstring iid_reg_path = GetComIidRegistryPath(iid);
   const std::wstring typelib_reg_path = GetComTypeLibRegistryPath(iid);
 
-  // Delete any old registrations first.
-  for (const auto& reg_path : {iid_reg_path, typelib_reg_path}) {
-    for (const auto& key_flag : {KEY_WOW64_32KEY, KEY_WOW64_64KEY}) {
-      list->AddDeleteRegKeyWorkItem(root, reg_path, key_flag);
-    }
-  }
-
   for (const auto& key_flag : {KEY_WOW64_32KEY, KEY_WOW64_64KEY}) {
+    // Delete any old typelib registrations first. The IID is registered to both
+    // the 32 and 64 bit keys, and does not need to be deleted.
+    list->AddDeleteRegKeyWorkItem(root, typelib_reg_path, key_flag);
+
     // Registering the Ole Automation marshaler with the CLSID
     // {00020424-0000-0000-C000-000000000046} as the proxy/stub for the
     // interfaces.
diff --git a/chromecast/renderer/cast_activity_url_filter_manager.cc b/chromecast/renderer/cast_activity_url_filter_manager.cc
index f2d570d2..ef750b8 100644
--- a/chromecast/renderer/cast_activity_url_filter_manager.cc
+++ b/chromecast/renderer/cast_activity_url_filter_manager.cc
@@ -10,6 +10,7 @@
 #include "base/functional/bind.h"
 #include "base/logging.h"
 #include "content/public/renderer/render_frame.h"
+#include "third_party/blink/public/web/web_local_frame.h"
 
 namespace chromecast {
 
@@ -71,9 +72,9 @@
 CastActivityUrlFilterManager::~CastActivityUrlFilterManager() = default;
 
 ActivityUrlFilter*
-CastActivityUrlFilterManager::GetActivityUrlFilterForRenderFrameID(
-    int render_frame_id) {
-  const auto& it = activity_url_filters_.find(render_frame_id);
+CastActivityUrlFilterManager::GetActivityUrlFilterForRenderFrameToken(
+    const blink::LocalFrameToken& frame_token) {
+  const auto& it = activity_url_filters_.find(frame_token);
   if (it == activity_url_filters_.end())
     return nullptr;
 
@@ -82,24 +83,25 @@
 
 void CastActivityUrlFilterManager::OnRenderFrameCreated(
     content::RenderFrame* render_frame) {
-  int render_frame_id = render_frame->GetRoutingID();
+  auto frame_token = render_frame->GetWebFrame()->GetLocalFrameToken();
 
   // Lifetime is tied to |render_frame| via content::RenderFrameObserver.
   auto* filter_receiver = new CastActivityUrlFilterManager::UrlFilterReceiver(
       render_frame,
       base::BindOnce(&CastActivityUrlFilterManager::OnRenderFrameRemoved,
-                     weak_this_, render_frame->GetRoutingID()));
+                     weak_this_, frame_token));
 
-  auto result = activity_url_filters_.emplace(render_frame_id, filter_receiver);
+  auto result = activity_url_filters_.emplace(frame_token, filter_receiver);
 
   if (!result.second)
     LOG(ERROR)
-        << "A URL filter for Activity already exists for Render frame ID "
-        << render_frame_id;
+        << "A URL filter for Activity already exists for Render frame token "
+        << frame_token;
 }
 
-void CastActivityUrlFilterManager::OnRenderFrameRemoved(int render_frame_id) {
-  const auto& it = activity_url_filters_.find(render_frame_id);
+void CastActivityUrlFilterManager::OnRenderFrameRemoved(
+    const blink::LocalFrameToken& frame_token) {
+  const auto& it = activity_url_filters_.find(frame_token);
 
   if (it != activity_url_filters_.end())
     activity_url_filters_.erase(it);
diff --git a/chromecast/renderer/cast_activity_url_filter_manager.h b/chromecast/renderer/cast_activity_url_filter_manager.h
index 9c83364a..948bb60 100644
--- a/chromecast/renderer/cast_activity_url_filter_manager.h
+++ b/chromecast/renderer/cast_activity_url_filter_manager.h
@@ -15,6 +15,7 @@
 #include "mojo/public/cpp/bindings/associated_receiver_set.h"
 #include "mojo/public/cpp/bindings/pending_associated_receiver.h"
 #include "third_party/blink/public/common/associated_interfaces/associated_interface_registry.h"
+#include "third_party/blink/public/common/tokens/tokens.h"
 
 namespace chromecast {
 
@@ -32,10 +33,11 @@
   ~CastActivityUrlFilterManager();
 
   // Returns nullptr if no Activity URL filter exists for the render frame.
-  ActivityUrlFilter* GetActivityUrlFilterForRenderFrameID(int render_frame_id);
+  ActivityUrlFilter* GetActivityUrlFilterForRenderFrameToken(
+      const blink::LocalFrameToken& frame_token);
 
   void OnRenderFrameCreated(content::RenderFrame* render_frame);
-  void OnRenderFrameRemoved(int render_frame_id);
+  void OnRenderFrameRemoved(const blink::LocalFrameToken& frame_token);
 
  private:
   class UrlFilterReceiver
@@ -80,7 +82,8 @@
     base::WeakPtrFactory<UrlFilterReceiver> weak_factory_;
   };
 
-  base::flat_map<int, UrlFilterReceiver*> activity_url_filters_;
+  base::flat_map<blink::LocalFrameToken, UrlFilterReceiver*>
+      activity_url_filters_;
 
   base::WeakPtr<CastActivityUrlFilterManager> weak_this_;
   base::WeakPtrFactory<CastActivityUrlFilterManager> weak_factory_;
diff --git a/chromecast/renderer/cast_url_loader_throttle_provider.cc b/chromecast/renderer/cast_url_loader_throttle_provider.cc
index 890e9b34..bca20da 100644
--- a/chromecast/renderer/cast_url_loader_throttle_provider.cc
+++ b/chromecast/renderer/cast_url_loader_throttle_provider.cc
@@ -42,16 +42,16 @@
 
 blink::WebVector<std::unique_ptr<blink::URLLoaderThrottle>>
 CastURLLoaderThrottleProvider::CreateThrottles(
-    int render_frame_id,
+    base::optional_ref<const blink::LocalFrameToken> local_frame_token,
     const blink::WebURLRequest& request) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
   blink::WebVector<std::unique_ptr<blink::URLLoaderThrottle>> throttles;
 
-  if (cast_activity_url_filter_manager_) {
-    auto* activity_url_filter =
-        cast_activity_url_filter_manager_->GetActivityUrlFilterForRenderFrameID(
-            render_frame_id);
+  if (cast_activity_url_filter_manager_ && local_frame_token.has_value()) {
+    auto* activity_url_filter = cast_activity_url_filter_manager_
+                                    ->GetActivityUrlFilterForRenderFrameToken(
+                                        local_frame_token.value());
     if (activity_url_filter) {
       throttles.emplace_back(
           std::make_unique<ActivityFilteringURLLoaderThrottle>(
diff --git a/chromecast/renderer/cast_url_loader_throttle_provider.h b/chromecast/renderer/cast_url_loader_throttle_provider.h
index 33297c5..c5ca896 100644
--- a/chromecast/renderer/cast_url_loader_throttle_provider.h
+++ b/chromecast/renderer/cast_url_loader_throttle_provider.h
@@ -29,7 +29,7 @@
   // blink::URLLoaderThrottleProvider implementation:
   std::unique_ptr<blink::URLLoaderThrottleProvider> Clone() override;
   blink::WebVector<std::unique_ptr<blink::URLLoaderThrottle>> CreateThrottles(
-      int render_frame_id,
+      base::optional_ref<const blink::LocalFrameToken> local_frame_token,
       const blink::WebURLRequest& request) override;
   void SetOnline(bool is_online) override;
 
diff --git a/chromecast/renderer/cast_websocket_handshake_throttle_provider.cc b/chromecast/renderer/cast_websocket_handshake_throttle_provider.cc
index 9d01186..a008420 100644
--- a/chromecast/renderer/cast_websocket_handshake_throttle_provider.cc
+++ b/chromecast/renderer/cast_websocket_handshake_throttle_provider.cc
@@ -39,13 +39,16 @@
 
 std::unique_ptr<blink::WebSocketHandshakeThrottle>
 CastWebSocketHandshakeThrottleProvider::CreateThrottle(
-    int render_frame_id,
+    base::optional_ref<const blink::LocalFrameToken> local_frame_token,
     scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+  if (!local_frame_token.has_value()) {
+    return nullptr;
+  }
 
   auto* activity_url_filter =
-      cast_activity_url_filter_manager_->GetActivityUrlFilterForRenderFrameID(
-          render_frame_id);
+      cast_activity_url_filter_manager_
+          ->GetActivityUrlFilterForRenderFrameToken(local_frame_token.value());
   if (!activity_url_filter)
     return nullptr;
 
diff --git a/chromecast/renderer/cast_websocket_handshake_throttle_provider.h b/chromecast/renderer/cast_websocket_handshake_throttle_provider.h
index 8e544f7..3a7470a 100644
--- a/chromecast/renderer/cast_websocket_handshake_throttle_provider.h
+++ b/chromecast/renderer/cast_websocket_handshake_throttle_provider.h
@@ -33,7 +33,7 @@
   std::unique_ptr<blink::WebSocketHandshakeThrottleProvider> Clone(
       scoped_refptr<base::SingleThreadTaskRunner> task_runner) override;
   std::unique_ptr<blink::WebSocketHandshakeThrottle> CreateThrottle(
-      int render_frame_id,
+      base::optional_ref<const blink::LocalFrameToken> local_frame_token,
       scoped_refptr<base::SingleThreadTaskRunner> task_runner) override;
 
  private:
diff --git a/chromeos/ash/components/audio/public/mojom/BUILD.gn b/chromeos/ash/components/audio/public/mojom/BUILD.gn
index f318c90..7d0e21b 100644
--- a/chromeos/ash/components/audio/public/mojom/BUILD.gn
+++ b/chromeos/ash/components/audio/public/mojom/BUILD.gn
@@ -10,5 +10,4 @@
   sources = [ "cros_audio_config.mojom" ]
   public_deps = [ "//mojo/public/mojom/base" ]
   webui_module_path = "/"
-  use_typescript_sources = true
 }
diff --git a/chromeos/ash/components/drivefs/mojom/BUILD.gn b/chromeos/ash/components/drivefs/mojom/BUILD.gn
index 8009c5d..3ad86fa 100644
--- a/chromeos/ash/components/drivefs/mojom/BUILD.gn
+++ b/chromeos/ash/components/drivefs/mojom/BUILD.gn
@@ -48,5 +48,4 @@
   macro_prefix = "PINNING_MANAGER_TYPES_MOJOM"
 
   webui_module_path = "/"
-  use_typescript_sources = true
 }
diff --git a/chromeos/ash/components/human_presence/resources/OWNERS b/chromeos/ash/components/human_presence/resources/OWNERS
new file mode 100644
index 0000000..7b637de
--- /dev/null
+++ b/chromeos/ash/components/human_presence/resources/OWNERS
@@ -0,0 +1,2 @@
+# For trivial or mechanical horizontal JS/TS/CSS/HTML changes.
+file://ui/webui/PLATFORM_OWNERS
diff --git a/chromeos/ash/components/human_presence/resources/human_presence_internals.ts b/chromeos/ash/components/human_presence/resources/human_presence_internals.ts
index c84c41d..0f7b761 100644
--- a/chromeos/ash/components/human_presence/resources/human_presence_internals.ts
+++ b/chromeos/ash/components/human_presence/resources/human_presence_internals.ts
@@ -4,7 +4,7 @@
 
 import './strings.m.js';
 import {addWebUiListener} from 'chrome://resources/js/cr.js';
-import {getRequiredElement} from 'chrome://resources/js/util_ts.js';
+import {getRequiredElement} from 'chrome://resources/js/util.js';
 
 const POLL_INTERVAL_MS = 500;  // Matches hpsd polling rate.
 const MAX_HISTORY = 512 / 4;
diff --git a/chromeos/ash/services/auth_factor_config/public/mojom/BUILD.gn b/chromeos/ash/services/auth_factor_config/public/mojom/BUILD.gn
index 9bee669d..8ab7608 100644
--- a/chromeos/ash/services/auth_factor_config/public/mojom/BUILD.gn
+++ b/chromeos/ash/services/auth_factor_config/public/mojom/BUILD.gn
@@ -10,5 +10,4 @@
 mojom("mojom") {
   sources = [ "auth_factor_config.mojom" ]
   webui_module_path = "chrome://resources/mojo/chromeos/ash/services/auth_factor_config/public/mojom"
-  use_typescript_sources = true
 }
diff --git a/chromeos/ash/services/connectivity/public/mojom/BUILD.gn b/chromeos/ash/services/connectivity/public/mojom/BUILD.gn
index 9025670..a6ed5dd 100644
--- a/chromeos/ash/services/connectivity/public/mojom/BUILD.gn
+++ b/chromeos/ash/services/connectivity/public/mojom/BUILD.gn
@@ -12,5 +12,4 @@
   public_deps = [ "//mojo/public/mojom/base" ]
   webui_module_path =
       "chrome://resources/mojo/chromeos/ash/services/connectivity/public/mojom"
-  use_typescript_sources = true
 }
diff --git a/chromeos/ash/services/hotspot_config/public/mojom/BUILD.gn b/chromeos/ash/services/hotspot_config/public/mojom/BUILD.gn
index a6b145e0..849100e 100644
--- a/chromeos/ash/services/hotspot_config/public/mojom/BUILD.gn
+++ b/chromeos/ash/services/hotspot_config/public/mojom/BUILD.gn
@@ -11,5 +11,4 @@
   sources = [ "cros_hotspot_config.mojom" ]
   public_deps = [ "//mojo/public/mojom/base" ]
   webui_module_path = "chrome://resources/mojo/chromeos/ash/services/hotspot_config/public/mojom"
-  use_typescript_sources = true
 }
diff --git a/chromeos/ash/services/nearby/public/mojom/BUILD.gn b/chromeos/ash/services/nearby/public/mojom/BUILD.gn
index 1b90dc1..32dd0b7 100644
--- a/chromeos/ash/services/nearby/public/mojom/BUILD.gn
+++ b/chromeos/ash/services/nearby/public/mojom/BUILD.gn
@@ -20,7 +20,6 @@
 
   webui_module_path =
       "chrome://resources/mojo/chromeos/ash/services/nearby/public/mojom"
-  use_typescript_sources = true
 }
 
 mojom("mojom") {
diff --git a/chromeos/components/print_management/mojom/BUILD.gn b/chromeos/components/print_management/mojom/BUILD.gn
index 2301316..a66eff7 100644
--- a/chromeos/components/print_management/mojom/BUILD.gn
+++ b/chromeos/components/print_management/mojom/BUILD.gn
@@ -8,7 +8,6 @@
   sources = [ "printing_manager.mojom" ]
 
   webui_module_path = "/chromeos/components/print_management"
-  use_typescript_sources = true
 
   public_deps = [
     "//mojo/public/mojom/base",
diff --git a/chromeos/services/machine_learning/public/mojom/BUILD.gn b/chromeos/services/machine_learning/public/mojom/BUILD.gn
index bbf6f1c..7befaa1 100644
--- a/chromeos/services/machine_learning/public/mojom/BUILD.gn
+++ b/chromeos/services/machine_learning/public/mojom/BUILD.gn
@@ -37,7 +37,6 @@
 mojom("document_scanner_param_types") {
   sources = [ "document_scanner_param_types.mojom" ]
   webui_module_path = "/chromeos/services/machine_learning/public/mojom"
-  use_typescript_sources = true
 
   # ChromeOS relies heavily on old legacy bindings.
   generate_legacy_js_bindings = true
diff --git a/clank b/clank
index f6fa912..99c421b 160000
--- a/clank
+++ b/clank
@@ -1 +1 @@
-Subproject commit f6fa912194623b9de9c57191b6f3dfafba58aa33
+Subproject commit 99c421b0cdf59c0e49866f025179e694f92fd59e
diff --git a/components/BUILD.gn b/components/BUILD.gn
index 7c5788d..75a4fc67 100644
--- a/components/BUILD.gn
+++ b/components/BUILD.gn
@@ -503,6 +503,7 @@
       ":components_tests_pak_bundle_data",
       "//components/autofill/ios/browser:unit_tests",
       "//components/autofill/ios/form_util:unit_tests",
+      "//components/commerce/ios/browser:unit_tests",
       "//components/crash/core/app:unit_tests",
       "//components/feed/core/v2/public/ios:feed_ios_unit_tests",
       "//components/image_fetcher/ios:unit_tests",
@@ -525,6 +526,7 @@
     deps += [
       "//components/background_sync:unit_tests",
       "//components/blocked_content:unit_tests",
+      "//components/commerce/content/browser:unit_tests",
       "//components/content_settings/browser:unit_tests",
       "//components/content_settings/browser/ui:unit_tests",
       "//components/feed/core/v2:core_unit_tests",
diff --git a/components/attribution_reporting/BUILD.gn b/components/attribution_reporting/BUILD.gn
index f3d483b..1309227 100644
--- a/components/attribution_reporting/BUILD.gn
+++ b/components/attribution_reporting/BUILD.gn
@@ -14,7 +14,6 @@
     "trigger_registration_error.mojom",
   ]
   webui_module_path = "/"
-  use_typescript_sources = true
 
   # Used by Blink, so requires legacy JS bindings.
   generate_legacy_js_bindings = true
@@ -197,7 +196,6 @@
 
   generate_java = true
   webui_module_path = "/"
-  use_typescript_sources = true
   disallow_interfaces = true
 
   # Used by Blink, so requires legacy JS bindings.
@@ -361,7 +359,6 @@
 mojom("source_type_mojom") {
   sources = [ "source_type.mojom" ]
   webui_module_path = "/"
-  use_typescript_sources = true
   disallow_interfaces = true
   generate_java = false
 }
diff --git a/components/attribution_reporting/source_registration_fuzzer_corpus/all_params.textproto b/components/attribution_reporting/source_registration_fuzzer_corpus/all_params.textproto
index 96e3f6038..87500b8 100644
--- a/components/attribution_reporting/source_registration_fuzzer_corpus/all_params.textproto
+++ b/components/attribution_reporting/source_registration_fuzzer_corpus/all_params.textproto
@@ -50,8 +50,10 @@
   field {
     name: "max_event_level_reports"
     value {
-      int_value {
-        value: 5
+      number_value {
+        integer_value {
+          value: 5
+        }
       }
     }
   }
diff --git a/components/attribution_reporting/source_registration_fuzzer_corpus/event_report_windows.textproto b/components/attribution_reporting/source_registration_fuzzer_corpus/event_report_windows.textproto
index b66950b5..08e8229 100644
--- a/components/attribution_reporting/source_registration_fuzzer_corpus/event_report_windows.textproto
+++ b/components/attribution_reporting/source_registration_fuzzer_corpus/event_report_windows.textproto
@@ -14,8 +14,10 @@
         field {
           name: "start_time"
           value {
-            int_value {
-              value: 3600
+            number_value {
+              integer_value {
+                value: 3600
+              }
             }
           }
         }
@@ -24,13 +26,17 @@
           value {
             array_value {
               value {
-                int_value {
-                  value: 172800
+                number_value {
+                  integer_value {
+                    value: 172800
+                  }
                 }
               }
               value {
-                int_value {
-                  value: 345600
+                number_value {
+                  integer_value {
+                    value: 345600
+                  }
                 }
               }
             }
diff --git a/components/autofill/core/common/autofill_payments_features.cc b/components/autofill/core/common/autofill_payments_features.cc
index 7e644d84..0e7048d 100644
--- a/components/autofill/core/common/autofill_payments_features.cc
+++ b/components/autofill/core/common/autofill_payments_features.cc
@@ -178,6 +178,13 @@
 #endif
 );
 
+// When enabled, the vcn enroll screen will present a loading spinner while
+// enrolling the card to the server and present a confirmation screen with the
+// result when completed.
+BASE_FEATURE(kAutofillEnableVcnEnrollLoadingAndConfirmation,
+             "AutofillEnableVcnEnrollLoadingAndConfirmation",
+             base::FEATURE_DISABLED_BY_DEFAULT);
+
 // When enabled, Chrome will show metadata along with other card information
 // when the virtual card is presented to users.
 BASE_FEATURE(kAutofillEnableVirtualCardMetadata,
diff --git a/components/autofill/core/common/autofill_payments_features.h b/components/autofill/core/common/autofill_payments_features.h
index 05cc774..578aecb 100644
--- a/components/autofill/core/common/autofill_payments_features.h
+++ b/components/autofill/core/common/autofill_payments_features.h
@@ -40,6 +40,7 @@
 BASE_DECLARE_FEATURE(kAutofillEnableServerIban);
 BASE_DECLARE_FEATURE(kAutofillEnableStickyManualFallbackForCards);
 BASE_DECLARE_FEATURE(kAutofillEnableUpdateVirtualCardEnrollment);
+BASE_DECLARE_FEATURE(kAutofillEnableVcnEnrollLoadingAndConfirmation);
 BASE_DECLARE_FEATURE(kAutofillEnableVirtualCardMetadata);
 BASE_DECLARE_FEATURE(kAutofillMoveLegalTermsAndIconForNewCardEnrollment);
 BASE_DECLARE_FEATURE(kAutofillParseVcnCardOnFileStandaloneCvcFields);
diff --git a/components/browsing_data/content/browsing_data_model.cc b/components/browsing_data/content/browsing_data_model.cc
index 3f0f821..87c1665 100644
--- a/components/browsing_data/content/browsing_data_model.cc
+++ b/components/browsing_data/content/browsing_data_model.cc
@@ -225,31 +225,6 @@
   base::WeakPtrFactory<StorageRemoverHelper> weak_ptr_factory_{this};
 };
 
-void StorageRemoverHelper::RemoveDataKeyEntries(
-    const BrowsingDataModel::DataKeyEntries& data_key_entries,
-    base::OnceClosure completed) {
-  // At a helper level, only a single deletion may occur at a time. However
-  // multiple helpers may be associated with a single model.
-  DCHECK(!removing_);
-  removing_ = true;
-
-  completed_ = std::move(completed);
-
-  // Creating a synchronous callback to hold off running `completed_` callback
-  // until the loop has completed visiting all its entries whether deletion is
-  // synchronous or asynchronous.
-  auto sync_completion = GetCompleteCallback();
-  for (const auto& [key, details] : data_key_entries) {
-    absl::visit(Visitor{this, details.storage_types}, key);
-    if (delegate_) {
-      delegate_->RemoveDataKey(key, details.storage_types,
-                               GetCompleteCallback());
-    }
-  }
-
-  std::move(sync_completion).Run();
-}
-
 template <>
 void StorageRemoverHelper::Visitor::operator()<url::Origin>(
     const url::Origin& origin) {
@@ -374,6 +349,31 @@
   }
 }
 
+void StorageRemoverHelper::RemoveDataKeyEntries(
+    const BrowsingDataModel::DataKeyEntries& data_key_entries,
+    base::OnceClosure completed) {
+  // At a helper level, only a single deletion may occur at a time. However
+  // multiple helpers may be associated with a single model.
+  DCHECK(!removing_);
+  removing_ = true;
+
+  completed_ = std::move(completed);
+
+  // Creating a synchronous callback to hold off running `completed_` callback
+  // until the loop has completed visiting all its entries whether deletion is
+  // synchronous or asynchronous.
+  auto sync_completion = GetCompleteCallback();
+  for (const auto& [key, details] : data_key_entries) {
+    absl::visit(Visitor{this, details.storage_types}, key);
+    if (delegate_) {
+      delegate_->RemoveDataKey(key, details.storage_types,
+                               GetCompleteCallback());
+    }
+  }
+
+  std::move(sync_completion).Run();
+}
+
 void RemoveBrowsingDataEntries(
     const BrowsingDataModel::DataKeyEntries& browsing_data_entries,
     std::unique_ptr<StorageRemoverHelper> storage_remover_helper,
diff --git a/components/browsing_topics/mojom/BUILD.gn b/components/browsing_topics/mojom/BUILD.gn
index 33e3146..c4f1a033 100644
--- a/components/browsing_topics/mojom/BUILD.gn
+++ b/components/browsing_topics/mojom/BUILD.gn
@@ -9,5 +9,4 @@
   sources = [ "browsing_topics_internals.mojom" ]
   public_deps = [ "//mojo/public/mojom/base" ]
   webui_module_path = "/"
-  use_typescript_sources = true
 }
diff --git a/components/cast_receiver/renderer/content_renderer_client_mixins_impl.cc b/components/cast_receiver/renderer/content_renderer_client_mixins_impl.cc
index b414db5..9c1e276 100644
--- a/components/cast_receiver/renderer/content_renderer_client_mixins_impl.cc
+++ b/components/cast_receiver/renderer/content_renderer_client_mixins_impl.cc
@@ -8,6 +8,7 @@
 #include "components/media_control/renderer/media_playback_options.h"
 #include "components/on_load_script_injector/renderer/on_load_script_injector.h"
 #include "content/public/renderer/render_frame.h"
+#include "third_party/blink/public/web/web_local_frame.h"
 
 namespace cast_receiver {
 
@@ -39,7 +40,7 @@
 
   // Create the new UrlRewriteRulesProvider.
   url_rewrite_rules_providers_.emplace(
-      render_frame.GetRoutingID(),
+      render_frame.GetWebFrame()->GetLocalFrameToken(),
       std::make_unique<UrlRewriteRulesProvider>(
           &render_frame,
           base::BindOnce(&ContentRendererClientMixinsImpl::OnRenderFrameRemoved,
@@ -77,19 +78,19 @@
 }
 
 void ContentRendererClientMixinsImpl::OnRenderFrameRemoved(
-    int render_frame_id) {
-  size_t result = url_rewrite_rules_providers_.erase(render_frame_id);
+    const blink::LocalFrameToken& frame_token) {
+  size_t result = url_rewrite_rules_providers_.erase(frame_token);
   if (result != 1U) {
     LOG(WARNING)
         << "Can't find the URL rewrite rules provider for render frame: "
-        << render_frame_id;
+        << frame_token;
   }
 }
 
 UrlRewriteRulesProvider*
 ContentRendererClientMixinsImpl::GetUrlRewriteRulesProvider(
-    int render_frame_id) {
-  auto rules_it = url_rewrite_rules_providers_.find(render_frame_id);
+    const blink::LocalFrameToken& frame_token) {
+  auto rules_it = url_rewrite_rules_providers_.find(frame_token);
   return rules_it == url_rewrite_rules_providers_.end()
              ? nullptr
              : rules_it->second.get();
diff --git a/components/cast_receiver/renderer/content_renderer_client_mixins_impl.h b/components/cast_receiver/renderer/content_renderer_client_mixins_impl.h
index a67e1d3..96163ce 100644
--- a/components/cast_receiver/renderer/content_renderer_client_mixins_impl.h
+++ b/components/cast_receiver/renderer/content_renderer_client_mixins_impl.h
@@ -58,16 +58,16 @@
  private:
   // Called by UrlRewriteRulesProvider instances as part of frame RenderFrame
   // deletion.
-  void OnRenderFrameRemoved(int render_frame_id);
+  void OnRenderFrameRemoved(const blink::LocalFrameToken& frame_token);
 
   // WrappingURLLoaderThrottleProvider::Client implementation.
   UrlRewriteRulesProvider* GetUrlRewriteRulesProvider(
-      int render_frame_id) override;
+      const blink::LocalFrameToken& frame_token) override;
   bool IsCorsExemptHeader(base::StringPiece header) override;
 
   IsCorsExemptHeadersCallback is_cors_exempt_header_callback_;
 
-  base::flat_map<int /* render_frame_id */,
+  base::flat_map<blink::LocalFrameToken /* frame_token */,
                  std::unique_ptr<UrlRewriteRulesProvider>>
       url_rewrite_rules_providers_;
 };
diff --git a/components/cast_receiver/renderer/url_rewrite_rules_provider.cc b/components/cast_receiver/renderer/url_rewrite_rules_provider.cc
index 6c97667..d062fd3 100644
--- a/components/cast_receiver/renderer/url_rewrite_rules_provider.cc
+++ b/components/cast_receiver/renderer/url_rewrite_rules_provider.cc
@@ -6,14 +6,16 @@
 
 #include "base/functional/bind.h"
 #include "content/public/renderer/render_frame.h"
-#include "third_party/blink/public/common/associated_interfaces/associated_interface_registry.h"
+#include "third_party/blink/public/web/web_local_frame.h"
 
 namespace cast_receiver {
 
 UrlRewriteRulesProvider::UrlRewriteRulesProvider(
     content::RenderFrame* render_frame,
-    base::OnceCallback<void(int)> on_render_frame_deleted_callback)
+    base::OnceCallback<void(const blink::LocalFrameToken&)>
+        on_render_frame_deleted_callback)
     : content::RenderFrameObserver(render_frame),
+      frame_token_(render_frame->GetWebFrame()->GetLocalFrameToken()),
       url_request_rules_receiver_(render_frame),
       on_render_frame_deleted_callback_(
           std::move(on_render_frame_deleted_callback)) {
@@ -29,7 +31,7 @@
 }
 
 void UrlRewriteRulesProvider::OnDestruct() {
-  std::move(on_render_frame_deleted_callback_).Run(routing_id());
+  std::move(on_render_frame_deleted_callback_).Run(frame_token_);
 }
 
 }  // namespace cast_receiver
diff --git a/components/cast_receiver/renderer/url_rewrite_rules_provider.h b/components/cast_receiver/renderer/url_rewrite_rules_provider.h
index 640e0d09..ce56a9d11 100644
--- a/components/cast_receiver/renderer/url_rewrite_rules_provider.h
+++ b/components/cast_receiver/renderer/url_rewrite_rules_provider.h
@@ -26,7 +26,8 @@
   // |on_render_frame_deleted_callback| must delete |this|.
   UrlRewriteRulesProvider(
       content::RenderFrame* render_frame,
-      base::OnceCallback<void(int)> on_render_frame_deleted_callback);
+      base::OnceCallback<void(const blink::LocalFrameToken&)>
+          on_render_frame_deleted_callback);
   ~UrlRewriteRulesProvider() override;
 
   UrlRewriteRulesProvider(const UrlRewriteRulesProvider&) = delete;
@@ -38,8 +39,10 @@
   // content::RenderFrameObserver implementation.
   void OnDestruct() override;
 
+  blink::LocalFrameToken frame_token_;
   url_rewrite::UrlRequestRulesReceiver url_request_rules_receiver_;
-  base::OnceCallback<void(int)> on_render_frame_deleted_callback_;
+  base::OnceCallback<void(const blink::LocalFrameToken&)>
+      on_render_frame_deleted_callback_;
 };
 
 }  // namespace cast_receiver
diff --git a/components/cast_receiver/renderer/wrapping_url_loader_throttle_provider.cc b/components/cast_receiver/renderer/wrapping_url_loader_throttle_provider.cc
index b321da4..542373d 100644
--- a/components/cast_receiver/renderer/wrapping_url_loader_throttle_provider.cc
+++ b/components/cast_receiver/renderer/wrapping_url_loader_throttle_provider.cc
@@ -40,16 +40,20 @@
 
 blink::WebVector<std::unique_ptr<blink::URLLoaderThrottle>>
 WrappingURLLoaderThrottleProvider::CreateThrottles(
-    int render_frame_id,
+    base::optional_ref<const blink::LocalFrameToken> local_frame_token,
     const blink::WebURLRequest& request) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
   blink::WebVector<std::unique_ptr<blink::URLLoaderThrottle>> throttles;
   if (wrapped_provider_) {
-    throttles = wrapped_provider_->CreateThrottles(render_frame_id, request);
+    throttles = wrapped_provider_->CreateThrottles(local_frame_token, request);
   }
 
-  auto* provider = client_->GetUrlRewriteRulesProvider(render_frame_id);
+  if (!local_frame_token.has_value()) {
+    return throttles;
+  }
+  auto* provider =
+      client_->GetUrlRewriteRulesProvider(local_frame_token.value());
   if (provider) {
     auto rules = provider->GetCachedRules();
     if (rules) {
diff --git a/components/cast_receiver/renderer/wrapping_url_loader_throttle_provider.h b/components/cast_receiver/renderer/wrapping_url_loader_throttle_provider.h
index 8ff1459..42ffcc8 100644
--- a/components/cast_receiver/renderer/wrapping_url_loader_throttle_provider.h
+++ b/components/cast_receiver/renderer/wrapping_url_loader_throttle_provider.h
@@ -26,9 +26,9 @@
     virtual ~Client();
 
     // Returns the UrlRewriteRulesProvider associated with RenderFrame with id
-    // |render_frame_id|, or nullptr if no such provider exists.
+    // `frame_token`, or nullptr if no such provider exists.
     virtual UrlRewriteRulesProvider* GetUrlRewriteRulesProvider(
-        int render_frame_id) = 0;
+        const blink::LocalFrameToken& frame_token) = 0;
 
     // Returns whether |header| is a cors exempt header.
     virtual bool IsCorsExemptHeader(base::StringPiece header) = 0;
@@ -53,7 +53,7 @@
   // blink::URLLoaderThrottleProvider implementation.
   std::unique_ptr<blink::URLLoaderThrottleProvider> Clone() override;
   blink::WebVector<std::unique_ptr<blink::URLLoaderThrottle>> CreateThrottles(
-      int render_frame_id,
+      base::optional_ref<const blink::LocalFrameToken> local_frame_token,
       const blink::WebURLRequest& request) override;
   void SetOnline(bool is_online) override;
 
diff --git a/components/commerce/content/DEPS b/components/commerce/content/DEPS
index af61530..6909c59 100644
--- a/components/commerce/content/DEPS
+++ b/components/commerce/content/DEPS
@@ -3,6 +3,8 @@
   "+components/optimization_guide",
   "+components/prefs",
   "+content/public",
+  "+mojo/public/cpp/bindings",
+  "+services/service_manager/public/cpp",
   "+ui/base",
   "+ui/webui",
 ]
diff --git a/components/commerce/content/browser/BUILD.gn b/components/commerce/content/browser/BUILD.gn
index 5e78906c..4a27670 100644
--- a/components/commerce/content/browser/BUILD.gn
+++ b/components/commerce/content/browser/BUILD.gn
@@ -17,14 +17,30 @@
   deps = [
     "//base",
     "//components/commerce/core:shopping_service",
+    "//components/commerce/core/mojom:mojo_bindings",
     "//components/resources:components_resources_grit",
     "//content/public/browser",
+    "//mojo/public/cpp/bindings",
     "//ui/webui",
   ]
 
   public_deps = [ "//components/commerce/core/internals" ]
 }
 
+source_set("unit_tests") {
+  testonly = true
+  sources = [ "web_extractor_impl_unittest.cc" ]
+  deps = [
+    ":browser",
+    "//base",
+    "//base/test:test_support",
+    "//components/commerce/core/mojom:mojo_bindings",
+    "//content/public/browser",
+    "//content/test:test_support",
+    "//testing/gtest",
+  ]
+}
+
 if (!is_android) {
   static_library("hint") {
     sources = [
diff --git a/components/commerce/content/browser/web_contents_wrapper.cc b/components/commerce/content/browser/web_contents_wrapper.cc
index b3111b02..dce3cc1 100644
--- a/components/commerce/content/browser/web_contents_wrapper.cc
+++ b/components/commerce/content/browser/web_contents_wrapper.cc
@@ -54,4 +54,11 @@
   web_contents_ = nullptr;
 }
 
+content::RenderFrameHost* WebContentsWrapper::GetPrimaryMainFrame() {
+  if (!web_contents_) {
+    return nullptr;
+  }
+  return web_contents_->GetPrimaryMainFrame();
+}
+
 }  // namespace commerce
diff --git a/components/commerce/content/browser/web_contents_wrapper.h b/components/commerce/content/browser/web_contents_wrapper.h
index 67f9825..68034034 100644
--- a/components/commerce/content/browser/web_contents_wrapper.h
+++ b/components/commerce/content/browser/web_contents_wrapper.h
@@ -18,6 +18,10 @@
 class Value;
 }  // namespace base
 
+namespace content {
+class RenderFrameHost;
+}  // namespace content
+
 namespace commerce {
 
 // A WebWrapper backed by content::WebContents.
@@ -43,6 +47,8 @@
 
   void ClearWebContentsPointer();
 
+  content::RenderFrameHost* GetPrimaryMainFrame();
+
  private:
   raw_ptr<content::WebContents> web_contents_;
 
diff --git a/components/commerce/content/browser/web_extractor_impl.cc b/components/commerce/content/browser/web_extractor_impl.cc
index dc62e76..a2f7dcc6 100644
--- a/components/commerce/content/browser/web_extractor_impl.cc
+++ b/components/commerce/content/browser/web_extractor_impl.cc
@@ -5,7 +5,11 @@
 #include "components/commerce/content/browser/web_extractor_impl.h"
 
 #include "base/strings/utf_string_conversions.h"
+#include "components/commerce/content/browser/web_contents_wrapper.h"
 #include "components/grit/components_resources.h"
+#include "content/public/browser/render_frame_host.h"
+#include "content/public/browser/render_process_host.h"
+#include "content/public/browser/service_worker_context.h"
 #include "ui/base/resource/resource_bundle.h"
 
 namespace commerce {
@@ -16,11 +20,33 @@
 void WebExtractorImpl::ExtractMetaInfo(
     WebWrapper* web_wrapper,
     base::OnceCallback<void(const base::Value)> callback) {
-  std::string script =
-      ui::ResourceBundle::GetSharedInstance().LoadDataResourceString(
-          IDR_QUERY_SHOPPING_META_JS);
+  commerce::WebContentsWrapper* wrapper =
+      static_cast<commerce::WebContentsWrapper*>(web_wrapper);
+  content::RenderFrameHost* rfh = wrapper->GetPrimaryMainFrame();
+  if (!rfh) {
+    return;
+  }
+  mojo::Remote<commerce_web_extractor::mojom::CommerceWebExtractor>
+      remote_extractor;
+  rfh->GetRemoteInterfaces()->GetInterface(
+      remote_extractor.BindNewPipeAndPassReceiver());
+  commerce_web_extractor::mojom::CommerceWebExtractor* raw_commerce_extractor =
+      remote_extractor.get();
+  if (!raw_commerce_extractor) {
+    return;
+  }
+  // Pass along the remote_extractor to keep the pipe alive until the callback
+  // returns.
+  raw_commerce_extractor->ExtractMetaInfo(base::BindOnce(
+      &WebExtractorImpl::OnExtractionMetaInfo, weak_ptr_factory_.GetWeakPtr(),
+      std::move(remote_extractor), std::move(callback)));
+}
 
-  web_wrapper->RunJavascript(base::UTF8ToUTF16(script), std::move(callback));
+void WebExtractorImpl::OnExtractionMetaInfo(
+    mojo::Remote<commerce_web_extractor::mojom::CommerceWebExtractor> extractor,
+    base::OnceCallback<void(base::Value)> callback,
+    base::Value result) {
+  std::move(callback).Run(std::move(result));
 }
 
 }  // namespace commerce
diff --git a/components/commerce/content/browser/web_extractor_impl.h b/components/commerce/content/browser/web_extractor_impl.h
index 7239bd02..6d70c210 100644
--- a/components/commerce/content/browser/web_extractor_impl.h
+++ b/components/commerce/content/browser/web_extractor_impl.h
@@ -5,8 +5,10 @@
 #ifndef COMPONENTS_COMMERCE_CONTENT_BROWSER_WEB_EXTRACTOR_IMPL_H_
 #define COMPONENTS_COMMERCE_CONTENT_BROWSER_WEB_EXTRACTOR_IMPL_H_
 
+#include "components/commerce/core/mojom/commerce_web_extractor.mojom.h"
 #include "components/commerce/core/web_extractor.h"
 #include "components/commerce/core/web_wrapper.h"
+#include "mojo/public/cpp/bindings/remote.h"
 
 namespace commerce {
 
@@ -23,6 +25,12 @@
       base::OnceCallback<void(const base::Value)> callback) override;
 
  private:
+  void OnExtractionMetaInfo(
+      mojo::Remote<commerce_web_extractor::mojom::CommerceWebExtractor>
+          extractor,
+      base::OnceCallback<void(const base::Value)> callback,
+      const base::Value result);
+
   base::WeakPtrFactory<WebExtractorImpl> weak_ptr_factory_{this};
 };
 
diff --git a/components/commerce/content/browser/web_extractor_impl_unittest.cc b/components/commerce/content/browser/web_extractor_impl_unittest.cc
new file mode 100644
index 0000000..1b359c4b
--- /dev/null
+++ b/components/commerce/content/browser/web_extractor_impl_unittest.cc
@@ -0,0 +1,93 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/commerce/content/browser/web_extractor_impl.h"
+
+#include "base/test/gmock_callback_support.h"
+#include "base/test/mock_callback.h"
+#include "components/commerce/content/browser/web_contents_wrapper.h"
+#include "components/commerce/core/mojom/commerce_web_extractor.mojom.h"
+#include "content/public/browser/web_contents.h"
+#include "content/public/test/test_renderer_host.h"
+#include "mojo/public/cpp/bindings/receiver.h"
+#include "services/service_manager/public/cpp/interface_provider.h"
+#include "testing/gmock/include/gmock/gmock.h"
+
+namespace commerce {
+
+class WebExtractorImplTest : public content::RenderViewHostTestHarness {
+ public:
+  WebExtractorImplTest() = default;
+  WebExtractorImplTest(const WebExtractorImplTest&) = delete;
+  WebExtractorImplTest& operator=(const WebExtractorImplTest&) = delete;
+  ~WebExtractorImplTest() override = default;
+};
+
+class MockCommerceWebExtractor
+    : public commerce_web_extractor::mojom::CommerceWebExtractor {
+ public:
+  MockCommerceWebExtractor() = default;
+  MockCommerceWebExtractor(const MockCommerceWebExtractor&) = delete;
+  MockCommerceWebExtractor& operator=(const MockCommerceWebExtractor&) = delete;
+  ~MockCommerceWebExtractor() override = default;
+
+  void Bind(mojo::ScopedMessagePipeHandle handle) {
+    receiver_.Bind(mojo::PendingReceiver<
+                   commerce_web_extractor::mojom::CommerceWebExtractor>(
+        std::move(handle)));
+  }
+
+  MOCK_METHOD1(ExtractMetaInfo, void(ExtractMetaInfoCallback callback));
+
+ private:
+  mojo::Receiver<commerce_web_extractor::mojom::CommerceWebExtractor> receiver_{
+      this};
+};
+
+TEST_F(WebExtractorImplTest, TestExtraction) {
+  std::unique_ptr<MockCommerceWebExtractor> extractor =
+      std::make_unique<MockCommerceWebExtractor>();
+
+  // Set up mock CommerceWebExtractor.
+  std::unique_ptr<content::WebContents> wc = CreateTestWebContents();
+  content::RenderFrameHostTester::For(wc->GetPrimaryMainFrame())
+      ->InitializeRenderFrameIfNeeded();
+  std::unique_ptr<service_manager::InterfaceProvider::TestApi> test_api =
+      std::make_unique<service_manager::InterfaceProvider::TestApi>(
+          wc->GetPrimaryMainFrame()->GetRemoteInterfaces());
+  test_api->SetBinderForName(
+      commerce_web_extractor::mojom::CommerceWebExtractor::Name_,
+      base::BindRepeating(&MockCommerceWebExtractor::Bind,
+                          base::Unretained(extractor.get())));
+
+  // Initialize WebExtractor.
+  std::unique_ptr<commerce::WebExtractorImpl> web_extractor =
+      std::make_unique<commerce::WebExtractorImpl>();
+  std::unique_ptr<commerce::WebContentsWrapper> web_wrapper =
+      std::make_unique<commerce::WebContentsWrapper>(wc.get(), 0u);
+  EXPECT_CALL(*extractor, ExtractMetaInfo(testing::_))
+      .WillOnce(testing::Invoke(
+          [](MockCommerceWebExtractor::ExtractMetaInfoCallback callback) {
+            std::move(callback).Run(base::Value("123"));
+          }));
+  base::MockCallback<base::OnceCallback<void(const base::Value)>> callback;
+  EXPECT_CALL(callback, Run(testing::_))
+      .Times(1)
+      .WillOnce(testing::Invoke(
+          [](base::Value value) { ASSERT_EQ(value.GetString(), "123"); }));
+
+  web_extractor->ExtractMetaInfo(web_wrapper.get(), callback.Get());
+  base::RunLoop().RunUntilIdle();
+}
+
+TEST_F(WebExtractorImplTest, TestNullWebContents) {
+  std::unique_ptr<content::WebContents> wc = CreateTestWebContents();
+  std::unique_ptr<commerce::WebContentsWrapper> web_wrapper =
+      std::make_unique<commerce::WebContentsWrapper>(wc.get(), 0u);
+
+  web_wrapper->ClearWebContentsPointer();
+
+  ASSERT_FALSE(web_wrapper->GetPrimaryMainFrame());
+}
+}  // namespace commerce
diff --git a/components/commerce/content/renderer/BUILD.gn b/components/commerce/content/renderer/BUILD.gn
new file mode 100644
index 0000000..136b031
--- /dev/null
+++ b/components/commerce/content/renderer/BUILD.gn
@@ -0,0 +1,16 @@
+# Copyright 2023 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+static_library("renderer") {
+  sources = [
+    "commerce_web_extractor.cc",
+    "commerce_web_extractor.h",
+  ]
+  deps = [
+    "//base",
+    "//components/commerce/core/mojom:mojo_bindings",
+    "//content/public/renderer",
+    "//ipc",
+    "//third_party/blink/public:blink",
+  ]
+}
diff --git a/components/commerce/content/renderer/DEPS b/components/commerce/content/renderer/DEPS
new file mode 100644
index 0000000..f07dab8
--- /dev/null
+++ b/components/commerce/content/renderer/DEPS
@@ -0,0 +1 @@
+include_rules = ["+third_party/blink/public"]
\ No newline at end of file
diff --git a/components/commerce/content/renderer/OWNERS b/components/commerce/content/renderer/OWNERS
new file mode 100644
index 0000000..255dc86
--- /dev/null
+++ b/components/commerce/content/renderer/OWNERS
@@ -0,0 +1 @@
+yuezhanggg@chromium.org
\ No newline at end of file
diff --git a/components/commerce/content/renderer/commerce_web_extractor.cc b/components/commerce/content/renderer/commerce_web_extractor.cc
new file mode 100644
index 0000000..d26cdc9
--- /dev/null
+++ b/components/commerce/content/renderer/commerce_web_extractor.cc
@@ -0,0 +1,60 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/commerce/content/renderer/commerce_web_extractor.h"
+
+#include "base/strings/string_util.h"
+#include "base/strings/utf_string_conversions.h"
+#include "third_party/blink/public/web/web_element.h"
+#include "third_party/blink/public/web/web_element_collection.h"
+#include "third_party/blink/public/web/web_local_frame.h"
+
+namespace commerce {
+
+namespace {
+const char kOgContent[] = "content";
+const char kOgPrefix[] = "og:";
+const char kOgProperty[] = "property";
+const char kPageMeta[] = "meta";
+}  // namespace
+
+CommerceWebExtractor::CommerceWebExtractor(
+    content::RenderFrame* render_frame,
+    service_manager::BinderRegistry* registry)
+    : render_frame_(render_frame) {
+  registry->AddInterface(base::BindRepeating(
+      &CommerceWebExtractor::BindReceiver, base::Unretained(this)));
+}
+
+CommerceWebExtractor::~CommerceWebExtractor() = default;
+
+void CommerceWebExtractor::ExtractMetaInfo(ExtractMetaInfoCallback callback) {
+  auto result = base::Value::Dict();
+  blink::WebDocument doc = render_frame_->GetWebFrame()->GetDocument();
+  blink::WebElementCollection collection =
+      doc.GetElementsByHTMLTagName(kPageMeta);
+  for (blink::WebElement element = collection.FirstItem(); !element.IsNull();
+       element = collection.NextItem()) {
+    if (!element.HasAttribute(kOgProperty) ||
+        !element.HasAttribute(kOgContent)) {
+      continue;
+    }
+    std::string name =
+        base::UTF16ToUTF8(element.GetAttribute(kOgProperty).Utf16());
+    std::string value =
+        base::UTF16ToUTF8(element.GetAttribute(kOgContent).Utf16());
+    if (base::StartsWith(name, kOgPrefix)) {
+      result.Set(name.substr(3), value);
+    }
+  }
+  std::move(callback).Run(base::Value(std::move(result)));
+}
+
+void CommerceWebExtractor::BindReceiver(
+    mojo::PendingReceiver<commerce_web_extractor::mojom::CommerceWebExtractor>
+        receiver) {
+  receiver_.reset();
+  receiver_.Bind(std::move(receiver));
+}
+}  // namespace commerce
diff --git a/components/commerce/content/renderer/commerce_web_extractor.h b/components/commerce/content/renderer/commerce_web_extractor.h
new file mode 100644
index 0000000..3252621e
--- /dev/null
+++ b/components/commerce/content/renderer/commerce_web_extractor.h
@@ -0,0 +1,38 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_COMMERCE_CONTENT_RENDERER_COMMERCE_WEB_EXTRACTOR_H_
+#define COMPONENTS_COMMERCE_CONTENT_RENDERER_COMMERCE_WEB_EXTRACTOR_H_
+
+#include "components/commerce/core/mojom/commerce_web_extractor.mojom.h"
+#include "content/public/renderer/render_frame.h"
+#include "mojo/public/cpp/bindings/pending_receiver.h"
+#include "mojo/public/cpp/bindings/receiver.h"
+#include "services/service_manager/public/cpp/binder_registry.h"
+
+namespace commerce {
+class CommerceWebExtractor
+    : public commerce_web_extractor::mojom::CommerceWebExtractor {
+ public:
+  CommerceWebExtractor(const CommerceWebExtractor&) = delete;
+  CommerceWebExtractor& operator=(const CommerceWebExtractor&) = delete;
+  CommerceWebExtractor(content::RenderFrame* render_frame,
+                       service_manager::BinderRegistry* registry);
+  ~CommerceWebExtractor() override;
+
+  // commerce_web_extractor::mojom::CommerceWebExtractor:
+  void ExtractMetaInfo(ExtractMetaInfoCallback callback) override;
+
+ private:
+  void BindReceiver(
+      mojo::PendingReceiver<commerce_web_extractor::mojom::CommerceWebExtractor>
+          receiver);
+
+  raw_ptr<content::RenderFrame, ExperimentalRenderer> render_frame_;
+  mojo::Receiver<commerce_web_extractor::mojom::CommerceWebExtractor> receiver_{
+      this};
+};
+}  // namespace commerce
+
+#endif  // COMPONENTS_COMMERCE_CONTENT_RENDERER_COMMERCE_WEB_EXTRACTOR_H_
diff --git a/components/commerce/core/commerce_constants.cc b/components/commerce/core/commerce_constants.cc
index 9e59f94..c1d9fe33 100644
--- a/components/commerce/core/commerce_constants.cc
+++ b/components/commerce/core/commerce_constants.cc
@@ -43,4 +43,14 @@
 
 const char kUTMPrefix[] = "utm_";
 
+const char kOgImage[] = "image";
+const char kOgPriceAmount[] = "price:amount";
+const char kOgPriceCurrency[] = "price:currency";
+const char kOgProductLink[] = "product_link";
+const char kOgTitle[] = "title";
+const char kOgType[] = "type";
+
+const char kOgTypeOgProduct[] = "product";
+const char kOgTypeProductItem[] = "product.item";
+
 }  // namespace commerce
diff --git a/components/commerce/core/commerce_constants.h b/components/commerce/core/commerce_constants.h
index 82859c2..19cabb95 100644
--- a/components/commerce/core/commerce_constants.h
+++ b/components/commerce/core/commerce_constants.h
@@ -58,6 +58,18 @@
 
 // Prefix of UTM labels, including the underscore.
 extern const char kUTMPrefix[];
+
+// Open graph keys.
+extern const char kOgImage[];
+extern const char kOgPriceAmount[];
+extern const char kOgPriceCurrency[];
+extern const char kOgProductLink[];
+extern const char kOgTitle[];
+extern const char kOgType[];
+
+// Specific open graph values we're interested in.
+extern const char kOgTypeOgProduct[];
+extern const char kOgTypeProductItem[];
 }  // namespace commerce
 
 #endif  // COMPONENTS_COMMERCE_CORE_COMMERCE_CONSTANTS_H_
diff --git a/components/commerce/core/internals/mojom/BUILD.gn b/components/commerce/core/internals/mojom/BUILD.gn
index 3f4c447a..79c1d26 100644
--- a/components/commerce/core/internals/mojom/BUILD.gn
+++ b/components/commerce/core/internals/mojom/BUILD.gn
@@ -7,7 +7,6 @@
 mojom("mojo_bindings") {
   sources = [ "commerce_internals.mojom" ]
   webui_module_path = "/"
-  use_typescript_sources = true
   public_deps = [
     "//mojo/public/mojom/base",
     "//url/mojom:url_mojom_gurl",
diff --git a/components/commerce/core/mojom/BUILD.gn b/components/commerce/core/mojom/BUILD.gn
index 6b796c2..5f1c219 100644
--- a/components/commerce/core/mojom/BUILD.gn
+++ b/components/commerce/core/mojom/BUILD.gn
@@ -5,9 +5,11 @@
 import("//mojo/public/tools/bindings/mojom.gni")
 
 mojom("mojo_bindings") {
-  sources = [ "shopping_list.mojom" ]
+  sources = [
+    "commerce_web_extractor.mojom",
+    "shopping_list.mojom",
+  ]
   webui_module_path = "/"
-  use_typescript_sources = true
   public_deps = [
     "//mojo/public/mojom/base",
     "//url/mojom:url_mojom_gurl",
diff --git a/components/commerce/core/mojom/commerce_web_extractor.mojom b/components/commerce/core/mojom/commerce_web_extractor.mojom
new file mode 100644
index 0000000..68faccc
--- /dev/null
+++ b/components/commerce/core/mojom/commerce_web_extractor.mojom
@@ -0,0 +1,16 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+module commerce_web_extractor.mojom;
+
+import "mojo/public/mojom/base/values.mojom";
+
+// Class for extracting commerce-related information from web page. This
+// is implemented by class in renderer process and called by browser
+// process.
+interface CommerceWebExtractor {
+  // Extract commerce-related meta info from the page and return the
+  // extracted value.
+  ExtractMetaInfo() => (mojo_base.mojom.Value result);
+};
\ No newline at end of file
diff --git a/components/commerce/core/shopping_service.cc b/components/commerce/core/shopping_service.cc
index 9a69c36..7b9921c 100644
--- a/components/commerce/core/shopping_service.cc
+++ b/components/commerce/core/shopping_service.cc
@@ -20,6 +20,7 @@
 #include "base/values.h"
 #include "components/bookmarks/browser/bookmark_model.h"
 #include "components/commerce/core/bookmark_update_manager.h"
+#include "components/commerce/core/commerce_constants.h"
 #include "components/commerce/core/commerce_feature_list.h"
 #include "components/commerce/core/commerce_utils.h"
 #include "components/commerce/core/discounts_storage.h"
@@ -62,18 +63,6 @@
 
 namespace commerce {
 
-// Open graph keys.
-const char kOgImage[] = "image";
-const char kOgPriceAmount[] = "price:amount";
-const char kOgPriceCurrency[] = "price:currency";
-const char kOgProductLink[] = "product_link";
-const char kOgTitle[] = "title";
-const char kOgType[] = "type";
-
-// Specific open graph values we're interested in.
-const char kOgTypeOgProduct[] = "product";
-const char kOgTypeProductItem[] = "product.item";
-
 const long kToMicroCurrency = 1e6;
 
 const char kImageAvailabilityHistogramName[] =
@@ -331,8 +320,25 @@
     return;
   }
 
+  IsShoppingPage(
+      web->GetLastCommittedURL(),
+      base::BindOnce(
+          &ShoppingService::RunLocalExtractionForProductInfoForShoppingPage,
+          weak_ptr_factory_.GetWeakPtr(), web));
+}
+
+void ShoppingService::RunLocalExtractionForProductInfoForShoppingPage(
+    base::WeakPtr<WebWrapper> web,
+    const GURL& url,
+    absl::optional<bool> is_shopping_page) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
+  if (!is_shopping_page.has_value() || !is_shopping_page.value()) {
+    return;
+  }
+
+  auto it = product_info_cache_.find(url.spec());
+
   // If there is both an entry in the cache and the local extraction fallback
   // needs to run, run it.
   if (it != product_info_cache_.end() &&
@@ -352,12 +358,15 @@
 
 void ShoppingService::OnProductInfoLocalExtractionResult(const GURL url,
                                                          base::Value result) {
-  // We should only ever get a string result from the script execution.
-  if (!result.is_string()) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
+  // We should only ever get a dict result from the script execution.
+  if (!result.is_dict() || result.GetDict().empty()) {
     return;
   }
 
-  // Look up the entry again in case it was deleted (ex. by navigation).
+  // If there was no entry, do nothing. Most likely this means the page
+  // navigated before the script finished running.
   auto it = product_info_cache_.find(url.spec());
   if (it == product_info_cache_.end()) {
     return;
@@ -367,28 +376,6 @@
       kProductInfoLocalExtractionTime,
       base::Time::Now() - it->second->local_extraction_execution_start_time);
 
-  data_decoder::DataDecoder::ParseJsonIsolated(
-      result.GetString(),
-      base::BindOnce(&ShoppingService::OnProductInfoJsonSanitizationCompleted,
-                     weak_ptr_factory_.GetWeakPtr(), url));
-}
-
-void ShoppingService::OnProductInfoJsonSanitizationCompleted(
-    const GURL url,
-    data_decoder::DataDecoder::ValueOrError result) {
-  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-
-  if (!result.has_value() || !result.value().is_dict())
-    return;
-
-  auto it = product_info_cache_.find(url.spec());
-
-  // If there was no entry, do nothing. Most likely this means the page
-  // navigated before the script finished running.
-  if (it == product_info_cache_.end()) {
-    return;
-  }
-
   ProductInfo* cached_info = it->second->product_info.get();
 
   bool pdp_detected_by_client = false;
@@ -398,11 +385,12 @@
   // that the server didn't detect the page as a PDP, so we should try to
   // determine whether it is using the meta extracted from the page. This will
   // only happen if the |kCommerceLocalPDPDetection| flag is enabled.
-  pdp_detected_by_client = CheckIsPDPFromMetaOnly(result.value().GetDict());
+  pdp_detected_by_client = CheckIsPDPFromMetaOnly(result.GetDict());
+
   if (cached_info) {
     pdp_detected_by_server = true;
 
-    MergeProductInfoData(cached_info, result.value().GetDict());
+    MergeProductInfoData(cached_info, result.GetDict());
   }
 
   if (base::FeatureList::IsEnabled(kCommerceLocalPDPDetection)) {
diff --git a/components/commerce/core/shopping_service.h b/components/commerce/core/shopping_service.h
index 2ab4222..b5a09e0 100644
--- a/components/commerce/core/shopping_service.h
+++ b/components/commerce/core/shopping_service.h
@@ -73,18 +73,6 @@
 
 namespace commerce {
 
-// Open graph keys.
-extern const char kOgImage[];
-extern const char kOgPriceAmount[];
-extern const char kOgPriceCurrency[];
-extern const char kOgProductLink[];
-extern const char kOgTitle[];
-extern const char kOgType[];
-
-// Specific open graph values we're interested in.
-extern const char kOgTypeOgProduct[];
-extern const char kOgTypeProductItem[];
-
 // The conversion multiplier to go from standard currency units to
 // micro-currency units.
 extern const long kToMicroCurrency;
@@ -496,9 +484,17 @@
   // per unique navigation.
   void ScheduleProductInfoLocalExtraction(WebWrapper* web);
 
-  // Run the on-page info extraction if needed.
+  // Check conditions to decide if the on-page info extraction should be run and
+  // trigger the run if needed.
   void TryRunningLocalExtractionForProductInfo(base::WeakPtr<WebWrapper> web);
 
+  // Actually run the on-page info extraction if the page is shopping page based
+  // on `is_shopping_page`.
+  void RunLocalExtractionForProductInfoForShoppingPage(
+      base::WeakPtr<WebWrapper> web,
+      const GURL& url,
+      absl::optional<bool> is_shopping_page);
+
   // Whether APIs like |GetProductInfoForURL| are enabled and allowed to be
   // used.
   bool IsProductInfoApiEnabled();
@@ -543,12 +539,6 @@
   // info.
   void OnProductInfoLocalExtractionResult(const GURL url, base::Value result);
 
-  // Handle the result of JSON parsing obtained from running local extraction on
-  // the product info page.
-  void OnProductInfoJsonSanitizationCompleted(
-      const GURL url,
-      data_decoder::DataDecoder::ValueOrError result);
-
   // Tries to determine whether a page is a PDP only from information in meta
   // tags extracted from the page. If enough information is present to call the
   // page a PDP, this function returns true.
diff --git a/components/commerce/core/shopping_service_metrics_unittest.cc b/components/commerce/core/shopping_service_metrics_unittest.cc
index 844561fa..50e231f 100644
--- a/components/commerce/core/shopping_service_metrics_unittest.cc
+++ b/components/commerce/core/shopping_service_metrics_unittest.cc
@@ -7,6 +7,7 @@
 #include "base/functional/bind.h"
 #include "base/test/metrics/histogram_tester.h"
 #include "base/values.h"
+#include "components/commerce/core/commerce_constants.h"
 #include "components/commerce/core/commerce_feature_list.h"
 #include "components/commerce/core/metrics/metrics_utils.h"
 #include "components/commerce/core/shopping_service.h"
@@ -61,7 +62,9 @@
   test_features_.InitWithFeatures({kShoppingList, kCommerceAllowLocalImages},
                                   {kCommerceAllowServerImages});
 
-  base::Value js_result("{\"image\": \"" + std::string(kImageUrl2) + "\"}");
+  auto result = base::Value::Dict();
+  result.Set("image", std::string(kImageUrl2));
+  base::Value js_result(std::move(result));
   MockWebWrapper web(GURL(kProductUrl), false, &js_result);
 
   opt_guide_->SetResponse(GURL(kProductUrl), OptimizationType::PRICE_TRACKING,
@@ -95,7 +98,9 @@
   test_features_.InitWithFeatures({kShoppingList, kCommerceAllowServerImages},
                                   {kCommerceAllowLocalImages});
 
-  base::Value js_result("{\"image\": \"" + std::string(kImageUrl2) + "\"}");
+  auto result = base::Value::Dict();
+  result.Set("image", std::string(kImageUrl2));
+  base::Value js_result(std::move(result));
   MockWebWrapper web(GURL(kProductUrl), false, &js_result);
 
   opt_guide_->SetResponse(GURL(kProductUrl), OptimizationType::PRICE_TRACKING,
@@ -129,7 +134,9 @@
       {kShoppingList, kCommerceAllowLocalImages, kCommerceAllowServerImages},
       {});
 
-  base::Value js_result("{\"image\": \"" + std::string(kImageUrl2) + "\"}");
+  auto result = base::Value::Dict();
+  result.Set("image", std::string(kImageUrl2));
+  base::Value js_result(std::move(result));
   MockWebWrapper web(GURL(kProductUrl), false, &js_result);
 
   opt_guide_->SetResponse(GURL(kProductUrl), OptimizationType::PRICE_TRACKING,
@@ -162,7 +169,9 @@
       {kShoppingList, kCommerceAllowLocalImages, kCommerceAllowServerImages},
       {});
 
-  base::Value js_result("{\"irrelevant\": \"value\"}");
+  auto result = base::Value::Dict();
+  result.Set("irrelevant", std::string("value"));
+  base::Value js_result(std::move(result));
   MockWebWrapper web(GURL(kProductUrl), false, &js_result);
 
   opt_guide_->SetResponse(GURL(kProductUrl), OptimizationType::PRICE_TRACKING,
@@ -216,7 +225,9 @@
                                   {});
 
   //  Set the type as a non-product.
-  base::Value js_result("{\"" + std::string(kOgType) + "\": \"article\"}");
+  auto result = base::Value::Dict();
+  result.Set(std::string(kOgType), "article");
+  base::Value js_result(std::move(result));
   MockWebWrapper web(GURL(kProductUrl), false, &js_result);
 
   opt_guide_->SetResponse(GURL(kProductUrl), OptimizationType::PRICE_TRACKING,
@@ -237,8 +248,9 @@
   test_features_.InitWithFeatures({kShoppingList, kCommerceLocalPDPDetection},
                                   {});
 
-  base::Value js_result("{\"" + std::string(kOgType) + "\": \"" +
-                        kOgTypeOgProduct + "\"}");
+  auto result = base::Value::Dict();
+  result.Set(std::string(commerce::kOgType), commerce::kOgTypeOgProduct);
+  base::Value js_result(std::move(result));
   MockWebWrapper web(GURL(kProductUrl), false, &js_result);
 
   opt_guide_->SetResponse(GURL(kProductUrl), OptimizationType::PRICE_TRACKING,
@@ -259,8 +271,9 @@
   test_features_.InitWithFeatures({kShoppingList, kCommerceLocalPDPDetection},
                                   {});
 
-  base::Value js_result("{\"" + std::string(kOgType) + "\": \"" +
-                        kOgTypeOgProduct + "\"}");
+  auto result = base::Value::Dict();
+  result.Set(commerce::kOgType, commerce::kOgTypeOgProduct);
+  base::Value js_result(std::move(result));
   MockWebWrapper web(GURL(kProductUrl), false, &js_result);
 
   opt_guide_->SetResponse(GURL(kProductUrl), OptimizationType::PRICE_TRACKING,
@@ -281,8 +294,9 @@
   test_features_.InitWithFeatures({kShoppingList, kCommerceLocalPDPDetection},
                                   {});
 
-  base::Value js_result("{\"" + std::string(kOgType) + "\": \"" +
-                        kOgTypeOgProduct + "\"}");
+  auto result = base::Value::Dict();
+  result.Set(kOgType, kOgTypeOgProduct);
+  base::Value js_result(std::move(result));
   MockWebWrapper web(GURL("chrome://internal-page"), false, &js_result);
 
   opt_guide_->SetResponse(GURL(kProductUrl), OptimizationType::PRICE_TRACKING,
@@ -301,8 +315,9 @@
   test_features_.InitWithFeatures({kShoppingList},
                                   {kCommerceLocalPDPDetection});
 
-  base::Value js_result("{\"" + std::string(kOgType) + "\": \"" +
-                        kOgTypeOgProduct + "\"}");
+  auto result = base::Value::Dict();
+  result.Set(commerce::kOgType, commerce::kOgTypeOgProduct);
+  base::Value js_result(std::move(result));
   MockWebWrapper web(GURL(kProductUrl), false, &js_result);
 
   opt_guide_->SetResponse(GURL(kProductUrl), OptimizationType::PRICE_TRACKING,
@@ -321,7 +336,9 @@
 
   // The content of the javascript result only needs to be json for this text,
   // the actual fields don't matter.
-  base::Value js_result("{\"success\": true}");
+  auto result = base::Value::Dict();
+  result.Set("success", "true");
+  base::Value js_result(std::move(result));
   MockWebWrapper web(GURL(kProductUrl), false, &js_result);
 
   opt_guide_->SetResponse(GURL(kProductUrl), OptimizationType::PRICE_TRACKING,
@@ -335,4 +352,24 @@
   histogram_tester_->ExpectTotalCount(kProductInfoLocalExtractionTime, 1);
 }
 
+TEST_F(ShoppingServiceMetricsTest, TestNoExtractionForNonShoppingPage) {
+  test_features_.InitWithFeatures({kCommerceLocalPDPDetection}, {});
+  opt_guide_->SetDefaultShoppingPage(false);
+
+  auto result = base::Value::Dict();
+  result.Set(kOgType, kOgTypeOgProduct);
+  base::Value js_result(std::move(result));
+  MockWebWrapper web(GURL(kProductUrl), false, &js_result);
+
+  opt_guide_->SetResponse(GURL(kProductUrl), OptimizationType::PRICE_TRACKING,
+                          OptimizationGuideDecision::kFalse,
+                          OptimizationMetadata());
+
+  DidNavigatePrimaryMainFrame(&web);
+  DidFinishLoad(&web);
+  SimulateProductInfoLocalExtractionTaskFinished();
+
+  histogram_tester_->ExpectTotalCount(metrics::kPDPStateWithLocalMetaName, 0);
+}
+
 }  // namespace commerce
diff --git a/components/commerce/core/shopping_service_test_base.cc b/components/commerce/core/shopping_service_test_base.cc
index 0dea89dd..94317f954 100644
--- a/components/commerce/core/shopping_service_test_base.cc
+++ b/components/commerce/core/shopping_service_test_base.cc
@@ -18,6 +18,7 @@
 #include "components/commerce/core/proto/merchant_trust.pb.h"
 #include "components/commerce/core/proto/price_insights.pb.h"
 #include "components/commerce/core/proto/price_tracking.pb.h"
+#include "components/commerce/core/proto/shopping_page_types.pb.h"
 #include "components/optimization_guide/core/optimization_guide_switches.h"
 #include "components/optimization_guide/proto/common_types.pb.h"
 #include "components/optimization_guide/proto/hints.pb.h"
@@ -52,6 +53,22 @@
     const GURL& url,
     OptimizationType optimization_type,
     OptimizationGuideDecisionCallback callback) {
+  if (optimization_type == OptimizationType::SHOPPING_PAGE_TYPES &&
+      default_shopping_page_) {
+    OptimizationMetadata meta;
+    ShoppingPageTypes data;
+    data.add_shopping_page_types(commerce::ShoppingPageTypes::SHOPPING_PAGE);
+    data.add_shopping_page_types(
+        commerce::ShoppingPageTypes::MERCHANT_DOMAIN_PAGE);
+    Any any;
+    any.set_type_url(data.GetTypeName());
+    data.SerializeToString(any.mutable_value());
+    meta.set_any_metadata(any);
+    base::SequencedTaskRunner::GetCurrentDefault()->PostTask(
+        FROM_HERE, base::BindOnce(std::move(callback),
+                                  OptimizationGuideDecision::kTrue, meta));
+    return;
+  }
   bool type_matches = optimization_type_.has_value() &&
                       optimization_type_.value() == optimization_type;
   bool url_matches = response_url_.has_value() && url == response_url_.value();
@@ -329,6 +346,10 @@
   return meta;
 }
 
+void MockOptGuideDecider::SetDefaultShoppingPage(bool default_shopping_page) {
+  default_shopping_page_ = default_shopping_page;
+}
+
 MockWebWrapper::MockWebWrapper(const GURL& last_committed_url,
                                bool is_off_the_record)
     : MockWebWrapper(last_committed_url, is_off_the_record, nullptr) {}
diff --git a/components/commerce/core/shopping_service_test_base.h b/components/commerce/core/shopping_service_test_base.h
index d18ff3a..7cde429 100644
--- a/components/commerce/core/shopping_service_test_base.h
+++ b/components/commerce/core/shopping_service_test_base.h
@@ -126,6 +126,10 @@
   OptimizationMetadata BuildDiscountsResponse(
       const std::vector<DiscountInfo>& infos);
 
+  // Update the class private member `default_shopping_page_` which decides
+  // whether the MockOptGuideDecider will decide all pages as shopping pages.
+  void SetDefaultShoppingPage(bool default_shopping_page);
+
  private:
   absl::optional<GURL> response_url_;
   absl::optional<OptimizationType> optimization_type_;
@@ -136,6 +140,7 @@
   std::unordered_map<std::string,
                      optimization_guide::OptimizationGuideDecisionWithMetadata>
       on_demand_shopping_responses_;
+  bool default_shopping_page_ = true;
 };
 
 // A mock WebWrapper where returned values can be manually set.
diff --git a/components/commerce/core/shopping_service_unittest.cc b/components/commerce/core/shopping_service_unittest.cc
index 3790d509..cad8147f 100644
--- a/components/commerce/core/shopping_service_unittest.cc
+++ b/components/commerce/core/shopping_service_unittest.cc
@@ -360,8 +360,9 @@
       {kShoppingList, kCommerceAllowLocalImages, kCommerceAllowServerImages},
       {});
 
-  std::string json("{\"image\": \"" + std::string(kImageUrl) + "\"}");
-  base::Value js_result(json);
+  auto result = base::Value::Dict();
+  result.Set("image", std::string(kImageUrl));
+  base::Value js_result(std::move(result));
   MockWebWrapper web(GURL(kProductUrl), false, &js_result);
 
   // Assume the page hasn't finished loading.
@@ -433,8 +434,9 @@
   test_features_.InitWithFeatures(
       {kCommerceAllowLocalImages, kCommerceAllowServerImages}, {});
 
-  std::string json("{\"image\": \"" + std::string(kImageUrl) + "\"}");
-  base::Value js_result(json);
+  auto result = base::Value::Dict();
+  result.Set("image", std::string(kImageUrl));
+  base::Value js_result(std::move(result));
   MockWebWrapper web(GURL(kProductUrl), false, &js_result);
 
   // Assume the page has already loaded for the navigation. This is usually the
@@ -1254,7 +1256,7 @@
 }
 
 TEST_P(ShoppingServiceTest, TestIsShoppingPage) {
-  test_features_.InitAndEnableFeature(kShoppingPageTypes);
+  opt_guide_->SetDefaultShoppingPage(false);
   base::RunLoop run_loop[3];
   OptimizationMetadata meta;
   ShoppingPageTypes data;
diff --git a/components/commerce/core/web_extractor.h b/components/commerce/core/web_extractor.h
index 3a3ad7c..daf3f9e 100644
--- a/components/commerce/core/web_extractor.h
+++ b/components/commerce/core/web_extractor.h
@@ -23,7 +23,7 @@
   // results via `callback`.
   virtual void ExtractMetaInfo(
       WebWrapper* web_wrapper,
-      base::OnceCallback<void(const base::Value)> callback) = 0;
+      base::OnceCallback<void(base::Value)> callback) = 0;
 
  private:
   base::WeakPtrFactory<WebExtractor> weak_ptr_factory_{this};
diff --git a/components/commerce/ios/DEPS b/components/commerce/ios/DEPS
index dbdd5f6..6e52228 100644
--- a/components/commerce/ios/DEPS
+++ b/components/commerce/ios/DEPS
@@ -1,5 +1,6 @@
 include_rules = [
   "+components/grit",
   "+ios/web/public",
+  "+services/data_decoder/public/cpp",
   "+ui/base",
 ]
diff --git a/components/commerce/ios/browser/BUILD.gn b/components/commerce/ios/browser/BUILD.gn
index a8730253..248d3ee3 100644
--- a/components/commerce/ios/browser/BUILD.gn
+++ b/components/commerce/ios/browser/BUILD.gn
@@ -22,7 +22,21 @@
     "//ios/web/public",
     "//ios/web/public/js_messaging",
     "//ios/web/public/webui",
+    "//services/data_decoder/public/cpp",
   ]
 
   public_deps = [ "//components/commerce/core/internals" ]
 }
+
+source_set("unit_tests") {
+  testonly = true
+  sources = [ "web_extractor_impl_unittest.mm" ]
+  deps = [
+    ":browser",
+    "//base/test:test_support",
+    "//components/commerce/core:commerce_constants",
+    "//ios/web/public/test",
+    "//ios/web/public/test:test_fixture",
+    "//services/data_decoder/public/cpp:test_support",
+  ]
+}
diff --git a/components/commerce/ios/browser/web_extractor_impl.h b/components/commerce/ios/browser/web_extractor_impl.h
index 723a99b9..7785eac 100644
--- a/components/commerce/ios/browser/web_extractor_impl.h
+++ b/components/commerce/ios/browser/web_extractor_impl.h
@@ -7,6 +7,7 @@
 
 #include "components/commerce/core/web_extractor.h"
 #include "components/commerce/core/web_wrapper.h"
+#include "services/data_decoder/public/cpp/data_decoder.h"
 
 namespace commerce {
 
@@ -21,6 +22,17 @@
   void ExtractMetaInfo(
       WebWrapper* web_wrapper,
       base::OnceCallback<void(const base::Value)> callback) override;
+
+ private:
+  void OnExtractionMetaInfo(
+      base::OnceCallback<void(const base::Value)> callback,
+      const base::Value result);
+
+  void OnProductInfoJsonSanitizationCompleted(
+      base::OnceCallback<void(const base::Value)> callback,
+      data_decoder::DataDecoder::ValueOrError result);
+
+  base::WeakPtrFactory<WebExtractorImpl> weak_ptr_factory_{this};
 };
 
 }  // namespace commerce
diff --git a/components/commerce/ios/browser/web_extractor_impl.mm b/components/commerce/ios/browser/web_extractor_impl.mm
index 98d1934..fd858f9 100644
--- a/components/commerce/ios/browser/web_extractor_impl.mm
+++ b/components/commerce/ios/browser/web_extractor_impl.mm
@@ -15,12 +15,40 @@
 
 void WebExtractorImpl::ExtractMetaInfo(
     WebWrapper* web_wrapper,
-    base::OnceCallback<void(const base::Value)> callback) {
+    base::OnceCallback<void(base::Value)> callback) {
   std::string script =
       ui::ResourceBundle::GetSharedInstance().LoadDataResourceString(
           IDR_QUERY_SHOPPING_META_JS);
 
-  web_wrapper->RunJavascript(base::UTF8ToUTF16(script), std::move(callback));
+  web_wrapper->RunJavascript(
+      base::UTF8ToUTF16(script),
+      base::BindOnce(&WebExtractorImpl::OnExtractionMetaInfo,
+                     weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
+}
+
+void WebExtractorImpl::OnExtractionMetaInfo(
+    base::OnceCallback<void(base::Value)> callback,
+    base::Value result) {
+  if (!result.is_string()) {
+    std::move(callback).Run(base::Value());
+    return;
+  }
+
+  data_decoder::DataDecoder::ParseJsonIsolated(
+      result.GetString(),
+      base::BindOnce(&WebExtractorImpl::OnProductInfoJsonSanitizationCompleted,
+                     weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
+}
+
+void WebExtractorImpl::OnProductInfoJsonSanitizationCompleted(
+    base::OnceCallback<void(base::Value)> callback,
+    data_decoder::DataDecoder::ValueOrError result) {
+  if (!result.has_value() || !result.value().is_dict()) {
+    std::move(callback).Run(base::Value());
+    return;
+  }
+
+  std::move(callback).Run(std::move(result.value()));
 }
 
 }  // namespace commerce
diff --git a/components/commerce/ios/browser/web_extractor_impl_unittest.mm b/components/commerce/ios/browser/web_extractor_impl_unittest.mm
new file mode 100644
index 0000000..6ba44759
--- /dev/null
+++ b/components/commerce/ios/browser/web_extractor_impl_unittest.mm
@@ -0,0 +1,92 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "components/commerce/ios/browser/web_extractor_impl.h"
+
+#import "base/test/ios/wait_util.h"
+#import "base/values.h"
+#import "components/commerce/core/commerce_constants.h"
+#import "components/commerce/ios/browser/web_extractor_impl.h"
+#import "components/commerce/ios/browser/web_state_wrapper.h"
+#import "ios/web/public/test/web_test_with_web_state.h"
+#import "ios/web/public/web_state.h"
+#import "services/data_decoder/public/cpp/test_support/in_process_data_decoder.h"
+
+using base::test::ios::kWaitForActionTimeout;
+using base::test::ios::WaitUntilConditionOrTimeout;
+
+namespace web {
+
+class WebExtractorImplTest : public web::WebTestWithWebState {
+ public:
+  WebExtractorImplTest() = default;
+
+  WebExtractorImplTest(const WebExtractorImplTest&) = delete;
+  WebExtractorImplTest& operator=(const WebExtractorImplTest&) = delete;
+
+ private:
+  // This is required to make sure that all DataDecoders constructed during its
+  // lifetime will connect to this instance rather than launching a separate
+  // process.
+  data_decoder::test::InProcessDataDecoder in_process_data_decoder_;
+};
+
+TEST_F(WebExtractorImplTest, TestValidMetaExtraction) {
+  ASSERT_TRUE(LoadHtml("<html>"
+                       "<head>"
+                       "<meta content=\"product\" property=\"og:type\">"
+                       "</head>"
+                       "<body>"
+                       "</body></html>"));
+
+  std::unique_ptr<commerce::WebStateWrapper> web_wrapper =
+      std::make_unique<commerce::WebStateWrapper>(web_state());
+  std::unique_ptr<commerce::WebExtractorImpl> web_extractor =
+      std::make_unique<commerce::WebExtractorImpl>();
+  __block bool callback_called = false;
+
+  web_extractor->ExtractMetaInfo(
+      web_wrapper.get(), base::BindOnce(^(const base::Value result) {
+        ASSERT_TRUE(result.is_dict());
+        auto* str = result.GetDict().FindString(commerce::kOgType);
+        ASSERT_TRUE(str);
+        ASSERT_EQ(*str, commerce::kOgTypeOgProduct);
+        callback_called = true;
+      }));
+
+  ASSERT_TRUE(WaitUntilConditionOrTimeout(kWaitForActionTimeout, ^bool {
+    base::RunLoop().RunUntilIdle();
+    return callback_called;
+  }));
+}
+
+TEST_F(WebExtractorImplTest, TestInvalidMetaExtraction) {
+  ASSERT_TRUE(LoadHtml("<html>"
+                       "<head>"
+                       "<meta content=\"product\" property=\"type\">"
+                       "<meta content=\"product\" type=\"og:type\">"
+                       "</head>"
+                       "<body>"
+                       "</body></html>"));
+
+  std::unique_ptr<commerce::WebStateWrapper> web_wrapper =
+      std::make_unique<commerce::WebStateWrapper>(web_state());
+  std::unique_ptr<commerce::WebExtractorImpl> web_extractor =
+      std::make_unique<commerce::WebExtractorImpl>();
+  __block bool callback_called = false;
+
+  web_extractor->ExtractMetaInfo(web_wrapper.get(),
+                                 base::BindOnce(^(const base::Value result) {
+                                   ASSERT_TRUE(result.is_dict());
+                                   ASSERT_TRUE(result.GetDict().empty());
+                                   callback_called = true;
+                                 }));
+
+  ASSERT_TRUE(WaitUntilConditionOrTimeout(kWaitForActionTimeout, ^bool {
+    base::RunLoop().RunUntilIdle();
+    return callback_called;
+  }));
+}
+
+}  // namespace web
diff --git a/components/crx_file/id_util.cc b/components/crx_file/id_util.cc
index 81f96b6..2f5c2eb 100644
--- a/components/crx_file/id_util.cc
+++ b/components/crx_file/id_util.cc
@@ -41,12 +41,11 @@
 std::string GenerateId(base::StringPiece input) {
   uint8_t hash[kIdSize];
   crypto::SHA256HashString(input, hash, sizeof(hash));
-  return GenerateIdFromHash(hash, sizeof(hash));
+  return GenerateIdFromHash(hash);
 }
 
-std::string GenerateIdFromHash(const uint8_t* hash, size_t hash_size) {
-  CHECK_GE(hash_size, kIdSize);
-  std::string result = base::HexEncode(hash, kIdSize);
+std::string GenerateIdFromHash(base::span<const uint8_t> hash) {
+  std::string result = base::HexEncode(hash.first(kIdSize));
   ConvertHexadecimalToIDAlphabet(&result);
   return result;
 }
diff --git a/components/crx_file/id_util.h b/components/crx_file/id_util.h
index 9afe37d..9d4e459 100644
--- a/components/crx_file/id_util.h
+++ b/components/crx_file/id_util.h
@@ -5,6 +5,7 @@
 #ifndef COMPONENTS_CRX_FILE_ID_UTIL_H_
 #define COMPONENTS_CRX_FILE_ID_UTIL_H_
 
+#include "base/containers/span.h"
 #include "base/strings/string_piece.h"
 
 #include <stddef.h>
@@ -30,8 +31,8 @@
 std::string GenerateIdFromHex(const std::string& input);
 
 // Generates an ID from the first |kIdSize| bytes of a SHA256 hash.
-// |hash_size| must be at least |kIdSize|.
-std::string GenerateIdFromHash(const uint8_t* hash, size_t hash_size);
+// |span| must be at least |kIdSize| bytes.
+std::string GenerateIdFromHash(base::span<const uint8_t> hash);
 
 // Generates an ID for an extension in the given path.
 // Used while developing extensions, before they have a key.
diff --git a/components/crx_file/id_util_unittest.cc b/components/crx_file/id_util_unittest.cc
index a90c024..c60a81e 100644
--- a/components/crx_file/id_util_unittest.cc
+++ b/components/crx_file/id_util_unittest.cc
@@ -32,7 +32,7 @@
   EXPECT_EQ("melddjfinppjdikinhbgehiennejpfhp", extension_id);
 
   EXPECT_EQ("daibjpdaanagajckigeiigphanababab",
-            GenerateIdFromHash(public_key_info, sizeof(public_key_info)));
+            GenerateIdFromHash(public_key_info));
 
   EXPECT_EQ("jpignaibiiemhngfjkcpokkamffknabf", GenerateId("test"));
 
diff --git a/components/download/internal/background_service/in_memory_download_unittest.cc b/components/download/internal/background_service/in_memory_download_unittest.cc
index 726c125..c502bc7a 100644
--- a/components/download/internal/background_service/in_memory_download_unittest.cc
+++ b/components/download/internal/background_service/in_memory_download_unittest.cc
@@ -155,8 +155,7 @@
     DCHECK(blob);
     int bytes_read = 0;
     int async_bytes_read = 0;
-    scoped_refptr<net::IOBuffer> buffer =
-        base::MakeRefCounted<net::IOBuffer>(expected.size());
+    auto buffer = base::MakeRefCounted<net::IOBufferWithSize>(expected.size());
 
     auto blob_reader = blob->CreateReader();
 
diff --git a/components/download/internal/common/download_file_unittest.cc b/components/download/internal/common/download_file_unittest.cc
index 7386c1e..1ada9f9 100644
--- a/components/download/internal/common/download_file_unittest.cc
+++ b/components/download/internal/common/download_file_unittest.cc
@@ -309,8 +309,7 @@
     for (size_t i = 0; i < num_chunks; i++) {
       const char* source_data = data_chunks[i];
       size_t length = strlen(source_data);
-      scoped_refptr<net::IOBuffer> data =
-          base::MakeRefCounted<net::IOBuffer>(length);
+      auto data = base::MakeRefCounted<net::IOBufferWithSize>(length);
       memcpy(data->data(), source_data, length);
       EXPECT_CALL(*input_stream, Read(_, _))
           .InSequence(s)
diff --git a/components/download/internal/common/stream_handle_input_stream.cc b/components/download/internal/common/stream_handle_input_stream.cc
index db4a74d..f238d268 100644
--- a/components/download/internal/common/stream_handle_input_stream.cc
+++ b/components/download/internal/common/stream_handle_input_stream.cc
@@ -68,7 +68,7 @@
     return InputStream::EMPTY;
 
   static int bytes_to_read = GetDownloadFileBufferSize();
-  *data = base::MakeRefCounted<net::IOBuffer>(bytes_to_read);
+  *data = base::MakeRefCounted<net::IOBufferWithSize>(bytes_to_read);
   uint32_t u32_len = static_cast<uint32_t>(bytes_to_read);
   MojoResult mojo_result = stream_handle_->stream->ReadData(
       (*data)->data(), &u32_len, MOJO_READ_DATA_FLAG_NONE);
diff --git a/components/embedder_support/android/util/input_stream_reader_unittest.cc b/components/embedder_support/android/util/input_stream_reader_unittest.cc
index 8e1348c9..c5f1531 100644
--- a/components/embedder_support/android/util/input_stream_reader_unittest.cc
+++ b/components/embedder_support/android/util/input_stream_reader_unittest.cc
@@ -130,7 +130,7 @@
 
 TEST_F(InputStreamReaderTest, ReadFailure) {
   const int bytesToRead = 128;
-  auto buffer = base::MakeRefCounted<net::IOBuffer>(bytesToRead);
+  auto buffer = base::MakeRefCounted<net::IOBufferWithSize>(bytesToRead);
   EXPECT_CALL(input_stream_, Read(buffer.get(), bytesToRead, NotNull()))
       .WillOnce(Return(false));
 
@@ -140,7 +140,7 @@
 TEST_F(InputStreamReaderTest, ReadNothing) {
   const int bytesToRead = 0;
   // Size of net::IOBuffer can't be 0.
-  auto buffer = base::MakeRefCounted<net::IOBuffer>(1);
+  auto buffer = base::MakeRefCounted<net::IOBufferWithSize>(1);
   EXPECT_CALL(input_stream_, Read(buffer.get(), bytesToRead, NotNull()))
       .Times(0);
 
@@ -149,7 +149,7 @@
 
 TEST_F(InputStreamReaderTest, ReadSuccess) {
   const int bytesToRead = 128;
-  auto buffer = base::MakeRefCounted<net::IOBuffer>(bytesToRead);
+  auto buffer = base::MakeRefCounted<net::IOBufferWithSize>(bytesToRead);
 
   EXPECT_CALL(input_stream_, Read(buffer.get(), bytesToRead, NotNull()))
       .WillOnce(DoAll(SetArgPointee<2>(bytesToRead), Return(true)));
diff --git a/components/embedder_support/android/util/input_stream_unittest.cc b/components/embedder_support/android/util/input_stream_unittest.cc
index 984b04a..a01d9bf 100644
--- a/components/embedder_support/android/util/input_stream_unittest.cc
+++ b/components/embedder_support/android/util/input_stream_unittest.cc
@@ -19,6 +19,7 @@
 using base::android::ScopedJavaLocalRef;
 using embedder_support::InputStream;
 using net::IOBuffer;
+using net::IOBufferWithSize;
 using testing::_;
 using testing::DoAll;
 using testing::Ge;
@@ -49,7 +50,7 @@
 
     std::unique_ptr<InputStream> input_stream(
         new InputStream(counting_jstream));
-    auto buffer = base::MakeRefCounted<IOBuffer>(bytes_requested);
+    auto buffer = base::MakeRefCounted<IOBufferWithSize>(bytes_requested);
 
     EXPECT_TRUE(input_stream->Read(buffer.get(), bytes_requested, bytes_read));
     return buffer;
@@ -66,7 +67,7 @@
   std::unique_ptr<InputStream> input_stream(new InputStream(empty_jstream));
   const int bytes_requested = 10;
   int bytes_read = 0;
-  auto buffer = base::MakeRefCounted<IOBuffer>(bytes_requested);
+  auto buffer = base::MakeRefCounted<IOBufferWithSize>(bytes_requested);
 
   EXPECT_TRUE(input_stream->Read(buffer.get(), bytes_requested, &bytes_read));
   EXPECT_EQ(0, bytes_read);
@@ -133,7 +134,7 @@
 
   const int bytes_requested = 10;
   int bytes_read = 0;
-  auto buffer = base::MakeRefCounted<IOBuffer>(bytes_requested);
+  auto buffer = base::MakeRefCounted<IOBufferWithSize>(bytes_requested);
   EXPECT_FALSE(input_stream->Read(buffer.get(), bytes_requested, &bytes_read));
   EXPECT_EQ(0, bytes_read);
 
diff --git a/components/history/core/browser/mojom/BUILD.gn b/components/history/core/browser/mojom/BUILD.gn
index 93e26ce..adaa3eda 100644
--- a/components/history/core/browser/mojom/BUILD.gn
+++ b/components/history/core/browser/mojom/BUILD.gn
@@ -13,5 +13,4 @@
   ]
 
   webui_module_path = ""
-  use_typescript_sources = true
 }
diff --git a/components/history_clusters/history_clusters_internals/webui/BUILD.gn b/components/history_clusters/history_clusters_internals/webui/BUILD.gn
index 581a4ce..3549d54 100644
--- a/components/history_clusters/history_clusters_internals/webui/BUILD.gn
+++ b/components/history_clusters/history_clusters_internals/webui/BUILD.gn
@@ -34,6 +34,5 @@
 mojom("mojo_bindings") {
   sources = [ "history_clusters_internals.mojom" ]
   webui_module_path = "/"
-  use_typescript_sources = true
   public_deps = [ "//mojo/public/mojom/base" ]
 }
diff --git a/components/history_clusters/public/mojom/BUILD.gn b/components/history_clusters/public/mojom/BUILD.gn
index 9d3306d..e88d1ad 100644
--- a/components/history_clusters/public/mojom/BUILD.gn
+++ b/components/history_clusters/public/mojom/BUILD.gn
@@ -13,5 +13,4 @@
   ]
 
   webui_module_path = ""
-  use_typescript_sources = true
 }
diff --git a/components/media_router/common/mojom/BUILD.gn b/components/media_router/common/mojom/BUILD.gn
index 318025a7..c4f0b709 100644
--- a/components/media_router/common/mojom/BUILD.gn
+++ b/components/media_router/common/mojom/BUILD.gn
@@ -113,6 +113,5 @@
   sources = [ "route_request_result_code.mojom" ]
 
   webui_module_path = "/"
-  use_typescript_sources = true
   generate_legacy_js_bindings = enable_mojom_fuzzer
 }
diff --git a/components/media_router/common/providers/cast/channel/cast_socket_unittest.cc b/components/media_router/common/providers/cast/channel/cast_socket_unittest.cc
index 70cafdb..0e2313b1 100644
--- a/components/media_router/common/providers/cast/channel/cast_socket_unittest.cc
+++ b/components/media_router/common/providers/cast/channel/cast_socket_unittest.cc
@@ -1082,8 +1082,8 @@
   EXPECT_TRUE(MessageFramer::Serialize(challenge, &challenge_str));
 
   int challenge_buffer_length = challenge_str.size();
-  scoped_refptr<net::IOBuffer> challenge_buffer =
-      base::MakeRefCounted<net::IOBuffer>(challenge_buffer_length);
+  auto challenge_buffer =
+      base::MakeRefCounted<net::IOBufferWithSize>(challenge_buffer_length);
   int read = ReadExactLength(challenge_buffer.get(), challenge_buffer_length,
                              server_socket_.get());
 
@@ -1121,8 +1121,8 @@
   EXPECT_TRUE(MessageFramer::Serialize(challenge, &challenge_str));
 
   int challenge_buffer_length = challenge_str.size();
-  scoped_refptr<net::IOBuffer> challenge_buffer =
-      base::MakeRefCounted<net::IOBuffer>(challenge_buffer_length);
+  auto challenge_buffer =
+      base::MakeRefCounted<net::IOBufferWithSize>(challenge_buffer_length);
 
   int read = ReadExactLength(challenge_buffer.get(), challenge_buffer_length,
                              server_socket_.get());
@@ -1154,8 +1154,8 @@
   EXPECT_TRUE(MessageFramer::Serialize(test_message, &test_message_str));
 
   int test_message_length = test_message_str.size();
-  scoped_refptr<net::IOBuffer> test_message_buffer =
-      base::MakeRefCounted<net::IOBuffer>(test_message_length);
+  auto test_message_buffer =
+      base::MakeRefCounted<net::IOBufferWithSize>(test_message_length);
 
   EXPECT_CALL(handler_, OnWriteComplete(net::OK));
   socket_->transport()->SendMessage(
diff --git a/components/metrics/generate_expired_histograms_array.gni b/components/metrics/generate_expired_histograms_array.gni
index 3dc5a9e..47288b9 100644
--- a/components/metrics/generate_expired_histograms_array.gni
+++ b/components/metrics/generate_expired_histograms_array.gni
@@ -51,6 +51,7 @@
       "//tools/metrics/histograms/metadata/autofill/histograms.xml",
       "//tools/metrics/histograms/metadata/background/histograms.xml",
       "//tools/metrics/histograms/metadata/blink/histograms.xml",
+      "//tools/metrics/histograms/metadata/bluetooth/enums.xml",
       "//tools/metrics/histograms/metadata/bluetooth/histograms.xml",
       "//tools/metrics/histograms/metadata/bookmarks/enums.xml",
       "//tools/metrics/histograms/metadata/bookmarks/histograms.xml",
@@ -69,6 +70,7 @@
       "//tools/metrics/histograms/metadata/compose/enums.xml",
       "//tools/metrics/histograms/metadata/compose/histograms.xml",
       "//tools/metrics/histograms/metadata/compositing/histograms.xml",
+      "//tools/metrics/histograms/metadata/content/enums.xml",
       "//tools/metrics/histograms/metadata/content/histograms.xml",
       "//tools/metrics/histograms/metadata/content_creation/histograms.xml",
       "//tools/metrics/histograms/metadata/cookie/histograms.xml",
diff --git a/components/metrics/structured/histogram_util.cc b/components/metrics/structured/histogram_util.cc
index 433ae0d..381d5df 100644
--- a/components/metrics/structured/histogram_util.cc
+++ b/components/metrics/structured/histogram_util.cc
@@ -15,7 +15,8 @@
 }
 
 void LogEventRecordingState(EventRecordingState state) {
-  UMA_HISTOGRAM_ENUMERATION("UMA.StructuredMetrics.EventRecordingState", state);
+  UMA_HISTOGRAM_ENUMERATION("UMA.StructuredMetrics.EventRecordingState2",
+                            state);
 }
 
 void LogNumEventsInUpload(const int num_events) {
@@ -27,11 +28,6 @@
   UMA_HISTOGRAM_ENUMERATION("UMA.StructuredMetrics.KeyValidationState", state);
 }
 
-void LogIsEventRecordedUsingMojo(bool used_mojo_api) {
-  UMA_HISTOGRAM_BOOLEAN("UMA.StructuredMetrics.EventsRecordedUsingMojo",
-                        used_mojo_api);
-}
-
 void LogNumEventsRecordedBeforeInit(int num_events) {
   UMA_HISTOGRAM_COUNTS_100("UMA.StructuredMetrics.EventsRecordedBeforeInit",
                            num_events);
diff --git a/components/metrics/structured/histogram_util.h b/components/metrics/structured/histogram_util.h
index 3b45fe3..e0b3679 100644
--- a/components/metrics/structured/histogram_util.h
+++ b/components/metrics/structured/histogram_util.h
@@ -69,9 +69,6 @@
 // ProvideCurrentSessionData.
 void LogNumEventsInUpload(int num_events);
 
-// Logs that an event was recorded using the mojo API.
-void LogIsEventRecordedUsingMojo(bool used_mojo_api);
-
 // Logs the number of events that were recorded before device and user
 // cryptographic keys have been loaded to hash events. These events will be kept
 // in memory.
diff --git a/components/nacl/browser/pnacl_host.cc b/components/nacl/browser/pnacl_host.cc
index 6a77e676..d0aa820 100644
--- a/components/nacl/browser/pnacl_host.cc
+++ b/components/nacl/browser/pnacl_host.cc
@@ -406,7 +406,7 @@
   }
 
   buffer = base::MakeRefCounted<net::DrainableIOBuffer>(
-      base::MakeRefCounted<net::IOBuffer>(
+      base::MakeRefCounted<net::IOBufferWithSize>(
           base::checked_cast<size_t>(file_size)),
       base::checked_cast<size_t>(file_size));
   if (file->Read(0, buffer->data(), buffer->size()) != file_size) {
diff --git a/components/nacl/browser/pnacl_translation_cache.cc b/components/nacl/browser/pnacl_translation_cache.cc
index 85537bf7..bf59a214 100644
--- a/components/nacl/browser/pnacl_translation_cache.cc
+++ b/components/nacl/browser/pnacl_translation_cache.cc
@@ -252,7 +252,7 @@
         if (is_read_) {
           int bytes_to_transfer = entry_->GetDataSize(1);
           io_buf_ = base::MakeRefCounted<net::DrainableIOBuffer>(
-              base::MakeRefCounted<net::IOBuffer>(bytes_to_transfer),
+              base::MakeRefCounted<net::IOBufferWithSize>(bytes_to_transfer),
               bytes_to_transfer);
           ReadEntry(0, bytes_to_transfer);
         } else {
diff --git a/components/no_state_prefetch/renderer/no_state_prefetch_helper.cc b/components/no_state_prefetch/renderer/no_state_prefetch_helper.cc
index 6d63f92e..a22444b 100644
--- a/components/no_state_prefetch/renderer/no_state_prefetch_helper.cc
+++ b/components/no_state_prefetch/renderer/no_state_prefetch_helper.cc
@@ -10,8 +10,7 @@
 #include "content/public/renderer/render_frame.h"
 #include "content/public/renderer/render_thread.h"
 #include "third_party/blink/public/common/browser_interface_broker_proxy.h"
-#include "third_party/blink/public/web/web_frame.h"
-#include "third_party/blink/public/web/web_view.h"
+#include "third_party/blink/public/web/web_local_frame.h"
 
 namespace prerender {
 
@@ -27,9 +26,15 @@
 
 // static
 std::unique_ptr<blink::URLLoaderThrottle>
-NoStatePrefetchHelper::MaybeCreateThrottle(int render_frame_id) {
+NoStatePrefetchHelper::MaybeCreateThrottle(
+    const blink::LocalFrameToken& frame_token) {
+  blink::WebLocalFrame* web_frame =
+      blink::WebLocalFrame::FromFrameToken(frame_token);
+  if (!web_frame) {
+    return nullptr;
+  }
   content::RenderFrame* render_frame =
-      content::RenderFrame::FromRoutingID(render_frame_id);
+      content::RenderFrame::FromWebFrame(web_frame);
   auto* helper =
       render_frame
           ? NoStatePrefetchHelper::Get(render_frame->GetMainRenderFrame())
diff --git a/components/no_state_prefetch/renderer/no_state_prefetch_helper.h b/components/no_state_prefetch/renderer/no_state_prefetch_helper.h
index 33bf4ec..51c1bdb8 100644
--- a/components/no_state_prefetch/renderer/no_state_prefetch_helper.h
+++ b/components/no_state_prefetch/renderer/no_state_prefetch_helper.h
@@ -35,7 +35,7 @@
   // Configures and returns a new PrerenderURLLoaderThrottle instance if the
   // indicated frame has an associated NoStatePrefetchHelper.
   static std::unique_ptr<blink::URLLoaderThrottle> MaybeCreateThrottle(
-      int render_frame_id);
+      const blink::LocalFrameToken& frame_token);
 
   // Returns true if |render_frame| is currently prefetching.
   static bool IsPrefetching(const content::RenderFrame* render_frame);
diff --git a/components/omnibox/browser/BUILD.gn b/components/omnibox/browser/BUILD.gn
index 4ecd438a..d5c70b7 100644
--- a/components/omnibox/browser/BUILD.gn
+++ b/components/omnibox/browser/BUILD.gn
@@ -929,7 +929,6 @@
 mojom("mojo_bindings") {
   sources = [ "omnibox.mojom" ]
   webui_module_path = "/"
-  use_typescript_sources = true
 
   public_deps = [
     "//mojo/public/mojom/base",
diff --git a/components/openscreen_platform/net_udp_socket.cc b/components/openscreen_platform/net_udp_socket.cc
index aa4eef0..3f5b8a98 100644
--- a/components/openscreen_platform/net_udp_socket.cc
+++ b/components/openscreen_platform/net_udp_socket.cc
@@ -34,7 +34,7 @@
       udp_socket_(net::DatagramSocket::DEFAULT_BIND,
                   nullptr /* net_log */,
                   net::NetLogSource()),
-      read_buffer_(base::MakeRefCounted<net::IOBuffer>(
+      read_buffer_(base::MakeRefCounted<net::IOBufferWithSize>(
           openscreen::UdpPacket::kUdpMaxPacketSize)) {
   DVLOG(1) << __func__;
   DCHECK(client_);
@@ -174,7 +174,7 @@
     return;
   }
 
-  auto buffer = base::MakeRefCounted<net::IOBuffer>(length);
+  auto buffer = base::MakeRefCounted<net::IOBufferWithSize>(length);
   memcpy(buffer->data(), data, length);
 
   const int result = udp_socket_.SendTo(
diff --git a/components/optimization_guide/core/BUILD.gn b/components/optimization_guide/core/BUILD.gn
index 6ede424..796b000 100644
--- a/components/optimization_guide/core/BUILD.gn
+++ b/components/optimization_guide/core/BUILD.gn
@@ -114,7 +114,6 @@
 mojom("interfaces") {
   sources = [ "optimization_guide_common.mojom" ]
   webui_module_path = "/"
-  use_typescript_sources = true
   public_deps = [ "//mojo/public/mojom/base" ]
 }
 
diff --git a/components/optimization_guide/optimization_guide_internals/webui/BUILD.gn b/components/optimization_guide/optimization_guide_internals/webui/BUILD.gn
index 1c83e6c..d60c0dd 100644
--- a/components/optimization_guide/optimization_guide_internals/webui/BUILD.gn
+++ b/components/optimization_guide/optimization_guide_internals/webui/BUILD.gn
@@ -39,7 +39,6 @@
 mojom("mojo_bindings") {
   sources = [ "optimization_guide_internals.mojom" ]
   webui_module_path = "/"
-  use_typescript_sources = true
   public_deps = [
     "//components/optimization_guide/core:interfaces",
     "//mojo/public/mojom/base",
diff --git a/components/page_image_service/mojom/BUILD.gn b/components/page_image_service/mojom/BUILD.gn
index 67a0024..90cb8a8 100644
--- a/components/page_image_service/mojom/BUILD.gn
+++ b/components/page_image_service/mojom/BUILD.gn
@@ -12,5 +12,4 @@
   ]
 
   webui_module_path = ""
-  use_typescript_sources = true
 }
diff --git a/components/performance_manager/features.cc b/components/performance_manager/features.cc
index 8e2d959..44345cb 100644
--- a/components/performance_manager/features.cc
+++ b/components/performance_manager/features.cc
@@ -138,6 +138,10 @@
     &kProbabilisticProactiveDiscarding,
     "proactive_discarding_target_false_positive_percent", 35};
 
+const base::FeatureParam<base::TimeDelta> kProactiveDiscardingSamplingInterval{
+    &kProbabilisticProactiveDiscarding,
+    "proactive_discarding_sampling_interval", base::Minutes(10)};
+
 BASE_FEATURE(kBFCachePerformanceManagerPolicy,
              "BFCachePerformanceManagerPolicy",
              base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/components/performance_manager/performance_manager_tab_helper.cc b/components/performance_manager/performance_manager_tab_helper.cc
index bcd096f8..c45ebad 100644
--- a/components/performance_manager/performance_manager_tab_helper.cc
+++ b/components/performance_manager/performance_manager_tab_helper.cc
@@ -342,7 +342,14 @@
     content::RenderFrameHost* render_frame_host,
     bool is_audible) {
   auto frame_it = frames_.find(render_frame_host);
-  CHECK(frame_it != frames_.end());
+  // Ideally this would be a DCHECK, but it's possible to receive a notification
+  // for an unknown frame.
+  // TODO(1499525): Figure out how.
+  if (frame_it == frames_.end()) {
+    // We should only ever see this for a frame transitioning to *not* audible.
+    DCHECK(!is_audible);
+    return;
+  }
   auto* frame_node = frame_it->second.get();
   PerformanceManagerImpl::CallOnGraphImpl(
       FROM_HERE, base::BindOnce(&FrameNodeImpl::SetIsAudible,
diff --git a/components/performance_manager/public/features.h b/components/performance_manager/public/features.h
index b631d34..d53e53bb 100644
--- a/components/performance_manager/public/features.h
+++ b/components/performance_manager/public/features.h
@@ -140,6 +140,11 @@
 extern const base::FeatureParam<int>
     kProactiveDiscardingTargetFalsePositivePercent;
 
+// The time interval at which the Proactive Discarder evaluates background tabs
+// for discard eligibility.
+extern const base::FeatureParam<base::TimeDelta>
+    kProactiveDiscardingSamplingInterval;
+
 // Policy that evicts the BFCache of pages that become non visible or the
 // BFCache of all pages when the system is under memory pressure.
 BASE_DECLARE_FEATURE(kBFCachePerformanceManagerPolicy);
diff --git a/components/performance_manager/public/resource_attribution/query_results.h b/components/performance_manager/public/resource_attribution/query_results.h
index 6f77ae3..432c7b5 100644
--- a/components/performance_manager/public/resource_attribution/query_results.h
+++ b/components/performance_manager/public/resource_attribution/query_results.h
@@ -6,9 +6,13 @@
 #define COMPONENTS_PERFORMANCE_MANAGER_PUBLIC_RESOURCE_ATTRIBUTION_QUERY_RESULTS_H_
 
 #include <map>
+#include <vector>
 
 #include "base/time/time.h"
+#include "base/types/optional_ref.h"
 #include "components/performance_manager/public/resource_attribution/resource_contexts.h"
+#include "components/performance_manager/public/resource_attribution/type_helpers.h"
+#include "third_party/abseil-cpp/absl/types/variant.h"
 
 namespace performance_manager::resource_attribution {
 
@@ -41,7 +45,43 @@
   base::TimeDelta cumulative_cpu;
 };
 
-using QueryResultMap = std::map<ResourceContext, CPUTimeResult>;
+using QueryResult = absl::variant<CPUTimeResult>;
+using QueryResults = std::vector<QueryResult>;
+using QueryResultMap = std::map<ResourceContext, QueryResults>;
+
+// Returns true iff `results` contains any result of type T.
+template <typename T>
+constexpr bool ContainsResult(const QueryResults& results) {
+  return internal::VariantVectorContains<T>(results);
+}
+
+// If `results` contains any result of type T, returns a reference to that
+// result. Otherwise, returns nullopt.
+//
+// Note that a non-const ref can't be returned from a const QueryResults. The
+// following uses are valid:
+//
+//   base::optional_ref<CPUTimeResult> result =
+//       AsResult<CPUTimeResult>(mutable_query_results);
+//
+//   base::optional_ref<const CPUTimeResult> result =
+//       AsResult<CPUTimeResult>(const_query_results);
+//
+//   base::optional_ref<const CPUTimeResult> result =
+//       AsResult<const CPUTimeResult>(const_or_mutable_query_results);
+//
+// To make a copy of the result, use one of:
+//
+//    absl::optional<T> result = AsResult<T>(query_results).CopyAsOptional();
+//    T result = AsResult<T>(query_results).value();  // Crashes on nullopt.
+template <typename T>
+constexpr base::optional_ref<T> AsResult(QueryResults& results) {
+  return internal::GetFromVariantVector<T>(results);
+}
+template <typename T>
+constexpr base::optional_ref<const T> AsResult(const QueryResults& results) {
+  return internal::GetFromVariantVector<T>(results);
+}
 
 }  // namespace performance_manager::resource_attribution
 
diff --git a/components/performance_manager/public/resource_attribution/type_helpers.h b/components/performance_manager/public/resource_attribution/type_helpers.h
index ee1a9304..9fcdcb6 100644
--- a/components/performance_manager/public/resource_attribution/type_helpers.h
+++ b/components/performance_manager/public/resource_attribution/type_helpers.h
@@ -8,7 +8,9 @@
 #include <type_traits>
 
 #include "base/notreached.h"
+#include "base/types/optional_ref.h"
 #include "base/types/optional_util.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/abseil-cpp/absl/types/variant.h"
 
 namespace performance_manager::resource_attribution {
@@ -39,6 +41,79 @@
   return base::OptionalFromPtr(absl::get_if<T>(&v));
 }
 
+// Returns true iff any element of `vs`, a vector of variants of type V,
+// currently holds an alternative of type T.
+
+// Look up `T` in `variant<T, ...>`.
+template <typename T, typename V, EnableIfIsVariantAlternative<T, V> = true>
+constexpr bool VariantVectorContains(const std::vector<V>& vs) {
+  for (const V& v : vs) {
+    if (absl::holds_alternative<T>(v)) {
+      return true;
+    }
+  }
+  return false;
+}
+
+// Look up `const T` in `variant<T, ...>`.
+template <typename ConstT,
+          typename V,
+          std::enable_if_t<std::is_const_v<ConstT>, bool> = true,
+          EnableIfIsVariantAlternative<std::remove_const_t<ConstT>, V> = true>
+constexpr bool VariantVectorContains(const std::vector<V>& vs) {
+  for (const V& v : vs) {
+    if (absl::holds_alternative<std::remove_const_t<ConstT>>(v)) {
+      return true;
+    }
+  }
+  return false;
+}
+
+// If at least one element of `vs`, a vector of variants of type V, currently
+// holds an alternative of type T, returns a reference to the first such
+// element. Otherwise returns nullopt.
+
+// Look up `T` in `variant<T, ...>`, return `optional_ref<T>`.
+template <typename T, typename V, EnableIfIsVariantAlternative<T, V> = true>
+constexpr base::optional_ref<T> GetFromVariantVector(std::vector<V>& vs) {
+  for (V& v : vs) {
+    T* t = absl::get_if<T>(&v);
+    if (t) {
+      return t;
+    }
+  }
+  return absl::nullopt;
+}
+
+// Look up `T` in `variant<T, ...>`, return `optional_ref<const T>`.
+template <typename T, typename V, EnableIfIsVariantAlternative<T, V> = true>
+constexpr base::optional_ref<const T> GetFromVariantVector(
+    const std::vector<V>& vs) {
+  for (const V& v : vs) {
+    const T* t = absl::get_if<T>(&v);
+    if (t) {
+      return t;
+    }
+  }
+  return absl::nullopt;
+}
+
+// Look up `const T` in `variant<T, ...>`, return `optional_ref<const T>`.
+template <typename ConstT,
+          typename V,
+          std::enable_if_t<std::is_const_v<ConstT>, bool> = true,
+          EnableIfIsVariantAlternative<std::remove_const_t<ConstT>, V> = true>
+constexpr base::optional_ref<ConstT> GetFromVariantVector(
+    const std::vector<V>& vs) {
+  for (const V& v : vs) {
+    ConstT* t = absl::get_if<std::remove_const_t<ConstT>>(&v);
+    if (t) {
+      return t;
+    }
+  }
+  return absl::nullopt;
+}
+
 // Extended comparators for variants, allowing a variant to be compared with any
 // alternative held in it.
 
diff --git a/components/performance_manager/resource_attribution/query_scheduler.cc b/components/performance_manager/resource_attribution/query_scheduler.cc
index 2bc1fb8..de3167a 100644
--- a/components/performance_manager/resource_attribution/query_scheduler.cc
+++ b/components/performance_manager/resource_attribution/query_scheduler.cc
@@ -47,11 +47,15 @@
     scoped_refptr<base::TaskRunner> task_runner) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   CHECK(cpu_monitor_.IsMonitoring());
-  // TODO(crbug.com/1471683): Keep track of which ResourceContexts are being
-  // queried, and return only those from `cpu_monitor_`.
+  QueryResultMap results;
+  for (auto& [context, cpu_time_result] :
+       cpu_monitor_.UpdateAndGetCPUMeasurements()) {
+    // TODO(crbug.com/1471683): Filter the results by ResourceContexts in the
+    // request.
+    results[context].push_back(std::move(cpu_time_result));
+  }
   task_runner->PostTask(
-      FROM_HERE, base::BindOnce(std::move(callback),
-                                cpu_monitor_.UpdateAndGetCPUMeasurements()));
+      FROM_HERE, base::BindOnce(std::move(callback), std::move(results)));
 }
 
 CPUMeasurementMonitor& QueryScheduler::GetCPUMonitorForTesting() {
diff --git a/components/performance_manager/resource_attribution/type_helpers_unittest.cc b/components/performance_manager/resource_attribution/type_helpers_unittest.cc
index 4894197b..d6c5b69 100644
--- a/components/performance_manager/resource_attribution/type_helpers_unittest.cc
+++ b/components/performance_manager/resource_attribution/type_helpers_unittest.cc
@@ -5,7 +5,9 @@
 #include "components/performance_manager/public/resource_attribution/type_helpers.h"
 
 #include <type_traits>
+#include <vector>
 
+#include "base/types/optional_ref.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
@@ -42,6 +44,21 @@
   }
 };
 
+template <typename T>
+::testing::AssertionResult TestOptionalConstRef(base::optional_ref<T> opt_ref,
+                                                auto expected_value) {
+  static_assert(std::is_const_v<T>, "Expected optional_ref<const T>");
+  if (!opt_ref.has_value()) {
+    return ::testing::AssertionFailure() << "optional_ref contains nullopt";
+  }
+  if (opt_ref.value() != expected_value) {
+    return ::testing::AssertionFailure()
+           << "optional_ref had wrong value: expected " << expected_value
+           << ", got " << opt_ref.value();
+  }
+  return ::testing::AssertionSuccess();
+}
+
 TEST(ResourceAttributionTypeHelpersTest, IsVariantAlternativeEmptyVariant) {
   using Tester = VariantTester<absl::variant<>>;
   EXPECT_FALSE(Tester::IsVariantAlternativeValue<int>());
@@ -104,6 +121,98 @@
   EXPECT_EQ(GetAsOptional<int>(v), 1);
 }
 
+// Note: GetFromVariantVector returns `base::optional_ref`, which doesn't define
+// all comparators, so need to match against the contained values.
+
+TEST(ResourceAttributionTypeHelpersTest, VariantVectorSingleAlternative) {
+  using TestVariant = absl::variant<int>;
+  std::vector<TestVariant> vs;
+  EXPECT_FALSE(VariantVectorContains<int>(vs));
+  EXPECT_FALSE(GetFromVariantVector<int>(vs).has_value());
+  vs.push_back(1);
+  EXPECT_TRUE(VariantVectorContains<int>(vs));
+  ASSERT_TRUE(GetFromVariantVector<int>(vs).has_value());
+  EXPECT_EQ(GetFromVariantVector<int>(vs).value(), 1);
+  // First matching element should be returned.
+  vs.push_back(2);
+  EXPECT_TRUE(VariantVectorContains<int>(vs));
+  ASSERT_TRUE(GetFromVariantVector<int>(vs).has_value());
+  EXPECT_EQ(GetFromVariantVector<int>(vs).value(), 1);
+}
+
+TEST(ResourceAttributionTypeHelpersTest, VariantVectorManyAlternatives) {
+  using TestVariant = absl::variant<int, double>;
+  std::vector<TestVariant> vs;
+  EXPECT_FALSE(VariantVectorContains<int>(vs));
+  EXPECT_FALSE(GetFromVariantVector<int>(vs).has_value());
+  EXPECT_FALSE(VariantVectorContains<double>(vs));
+  EXPECT_FALSE(GetFromVariantVector<double>(vs).has_value());
+  vs.push_back(1);
+  EXPECT_TRUE(VariantVectorContains<int>(vs));
+  ASSERT_TRUE(GetFromVariantVector<int>(vs).has_value());
+  EXPECT_EQ(GetFromVariantVector<int>(vs).value(), 1);
+  EXPECT_FALSE(VariantVectorContains<double>(vs));
+  EXPECT_FALSE(GetFromVariantVector<double>(vs).has_value());
+  vs.push_back(2.0);
+  EXPECT_TRUE(VariantVectorContains<int>(vs));
+  ASSERT_TRUE(GetFromVariantVector<int>(vs).has_value());
+  EXPECT_EQ(GetFromVariantVector<int>(vs).value(), 1);
+  EXPECT_TRUE(VariantVectorContains<double>(vs));
+  ASSERT_TRUE(GetFromVariantVector<double>(vs).has_value());
+  EXPECT_EQ(GetFromVariantVector<double>(vs).value(), 2.0);
+  vs.erase(vs.begin());
+  EXPECT_FALSE(VariantVectorContains<int>(vs));
+  EXPECT_FALSE(GetFromVariantVector<int>(vs).has_value());
+  EXPECT_TRUE(VariantVectorContains<double>(vs));
+  ASSERT_TRUE(GetFromVariantVector<double>(vs).has_value());
+  EXPECT_EQ(GetFromVariantVector<double>(vs).value(), 2.0);
+}
+
+TEST(ResourceAttributionTypeHelpersTest, VariantVectorWithMonostate) {
+  using TestVariant = absl::variant<absl::monostate, int>;
+  std::vector<TestVariant> vs;
+  EXPECT_FALSE(VariantVectorContains<int>(vs));
+  EXPECT_FALSE(GetFromVariantVector<int>(vs).has_value());
+  vs.push_back(TestVariant{});
+  EXPECT_FALSE(VariantVectorContains<int>(vs));
+  EXPECT_FALSE(GetFromVariantVector<int>(vs).has_value());
+  vs.push_back(1);
+  EXPECT_TRUE(VariantVectorContains<int>(vs));
+  ASSERT_TRUE(GetFromVariantVector<int>(vs).has_value());
+  EXPECT_EQ(GetFromVariantVector<int>(vs).value(), 1);
+}
+
+TEST(ResourceAttributionTypeHelpersTest, VariantVectorConst) {
+  using TestVariant = absl::variant<const int, double>;
+  std::vector<TestVariant> mutable_vec{1, 2.3};
+  const std::vector<TestVariant> const_vec = {1, 2.3};
+
+  // Can never mutate the `const int` element. (GetFromVariantVector<int>(...)
+  // fails to compile.)
+  EXPECT_TRUE(VariantVectorContains<const int>(mutable_vec));
+  EXPECT_TRUE(
+      TestOptionalConstRef(GetFromVariantVector<const int>(mutable_vec), 1));
+  EXPECT_TRUE(
+      TestOptionalConstRef(GetFromVariantVector<const int>(const_vec), 1));
+
+  // Can only mutate the `double` element in `mutable_vec`.
+  // GetFromVariantVector<double>(...) returns optional_ref<const double> in
+  // others.
+  EXPECT_TRUE(VariantVectorContains<double>(mutable_vec));
+  ASSERT_TRUE(GetFromVariantVector<double>(mutable_vec).has_value());
+  GetFromVariantVector<double>(mutable_vec).value() = 4.5;
+  EXPECT_EQ(GetFromVariantVector<double>(mutable_vec).value(), 4.5);
+  EXPECT_TRUE(TestOptionalConstRef(
+      GetFromVariantVector<const double>(mutable_vec), 4.5));
+
+  EXPECT_TRUE(VariantVectorContains<double>(const_vec));
+  EXPECT_TRUE(
+      TestOptionalConstRef(GetFromVariantVector<double>(const_vec), 2.3));
+  EXPECT_TRUE(VariantVectorContains<const double>(const_vec));
+  EXPECT_TRUE(
+      TestOptionalConstRef(GetFromVariantVector<const double>(const_vec), 2.3));
+}
+
 // Can't test comparators with absl::variant<> because it can't be
 // instantiated.
 
diff --git a/components/permissions_strings.grdp b/components/permissions_strings.grdp
index e76fe12..43114e4a 100644
--- a/components/permissions_strings.grdp
+++ b/components/permissions_strings.grdp
@@ -371,13 +371,13 @@
     You have allowed <ph name="permission">$1<ex>camera</ex></ph> on <ph name="Origin">$2<ex>www.google.com</ex></ph>
   </message>
     <message name="IDS_EMBEDDED_PROMPT_PREVIOUSLY_NOT_ALLOWED" desc="Text informing the user that they previously denied permission to the site">
-    You previously didn't allow <ph name="permission">$1<ex>camera</ex></ph> on <ph name="Origin">$1<ex>www.google.com</ex></ph>
+    You previously didn't allow <ph name="permission">$1<ex>camera</ex></ph> on <ph name="Origin">$2<ex>www.google.com</ex></ph>
   </message>
   <message name ="IDS_PERMISSION_OFF_FOR_CHROME" desc="Text informing the user that they have turned the permission off for chrome">
     You've turned <ph name="permission">$1<ex>camera</ex></ph> off for Chrome.
   </message>
     <message name ="IDS_PERMISSION_CHROME_NEEDS_PERMISSION" desc="Text informing the user in the background that Chrome needs a permission in order to use it on the site the user is visiting">
-    Chrome needs your <ph name="permission">$1<ex>camera</ex></ph> to use it on <ph name="Origin">$1<ex>www.google.com</ex></ph>
+      To use your <ph name="permission">$1<ex>camera</ex></ph> on this site, you need to give Chrome access
   </message>
   <message name="IDS_CAMERA_PERMISSION_NAME_FRAGMENT" desc="Text fragment identifying the camera permission">
     camera
diff --git a/components/permissions_strings_grdp/IDS_EMBEDDED_PROMPT_PREVIOUSLY_NOT_ALLOWED.png.sha1 b/components/permissions_strings_grdp/IDS_EMBEDDED_PROMPT_PREVIOUSLY_NOT_ALLOWED.png.sha1
index 5df6eb4..3d2f702 100644
--- a/components/permissions_strings_grdp/IDS_EMBEDDED_PROMPT_PREVIOUSLY_NOT_ALLOWED.png.sha1
+++ b/components/permissions_strings_grdp/IDS_EMBEDDED_PROMPT_PREVIOUSLY_NOT_ALLOWED.png.sha1
@@ -1 +1 @@
-23ba382603c7c838ba78dd1216a067593c1df229
\ No newline at end of file
+eeda47ba92a838f273d9c05d19b6184c744d4089
\ No newline at end of file
diff --git a/components/permissions_strings_grdp/IDS_PERMISSION_CHROME_NEEDS_PERMISSION.png.sha1 b/components/permissions_strings_grdp/IDS_PERMISSION_CHROME_NEEDS_PERMISSION.png.sha1
index 2faa184..ed5d7922 100644
--- a/components/permissions_strings_grdp/IDS_PERMISSION_CHROME_NEEDS_PERMISSION.png.sha1
+++ b/components/permissions_strings_grdp/IDS_PERMISSION_CHROME_NEEDS_PERMISSION.png.sha1
@@ -1 +1 @@
-8476024e2fd02e9a4a566938e21a4cedfdc736cc
\ No newline at end of file
+169e9c51d2463cca387bc6f2b1223b752b2da231
\ No newline at end of file
diff --git a/components/safe_browsing/content/browser/browser_url_loader_throttle.cc b/components/safe_browsing/content/browser/browser_url_loader_throttle.cc
index eb7f5a6..4b2202f60 100644
--- a/components/safe_browsing/content/browser/browser_url_loader_throttle.cc
+++ b/components/safe_browsing/content/browser/browser_url_loader_throttle.cc
@@ -140,9 +140,8 @@
       !url_checker_delegate ||
       url_checker_delegate->ShouldSkipRequestCheck(
           url, frame_tree_node_id_,
-          content::ChildProcessHost::kInvalidUniqueID /* render_process_id */,
-          MSG_ROUTING_NONE /* render_frame_id */,
-          originated_from_service_worker);
+          /*render_process_id=*/content::ChildProcessHost::kInvalidUniqueID,
+          /*render_frame_token=*/std::nullopt, originated_from_service_worker);
   if (skip_checks_) {
     if (base::FeatureList::IsEnabled(safe_browsing::kSafeBrowsingOnUIThread)) {
       throttle_->SkipChecks();
@@ -168,7 +167,7 @@
     url_checker_ = std::make_unique<SafeBrowsingUrlCheckerImpl>(
         headers, load_flags, request_destination, has_user_gesture,
         url_checker_delegate, web_contents_getter_, nullptr,
-        content::ChildProcessHost::kInvalidUniqueID, MSG_ROUTING_NONE,
+        content::ChildProcessHost::kInvalidUniqueID, std::nullopt,
         frame_tree_node_id_, url_real_time_lookup_enabled_,
         can_urt_check_subresource_url_, can_check_db_,
         can_check_high_confidence_allowlist_, url_lookup_service_metric_suffix_,
diff --git a/components/safe_browsing/content/browser/browser_url_loader_throttle_unittest.cc b/components/safe_browsing/content/browser/browser_url_loader_throttle_unittest.cc
index eadcd64..c468ec265 100644
--- a/components/safe_browsing/content/browser/browser_url_loader_throttle_unittest.cc
+++ b/components/safe_browsing/content/browser/browser_url_loader_throttle_unittest.cc
@@ -62,11 +62,12 @@
 
   SafeBrowsingDatabaseManager* GetDatabaseManager() override { return nullptr; }
 
-  bool ShouldSkipRequestCheck(const GURL& original_url,
-                              int frame_tree_node_id,
-                              int render_process_id,
-                              int render_frame_id,
-                              bool originated_from_service_worker) override {
+  bool ShouldSkipRequestCheck(
+      const GURL& original_url,
+      int frame_tree_node_id,
+      int render_process_id,
+      base::optional_ref<const base::UnguessableToken> render_frame_token,
+      bool originated_from_service_worker) override {
     return should_skip_request_check_;
   }
   void EnableSkipRequestCheck() { should_skip_request_check_ = true; }
@@ -175,7 +176,7 @@
       const base::RepeatingCallback<content::WebContents*()>&
           web_contents_getter,
       UnsafeResource::RenderProcessId render_process_id,
-      UnsafeResource::RenderFrameId render_frame_id,
+      const UnsafeResource::RenderFrameToken& render_frame_token,
       UnsafeResource::FrameTreeNodeId frame_tree_node_id,
       bool url_real_time_lookup_enabled,
       bool can_urt_check_subresource_url,
@@ -199,7 +200,7 @@
                                    web_contents_getter,
                                    /*weak_web_state=*/nullptr,
                                    render_process_id,
-                                   render_frame_id,
+                                   render_frame_token,
                                    frame_tree_node_id,
                                    url_real_time_lookup_enabled,
                                    can_urt_check_subresource_url,
@@ -310,7 +311,7 @@
             network::mojom::RequestDestination::kDocument,
             /*has_user_gesture=*/false, url_checker_delegate_,
             mock_web_contents_getter.Get(), UnsafeResource::kNoRenderProcessId,
-            UnsafeResource::kNoRenderFrameId,
+            /*render_frame_token=*/std::nullopt,
             UnsafeResource::kNoFrameTreeNodeId, url_real_time_lookup_enabled,
             /*can_urt_check_subresource_url=*/false, /*can_check_db=*/true,
             /*can_check_high_confidence_allowlist=*/true,
diff --git a/components/safe_browsing/content/browser/client_side_detection_host.cc b/components/safe_browsing/content/browser/client_side_detection_host.cc
index 2db829c6..8d339c2 100644
--- a/components/safe_browsing/content/browser/client_side_detection_host.cc
+++ b/components/safe_browsing/content/browser/client_side_detection_host.cc
@@ -743,8 +743,9 @@
   if (is_phishing) {
     DCHECK(web_contents());
     if (ui_manager_.get()) {
+      auto* primary_main_frame = web_contents()->GetPrimaryMainFrame();
       const content::GlobalRenderFrameHostId primary_main_frame_id =
-          web_contents()->GetPrimaryMainFrame()->GetGlobalId();
+          primary_main_frame->GetGlobalId();
 
       security_interstitials::UnsafeResource resource;
       resource.url = phishing_url;
@@ -754,7 +755,7 @@
       resource.threat_source =
           safe_browsing::ThreatSource::CLIENT_SIDE_DETECTION;
       resource.render_process_id = primary_main_frame_id.child_id;
-      resource.render_frame_id = primary_main_frame_id.frame_routing_id;
+      resource.render_frame_token = primary_main_frame->GetFrameToken().value();
       if (!ui_manager_->IsAllowlisted(resource)) {
         // We need to stop any pending navigations, otherwise the interstitial
         // might not get created properly.
diff --git a/components/safe_browsing/content/browser/mojo_safe_browsing_impl.cc b/components/safe_browsing/content/browser/mojo_safe_browsing_impl.cc
index 1e954d0..9352d55 100644
--- a/components/safe_browsing/content/browser/mojo_safe_browsing_impl.cc
+++ b/components/safe_browsing/content/browser/mojo_safe_browsing_impl.cc
@@ -25,11 +25,17 @@
 namespace safe_browsing {
 namespace {
 
-content::WebContents* GetWebContentsFromID(int render_process_id,
-                                           int render_frame_id) {
+content::WebContents* GetWebContentsFromToken(
+    int render_process_id,
+    const std::optional<blink::LocalFrameToken>& frame_token) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+  if (!frame_token) {
+    return nullptr;
+  }
   content::RenderFrameHost* render_frame_host =
-      content::RenderFrameHost::FromID(render_process_id, render_frame_id);
+      content::RenderFrameHost::FromFrameToken(
+          content::GlobalRenderFrameHostToken(render_process_id,
+                                              frame_token.value()));
   if (!render_frame_host) {
     return nullptr;
   }
@@ -132,7 +138,7 @@
 }
 
 void MojoSafeBrowsingImpl::CreateCheckerAndCheck(
-    int32_t render_frame_id,
+    const std::optional<blink::LocalFrameToken>& frame_token,
     mojo::PendingReceiver<mojom::SafeBrowsingUrlChecker> receiver,
     const GURL& url,
     const std::string& method,
@@ -147,9 +153,13 @@
           ? content::BrowserThread::UI
           : content::BrowserThread::IO);
 
+  std::optional<base::UnguessableToken> sb_frame_token;
+  if (frame_token) {
+    sb_frame_token = frame_token->value();
+  }
   if (delegate_->ShouldSkipRequestCheck(
           url, content::RenderFrameHost::kNoFrameTreeNodeId, render_process_id_,
-          render_frame_id, originated_from_service_worker)) {
+          sb_frame_token, originated_from_service_worker)) {
     // Ensure that we don't destroy an uncalled CreateCheckerAndCheckCallback
     if (callback) {
       std::move(callback).Run(mojo::NullReceiver(), true /* proceed */,
@@ -170,9 +180,9 @@
   auto checker_impl = std::make_unique<SafeBrowsingUrlCheckerImpl>(
       headers, static_cast<int>(load_flags), request_destination,
       has_user_gesture, delegate_,
-      base::BindRepeating(&GetWebContentsFromID, render_process_id_,
-                          static_cast<int>(render_frame_id)),
-      /*weak_web_state=*/nullptr, render_process_id_, render_frame_id,
+      base::BindRepeating(&GetWebContentsFromToken, render_process_id_,
+                          frame_token),
+      /*weak_web_state=*/nullptr, render_process_id_, sb_frame_token,
       content::RenderFrameHost::kNoFrameTreeNodeId,
       /*url_real_time_lookup_enabled=*/false,
       /*can_urt_check_subresource_url=*/false,
diff --git a/components/safe_browsing/content/browser/mojo_safe_browsing_impl.h b/components/safe_browsing/content/browser/mojo_safe_browsing_impl.h
index 22a7718a..473962c 100644
--- a/components/safe_browsing/content/browser/mojo_safe_browsing_impl.h
+++ b/components/safe_browsing/content/browser/mojo_safe_browsing_impl.h
@@ -51,7 +51,7 @@
 
   // mojom::SafeBrowsing implementation.
   void CreateCheckerAndCheck(
-      int32_t render_frame_id,
+      const std::optional<blink::LocalFrameToken>& frame_token,
       mojo::PendingReceiver<mojom::SafeBrowsingUrlChecker> receiver,
       const GURL& url,
       const std::string& method,
diff --git a/components/safe_browsing/content/browser/triggers/ad_sampler_trigger.cc b/components/safe_browsing/content/browser/triggers/ad_sampler_trigger.cc
index 12091c2..282842a 100644
--- a/components/safe_browsing/content/browser/triggers/ad_sampler_trigger.cc
+++ b/components/safe_browsing/content/browser/triggers/ad_sampler_trigger.cc
@@ -134,13 +134,14 @@
   SBErrorOptions error_options =
       TriggerManager::GetSBErrorDisplayOptions(*prefs_, web_contents());
 
+  auto* primary_main_frame = web_contents()->GetPrimaryMainFrame();
   const content::GlobalRenderFrameHostId primary_main_frame_id =
-      web_contents()->GetPrimaryMainFrame()->GetGlobalId();
+      primary_main_frame->GetGlobalId();
   security_interstitials::UnsafeResource resource;
   resource.threat_type = SB_THREAT_TYPE_AD_SAMPLE;
   resource.url = web_contents()->GetURL();
   resource.render_process_id = primary_main_frame_id.child_id;
-  resource.render_frame_id = primary_main_frame_id.frame_routing_id;
+  resource.render_frame_token = primary_main_frame->GetFrameToken().value();
 
   if (!trigger_manager_->StartCollectingThreatDetails(
           TriggerType::AD_SAMPLE, web_contents(), resource, url_loader_factory_,
diff --git a/components/safe_browsing/content/browser/triggers/suspicious_site_trigger.cc b/components/safe_browsing/content/browser/triggers/suspicious_site_trigger.cc
index 595368a..ce274aa 100644
--- a/components/safe_browsing/content/browser/triggers/suspicious_site_trigger.cc
+++ b/components/safe_browsing/content/browser/triggers/suspicious_site_trigger.cc
@@ -95,7 +95,7 @@
   resource.threat_type = SB_THREAT_TYPE_SUSPICIOUS_SITE;
   resource.url = primary_rfh.GetLastCommittedURL();
   resource.render_process_id = primary_rfh_id.child_id;
-  resource.render_frame_id = primary_rfh_id.frame_routing_id;
+  resource.render_frame_token = primary_rfh.GetFrameToken().value();
 
   TriggerManagerReason reason;
   if (!trigger_manager_->StartCollectingThreatDetailsWithReason(
diff --git a/components/safe_browsing/content/browser/ui_manager.cc b/components/safe_browsing/content/browser/ui_manager.cc
index 42967cac..f2a8ff8 100644
--- a/components/safe_browsing/content/browser/ui_manager.cc
+++ b/components/safe_browsing/content/browser/ui_manager.cc
@@ -126,9 +126,13 @@
   // whether SB was triggered for a frame navigation or a document's subresource
   // load respectively. We consider both cases here. Also, we need to cancel
   // corresponding prerenders for both case.
-  const content::GlobalRenderFrameHostId rfh_id(resource.render_process_id,
-                                                resource.render_frame_id);
-  content::RenderFrameHost* rfh = content::RenderFrameHost::FromID(rfh_id);
+  content::RenderFrameHost* rfh = nullptr;
+  if (resource.render_frame_token) {
+    rfh = content::RenderFrameHost::FromFrameToken(
+        content::GlobalRenderFrameHostToken(
+            resource.render_process_id,
+            blink::LocalFrameToken(resource.render_frame_token.value())));
+  }
 
   // Handle subresource load in prerendered pages.
   if (rfh && rfh->GetLifecycleState() ==
@@ -200,9 +204,13 @@
   content::WebContents* web_contents =
       security_interstitials::GetWebContentsForResource(resource);
   auto determine_if_is_prerender = [resource, web_contents]() {
-    const content::GlobalRenderFrameHostId rfh_id(resource.render_process_id,
-                                                  resource.render_frame_id);
-    content::RenderFrameHost* rfh = content::RenderFrameHost::FromID(rfh_id);
+    content::RenderFrameHost* rfh = nullptr;
+    if (resource.render_frame_token) {
+      rfh = content::RenderFrameHost::FromFrameToken(
+          content::GlobalRenderFrameHostToken(
+              resource.render_process_id,
+              blink::LocalFrameToken(resource.render_frame_token.value())));
+    }
     return web_contents->IsPrerenderedFrame(resource.frame_tree_node_id) ||
            (rfh && rfh->GetLifecycleState() ==
                        content::RenderFrameHost::LifecycleState::kPrerendering);
diff --git a/components/safe_browsing/content/browser/ui_manager_unittest.cc b/components/safe_browsing/content/browser/ui_manager_unittest.cc
index 83006fc..b42d9941 100644
--- a/components/safe_browsing/content/browser/ui_manager_unittest.cc
+++ b/components/safe_browsing/content/browser/ui_manager_unittest.cc
@@ -264,20 +264,25 @@
 
   security_interstitials::UnsafeResource MakeUnsafeResource(
       const char* url,
+      bool is_subresource) {
+    auto* primary_main_frame = web_contents()->GetPrimaryMainFrame();
+    return MakeUnsafeResource(url, is_subresource,
+                              primary_main_frame->GetGlobalId(),
+                              primary_main_frame->GetFrameToken());
+  }
+
+  // TODO(crbug.com/1410253): Delete parameter once the experiment is
+  // complete.
+  security_interstitials::UnsafeResource MakeUnsafeResource(
+      const char* url,
       bool is_subresource,
-      // TODO(crbug.com/1410253): Delete parameter once the experiment is
-      // complete.
-      absl::optional<content::GlobalRenderFrameHostId>
-          override_primary_main_frame_id = absl::nullopt) {
-    const content::GlobalRenderFrameHostId primary_main_frame_id =
-        override_primary_main_frame_id.has_value()
-            ? override_primary_main_frame_id.value()
-            : web_contents()->GetPrimaryMainFrame()->GetGlobalId();
+      content::GlobalRenderFrameHostId frame_id,
+      const blink::LocalFrameToken& frame_token) {
     security_interstitials::UnsafeResource resource;
     resource.url = GURL(url);
     resource.is_subresource = is_subresource;
-    resource.render_process_id = primary_main_frame_id.child_id;
-    resource.render_frame_id = primary_main_frame_id.frame_routing_id;
+    resource.render_process_id = frame_id.child_id;
+    resource.render_frame_token = frame_token.value();
     resource.threat_type = SB_THREAT_TYPE_URL_MALWARE;
     return resource;
   }
@@ -668,10 +673,13 @@
     // Ineligible: No web contents.
     const content::GlobalRenderFrameHostId primary_main_frame_id =
         web_contents()->GetPrimaryMainFrame()->GetGlobalId();
+    auto primary_main_frame_token =
+        web_contents()->GetPrimaryMainFrame()->GetFrameToken();
     DeleteContents();
-    security_interstitials::UnsafeResource resource = MakeUnsafeResource(
-        kBadURL, /*is_subresource=*/false,
-        /*override_primary_main_frame_id=*/primary_main_frame_id);
+    security_interstitials::UnsafeResource resource =
+        MakeUnsafeResource(kBadURL, /*is_subresource=*/false,
+                           /*frame_id=*/primary_main_frame_id,
+                           /*frame_token=*/primary_main_frame_token);
     run_test(/*expect_is_eligible=*/false, /*resource=*/resource);
   }
 }
@@ -686,7 +694,7 @@
   // handle.
   content::GlobalRenderFrameHostId invalid_rfh_id;
   resource.render_process_id = invalid_rfh_id.child_id;
-  resource.render_frame_id = invalid_rfh_id.frame_routing_id;
+  resource.render_frame_token = base::UnguessableToken::Create();
   ASSERT_FALSE(security_interstitials::GetWebContentsForResource(resource));
 
   EXPECT_FALSE(IsAllowlisted(resource));
diff --git a/components/safe_browsing/content/browser/web_api_handshake_checker.cc b/components/safe_browsing/content/browser/web_api_handshake_checker.cc
index 4ab4b6c..5d2bd2e 100644
--- a/components/safe_browsing/content/browser/web_api_handshake_checker.cc
+++ b/components/safe_browsing/content/browser/web_api_handshake_checker.cc
@@ -52,7 +52,7 @@
         url_checker_delegate->ShouldSkipRequestCheck(
             url, frame_tree_node_id_,
             /*render_process_id=*/content::ChildProcessHost::kInvalidUniqueID,
-            /*render_frame_id=*/MSG_ROUTING_NONE,
+            /*render_frame_token=*/std::nullopt,
             /*originated_from_service_worker=*/false);
     if (skip_checks) {
       OnCompleteCheckInternal(/*proceed=*/true);
@@ -75,7 +75,7 @@
         network::mojom::RequestDestination::kEmpty, /*has_user_gesture=*/false,
         url_checker_delegate, web_contents_getter_, /*weak_web_state=*/nullptr,
         /*render_process_id=*/content::ChildProcessHost::kInvalidUniqueID,
-        /*render_frame_id=*/MSG_ROUTING_NONE, frame_tree_node_id_,
+        /*render_frame_token=*/std::nullopt, frame_tree_node_id_,
         /*url_real_time_lookup_enabled=*/false,
         /*can_urt_check_subresource_url=*/false,
         /*can_check_db=*/true, /*can_check_high_confidence_allowlist=*/true,
diff --git a/components/safe_browsing/content/browser/web_api_handshake_checker_unittest.cc b/components/safe_browsing/content/browser/web_api_handshake_checker_unittest.cc
index 7d716e0b..092c425 100644
--- a/components/safe_browsing/content/browser/web_api_handshake_checker_unittest.cc
+++ b/components/safe_browsing/content/browser/web_api_handshake_checker_unittest.cc
@@ -62,11 +62,12 @@
   void SetPolicyAllowlistDomains(
       const std::vector<std::string>& allowlist_domains) override {}
 
-  bool ShouldSkipRequestCheck(const GURL& original_url,
-                              int frame_tree_node_id,
-                              int render_process_id,
-                              int render_frame_id,
-                              bool originated_from_service_worker) override {
+  bool ShouldSkipRequestCheck(
+      const GURL& original_url,
+      int frame_tree_node_id,
+      int render_process_id,
+      base::optional_ref<const base::UnguessableToken> render_frame_token,
+      bool originated_from_service_worker) override {
     return false;
   }
 
diff --git a/components/safe_browsing/content/common/safe_browsing.mojom b/components/safe_browsing/content/common/safe_browsing.mojom
index dc711ec..3c9e939 100644
--- a/components/safe_browsing/content/common/safe_browsing.mojom
+++ b/components/safe_browsing/content/common/safe_browsing.mojom
@@ -23,6 +23,11 @@
   // The check and (subsequent checks performed using SafeBrowsingUrlChecker)
   // checks against SafeBrowsing's Malware, Phishing, and UwS blocklists.
   //
+  // `frame_token` is set when the request originates from the context of a
+  // frame. Dedicated workers are associated with a frame context and will
+  // have the value set. Service workers and shared workers are not associated
+  // with a frame and will have it set to null.
+  //
   // The SafeBrowsingUrlChecker interface should be used (and only used) for
   // subsequent checks of redirects, so that the server side could keep track of
   // the redirect chain. Disconnecting the checker interface cancels on-going
@@ -44,7 +49,7 @@
   // |showed_interstitial| indicates whether the SafeBrowsing interstitial page
   // has been shown to the user.
   CreateCheckerAndCheck(
-      int32 render_frame_id,
+      blink.mojom.LocalFrameToken? frame_token,
       pending_receiver<SafeBrowsingUrlChecker> receiver,
       url.mojom.Url url,
       string method,
diff --git a/components/safe_browsing/content/renderer/DEPS b/components/safe_browsing/content/renderer/DEPS
index 7340cb2..fddfbe0 100644
--- a/components/safe_browsing/content/renderer/DEPS
+++ b/components/safe_browsing/content/renderer/DEPS
@@ -5,6 +5,7 @@
   "+extensions/buildflags/buildflags.h",
   "+extensions/common",
   "+third_party/blink/public/common/loader/url_loader_throttle.h",
+  "+third_party/blink/public/common/tokens/tokens.h",
   "+third_party/blink/public/platform",
   "+third_party/blink/public/web",
   "+ipc",
diff --git a/components/safe_browsing/content/renderer/renderer_url_loader_throttle.cc b/components/safe_browsing/content/renderer/renderer_url_loader_throttle.cc
index 92a4ce0..0a080cbf 100644
--- a/components/safe_browsing/content/renderer/renderer_url_loader_throttle.cc
+++ b/components/safe_browsing/content/renderer/renderer_url_loader_throttle.cc
@@ -55,16 +55,17 @@
 
 RendererURLLoaderThrottle::RendererURLLoaderThrottle(
     mojom::SafeBrowsing* safe_browsing,
-    int render_frame_id)
-    : safe_browsing_(safe_browsing), render_frame_id_(render_frame_id) {}
+    base::optional_ref<const blink::LocalFrameToken> local_frame_token)
+    : safe_browsing_(safe_browsing),
+      frame_token_(local_frame_token.CopyAsOptional()) {}
 
 #if BUILDFLAG(ENABLE_EXTENSIONS)
 RendererURLLoaderThrottle::RendererURLLoaderThrottle(
     mojom::SafeBrowsing* safe_browsing,
-    int render_frame_id,
+    base::optional_ref<const blink::LocalFrameToken> local_frame_token,
     mojom::ExtensionWebRequestReporter* extension_web_request_reporter)
     : safe_browsing_(safe_browsing),
-      render_frame_id_(render_frame_id),
+      frame_token_(local_frame_token.CopyAsOptional()),
       extension_web_request_reporter_(extension_web_request_reporter) {}
 #endif  // BUILDFLAG(ENABLE_EXTENSIONS)
 
@@ -147,7 +148,7 @@
   // Use a weak pointer to self because |safe_browsing_| may not be owned by
   // this object.
   safe_browsing_->CreateCheckerAndCheck(
-      render_frame_id_, url_checker_.BindNewPipeAndPassReceiver(), request->url,
+      frame_token_, url_checker_.BindNewPipeAndPassReceiver(), request->url,
       request->method, request->headers, request->load_flags,
       request->destination, request->has_user_gesture,
       request->originated_from_service_worker,
diff --git a/components/safe_browsing/content/renderer/renderer_url_loader_throttle.h b/components/safe_browsing/content/renderer/renderer_url_loader_throttle.h
index e5f5581b..d6e5084 100644
--- a/components/safe_browsing/content/renderer/renderer_url_loader_throttle.h
+++ b/components/safe_browsing/content/renderer/renderer_url_loader_throttle.h
@@ -6,11 +6,13 @@
 #define COMPONENTS_SAFE_BROWSING_CONTENT_RENDERER_RENDERER_URL_LOADER_THROTTLE_H_
 
 #include <memory>
+#include <optional>
 
 #include "base/gtest_prod_util.h"
 #include "base/memory/raw_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "base/time/time.h"
+#include "base/types/optional_ref.h"
 #include "components/safe_browsing/content/common/safe_browsing.mojom.h"
 #include "components/safe_browsing/core/common/safe_browsing_url_checker.mojom.h"
 #include "extensions/buildflags/buildflags.h"
@@ -19,6 +21,7 @@
 #include "mojo/public/cpp/bindings/receiver_set.h"
 #include "mojo/public/cpp/bindings/remote.h"
 #include "third_party/blink/public/common/loader/url_loader_throttle.h"
+#include "third_party/blink/public/common/tokens/tokens.h"
 #include "url/gurl.h"
 
 namespace safe_browsing {
@@ -32,15 +35,16 @@
  public:
   // |safe_browsing| must stay alive until WillStartRequest() (if it is called)
   // or the end of this object.
-  // |render_frame_id| is used for displaying SafeBrowsing UI when necessary.
-  RendererURLLoaderThrottle(mojom::SafeBrowsing* safe_browsing,
-                            int render_frame_id);
+  // |local_frame_token| is used for displaying SafeBrowsing UI when necessary.
+  RendererURLLoaderThrottle(
+      mojom::SafeBrowsing* safe_browsing,
+      base::optional_ref<const blink::LocalFrameToken> local_frame_token);
 #if BUILDFLAG(ENABLE_EXTENSIONS)
   // |extension_web_request_reporter_pending_remote| is used for sending
   // extension web requests to the browser.
   RendererURLLoaderThrottle(
       mojom::SafeBrowsing* safe_browsing,
-      int render_frame_id,
+      base::optional_ref<const blink::LocalFrameToken> local_frame_token,
       mojom::ExtensionWebRequestReporter* extension_web_request_reporter);
 #endif  // BUILDFLAG(ENABLE_EXTENSIONS)
   ~RendererURLLoaderThrottle() override;
@@ -106,7 +110,7 @@
   void OnMojoDisconnect();
 
   raw_ptr<mojom::SafeBrowsing, ExperimentalRenderer> safe_browsing_;
-  const int render_frame_id_;
+  const std::optional<blink::LocalFrameToken> frame_token_;
 
   // These fields hold the connection to this instance's private connection to
   // the Safe Browsing service if DetachFromCurrentThread has been called.
diff --git a/components/safe_browsing/content/renderer/renderer_url_loader_throttle_unittest.cc b/components/safe_browsing/content/renderer/renderer_url_loader_throttle_unittest.cc
index 8b54c0f..b6c164af 100644
--- a/components/safe_browsing/content/renderer/renderer_url_loader_throttle_unittest.cc
+++ b/components/safe_browsing/content/renderer/renderer_url_loader_throttle_unittest.cc
@@ -27,7 +27,7 @@
   FakeSafeBrowsing() = default;
 
   void CreateCheckerAndCheck(
-      int32_t render_frame_id,
+      const std::optional<blink::LocalFrameToken>& frame_token,
       mojo::PendingReceiver<mojom::SafeBrowsingUrlChecker> receiver,
       const GURL& url,
       const std::string& method,
@@ -74,7 +74,7 @@
     mojo_receiver_.Bind(safe_browsing_remote_.BindNewPipeAndPassReceiver());
     throttle_delegate_ = std::make_unique<MockThrottleDelegate>();
     throttle_ = std::make_unique<RendererURLLoaderThrottle>(
-        safe_browsing_remote_.get(), MSG_ROUTING_NONE);
+        safe_browsing_remote_.get(), std::nullopt);
     throttle_->set_delegate(throttle_delegate_.get());
   }
 
diff --git a/components/safe_browsing/content/renderer/websocket_sb_handshake_throttle.cc b/components/safe_browsing/content/renderer/websocket_sb_handshake_throttle.cc
index 8489ff64..d8e8ac0 100644
--- a/components/safe_browsing/content/renderer/websocket_sb_handshake_throttle.cc
+++ b/components/safe_browsing/content/renderer/websocket_sb_handshake_throttle.cc
@@ -29,15 +29,16 @@
 
 WebSocketSBHandshakeThrottle::WebSocketSBHandshakeThrottle(
     mojom::SafeBrowsing* safe_browsing,
-    int render_frame_id)
-    : render_frame_id_(render_frame_id), safe_browsing_(safe_browsing) {}
+    base::optional_ref<const blink::LocalFrameToken> local_frame_token)
+    : frame_token_(local_frame_token.CopyAsOptional()),
+      safe_browsing_(safe_browsing) {}
 
 #if BUILDFLAG(ENABLE_EXTENSIONS)
 WebSocketSBHandshakeThrottle::WebSocketSBHandshakeThrottle(
     mojom::SafeBrowsing* safe_browsing,
-    int render_frame_id,
+    base::optional_ref<const blink::LocalFrameToken> local_frame_token,
     mojom::ExtensionWebRequestReporter* extension_web_request_reporter)
-    : render_frame_id_(render_frame_id),
+    : frame_token_(local_frame_token.CopyAsOptional()),
       safe_browsing_(safe_browsing),
       extension_web_request_reporter_(
           std::move(extension_web_request_reporter)) {}
@@ -90,7 +91,7 @@
 
   base::UmaHistogramBoolean("SafeBrowsing.WebSocketCheck.Skipped", false);
   safe_browsing_->CreateCheckerAndCheck(
-      render_frame_id_, url_checker_.BindNewPipeAndPassReceiver(), url, "GET",
+      frame_token_, url_checker_.BindNewPipeAndPassReceiver(), url, "GET",
       net::HttpRequestHeaders(), load_flags,
       network::mojom::RequestDestination::kEmpty, false /* has_user_gesture */,
       false /* originated_from_service_worker */,
diff --git a/components/safe_browsing/content/renderer/websocket_sb_handshake_throttle.h b/components/safe_browsing/content/renderer/websocket_sb_handshake_throttle.h
index 3ba2502..49d98a65 100644
--- a/components/safe_browsing/content/renderer/websocket_sb_handshake_throttle.h
+++ b/components/safe_browsing/content/renderer/websocket_sb_handshake_throttle.h
@@ -10,14 +10,17 @@
 #define COMPONENTS_SAFE_BROWSING_CONTENT_RENDERER_WEBSOCKET_SB_HANDSHAKE_THROTTLE_H_
 
 #include <memory>
+#include <optional>
 
 #include "base/memory/raw_ptr.h"
+#include "base/types/optional_ref.h"
 #include "components/safe_browsing/content/common/safe_browsing.mojom.h"
 #include "components/safe_browsing/core/common/safe_browsing_url_checker.mojom.h"
 #include "extensions/buildflags/buildflags.h"
 #include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "mojo/public/cpp/bindings/receiver.h"
 #include "mojo/public/cpp/bindings/remote.h"
+#include "third_party/blink/public/common/tokens/tokens.h"
 #include "third_party/blink/public/platform/websocket_handshake_throttle.h"
 #include "url/gurl.h"
 
@@ -26,14 +29,15 @@
 class WebSocketSBHandshakeThrottle : public blink::WebSocketHandshakeThrottle,
                                      public mojom::UrlCheckNotifier {
  public:
-  WebSocketSBHandshakeThrottle(mojom::SafeBrowsing* safe_browsing,
-                               int render_frame_id);
+  WebSocketSBHandshakeThrottle(
+      mojom::SafeBrowsing* safe_browsing,
+      base::optional_ref<const blink::LocalFrameToken> local_frame_token);
 #if BUILDFLAG(ENABLE_EXTENSIONS)
   // |extension_web_request_reporter_pending_remote| is used for sending
   // extension web requests to the browser.
   WebSocketSBHandshakeThrottle(
       mojom::SafeBrowsing* safe_browsing,
-      int render_frame_id,
+      base::optional_ref<const blink::LocalFrameToken> local_frame_token,
       mojom::ExtensionWebRequestReporter* extension_web_request_reporter);
 #endif  // BUILDFLAG(ENABLE_EXTENSIONS)
 
@@ -66,7 +70,7 @@
       bool showed_interstitial);
   void OnMojoDisconnect();
 
-  const int render_frame_id_;
+  const std::optional<const blink::LocalFrameToken> frame_token_;
   GURL url_;
   blink::WebSocketHandshakeThrottle::OnCompletion completion_callback_;
   mojo::Remote<mojom::SafeBrowsingUrlChecker> url_checker_;
diff --git a/components/safe_browsing/content/renderer/websocket_sb_handshake_throttle_unittest.cc b/components/safe_browsing/content/renderer/websocket_sb_handshake_throttle_unittest.cc
index 144a06d..52d346e 100644
--- a/components/safe_browsing/content/renderer/websocket_sb_handshake_throttle_unittest.cc
+++ b/components/safe_browsing/content/renderer/websocket_sb_handshake_throttle_unittest.cc
@@ -4,6 +4,7 @@
 
 #include "components/safe_browsing/content/renderer/websocket_sb_handshake_throttle.h"
 
+#include <optional>
 #include <utility>
 
 #include "base/functional/callback.h"
@@ -35,14 +36,13 @@
 class FakeSafeBrowsing : public mojom::SafeBrowsing {
  public:
   FakeSafeBrowsing()
-      : render_frame_id_(),
-        load_flags_(-1),
+      : load_flags_(-1),
         request_destination_(),
         has_user_gesture_(false),
         originated_from_service_worker_(false) {}
 
   void CreateCheckerAndCheck(
-      int32_t render_frame_id,
+      const std::optional<blink::LocalFrameToken>& frame_token,
       mojo::PendingReceiver<mojom::SafeBrowsingUrlChecker> receiver,
       const GURL& url,
       const std::string& method,
@@ -52,7 +52,7 @@
       bool has_user_gesture,
       bool originated_from_service_worker,
       CreateCheckerAndCheckCallback callback) override {
-    render_frame_id_ = render_frame_id;
+    frame_token_ = frame_token;
     receiver_ = std::move(receiver);
     url_ = url;
     method_ = method;
@@ -71,7 +71,7 @@
 
   void RunUntilCalled() { run_loop_.Run(); }
 
-  int32_t render_frame_id_;
+  std::optional<blink::LocalFrameToken> frame_token_;
   mojo::PendingReceiver<mojom::SafeBrowsingUrlChecker> receiver_;
   GURL url_;
   std::string method_;
@@ -116,7 +116,7 @@
   WebSocketSBHandshakeThrottleTest() : mojo_receiver_(&safe_browsing_) {
     mojo_receiver_.Bind(safe_browsing_remote_.BindNewPipeAndPassReceiver());
     throttle_ = std::make_unique<WebSocketSBHandshakeThrottle>(
-        safe_browsing_remote_.get(), MSG_ROUTING_NONE);
+        safe_browsing_remote_.get(), std::nullopt);
   }
   void SetUp() override {
     feature_list_.InitAndDisableFeature(kSafeBrowsingSkipSubresources2);
@@ -140,7 +140,7 @@
       base::BindOnce(&FakeCallback::OnCompletion,
                      base::Unretained(&fake_callback_)));
   safe_browsing_.RunUntilCalled();
-  EXPECT_EQ(MSG_ROUTING_NONE, safe_browsing_.render_frame_id_);
+  EXPECT_FALSE(safe_browsing_.frame_token_);
   EXPECT_EQ(GURL(kTestUrl), safe_browsing_.url_);
   EXPECT_EQ("GET", safe_browsing_.method_);
   EXPECT_TRUE(safe_browsing_.headers_.GetHeaderVector().empty());
diff --git a/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.cc b/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.cc
index ded2f4c6..c1bdef1 100644
--- a/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.cc
+++ b/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.cc
@@ -131,7 +131,7 @@
     const base::RepeatingCallback<content::WebContents*()>& web_contents_getter,
     base::WeakPtr<web::WebState> weak_web_state,
     UnsafeResource::RenderProcessId render_process_id,
-    UnsafeResource::RenderFrameId render_frame_id,
+    const UnsafeResource::RenderFrameToken& render_frame_token,
     UnsafeResource::FrameTreeNodeId frame_tree_node_id,
     bool url_real_time_lookup_enabled,
     bool can_urt_check_subresource_url,
@@ -153,7 +153,7 @@
       has_user_gesture_(has_user_gesture),
       web_contents_getter_(web_contents_getter),
       render_process_id_(render_process_id),
-      render_frame_id_(render_frame_id),
+      render_frame_token_(render_frame_token),
       frame_tree_node_id_(frame_tree_node_id),
       weak_web_state_(weak_web_state),
       url_checker_delegate_(std::move(url_checker_delegate)),
@@ -238,7 +238,7 @@
       weak_factory_.GetWeakPtr(), performed_check);
   resource.callback_sequence = base::SequencedTaskRunner::GetCurrentDefault();
   resource.render_process_id = render_process_id_;
-  resource.render_frame_id = render_frame_id_;
+  resource.render_frame_token = render_frame_token_;
   resource.frame_tree_node_id = frame_tree_node_id_;
   resource.weak_web_state = weak_web_state_;
   resource.threat_source = threat_source;
diff --git a/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.h b/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.h
index 0259b1d..f3a80b0 100644
--- a/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.h
+++ b/components/safe_browsing/core/browser/safe_browsing_url_checker_impl.h
@@ -117,7 +117,8 @@
           web_contents_getter,
       base::WeakPtr<web::WebState> weak_web_state,
       security_interstitials::UnsafeResource::RenderProcessId render_process_id,
-      security_interstitials::UnsafeResource::RenderFrameId render_frame_id,
+      const security_interstitials::UnsafeResource::RenderFrameToken&
+          render_frame_token,
       security_interstitials::UnsafeResource::FrameTreeNodeId
           frame_tree_node_id,
       bool url_real_time_lookup_enabled,
@@ -291,7 +292,7 @@
   const network::mojom::RequestDestination request_destination_;
   const bool has_user_gesture_;
   // TODO(crbug.com/1069047): |weak_web_state_| is only used on iOS, and
-  // |web_contents_getter_|, |render_process_id_|, |render_frame_id_|, and
+  // |web_contents_getter_|, |render_process_id_|, |render_frame_token_|, and
   // |frame_tree_node_id_| are used on all other platforms.  This class should
   // be refactored to use only the common functionality can be shared across
   // platforms.
@@ -299,8 +300,8 @@
   const security_interstitials::UnsafeResource::RenderProcessId
       render_process_id_ =
           security_interstitials::UnsafeResource::kNoRenderProcessId;
-  const security_interstitials::UnsafeResource::RenderFrameId render_frame_id_ =
-      security_interstitials::UnsafeResource::kNoRenderFrameId;
+  const security_interstitials::UnsafeResource::RenderFrameToken
+      render_frame_token_;
   const security_interstitials::UnsafeResource::FrameTreeNodeId
       frame_tree_node_id_ =
           security_interstitials::UnsafeResource::kNoFrameTreeNodeId;
diff --git a/components/safe_browsing/core/browser/safe_browsing_url_checker_impl_unittest.cc b/components/safe_browsing/core/browser/safe_browsing_url_checker_impl_unittest.cc
index 6c086d2..00274ea3508 100644
--- a/components/safe_browsing/core/browser/safe_browsing_url_checker_impl_unittest.cc
+++ b/components/safe_browsing/core/browser/safe_browsing_url_checker_impl_unittest.cc
@@ -207,7 +207,12 @@
                     bool));
   MOCK_METHOD2(StartObservingInteractionsForDelayedBlockingPageHelper,
                void(const security_interstitials::UnsafeResource&, bool));
-  MOCK_METHOD5(ShouldSkipRequestCheck, bool(const GURL&, int, int, int, bool));
+  MOCK_METHOD5(ShouldSkipRequestCheck,
+               bool(const GURL&,
+                    int,
+                    int,
+                    base::optional_ref<const base::UnguessableToken>,
+                    bool));
   MOCK_METHOD1(NotifySuspiciousSiteDetected,
                void(const base::RepeatingCallback<content::WebContents*()>&));
   MOCK_METHOD0(GetUIManager, BaseUIManager*());
@@ -496,7 +501,7 @@
         optional_args.request_destination,
         /*has_user_gesture=*/false, url_checker_delegate_,
         mock_web_contents_getter.Get(), /*weak_web_state=*/nullptr,
-        UnsafeResource::kNoRenderProcessId, UnsafeResource::kNoRenderFrameId,
+        UnsafeResource::kNoRenderProcessId, std::nullopt,
         UnsafeResource::kNoFrameTreeNodeId, url_real_time_lookup_enabled,
         optional_args.can_urt_check_subresource_url, can_check_safe_browsing_db,
         /*can_check_high_confidence_allowlist=*/true,
diff --git a/components/safe_browsing/core/browser/url_checker_delegate.h b/components/safe_browsing/core/browser/url_checker_delegate.h
index dcbe5a8..91b5b6b 100644
--- a/components/safe_browsing/core/browser/url_checker_delegate.h
+++ b/components/safe_browsing/core/browser/url_checker_delegate.h
@@ -9,6 +9,8 @@
 
 #include "base/functional/callback.h"
 #include "base/memory/ref_counted.h"
+#include "base/types/optional_ref.h"
+#include "base/unguessable_token.h"
 #include "components/safe_browsing/core/browser/db/v4_protocol_manager_util.h"
 
 namespace content {
@@ -87,18 +89,19 @@
 
   // If the method returns true, the entire request won't be checked, including
   // the original URL and redirects.
-  // If neither of |render_process_id| and |render_frame_id| is a sentinel
+  // If neither of |render_process_id| and |render_frame_token| is a sentinel
   // value, they will be used to identify the frame making the request;
   // otherwise |frame_tree_node_id| will be used. Please note that
   // |frame_tree_node_id| could also be a sentinel value, if a request is not
   // associated with a frame. Also note that these ids are content/ specific.
   // See comments in content::RenderFrameHost for the meaning of these ids and
   // their sentinel values.
-  virtual bool ShouldSkipRequestCheck(const GURL& original_url,
-                                      int frame_tree_node_id,
-                                      int render_process_id,
-                                      int render_frame_id,
-                                      bool originated_from_service_worker) = 0;
+  virtual bool ShouldSkipRequestCheck(
+      const GURL& original_url,
+      int frame_tree_node_id,
+      int render_process_id,
+      base::optional_ref<const base::UnguessableToken> render_frame_token,
+      bool originated_from_service_worker) = 0;
 
   // Notifies the SafeBrowsing Trigger Manager that a suspicious site has been
   // detected. |web_contents_getter| is used to determine which tab the site
diff --git a/components/search_engines/site_search_policy_handler_unittest.cc b/components/search_engines/site_search_policy_handler_unittest.cc
index cc8d4b9..ca664262 100644
--- a/components/search_engines/site_search_policy_handler_unittest.cc
+++ b/components/search_engines/site_search_policy_handler_unittest.cc
@@ -85,6 +85,14 @@
      .favicon = nullptr},
 };
 
+// Used for tests that require a provider with unknown field.
+TestProvider kUnknownFieldTestProviders[] = {
+    {.name = "work name",
+     .shortcut = "work",
+     .url = "https://work.com/{searchTerms}",
+     .favicon = "https://work.com/favicon.ico"},
+};
+
 // Used for tests that require a list of providers with a duplicated shortcut,
 // but at least one valid entry.
 TestProvider kShortcutNotUniqueTestProviders[] = {
@@ -515,6 +523,44 @@
                            IDS_POLICY_SITE_SEARCH_SETTINGS_URL_IS_EMPTY)));
 }
 
+TEST(SiteSearchPolicyHandlerTest, UnknownField) {
+  constexpr char kUnknownFieldName[] = "unknown_field";
+
+  base::test::ScopedFeatureList scoped_feature_list;
+  scoped_feature_list.InitAndEnableFeature(omnibox::kSiteSearchSettingsPolicy);
+
+  SiteSearchPolicyHandler handler(
+      policy::Schema::Wrap(policy::GetChromeSchemaData()));
+
+  policy::PolicyMap policies;
+  PolicyErrorMap errors;
+  PrefValueMap prefs;
+
+  base::Value::Dict entry =
+      GenerateSiteSearchPolicyEntry(kUnknownFieldTestProviders[0]);
+  entry.Set(kUnknownFieldName, true);
+  base::Value::List policy_value;
+  policy_value.Append(std::move(entry));
+
+  policies.Set(key::kSiteSearchSettings, policy::POLICY_LEVEL_MANDATORY,
+               policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD,
+               base::Value(std::move(policy_value)), nullptr);
+
+  // A warning is registered during policy validation, but valid fields are
+  // still used for building a new template URL.
+  ASSERT_TRUE(handler.CheckPolicySettings(policies, &errors));
+  EXPECT_FALSE(errors.empty());
+
+  handler.ApplyPolicySettings(policies, &prefs);
+  base::Value* providers = nullptr;
+  ASSERT_TRUE(prefs.GetValue(
+      EnterpriseSiteSearchManager::kSiteSearchSettingsPrefName, &providers));
+  ASSERT_NE(providers, nullptr);
+  ASSERT_TRUE(providers->is_list());
+  EXPECT_THAT(providers->GetList(),
+              ElementsAre(IsSiteSearchEntry(kUnknownFieldTestProviders[0])));
+}
+
 TEST(SiteSearchPolicyHandlerTest, ShortcutWithSpace) {
   base::test::ScopedFeatureList scoped_feature_list;
   scoped_feature_list.InitAndEnableFeature(omnibox::kSiteSearchSettingsPolicy);
diff --git a/components/security_interstitials/content/unsafe_resource_util.cc b/components/security_interstitials/content/unsafe_resource_util.cc
index c1509f4..c7d613f 100644
--- a/components/security_interstitials/content/unsafe_resource_util.cc
+++ b/components/security_interstitials/content/unsafe_resource_util.cc
@@ -29,10 +29,14 @@
 
 content::WebContents* GetWebContentsForResource(
     const UnsafeResource& resource) {
-  content::RenderFrameHost* rfh = content::RenderFrameHost::FromID(
-      resource.render_process_id, resource.render_frame_id);
-  if (rfh) {
-    return content::WebContents::FromRenderFrameHost(rfh);
+  if (resource.render_frame_token) {
+    content::RenderFrameHost* rfh = content::RenderFrameHost::FromFrameToken(
+        content::GlobalRenderFrameHostToken(
+            resource.render_process_id,
+            blink::LocalFrameToken(resource.render_frame_token.value())));
+    if (rfh) {
+      return content::WebContents::FromRenderFrameHost(rfh);
+    }
   }
   return content::WebContents::FromFrameTreeNodeId(resource.frame_tree_node_id);
 }
diff --git a/components/security_interstitials/core/unsafe_resource.cc b/components/security_interstitials/core/unsafe_resource.cc
index 7229cc4a..a151f1a 100644
--- a/components/security_interstitials/core/unsafe_resource.cc
+++ b/components/security_interstitials/core/unsafe_resource.cc
@@ -9,7 +9,6 @@
 namespace security_interstitials {
 
 constexpr UnsafeResource::RenderProcessId UnsafeResource::kNoRenderProcessId;
-constexpr UnsafeResource::RenderFrameId UnsafeResource::kNoRenderFrameId;
 constexpr UnsafeResource::FrameTreeNodeId UnsafeResource::kNoFrameTreeNodeId;
 
 UnsafeResource::UnsafeResource()
diff --git a/components/security_interstitials/core/unsafe_resource.h b/components/security_interstitials/core/unsafe_resource.h
index 2b9f9754..1b0e375 100644
--- a/components/security_interstitials/core/unsafe_resource.h
+++ b/components/security_interstitials/core/unsafe_resource.h
@@ -5,11 +5,13 @@
 #ifndef COMPONENTS_SECURITY_INTERSTITIALS_CORE_UNSAFE_RESOURCE_H_
 #define COMPONENTS_SECURITY_INTERSTITIALS_CORE_UNSAFE_RESOURCE_H_
 
+#include <optional>
 #include <vector>
 
 #include "base/functional/callback.h"
 #include "base/memory/ref_counted.h"
 #include "base/task/sequenced_task_runner.h"
+#include "base/unguessable_token.h"
 #include "components/safe_browsing/core/browser/db/hit_report.h"
 #include "components/safe_browsing/core/common/proto/realtimeapi.pb.h"
 #include "components/safe_browsing/core/common/safebrowsing_constants.h"
@@ -40,14 +42,12 @@
   // plumbed through this struct.
   // Equivalent to GlobalRenderFrameHostId.
   using RenderProcessId = int;
-  using RenderFrameId = int;
+  using RenderFrameToken = std::optional<base::UnguessableToken>;
   // See RenderFrameHost::GetFrameTreeNodeId.
   using FrameTreeNodeId = int;
   // Copies of the sentinel values used in content/.
   // Equal to ChildProcessHost::kInvalidUniqueID.
   static constexpr RenderProcessId kNoRenderProcessId = -1;
-  // Equal to MSG_ROUTING_NONE.
-  static constexpr RenderFrameId kNoRenderFrameId = -2;
   // Equal to RenderFrameHost::kNoFrameTreeNodeId.
   static constexpr FrameTreeNodeId kNoFrameTreeNodeId = -1;
 
@@ -88,7 +88,7 @@
   // case of something triggered by a document (e.g. subresource loading), we
   // should have the RenderFrameHost's id.
   RenderProcessId render_process_id = kNoRenderProcessId;
-  RenderFrameId render_frame_id = kNoRenderFrameId;
+  RenderFrameToken render_frame_token;
   FrameTreeNodeId frame_tree_node_id = kNoFrameTreeNodeId;
 
   base::WeakPtr<web::WebState> weak_web_state;
diff --git a/components/segmentation_platform/internal/database/cached_result_provider.cc b/components/segmentation_platform/internal/database/cached_result_provider.cc
index 140eb14..71b26de 100644
--- a/components/segmentation_platform/internal/database/cached_result_provider.cc
+++ b/components/segmentation_platform/internal/database/cached_result_provider.cc
@@ -5,15 +5,11 @@
 #include "components/segmentation_platform/internal/database/cached_result_provider.h"
 
 #include "base/logging.h"
-#include "base/task/single_thread_task_runner.h"
 #include "components/segmentation_platform/internal/logging.h"
 #include "components/segmentation_platform/internal/metadata/metadata_utils.h"
-#include "components/segmentation_platform/internal/post_processor/post_processor.h"
 #include "components/segmentation_platform/internal/stats.h"
 #include "components/segmentation_platform/public/config.h"
-#include "components/segmentation_platform/public/constants.h"
 #include "components/segmentation_platform/public/proto/prediction_result.pb.h"
-#include "components/segmentation_platform/public/result.h"
 
 namespace segmentation_platform {
 
@@ -22,9 +18,9 @@
     const std::vector<std::unique_ptr<Config>>& configs)
     : configs_(configs), result_prefs_(std::move(prefs)) {
   for (const auto& config : *configs_) {
-    absl::optional<proto::ClientResult> client_result =
+    const proto::ClientResult* client_result =
         result_prefs_->ReadClientResultFromPrefs(config->segmentation_key);
-    bool has_valid_result = client_result.has_value() &&
+    bool has_valid_result = client_result &&
                             client_result->client_result().result_size() > 0 &&
                             client_result->client_result().has_output_config();
     has_valid_result = has_valid_result &&
diff --git a/components/segmentation_platform/internal/database/cached_result_writer.cc b/components/segmentation_platform/internal/database/cached_result_writer.cc
index 8e31763..1feaaa0 100644
--- a/components/segmentation_platform/internal/database/cached_result_writer.cc
+++ b/components/segmentation_platform/internal/database/cached_result_writer.cc
@@ -22,7 +22,7 @@
 
 bool CachedResultWriter::UpdatePrefsIfExpired(
     const Config* config,
-    const proto::ClientResult& client_result,
+    proto::ClientResult client_result,
     const PlatformOptions& platform_options) {
   if (!IsPrefUpdateRequiredForClient(config, client_result, platform_options)) {
     return false;
@@ -31,20 +31,22 @@
           << segmentation_platform::PredictionResultToDebugString(
                  client_result.client_result())
           << " for segmentation key: " << config->segmentation_key;
-  UpdateNewClientResultToPrefs(config, client_result);
+  UpdateNewClientResultToPrefs(config, std::move(client_result));
   return true;
 }
 
 void CachedResultWriter::MarkResultAsUsed(const Config* config) {
-  absl::optional<proto::ClientResult> old_result =
+  const proto::ClientResult* old_result =
       result_prefs_->ReadClientResultFromPrefs(config->segmentation_key);
   if (!old_result || old_result->first_used_timestamp() > 0) {
     return;
   }
+  proto::ClientResult new_result = *old_result;
 
-  old_result->set_first_used_timestamp(
+  new_result.set_first_used_timestamp(
       base::Time::Now().ToDeltaSinceWindowsEpoch().InMicroseconds());
-  result_prefs_->SaveClientResultToPrefs(config->segmentation_key, *old_result);
+  result_prefs_->SaveClientResultToPrefs(config->segmentation_key,
+                                         std::move(new_result));
 }
 
 void CachedResultWriter::CacheModelExecution(
@@ -62,9 +64,9 @@
     const Config* config,
     const proto::ClientResult& new_client_result,
     const PlatformOptions& platform_options) {
-  absl::optional<proto::ClientResult> old_client_result =
+  const proto::ClientResult* old_client_result =
       result_prefs_->ReadClientResultFromPrefs(config->segmentation_key);
-  if (!old_client_result.has_value()) {
+  if (!old_client_result) {
     return true;
   }
   const proto::PredictionResult& old_pred_result =
@@ -111,19 +113,17 @@
 
 void CachedResultWriter::UpdateNewClientResultToPrefs(
     const Config* config,
-    const proto::ClientResult& client_result) {
-  auto prev_client_result =
+    proto::ClientResult client_result) {
+  const proto::ClientResult* prev_client_result =
       result_prefs_->ReadClientResultFromPrefs(config->segmentation_key);
-  absl::optional<proto::PredictionResult> prev_prediction_result =
-      prev_client_result.has_value()
-          ? absl::make_optional(prev_client_result->client_result())
-          : absl::nullopt;
+  const proto::PredictionResult* prev_prediction_result =
+      prev_client_result ? &prev_client_result->client_result() : nullptr;
   stats::RecordClassificationResultUpdated(*config, prev_prediction_result,
                                            client_result.client_result());
   stats::RecordSegmentSelectionFailure(
       *config, stats::SegmentationSelectionFailureReason::kProtoPrefsUpdated);
   result_prefs_->SaveClientResultToPrefs(config->segmentation_key,
-                                         client_result);
+                                         std::move(client_result));
 }
 
 }  // namespace segmentation_platform
diff --git a/components/segmentation_platform/internal/database/cached_result_writer.h b/components/segmentation_platform/internal/database/cached_result_writer.h
index 65375136..94537450 100644
--- a/components/segmentation_platform/internal/database/cached_result_writer.h
+++ b/components/segmentation_platform/internal/database/cached_result_writer.h
@@ -5,16 +5,13 @@
 #ifndef COMPONENTS_SEGMENTATION_PLATFORM_INTERNAL_DATABASE_CACHED_RESULT_WRITER_H_
 #define COMPONENTS_SEGMENTATION_PLATFORM_INTERNAL_DATABASE_CACHED_RESULT_WRITER_H_
 
-#include <string>
-
-#include "base/functional/callback_helpers.h"
 #include "base/memory/raw_ptr.h"
+#include "base/memory/weak_ptr.h"
 #include "base/time/clock.h"
 #include "components/segmentation_platform/internal/database/client_result_prefs.h"
 #include "components/segmentation_platform/internal/platform_options.h"
 #include "components/segmentation_platform/internal/proto/client_results.pb.h"
 #include "components/segmentation_platform/public/proto/prediction_result.pb.h"
-#include "components/segmentation_platform/public/result.h"
 
 namespace segmentation_platform {
 struct Config;
@@ -37,7 +34,7 @@
   // unavailable or `force_refresh_results` is set as true. Returns true if
   // prefs was updated.
   bool UpdatePrefsIfExpired(const Config* config,
-                            const proto::ClientResult& client_result,
+                            proto::ClientResult client_result,
                             const PlatformOptions& platform_options);
 
   // Marks the result as used by client. Does not change the result. Should be
@@ -63,7 +60,7 @@
 
   // Updates the supplied `client_result` as new result for the client in prefs.
   void UpdateNewClientResultToPrefs(const Config* config,
-                                    const proto::ClientResult& client_result);
+                                    proto::ClientResult client_result);
 
   // Helper class to read/write results to the prefs.
   const raw_ptr<ClientResultPrefs> result_prefs_;
diff --git a/components/segmentation_platform/internal/database/cached_result_writer_unittest.cc b/components/segmentation_platform/internal/database/cached_result_writer_unittest.cc
index 935baf4..42444a2 100644
--- a/components/segmentation_platform/internal/database/cached_result_writer_unittest.cc
+++ b/components/segmentation_platform/internal/database/cached_result_writer_unittest.cc
@@ -66,22 +66,24 @@
 TEST_F(CachedResultWriterTest, UpdatePrefsIfResultUnavailable) {
   std::unique_ptr<Config> config = test_utils::CreateTestConfig();
   // Prefs doesn't have result for this client config.
-  absl::optional<proto::ClientResult> client_result =
+  const proto::ClientResult* client_result =
       client_result_prefs_->ReadClientResultFromPrefs(config->segmentation_key);
-  EXPECT_FALSE(client_result.has_value());
+  EXPECT_FALSE(client_result);
   proto::ClientResult new_client_result = CreateClientResult(
       /*model_scores=*/{0.8}, /*result_timestamp=*/base::Time::Now());
 
   // Pref will be updated with new client result.
   bool is_prefs_updated = cached_result_writer_->UpdatePrefsIfExpired(
       config.get(), new_client_result, PlatformOptions(false));
-  absl::optional<proto::ClientResult> result_from_pref =
+  EXPECT_TRUE(is_prefs_updated);
+  cached_result_writer_->UpdatePrefsIfExpired(config.get(), new_client_result,
+                                              PlatformOptions(false));
+  const proto::ClientResult* result_from_pref =
       client_result_prefs_->ReadClientResultFromPrefs(config->segmentation_key);
 
-  EXPECT_TRUE(is_prefs_updated);
-  EXPECT_TRUE(result_from_pref.has_value());
+  EXPECT_TRUE(result_from_pref);
   EXPECT_EQ(new_client_result.SerializeAsString(),
-            result_from_pref.value().SerializeAsString());
+            result_from_pref->SerializeAsString());
 }
 
 TEST_F(CachedResultWriterTest, UpdatePrefsIfForceRefreshResult) {
@@ -98,13 +100,15 @@
   // Pref result not updated as unexpired result.
   bool is_prefs_updated = cached_result_writer_->UpdatePrefsIfExpired(
       config.get(), new_client_result, PlatformOptions(false));
-  absl::optional<proto::ClientResult> client_result =
+  EXPECT_FALSE(is_prefs_updated);
+  cached_result_writer_->UpdatePrefsIfExpired(config.get(), new_client_result,
+                                              PlatformOptions(false));
+  const proto::ClientResult* client_result =
       client_result_prefs_->ReadClientResultFromPrefs(config->segmentation_key);
 
-  EXPECT_FALSE(is_prefs_updated);
-  EXPECT_TRUE(client_result.has_value());
+  EXPECT_TRUE(client_result);
   EXPECT_EQ(unexpired_client_result.SerializeAsString(),
-            client_result.value().SerializeAsString());
+            client_result->SerializeAsString());
 
   // Unexpired pref updates with new client result as force refresh result is
   // true.
@@ -114,9 +118,9 @@
       client_result_prefs_->ReadClientResultFromPrefs(config->segmentation_key);
 
   EXPECT_TRUE(is_prefs_updated);
-  EXPECT_TRUE(client_result.has_value());
+  EXPECT_TRUE(client_result);
   EXPECT_EQ(new_client_result.SerializeAsString(),
-            client_result.value().SerializeAsString());
+            client_result->SerializeAsString());
 }
 
 TEST_F(CachedResultWriterTest, UpdatePrefsIfModelIsUpdated) {
@@ -134,13 +138,14 @@
   // Pref result updated as model is updated.
   bool is_prefs_updated = cached_result_writer_->UpdatePrefsIfExpired(
       config.get(), new_client_result, PlatformOptions(false));
-  absl::optional<proto::ClientResult> client_result =
-      client_result_prefs_->ReadClientResultFromPrefs(config->segmentation_key);
-
   EXPECT_TRUE(is_prefs_updated);
-  EXPECT_TRUE(client_result.has_value());
+  cached_result_writer_->UpdatePrefsIfExpired(config.get(), new_client_result,
+                                              PlatformOptions(false));
+  const proto::ClientResult* client_result =
+      client_result_prefs_->ReadClientResultFromPrefs(config->segmentation_key);
+  EXPECT_TRUE(client_result);
   EXPECT_EQ(new_client_result.SerializeAsString(),
-            client_result.value().SerializeAsString());
+            client_result->SerializeAsString());
 }
 
 TEST_F(CachedResultWriterTest, UpdatePrefsIfExpiredResult) {
@@ -158,13 +163,15 @@
   // Expired pref updates with new client result.
   bool is_prefs_updated = cached_result_writer_->UpdatePrefsIfExpired(
       config.get(), new_client_result, PlatformOptions(false));
-  absl::optional<proto::ClientResult> result_from_pref =
+  EXPECT_TRUE(is_prefs_updated);
+  cached_result_writer_->UpdatePrefsIfExpired(config.get(), new_client_result,
+                                              PlatformOptions(false));
+  const proto::ClientResult* result_from_pref =
       client_result_prefs_->ReadClientResultFromPrefs(config->segmentation_key);
 
-  EXPECT_TRUE(is_prefs_updated);
-  EXPECT_TRUE(result_from_pref.has_value());
+  EXPECT_TRUE(result_from_pref);
   EXPECT_EQ(new_client_result.SerializeAsString(),
-            result_from_pref.value().SerializeAsString());
+            result_from_pref->SerializeAsString());
 }
 
 TEST_F(CachedResultWriterTest, MarkResultAsUsed) {
@@ -174,29 +181,29 @@
   bool is_prefs_updated = cached_result_writer_->UpdatePrefsIfExpired(
       config.get(), client_result, PlatformOptions(false));
 
-  absl::optional<proto::ClientResult> client_result_from_pref =
+  const proto::ClientResult* client_result_from_pref =
       client_result_prefs_->ReadClientResultFromPrefs(config->segmentation_key);
 
   // Writing results to prefs the first time should not update used timestamp.
   EXPECT_TRUE(is_prefs_updated);
-  ASSERT_TRUE(client_result_from_pref.has_value());
+  ASSERT_TRUE(client_result_from_pref);
   EXPECT_EQ(0, client_result_from_pref->first_used_timestamp());
 
   // Marking result as used should update the used timestamp.
   cached_result_writer_->MarkResultAsUsed(config.get());
 
-  absl::optional<proto::ClientResult> client_result_first_use =
+  const proto::ClientResult* client_result_first_use =
       client_result_prefs_->ReadClientResultFromPrefs(config->segmentation_key);
-  ASSERT_TRUE(client_result_first_use.has_value());
+  ASSERT_TRUE(client_result_first_use);
   EXPECT_GT(client_result_first_use->first_used_timestamp(), 0);
 
   // Marking result as used in the future should not reset first used timestamp.
   clock_.Advance(base::Seconds(10));
   cached_result_writer_->MarkResultAsUsed(config.get());
 
-  absl::optional<proto::ClientResult> client_result_second_use =
+  const proto::ClientResult* client_result_second_use =
       client_result_prefs_->ReadClientResultFromPrefs(config->segmentation_key);
-  ASSERT_TRUE(client_result_second_use.has_value());
+  ASSERT_TRUE(client_result_second_use);
   EXPECT_EQ(client_result_first_use->first_used_timestamp(),
             client_result_second_use->first_used_timestamp());
 }
@@ -210,10 +217,10 @@
   cached_result_writer_->CacheModelExecution(config.get(),
                                              save_result1.client_result());
 
-  absl::optional<proto::ClientResult> client_result_first_exec =
+  const proto::ClientResult* client_result_first_exec =
       client_result_prefs_->ReadClientResultFromPrefs(config->segmentation_key);
 
-  ASSERT_TRUE(client_result_first_exec.has_value());
+  ASSERT_TRUE(client_result_first_exec);
   EXPECT_EQ(save_result1.client_result().SerializeAsString(),
             client_result_first_exec->client_result().SerializeAsString());
   EXPECT_GT(client_result_first_exec->first_used_timestamp(), 0);
@@ -230,10 +237,10 @@
   cached_result_writer_->CacheModelExecution(config.get(),
                                              save_result2.client_result());
 
-  absl::optional<proto::ClientResult> client_result_second_exec =
+  const proto::ClientResult* client_result_second_exec =
       client_result_prefs_->ReadClientResultFromPrefs(config->segmentation_key);
 
-  ASSERT_TRUE(client_result_second_exec.has_value());
+  ASSERT_TRUE(client_result_second_exec);
   EXPECT_EQ(save_result2.client_result().SerializeAsString(),
             client_result_second_exec->client_result().SerializeAsString());
   EXPECT_GT(client_result_second_exec->first_used_timestamp(), 0);
@@ -257,10 +264,10 @@
   cached_result_writer_->CacheModelExecution(config.get(),
                                              save_result2.client_result());
 
-  absl::optional<proto::ClientResult> client_result_after_exec =
+  const proto::ClientResult* client_result_after_exec =
       client_result_prefs_->ReadClientResultFromPrefs(config->segmentation_key);
 
-  ASSERT_TRUE(client_result_after_exec.has_value());
+  ASSERT_TRUE(client_result_after_exec);
   EXPECT_EQ(save_result2.client_result().SerializeAsString(),
             client_result_after_exec->client_result().SerializeAsString());
   EXPECT_GT(client_result_after_exec->first_used_timestamp(), 0);
diff --git a/components/segmentation_platform/internal/database/client_result_prefs.cc b/components/segmentation_platform/internal/database/client_result_prefs.cc
index 4d6e4947..1976b63 100644
--- a/components/segmentation_platform/internal/database/client_result_prefs.cc
+++ b/components/segmentation_platform/internal/database/client_result_prefs.cc
@@ -14,38 +14,42 @@
 
 void ClientResultPrefs::SaveClientResultToPrefs(
     const std::string& client_key,
-    const absl::optional<proto::ClientResult>& client_result) {
-  proto::ClientResults client_results;
+    absl::optional<proto::ClientResult> client_result) {
+  InitializeIfNeeded();
 
-  auto decoded_client_results =
-      base::Base64Decode(prefs_->GetString(kSegmentationClientResultPrefs));
-  const std::string& decoded_client_results_as_string =
-      decoded_client_results.has_value()
-          ? std::string(decoded_client_results.value().begin(),
-                        decoded_client_results.value().end())
-          : std::string();
-
-  client_results.ParseFromString(decoded_client_results_as_string);
   if (client_result.has_value()) {
-    (*client_results.mutable_client_result_map())[client_key] =
-        client_result.value();
+    (*cached_results_.mutable_client_result_map())[client_key] =
+        std::move(client_result.value());
   } else {
     // Erasing the entry if the new `client_result` is null.
     auto client_result_iter =
-        client_results.client_result_map().find(client_key);
-    if (client_result_iter != client_results.client_result_map().end()) {
-      client_results.mutable_client_result_map()->erase(client_key);
+        cached_results_.client_result_map().find(client_key);
+    if (client_result_iter != cached_results_.client_result_map().end()) {
+      cached_results_.mutable_client_result_map()->erase(client_key);
     }
   }
   std::string output;
-  base::Base64Encode(client_results.SerializeAsString(), &output);
+  base::Base64Encode(cached_results_.SerializeAsString(), &output);
   prefs_->SetString(kSegmentationClientResultPrefs, output);
 }
 
-absl::optional<proto::ClientResult>
-ClientResultPrefs::ReadClientResultFromPrefs(const std::string& client_key) {
-  proto::ClientResults client_results;
+const proto::ClientResult* ClientResultPrefs::ReadClientResultFromPrefs(
+    const std::string& client_key) {
+  InitializeIfNeeded();
 
+  const auto& it = cached_results_.client_result_map().find(client_key);
+  if (it != cached_results_.client_result_map().end()) {
+    return &it->second;
+  }
+  return nullptr;
+}
+
+void ClientResultPrefs::InitializeIfNeeded() {
+  if (initialized_) {
+    return;
+  }
+
+  initialized_ = true;
   auto decoded_client_results =
       base::Base64Decode(prefs_->GetString(kSegmentationClientResultPrefs));
   const std::string& decoded_client_results_as_string =
@@ -54,11 +58,7 @@
                         decoded_client_results.value().end())
           : std::string();
 
-  client_results.ParseFromString(decoded_client_results_as_string);
-  if (client_results.client_result_map().contains(client_key)) {
-    return client_results.client_result_map().at(client_key);
-  }
-  return absl::nullopt;
+  cached_results_.ParseFromString(decoded_client_results_as_string);
 }
 
 }  // namespace segmentation_platform
diff --git a/components/segmentation_platform/internal/database/client_result_prefs.h b/components/segmentation_platform/internal/database/client_result_prefs.h
index 3a3e3af..ab5cdc2 100644
--- a/components/segmentation_platform/internal/database/client_result_prefs.h
+++ b/components/segmentation_platform/internal/database/client_result_prefs.h
@@ -35,14 +35,19 @@
   // with the new result.
   virtual void SaveClientResultToPrefs(
       const std::string& client_key,
-      const absl::optional<proto::ClientResult>& client_result);
+      absl::optional<proto::ClientResult> client_result);
 
   // Reads the `ClientResult` from prefs, if present.
-  virtual absl::optional<proto::ClientResult> ReadClientResultFromPrefs(
+  virtual const proto::ClientResult* ReadClientResultFromPrefs(
       const std::string& client_key);
 
  private:
-  raw_ptr<PrefService> prefs_;
+  void InitializeIfNeeded();
+
+  const raw_ptr<PrefService> prefs_;
+
+  bool initialized_{false};
+  proto::ClientResults cached_results_;
 };
 
 }  // namespace segmentation_platform
diff --git a/components/segmentation_platform/internal/database/client_result_prefs_unittest.cc b/components/segmentation_platform/internal/database/client_result_prefs_unittest.cc
index a6aa1d4..5c26ce8 100644
--- a/components/segmentation_platform/internal/database/client_result_prefs_unittest.cc
+++ b/components/segmentation_platform/internal/database/client_result_prefs_unittest.cc
@@ -41,20 +41,20 @@
 };
 
 TEST_F(ClientResultPrefsTest, ReadClientResultFromEmptyPrefs) {
-  absl::optional<proto::ClientResult> current_result =
+  const proto::ClientResult* current_result =
       result_prefs_->ReadClientResultFromPrefs(kClientKey);
-  EXPECT_FALSE(current_result.has_value());
+  EXPECT_FALSE(current_result);
 }
 
 TEST_F(ClientResultPrefsTest, SaveClientResultToEmptyPrefs) {
   const proto::ClientResult& client_result = CreateClientResult({0.8});
   result_prefs_->SaveClientResultToPrefs(kClientKey, client_result);
 
-  absl::optional<proto::ClientResult> current_result =
+  const proto::ClientResult* current_result =
       result_prefs_->ReadClientResultFromPrefs(kClientKey);
-  EXPECT_TRUE(current_result.has_value());
+  EXPECT_TRUE(current_result);
   EXPECT_EQ(client_result.SerializeAsString(),
-            current_result.value().SerializeAsString());
+            current_result->SerializeAsString());
 }
 
 TEST_F(ClientResultPrefsTest, SaveMultipleClientResults) {
@@ -65,40 +65,40 @@
   const proto::ClientResult& client_result2 = CreateClientResult({0.7, 0.9});
   result_prefs_->SaveClientResultToPrefs(kClientKey2, client_result2);
 
-  absl::optional<proto::ClientResult> current_result =
+  const proto::ClientResult* current_result =
       result_prefs_->ReadClientResultFromPrefs(kClientKey);
-  EXPECT_TRUE(current_result.has_value());
+  EXPECT_TRUE(current_result);
   EXPECT_EQ(client_result.SerializeAsString(),
-            current_result.value().SerializeAsString());
+            current_result->SerializeAsString());
 
   current_result = result_prefs_->ReadClientResultFromPrefs(kClientKey2);
-  EXPECT_TRUE(current_result.has_value());
+  EXPECT_TRUE(current_result);
   EXPECT_EQ(client_result2.SerializeAsString(),
-            current_result.value().SerializeAsString());
+            current_result->SerializeAsString());
 
   // Save empty result. It should delete the current result.
   result_prefs_->SaveClientResultToPrefs(kClientKey2, absl::nullopt);
   current_result = result_prefs_->ReadClientResultFromPrefs(kClientKey2);
-  EXPECT_FALSE(current_result.has_value());
+  EXPECT_FALSE(current_result);
 
   current_result = result_prefs_->ReadClientResultFromPrefs(kClientKey);
-  EXPECT_TRUE(current_result.has_value());
+  EXPECT_TRUE(current_result);
   EXPECT_EQ(client_result.SerializeAsString(),
-            current_result.value().SerializeAsString());
+            current_result->SerializeAsString());
 
   // Updating client result for `kClientKey2`. It should overwrite the
   // result.
   const proto::ClientResult& client_result3 = CreateClientResult({});
   result_prefs_->SaveClientResultToPrefs(kClientKey2, client_result3);
   current_result = result_prefs_->ReadClientResultFromPrefs(kClientKey2);
-  EXPECT_TRUE(current_result.has_value());
+  EXPECT_TRUE(current_result);
   EXPECT_EQ(client_result3.SerializeAsString(),
-            current_result.value().SerializeAsString());
+            current_result->SerializeAsString());
 
   current_result = result_prefs_->ReadClientResultFromPrefs(kClientKey);
-  EXPECT_TRUE(current_result.has_value());
+  EXPECT_TRUE(current_result);
   EXPECT_EQ(client_result.SerializeAsString(),
-            current_result.value().SerializeAsString());
+            current_result->SerializeAsString());
 }
 
 }  // namespace segmentation_platform
diff --git a/components/segmentation_platform/internal/migration/prefs_migrator.cc b/components/segmentation_platform/internal/migration/prefs_migrator.cc
index dfafb8d54..cf773fe 100644
--- a/components/segmentation_platform/internal/migration/prefs_migrator.cc
+++ b/components/segmentation_platform/internal/migration/prefs_migrator.cc
@@ -31,7 +31,7 @@
     const auto& segmentation_key = config->segmentation_key;
     absl::optional<SelectedSegment> old_result =
         old_prefs_->ReadSegmentationResultFromPref(segmentation_key);
-    absl::optional<proto::ClientResult> new_result =
+    const proto::ClientResult* new_result =
         new_prefs_->ReadClientResultFromPrefs(segmentation_key);
 
     UpdateNewPrefs(config.get(), old_result, new_result);
@@ -45,25 +45,24 @@
          (config->segmentation_key == kAdaptiveToolbarSegmentationKey);
 }
 
-void PrefsMigrator::UpdateNewPrefs(
-    Config* config,
-    absl::optional<SelectedSegment> old_result,
-    absl::optional<proto::ClientResult> new_result) {
+void PrefsMigrator::UpdateNewPrefs(Config* config,
+                                   absl::optional<SelectedSegment> old_result,
+                                   const proto::ClientResult* new_result) {
   // Update the new prefs only if:
   // 1. Old pref have entry and new pref doesn't.
   // 2. Old pref was updated, after the new prefs was last written.
-  bool old_pref_entry_absent_in_new_pref =
-      !new_result.has_value() && old_result.has_value();
+  bool old_pref_entry_absent_in_new_pref = !new_result && old_result;
   bool old_pref_entry_updated =
-      (new_result.has_value() && old_result.has_value() &&
-       new_result.value().timestamp_us() <
+      (new_result && old_result &&
+       new_result->timestamp_us() <
            old_result.value()
                .selection_time.ToDeltaSinceWindowsEpoch()
                .InMicroseconds());
   if (old_pref_entry_absent_in_new_pref || old_pref_entry_updated) {
-    new_result = pref_migration_utils::CreateClientResultFromOldResult(
+    auto updated_result = pref_migration_utils::CreateClientResultFromOldResult(
         config, old_result.value());
-    new_prefs_->SaveClientResultToPrefs(config->segmentation_key, new_result);
+    new_prefs_->SaveClientResultToPrefs(config->segmentation_key,
+                                        std::move(updated_result));
   }
 }
 
@@ -71,8 +70,7 @@
     Config* config,
     absl::optional<SelectedSegment> old_result) {
   // If the model has been migrated, delete the entry from the old prefs.
-  if (!metadata_utils::ConfigUsesLegacyOutput(config) &&
-      old_result.has_value()) {
+  if (!metadata_utils::ConfigUsesLegacyOutput(config) && old_result) {
     // Decide when to delete old result.
     old_prefs_->SaveSegmentationResultToPref(config->segmentation_key,
                                              absl::nullopt);
diff --git a/components/segmentation_platform/internal/migration/prefs_migrator.h b/components/segmentation_platform/internal/migration/prefs_migrator.h
index 898da96c..7218b44 100644
--- a/components/segmentation_platform/internal/migration/prefs_migrator.h
+++ b/components/segmentation_platform/internal/migration/prefs_migrator.h
@@ -46,7 +46,7 @@
   bool IsPrefMigrationRequired(Config* config);
   void UpdateNewPrefs(Config* config,
                       absl::optional<SelectedSegment> old_result,
-                      absl::optional<proto::ClientResult> new_result);
+                      const proto::ClientResult* new_result);
   void DeleteOldPrefsEntryIfFullyMigrated(
       Config* config,
       absl::optional<SelectedSegment> old_result);
diff --git a/components/segmentation_platform/internal/migration/prefs_migrator_unittest.cc b/components/segmentation_platform/internal/migration/prefs_migrator_unittest.cc
index df6e994..032c00e 100644
--- a/components/segmentation_platform/internal/migration/prefs_migrator_unittest.cc
+++ b/components/segmentation_platform/internal/migration/prefs_migrator_unittest.cc
@@ -54,7 +54,7 @@
   // Model with binary classifier when `segment_id` is selected.
   SelectedSegment result(
       SegmentId::OPTIMIZATION_TARGET_SEGMENTATION_SHOPPING_USER, 1);
-  result.selection_time = base::Time::Now();
+  result.selection_time = base::Time::Now() - base::Seconds(1);
   old_result_prefs_->SaveSegmentationResultToPref(kShoppingUserSegmentationKey,
                                                   result);
   prefs_migrator_ = std::make_unique<PrefsMigrator>(
@@ -65,18 +65,18 @@
   auto expected_output_config =
       migration_test_utils::GetTestOutputConfigForBinaryClassifier(
           proto::SegmentId::OPTIMIZATION_TARGET_SEGMENTATION_SHOPPING_USER);
-  auto result_in_new_prefs = new_result_prefs_->ReadClientResultFromPrefs(
-      kShoppingUserSegmentationKey);
+  const auto* result_in_new_prefs =
+      new_result_prefs_->ReadClientResultFromPrefs(
+          kShoppingUserSegmentationKey);
 
-  EXPECT_TRUE(result_in_new_prefs.has_value());
-  proto::PredictionResult client_result =
-      result_in_new_prefs.value().client_result();
+  EXPECT_TRUE(result_in_new_prefs);
+  proto::PredictionResult client_result = result_in_new_prefs->client_result();
   EXPECT_EQ(expected_output_config.SerializeAsString(),
             client_result.output_config().SerializeAsString());
   EXPECT_THAT(client_result.result(), testing::ElementsAre(1));
 
   new_result_prefs_->SaveClientResultToPrefs(kShoppingUserSegmentationKey,
-                                             result_in_new_prefs);
+                                             *result_in_new_prefs);
 
   // Models with binary classifier when `segment_id` is not selected.
   SelectedSegment result1(SegmentId::OPTIMIZATION_TARGET_UNKNOWN, 0);
@@ -89,8 +89,8 @@
 
   result_in_new_prefs = new_result_prefs_->ReadClientResultFromPrefs(
       kShoppingUserSegmentationKey);
-  EXPECT_TRUE(result_in_new_prefs.has_value());
-  client_result = result_in_new_prefs.value().client_result();
+  EXPECT_TRUE(result_in_new_prefs);
+  client_result = result_in_new_prefs->client_result();
   EXPECT_EQ(expected_output_config.SerializeAsString(),
             client_result.output_config().SerializeAsString());
   EXPECT_THAT(client_result.result(), testing::ElementsAre(0));
@@ -110,18 +110,18 @@
 
   auto expected_output_config =
       migration_test_utils::GetTestOutputConfigForAdaptiveToolbar();
-  auto result_in_new_prefs = new_result_prefs_->ReadClientResultFromPrefs(
-      kAdaptiveToolbarSegmentationKey);
+  const auto* result_in_new_prefs =
+      new_result_prefs_->ReadClientResultFromPrefs(
+          kAdaptiveToolbarSegmentationKey);
 
-  EXPECT_TRUE(result_in_new_prefs.has_value());
-  proto::PredictionResult client_result =
-      result_in_new_prefs.value().client_result();
+  EXPECT_TRUE(result_in_new_prefs);
+  proto::PredictionResult client_result = result_in_new_prefs->client_result();
   EXPECT_EQ(expected_output_config.SerializeAsString(),
             client_result.output_config().SerializeAsString());
   EXPECT_THAT(client_result.result(), testing::ElementsAre(1, 0, 0, 0, 0));
 
   new_result_prefs_->SaveClientResultToPrefs(kAdaptiveToolbarSegmentationKey,
-                                             result_in_new_prefs);
+                                             *result_in_new_prefs);
 
   // AdpativeToolbar model when share is selected.
   SelectedSegment result1(SegmentId::OPTIMIZATION_TARGET_SEGMENTATION_SHARE, 1);
@@ -136,8 +136,8 @@
   result_in_new_prefs = new_result_prefs_->ReadClientResultFromPrefs(
       kAdaptiveToolbarSegmentationKey);
 
-  EXPECT_TRUE(result_in_new_prefs.has_value());
-  client_result = result_in_new_prefs.value().client_result();
+  EXPECT_TRUE(result_in_new_prefs);
+  client_result = result_in_new_prefs->client_result();
   EXPECT_EQ(expected_output_config.SerializeAsString(),
             client_result.output_config().SerializeAsString());
   EXPECT_THAT(client_result.result(), testing::ElementsAre(0, 1, 0, 0, 0));
@@ -153,9 +153,9 @@
 
   prefs_migrator_->MigrateOldPrefsToNewPrefs();
 
-  auto result_in_new_prefs =
+  const auto* result_in_new_prefs =
       new_result_prefs_->ReadClientResultFromPrefs(kSearchUserKey);
-  EXPECT_FALSE(result_in_new_prefs.has_value());
+  EXPECT_FALSE(result_in_new_prefs);
 }
 
 }  // namespace segmentation_platform
\ No newline at end of file
diff --git a/components/segmentation_platform/internal/selection/result_refresh_manager.cc b/components/segmentation_platform/internal/selection/result_refresh_manager.cc
index ac99c81..f508a2f 100644
--- a/components/segmentation_platform/internal/selection/result_refresh_manager.cc
+++ b/components/segmentation_platform/internal/selection/result_refresh_manager.cc
@@ -153,14 +153,13 @@
   stats::RecordSegmentSelectionFailure(
       *config, stats::GetSuccessOrFailureReason(result_state));
 
-  proto::PredictionResult pred_result = result->result;
-  stats::RecordClassificationResultComputed(*config, pred_result);
+  stats::RecordClassificationResultComputed(*config, result->result);
 
   proto::ClientResult client_result =
-      metadata_utils::CreateClientResultFromPredResult(pred_result,
-                                                       base::Time::Now());
+      metadata_utils::CreateClientResultFromPredResult(
+          std::move(result->result), base::Time::Now());
   bool is_pref_updated = cached_result_writer_->UpdatePrefsIfExpired(
-      config, client_result, platform_options_);
+      config, std::move(client_result), platform_options_);
   if (is_pref_updated) {
     CollectTrainingDataIfNeeded(config, execution_service_);
   }
diff --git a/components/segmentation_platform/internal/selection/result_refresh_manager_unittest.cc b/components/segmentation_platform/internal/selection/result_refresh_manager_unittest.cc
index cce30b5..a6717bf0 100644
--- a/components/segmentation_platform/internal/selection/result_refresh_manager_unittest.cc
+++ b/components/segmentation_platform/internal/selection/result_refresh_manager_unittest.cc
@@ -132,17 +132,17 @@
 
   void VerifyIfResultUpdatedInPrefs(const std::string& segmentation_key,
                                     proto::PredictionResult expected_result) {
-    absl::optional<proto::ClientResult> client_result =
+    const proto::ClientResult* client_result =
         client_result_prefs_->ReadClientResultFromPrefs(segmentation_key);
-    EXPECT_TRUE(client_result.has_value());
+    EXPECT_TRUE(client_result);
     EXPECT_EQ(expected_result.SerializeAsString(),
-              client_result.value().client_result().SerializeAsString());
+              client_result->client_result().SerializeAsString());
   }
 
   void VerifyIfResultNotUpdatedInPrefs(const std::string& segmentation_key) {
-    absl::optional<proto::ClientResult> client_result =
+    const proto::ClientResult* client_result =
         client_result_prefs_->ReadClientResultFromPrefs(segmentation_key);
-    EXPECT_FALSE(client_result.has_value());
+    EXPECT_FALSE(client_result);
   }
 
   base::test::TaskEnvironment task_environment_{
diff --git a/components/segmentation_platform/internal/stats.cc b/components/segmentation_platform/internal/stats.cc
index 489de666..d98857b 100644
--- a/components/segmentation_platform/internal/stats.cc
+++ b/components/segmentation_platform/internal/stats.cc
@@ -273,14 +273,12 @@
 
 void RecordClassificationResultUpdated(
     const Config& config,
-    const absl::optional<proto::PredictionResult>& old_result,
+    const proto::PredictionResult* old_result,
     const proto::PredictionResult& new_result) {
   PostProcessor post_processor;
   int new_result_top_label = post_processor.GetIndexOfTopLabel(new_result);
   int old_result_top_label =
-      old_result.has_value()
-          ? post_processor.GetIndexOfTopLabel(old_result.value())
-          : -2;
+      old_result ? post_processor.GetIndexOfTopLabel(*old_result) : -2;
   if (old_result_top_label == new_result_top_label) {
     return;
   }
diff --git a/components/segmentation_platform/internal/stats.h b/components/segmentation_platform/internal/stats.h
index e148553..071350e 100644
--- a/components/segmentation_platform/internal/stats.h
+++ b/components/segmentation_platform/internal/stats.h
@@ -71,7 +71,7 @@
 // to when prefs expired and is updated with new result.
 void RecordClassificationResultUpdated(
     const Config& config,
-    const absl::optional<proto::PredictionResult>& old_result,
+    const proto::PredictionResult* old_result,
     const proto::PredictionResult& new_result);
 
 // Database Maintenance metrics.
diff --git a/components/segmentation_platform/internal/stats_unittest.cc b/components/segmentation_platform/internal/stats_unittest.cc
index 64633b1..a6b3719d 100644
--- a/components/segmentation_platform/internal/stats_unittest.cc
+++ b/components/segmentation_platform/internal/stats_unittest.cc
@@ -132,7 +132,7 @@
       /*timestamp=*/base::Time::Now(), /*model_version=*/1);
 
   // Low -> Low. No switched histograms.
-  RecordClassificationResultUpdated(config, result_low, result_low);
+  RecordClassificationResultUpdated(config, &result_low, result_low);
   EXPECT_THAT(tester.GetAllSamples(switched_histogram), testing::ElementsAre());
 
   // Verify all possible combinations in a 3-label classifier.
@@ -145,15 +145,15 @@
   // label 1 -> label 2 : 102
   // label 2 -> label 0 : 200
   // label 2 -> label 1 : 201
-  RecordClassificationResultUpdated(config, absl::nullopt, result_low);
-  RecordClassificationResultUpdated(config, absl::nullopt, result_medium);
-  RecordClassificationResultUpdated(config, absl::nullopt, result_high);
-  RecordClassificationResultUpdated(config, result_low, result_medium);
-  RecordClassificationResultUpdated(config, result_low, result_high);
-  RecordClassificationResultUpdated(config, result_medium, result_low);
-  RecordClassificationResultUpdated(config, result_medium, result_high);
-  RecordClassificationResultUpdated(config, result_high, result_low);
-  RecordClassificationResultUpdated(config, result_high, result_medium);
+  RecordClassificationResultUpdated(config, nullptr, result_low);
+  RecordClassificationResultUpdated(config, nullptr, result_medium);
+  RecordClassificationResultUpdated(config, nullptr, result_high);
+  RecordClassificationResultUpdated(config, &result_low, result_medium);
+  RecordClassificationResultUpdated(config, &result_low, result_high);
+  RecordClassificationResultUpdated(config, &result_medium, result_low);
+  RecordClassificationResultUpdated(config, &result_medium, result_high);
+  RecordClassificationResultUpdated(config, &result_high, result_low);
+  RecordClassificationResultUpdated(config, &result_high, result_medium);
 
   tester.ExpectTotalCount(switched_histogram, 9);
   EXPECT_THAT(tester.GetAllSamples(switched_histogram),
diff --git a/components/services/storage/privileged/mojom/BUILD.gn b/components/services/storage/privileged/mojom/BUILD.gn
index 86a10a5..41fafd2 100644
--- a/components/services/storage/privileged/mojom/BUILD.gn
+++ b/components/services/storage/privileged/mojom/BUILD.gn
@@ -14,7 +14,6 @@
   ]
 
   webui_module_path = "/"
-  use_typescript_sources = true
 }
 
 mojom("mojom") {
diff --git a/components/services/storage/public/mojom/buckets/BUILD.gn b/components/services/storage/public/mojom/buckets/BUILD.gn
index 0ae2ea8..e2740b9 100644
--- a/components/services/storage/public/mojom/buckets/BUILD.gn
+++ b/components/services/storage/public/mojom/buckets/BUILD.gn
@@ -56,5 +56,4 @@
   ]
 
   webui_module_path = "/"
-  use_typescript_sources = true
 }
diff --git a/components/services/storage/service_worker/service_worker_resource_ops.cc b/components/services/storage/service_worker/service_worker_resource_ops.cc
index ad95a07..72b5c73 100644
--- a/components/services/storage/service_worker/service_worker_resource_ops.cc
+++ b/components/services/storage/service_worker/service_worker_resource_ops.cc
@@ -507,8 +507,8 @@
     return;
   }
 
-  auto buffer =
-      base::MakeRefCounted<net::IOBuffer>(base::checked_cast<size_t>(size));
+  auto buffer = base::MakeRefCounted<net::IOBufferWithSize>(
+      base::checked_cast<size_t>(size));
   int rv = entry_opener_.entry()->Read(
       kResponseInfoIndex, /*offset=*/0, buffer.get(), size,
       base::BindOnce(&ServiceWorkerResourceReaderImpl::DidReadHttpResponseInfo,
diff --git a/components/site_engagement/core/mojom/BUILD.gn b/components/site_engagement/core/mojom/BUILD.gn
index aecf47ff..bddb901 100644
--- a/components/site_engagement/core/mojom/BUILD.gn
+++ b/components/site_engagement/core/mojom/BUILD.gn
@@ -8,5 +8,4 @@
   sources = [ "site_engagement_details.mojom" ]
   public_deps = [ "//url/mojom:url_mojom_gurl" ]
   webui_module_path = "/"
-  use_typescript_sources = true
 }
diff --git a/components/soda/constants.cc b/components/soda/constants.cc
index f101b192..6d6d42dc 100644
--- a/components/soda/constants.cc
+++ b/components/soda/constants.cc
@@ -154,8 +154,7 @@
 LanguageCode GetLanguageCodeByComponentId(const std::string& component_id) {
   for (const SodaLanguagePackComponentConfig& config :
        kLanguageComponentConfigs) {
-    if (crx_file::id_util::GenerateIdFromHash(config.public_key_sha,
-                                              sizeof(config.public_key_sha)) ==
+    if (crx_file::id_util::GenerateIdFromHash(config.public_key_sha) ==
         component_id) {
       return config.language_code;
     }
diff --git a/components/tab_groups/public/mojom/BUILD.gn b/components/tab_groups/public/mojom/BUILD.gn
index d21bb76..35daeb0 100644
--- a/components/tab_groups/public/mojom/BUILD.gn
+++ b/components/tab_groups/public/mojom/BUILD.gn
@@ -24,5 +24,4 @@
   ]
 
   webui_module_path = ""
-  use_typescript_sources = true
 }
diff --git a/components/update_client/utils.cc b/components/update_client/utils.cc
index b37fc01..4ff9bd2c 100644
--- a/components/update_client/utils.cc
+++ b/components/update_client/utils.cc
@@ -75,9 +75,8 @@
                                   : component.app_id;
 }
 
-std::string GetCrxIdFromPublicKeyHash(const std::vector<uint8_t>& pk_hash) {
-  const std::string result =
-      crx_file::id_util::GenerateIdFromHash(&pk_hash[0], pk_hash.size());
+std::string GetCrxIdFromPublicKeyHash(base::span<const uint8_t> pk_hash) {
+  const std::string result = crx_file::id_util::GenerateIdFromHash(pk_hash);
   CHECK(crx_file::id_util::IdIsValid(result));
   return result;
 }
diff --git a/components/update_client/utils.h b/components/update_client/utils.h
index 5788dff..552ddd8 100644
--- a/components/update_client/utils.h
+++ b/components/update_client/utils.h
@@ -55,7 +55,7 @@
 std::string GetCrxComponentID(const CrxComponent& component);
 
 // Returns a CRX id from a public key hash.
-std::string GetCrxIdFromPublicKeyHash(const std::vector<uint8_t>& pk_hash);
+std::string GetCrxIdFromPublicKeyHash(base::span<const uint8_t> pk_hash);
 
 // Returns true if the actual SHA-256 hash of the |filepath| matches the
 // |expected_hash|.
diff --git a/components/webrtc/fake_ssl_client_socket.cc b/components/webrtc/fake_ssl_client_socket.cc
index 15a3dbb7..128ff5b 100644
--- a/components/webrtc/fake_ssl_client_socket.cc
+++ b/components/webrtc/fake_ssl_client_socket.cc
@@ -74,7 +74,7 @@
 
 scoped_refptr<net::DrainableIOBuffer> NewDrainableIOBufferWithSize(int size) {
   return base::MakeRefCounted<net::DrainableIOBuffer>(
-      base::MakeRefCounted<net::IOBuffer>(size), size);
+      base::MakeRefCounted<net::IOBufferWithSize>(size), size);
 }
 
 }  // namespace
diff --git a/components/webrtc/fake_ssl_client_socket_unittest.cc b/components/webrtc/fake_ssl_client_socket_unittest.cc
index 5e0cb7f..de50bf45 100644
--- a/components/webrtc/fake_ssl_client_socket_unittest.cc
+++ b/components/webrtc/fake_ssl_client_socket_unittest.cc
@@ -173,7 +173,8 @@
       if (fake_ssl_client_socket.IsConnected()) {
         int read_len = std::size(kReadTestData);
         int read_buf_len = 2 * read_len;
-        auto read_buf = base::MakeRefCounted<net::IOBuffer>(read_buf_len);
+        auto read_buf =
+            base::MakeRefCounted<net::IOBufferWithSize>(read_buf_len);
 
         net::TestCompletionCallback read_callback;
         int read_status = fake_ssl_client_socket.Read(
diff --git a/content/browser/accessibility/browser_accessibility_cocoa.mm b/content/browser/accessibility/browser_accessibility_cocoa.mm
index 9a3e04ca..e2d70a20 100644
--- a/content/browser/accessibility/browser_accessibility_cocoa.mm
+++ b/content/browser/accessibility/browser_accessibility_cocoa.mm
@@ -1015,7 +1015,7 @@
           ->ToBrowserAccessibilityManagerMac();
   if (!manager) {
     // TODO(accessibility) Determine why this is happening.
-    SANITIZER_NOTREACHED();
+    DCHECK(false);
     return nil;
   }
   SANITIZER_CHECK(manager->GetParentView());
diff --git a/content/browser/android/selection/magnifier_surface_control.cc b/content/browser/android/selection/magnifier_surface_control.cc
index 757de09a..feb2866 100644
--- a/content/browser/android/selection/magnifier_surface_control.cc
+++ b/content/browser/android/selection/magnifier_surface_control.cc
@@ -122,6 +122,8 @@
       gfx::Rect(surface_size_), device_scale,
       local_surface_id_allocator_.GetCurrentLocalSurfaceId());
 
+  GetHostFrameSinkManager()->RegisterFrameSinkId(
+      frame_sink_id_, this, viz::ReportFirstSurfaceActivation::kNo);
   CreateDisplayAndFrameSink();
   surface_layer_->SetIsDrawable(true);
   root_layer_->SetBounds(surface_size_);
@@ -187,9 +189,6 @@
   layer_tree_->SetRoot(root_layer_);
   rounded_corner_layer_->AddChild(zoom_layer_);
   zoom_layer_->AddChild(surface_layer_);
-
-  GetHostFrameSinkManager()->RegisterFrameSinkId(
-      frame_sink_id_, this, viz::ReportFirstSurfaceActivation::kNo);
 }
 
 MagnifierSurfaceControl::~MagnifierSurfaceControl() {
diff --git a/content/browser/preloading/prefetch/prefetch_container.cc b/content/browser/preloading/prefetch/prefetch_container.cc
index f05597e..3865971da 100644
--- a/content/browser/preloading/prefetch/prefetch_container.cc
+++ b/content/browser/preloading/prefetch/prefetch_container.cc
@@ -553,6 +553,29 @@
   return prefetch_document_manager_.get();
 }
 
+void PrefetchContainer::SetLoadState(LoadState new_load_state) {
+  switch (new_load_state) {
+    case LoadState::kNotStarted:
+      NOTREACHED();
+      break;
+
+    case LoadState::kEligible:
+    case LoadState::kFailedIneligible:
+      CHECK_EQ(load_state_, LoadState::kNotStarted);
+      break;
+
+    case LoadState::kStarted:
+    case LoadState::kFailedHeldback:
+      CHECK_EQ(load_state_, LoadState::kEligible);
+      break;
+  }
+  load_state_ = new_load_state;
+}
+
+PrefetchContainer::LoadState PrefetchContainer::GetLoadState() const {
+  return load_state_;
+}
+
 void PrefetchContainer::OnEligibilityCheckComplete(
     PreloadingEligibility eligibility) {
   SinglePrefetch& this_prefetch = GetCurrentSinglePrefetchToPrefetch();
@@ -562,7 +585,10 @@
   if (redirect_chain_.size() == 1) {
     // This case is for just the URL that was originally requested to be
     // prefetched.
-    if (!is_eligible) {
+    if (is_eligible) {
+      SetLoadState(LoadState::kEligible);
+    } else {
+      SetLoadState(LoadState::kFailedIneligible);
       SetPrefetchStatusWithoutUpdatingTriggeringOutcome(
           PrefetchStatusFromIneligibleReason(eligibility));
     }
diff --git a/content/browser/preloading/prefetch/prefetch_container.h b/content/browser/preloading/prefetch/prefetch_container.h
index 9421d2a..be15e1b 100644
--- a/content/browser/preloading/prefetch/prefetch_container.h
+++ b/content/browser/preloading/prefetch/prefetch_container.h
@@ -176,6 +176,47 @@
   bool HasPrefetchStatus() const { return prefetch_status_.has_value(); }
   PrefetchStatus GetPrefetchStatus() const;
 
+  // The state enum of the current prefetch, to replace `PrefetchStatus`.
+  // https://crbug.com/1494771
+  // Design doc for PrefetchContainer state transitions:
+  // https://docs.google.com/document/d/1dK4mAVoRrgTVTGdewthI_hA8AHirgXW8k6BmpK9gnBE/edit?usp=sharing
+  enum class LoadState {
+    // --- Phase 1. [Initial state]
+    kNotStarted,
+
+    // --- Phase 2. The eligibility check for the initial request has completed
+    // and `PreloadingAttempt::SetEligibility()` has been called.
+
+    // Found eligible.
+    kEligible,
+
+    // [Final state] Found ineligible. `redirect_chain_[0].eligibility_`
+    // contains the reason for being ineligible.
+    kFailedIneligible,
+
+    // --- Phase 3. PrefetchService::StartSinglePrefetch() has been called and
+    // the holdback check has completed.
+
+    // [Final state] Not heldback.
+    //
+    // On this state, refer to `PrefetchResponseReader`s for detailed
+    // prefetching state and servability.
+    //
+    // Also, refer to `attempt_` for triggering outcome and failure reasons for
+    // metrics.
+    // `PreloadingAttempt::SetFailureReason()` can be only called on this state.
+    // Note that these states of `attempt_` don't directly affect
+    // `PrefetchResponseReader`'s servability.
+    // (e.g. `PrefetchResponseReader::GetServableState()` can be still
+    // `kServable` even if `attempt_` has a failure).
+    kStarted,
+
+    // [Final state] Heldback due to `PreloadingAttempt::ShouldHoldback()`.
+    kFailedHeldback,
+  };
+  void SetLoadState(LoadState prefetch_status);
+  LoadState GetLoadState() const;
+
   // Controls ownership of the |ProxyLookupClientImpl| used during the
   // eligibility check.
   void TakeProxyLookupClient(
@@ -516,8 +557,12 @@
   base::WeakPtr<PrefetchDocumentManager> prefetch_document_manager_;
 
   // The current status, if any, of the prefetch.
+  // TODO(crbug.com/1494771): Use `load_state_` instead for non-metrics purpose.
   absl::optional<PrefetchStatus> prefetch_status_;
 
+  // The current status of the prefetch.
+  LoadState load_state_ = LoadState::kNotStarted;
+
   // Looks up the proxy settings in the default network context all URLs in
   // |redirect_chain_|.
   std::unique_ptr<ProxyLookupClientImpl> proxy_lookup_client_;
diff --git a/content/browser/preloading/prefetch/prefetch_document_manager.cc b/content/browser/preloading/prefetch/prefetch_document_manager.cc
index 7270fb5..5bcb4dc 100644
--- a/content/browser/preloading/prefetch/prefetch_document_manager.cc
+++ b/content/browser/preloading/prefetch/prefetch_document_manager.cc
@@ -69,17 +69,31 @@
       prefetch_destruction_callback_(base::DoNothing()) {}
 
 PrefetchDocumentManager::~PrefetchDocumentManager() {
-  // On destruction, removes any owned prefetches from |PrefetchService|. Other
-  // prefetches associated by |this| are owned by |PrefetchService| and can
-  // still be used after the destruction of |this|.
   PrefetchService* prefetch_service = GetPrefetchService();
   if (!prefetch_service)
     return;
 
-  for (const auto& prefetch_iter : owned_prefetches_) {
-    DCHECK(prefetch_iter.second);
-    prefetch_service->RemovePrefetch(
-        prefetch_iter.second->GetPrefetchContainerKey());
+  // Invalidate weak pointers to `this` a little earlier to avoid callbacks to
+  // `this` (especially `PrefetchWillBeDestroyed()`) during `ResetPrefetch()`
+  // below.
+  weak_method_factory_.InvalidateWeakPtrs();
+
+  // On destruction, removes any prefetches that not yet start prefetching from
+  // |PrefetchService|. Other already started prefetches associated by |this|
+  // can still remain and be used after the destruction of |this|.
+  for (const auto& prefetch_iter : all_prefetches_) {
+    if (prefetch_iter.second) {
+      switch (prefetch_iter.second->GetLoadState()) {
+        case PrefetchContainer::LoadState::kNotStarted:
+        case PrefetchContainer::LoadState::kEligible:
+        case PrefetchContainer::LoadState::kFailedIneligible:
+        case PrefetchContainer::LoadState::kFailedHeldback:
+          prefetch_service->ResetPrefetch(prefetch_iter.second);
+          break;
+        case PrefetchContainer::LoadState::kStarted:
+          break;
+      }
+    }
   }
 }
 
@@ -257,6 +271,10 @@
             mojo_no_vary_search_expected);
   }
   PrefetchService* prefetch_service = GetPrefetchService();
+  if (!prefetch_service) {
+    return;
+  }
+
   // Create a new |PrefetchContainer| and take ownership of it
   auto container = std::make_unique<PrefetchContainer>(
       render_frame_host().GetGlobalId(), document_token_, url, prefetch_type,
@@ -266,26 +284,13 @@
           prefetch_service, PrefetchContainer::Key(document_token_, url)));
   container->SetDevToolsObserver(std::move(devtools_observer));
   DVLOG(1) << *container << ": created";
-  base::WeakPtr<PrefetchContainer> weak_container = container->GetWeakPtr();
-  owned_prefetches_[url] = std::move(container);
-  all_prefetches_[url] = weak_container;
+  all_prefetches_[url] = container->GetWeakPtr();
 
   referring_page_metrics_.prefetch_attempted_count++;
 
   // Send a reference of the new |PrefetchContainer| to |PrefetchService| to
   // start the prefetch process.
-  if (prefetch_service) {
-    prefetch_service->PrefetchUrl(weak_container);
-  }
-}
-
-std::unique_ptr<PrefetchContainer>
-PrefetchDocumentManager::ReleasePrefetchContainer(const GURL& url) {
-  DCHECK(owned_prefetches_.find(url) != owned_prefetches_.end());
-  std::unique_ptr<PrefetchContainer> prefetch_container =
-      std::move(owned_prefetches_[url]);
-  owned_prefetches_.erase(url);
-  return prefetch_container;
+  prefetch_service->AddPrefetchContainer(std::move(container));
 }
 
 bool PrefetchDocumentManager::IsPrefetchAttemptFailedOrDiscarded(
@@ -378,7 +383,6 @@
 
 std::tuple<bool, base::WeakPtr<PrefetchContainer>>
 PrefetchDocumentManager::CanPrefetchNow(PrefetchContainer* prefetch) {
-  DCHECK(base::Contains(owned_prefetches_, prefetch->GetURL()));
   RenderFrameHost* rfh = &render_frame_host();
   // The document needs to be active, primary and in a visible WebContents for
   // the prefetch to be eligible.
@@ -440,14 +444,19 @@
 void PrefetchDocumentManager::EvictPrefetch(
     base::WeakPtr<PrefetchContainer> prefetch) {
   DCHECK(prefetch);
-  const GURL url = prefetch->GetURL();
-  if (auto it = owned_prefetches_.find(url); it != owned_prefetches_.end()) {
-    owned_prefetches_.erase(it);
-  } else {
-    DCHECK(GetPrefetchService());
-    GetPrefetchService()->EvictPrefetch(prefetch->GetPrefetchContainerKey());
+  all_prefetches_.erase(prefetch->GetURL());
+  switch (prefetch->GetLoadState()) {
+    case PrefetchContainer::LoadState::kNotStarted:
+    case PrefetchContainer::LoadState::kEligible:
+    case PrefetchContainer::LoadState::kFailedIneligible:
+    case PrefetchContainer::LoadState::kFailedHeldback:
+      break;
+    case PrefetchContainer::LoadState::kStarted:
+      prefetch->SetPrefetchStatus(PrefetchStatus::kPrefetchEvicted);
+      break;
   }
-  all_prefetches_.erase(url);
+  DCHECK(GetPrefetchService());
+  GetPrefetchService()->ResetPrefetch(prefetch);
 }
 
 DOCUMENT_USER_DATA_KEY_IMPL(PrefetchDocumentManager);
diff --git a/content/browser/preloading/prefetch/prefetch_document_manager.h b/content/browser/preloading/prefetch/prefetch_document_manager.h
index fa75498..fc07531 100644
--- a/content/browser/preloading/prefetch/prefetch_document_manager.h
+++ b/content/browser/preloading/prefetch/prefetch_document_manager.h
@@ -75,11 +75,6 @@
       blink::mojom::SpeculationInjectionWorld world,
       base::WeakPtr<SpeculationHostDevToolsObserver> devtools_observer);
 
-  // Releases ownership of the |PrefetchContainer| associated with |url|. The
-  // prefetch is removed from |owned_prefetches_|, but a pointer to it remains
-  // in |all_prefetches_|.
-  std::unique_ptr<PrefetchContainer> ReleasePrefetchContainer(const GURL& url);
-
   // Checking the canary cache can be a slow and blocking operation (see
   // crbug.com/1266018), so we only do this for the first non-decoy prefetch we
   // make on the page.
@@ -149,15 +144,9 @@
   blink::DocumentToken document_token_;
 
   // This map holds references to all |PrefetchContainer| associated with
-  // |this|, regardless of ownership.
+  // |this|.
   std::map<GURL, base::WeakPtr<PrefetchContainer>> all_prefetches_;
 
-  // This map holds all |PrefetchContainer| currently owned by |this|. |this|
-  // owns all |PrefetchContainer| from when they are created in |PrefetchUrl|
-  // until |PrefetchService| starts the network request for the prefetch, at
-  // which point |PrefetchService| takes ownership.
-  std::map<GURL, std::unique_ptr<PrefetchContainer>> owned_prefetches_;
-
   // Stores whether or not canary checks have been started for this page.
   bool have_canary_checks_started_{false};
 
diff --git a/content/browser/preloading/prefetch/prefetch_service.cc b/content/browser/preloading/prefetch/prefetch_service.cc
index 3c6cb53..8ed66c4d 100644
--- a/content/browser/preloading/prefetch/prefetch_service.cc
+++ b/content/browser/preloading/prefetch/prefetch_service.cc
@@ -213,6 +213,8 @@
   }
 
   if (prefetch_container->preloading_attempt()->ShouldHoldback()) {
+    prefetch_container->SetLoadState(
+        PrefetchContainer::LoadState::kFailedHeldback);
     prefetch_container->SetPrefetchStatus(PrefetchStatus::kPrefetchHeldback);
     return true;
   }
@@ -351,8 +353,10 @@
   return origin_prober_.get();
 }
 
-void PrefetchService::PrefetchUrl(
-    base::WeakPtr<PrefetchContainer> prefetch_container) {
+void PrefetchService::AddPrefetchContainer(
+    std::unique_ptr<PrefetchContainer> owned_prefetch_container) {
+  base::WeakPtr<PrefetchContainer> prefetch_container =
+      owned_prefetch_container->GetWeakPtr();
   DCHECK(prefetch_container);
   auto prefetch_container_key = prefetch_container->GetPrefetchContainerKey();
 
@@ -371,8 +375,16 @@
   if (prefetch_iter != all_prefetches_.end() && prefetch_iter->second) {
     ResetPrefetch(prefetch_iter->second);
   }
+
+  owned_prefetches_[prefetch_container_key] =
+      std::move(owned_prefetch_container);
   all_prefetches_[prefetch_container_key] = prefetch_container;
 
+  PrefetchUrl(std::move(prefetch_container));
+}
+
+void PrefetchService::PrefetchUrl(
+    base::WeakPtr<PrefetchContainer> prefetch_container) {
   if (delegate_) {
     // If pre* actions are disabled then don't prefetch.
     switch (delegate_->IsSomePreloadingEnabled()) {
@@ -927,24 +939,6 @@
   return std::make_tuple(next_prefetch_container, prefetch_to_evict);
 }
 
-void PrefetchService::TakeOwnershipOfPrefetch(
-    base::WeakPtr<PrefetchContainer> prefetch_container) {
-  DCHECK(prefetch_container);
-
-  // Take ownership of the |PrefetchContainer| from the
-  // |PrefetchDocumentManager|.
-  PrefetchDocumentManager* prefetch_document_manager =
-      prefetch_container->GetPrefetchDocumentManager();
-  DCHECK(prefetch_document_manager);
-  std::unique_ptr<PrefetchContainer> owned_prefetch_container =
-      prefetch_document_manager->ReleasePrefetchContainer(
-          prefetch_container->GetURL());
-  DCHECK(owned_prefetch_container.get() == prefetch_container.get());
-
-  owned_prefetches_[prefetch_container->GetPrefetchContainerKey()] =
-      std::move(owned_prefetch_container);
-}
-
 void PrefetchService::OnPrefetchTimeout(
     base::WeakPtr<PrefetchContainer> prefetch_container) {
   ResetPrefetch(prefetch_container);
@@ -1005,7 +999,9 @@
     base::WeakPtr<PrefetchContainer> prefetch_container,
     base::WeakPtr<PrefetchContainer> prefetch_to_evict) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  DCHECK(prefetch_container);
+  CHECK(prefetch_container);
+  CHECK_EQ(prefetch_container->GetLoadState(),
+           PrefetchContainer::LoadState::kEligible);
 
   // Do not prefetch for a Holdback control group. Called after the checks in
   // `PopNextPrefetchContainer` because we want to compare against the
@@ -1016,7 +1012,7 @@
     return;
   }
 
-  TakeOwnershipOfPrefetch(prefetch_container);
+  prefetch_container->SetLoadState(PrefetchContainer::LoadState::kStarted);
 
   // Start timer to release the prefetch container after
   // |PrefetchContainerLifetimeInPrefetchService|.
diff --git a/content/browser/preloading/prefetch/prefetch_service.h b/content/browser/preloading/prefetch/prefetch_service.h
index 4b4dd29d..7510d9f7 100644
--- a/content/browser/preloading/prefetch/prefetch_service.h
+++ b/content/browser/preloading/prefetch/prefetch_service.h
@@ -106,6 +106,9 @@
   // |prefetch_container| to the default network context.
   virtual void CopyIsolatedCookies(const PrefetchContainer::Reader& reader);
 
+  void AddPrefetchContainer(
+      std::unique_ptr<PrefetchContainer> prefetch_container);
+
   // Removes the prefetch with the given |prefetch_container_key| from
   // |all_prefetches_|.
   void RemovePrefetch(const PrefetchContainer::Key& prefetch_container_key);
@@ -116,6 +119,8 @@
   // this.
   void EvictPrefetch(const PrefetchContainer::Key& prefetch_container_key);
 
+  void ResetPrefetch(base::WeakPtr<PrefetchContainer> prefetch_container);
+
   // Called by PrefetchDocumentManager when it finishes processing the latest
   // update of speculation candidates.
   void OnCandidatesUpdated();
@@ -233,15 +238,11 @@
   std::tuple<base::WeakPtr<PrefetchContainer>, base::WeakPtr<PrefetchContainer>>
   PopNextPrefetchContainer();
 
-  // Once the network request for a prefetch starts, ownership is transferred
-  // from the referring |PrefetchDocumentManager| to |this|. After
-  // |PrefetchContainerLifetimeInPrefetchService| amount of time, the prefetch
-  // is deleted. Note that if |PrefetchContainerLifetimeInPrefetchService| is 0
-  // or less, then it is kept forever.
-  void TakeOwnershipOfPrefetch(
-      base::WeakPtr<PrefetchContainer> prefetch_container);
+  // After |PrefetchContainerLifetimeInPrefetchService| amount of time, the
+  // prefetch is deleted. Note that if
+  // |PrefetchContainerLifetimeInPrefetchService| is 0 or less, then it is kept
+  // forever.
   void OnPrefetchTimeout(base::WeakPtr<PrefetchContainer> prefetch);
-  void ResetPrefetch(base::WeakPtr<PrefetchContainer> prefetch_container);
 
   // Starts the given |prefetch_container|. If |prefetch_to_evict| is specified,
   // it is evicted immediately before starting |prefetch_container|.
diff --git a/content/browser/preloading/preloading_decider_unittest.cc b/content/browser/preloading/preloading_decider_unittest.cc
index 8da3eb3..72315e1 100644
--- a/content/browser/preloading/preloading_decider_unittest.cc
+++ b/content/browser/preloading/preloading_decider_unittest.cc
@@ -56,15 +56,13 @@
     ASSERT_LT(index, prefetches_.size());
     ASSERT_TRUE(prefetches_[index]);
     base::WeakPtr<PrefetchContainer> prefetch_container = prefetches_[index];
-    std::unique_ptr<PrefetchContainer> owned_prefetch_container =
-        prefetch_container->GetPrefetchDocumentManager()
-            ->ReleasePrefetchContainer(prefetch_container->GetURL());
     prefetches_.erase(prefetches_.begin() + index);
     PreloadingDecider::GetForCurrentDocument(
         RenderFrameHost::FromID(
             prefetch_container->GetReferringRenderFrameHostId()))
         ->OnPreloadDiscarded({prefetch_container->GetURL(),
                               blink::mojom::SpeculationAction::kPrefetch});
+    ResetPrefetch(std::move(prefetch_container));
   }
 
   std::vector<base::WeakPtr<PrefetchContainer>> prefetches_;
diff --git a/content/browser/renderer_host/input/synthetic_mouse_driver.cc b/content/browser/renderer_host/input/synthetic_mouse_driver.cc
index f5f88f1..5611f74 100644
--- a/content/browser/renderer_host/input/synthetic_mouse_driver.cc
+++ b/content/browser/renderer_host/input/synthetic_mouse_driver.cc
@@ -12,14 +12,14 @@
 
 namespace content {
 
-SyntheticMouseDriver::SyntheticMouseDriver() : last_modifiers_(0) {
+SyntheticMouseDriverBase::SyntheticMouseDriverBase() : last_modifiers_(0) {
   mouse_event_.pointer_type = blink::WebPointerProperties::PointerType::kMouse;
 }
 
-SyntheticMouseDriver::~SyntheticMouseDriver() {}
+SyntheticMouseDriverBase::~SyntheticMouseDriverBase() = default;
 
-void SyntheticMouseDriver::DispatchEvent(SyntheticGestureTarget* target,
-                                         const base::TimeTicks& timestamp) {
+void SyntheticMouseDriverBase::DispatchEvent(SyntheticGestureTarget* target,
+                                             const base::TimeTicks& timestamp) {
   mouse_event_.SetTimeStamp(timestamp);
   if (mouse_event_.GetType() != blink::WebInputEvent::Type::kUndefined) {
     base::WeakPtr<SyntheticPointerDriver> weak_this = AsWeakPtr();
@@ -33,19 +33,20 @@
   }
 }
 
-void SyntheticMouseDriver::Press(float x,
-                                 float y,
-                                 int index,
-                                 SyntheticPointerActionParams::Button button,
-                                 int key_modifiers,
-                                 float width,
-                                 float height,
-                                 float rotation_angle,
-                                 float force,
-                                 float tangential_pressure,
-                                 int tilt_x,
-                                 int tilt_y,
-                                 const base::TimeTicks& timestamp) {
+void SyntheticMouseDriverBase::Press(
+    float x,
+    float y,
+    int index,
+    SyntheticPointerActionParams::Button button,
+    int key_modifiers,
+    float width,
+    float height,
+    float rotation_angle,
+    float force,
+    float tangential_pressure,
+    int tilt_x,
+    int tilt_y,
+    const base::TimeTicks& timestamp) {
   DCHECK_EQ(index, 0);
   blink::WebMouseEvent::Button pressed_button =
       SyntheticPointerActionParams::GetWebMouseEventButton(button);
@@ -70,18 +71,19 @@
   last_y_ = y;
 }
 
-void SyntheticMouseDriver::Move(float x,
-                                float y,
-                                int index,
-                                int key_modifiers,
-                                float width,
-                                float height,
-                                float rotation_angle,
-                                float force,
-                                float tangential_pressure,
-                                int tilt_x,
-                                int tilt_y,
-                                SyntheticPointerActionParams::Button button) {
+void SyntheticMouseDriverBase::Move(
+    float x,
+    float y,
+    int index,
+    int key_modifiers,
+    float width,
+    float height,
+    float rotation_angle,
+    float force,
+    float tangential_pressure,
+    int tilt_x,
+    int tilt_y,
+    SyntheticPointerActionParams::Button button) {
   DCHECK_EQ(index, 0);
   int button_modifiers =
       SyntheticPointerActionParams::GetWebMouseEventModifier(button);
@@ -112,9 +114,10 @@
   mouse_event_.tilt_y = tilt_y;
 }
 
-void SyntheticMouseDriver::Release(int index,
-                                   SyntheticPointerActionParams::Button button,
-                                   int key_modifiers) {
+void SyntheticMouseDriverBase::Release(
+    int index,
+    SyntheticPointerActionParams::Button button,
+    int key_modifiers) {
   DCHECK_EQ(index, 0);
   if (from_devtools_debugger_)
     key_modifiers |= blink::WebInputEvent::kFromDebugger;
@@ -134,17 +137,18 @@
       (~SyntheticPointerActionParams::GetWebMouseEventModifier(button));
 }
 
-void SyntheticMouseDriver::Cancel(int index,
-                                  SyntheticPointerActionParams::Button button,
-                                  int key_modifiers) {
+void SyntheticMouseDriverBase::Cancel(
+    int index,
+    SyntheticPointerActionParams::Button button,
+    int key_modifiers) {
   NOTIMPLEMENTED();
 }
 
-void SyntheticMouseDriver::Leave(int index) {
+void SyntheticMouseDriverBase::Leave(int index) {
   NOTIMPLEMENTED();
 }
 
-bool SyntheticMouseDriver::UserInputCheck(
+bool SyntheticMouseDriverBase::UserInputCheck(
     const SyntheticPointerActionParams& params) const {
   if (params.pointer_action_type() ==
       SyntheticPointerActionParams::PointerActionType::NOT_INITIALIZED) {
@@ -170,7 +174,7 @@
   return true;
 }
 
-int SyntheticMouseDriver::ComputeClickCount(
+int SyntheticMouseDriverBase::ComputeClickCount(
     const base::TimeTicks& timestamp,
     blink::WebMouseEvent::Button pressed_button,
     float x,
@@ -204,4 +208,12 @@
   return click_count_;
 }
 
+SyntheticMouseDriver::SyntheticMouseDriver() = default;
+
+SyntheticMouseDriver::~SyntheticMouseDriver() = default;
+
+base::WeakPtr<SyntheticPointerDriver> SyntheticMouseDriver::AsWeakPtr() {
+  return weak_ptr_factory_.GetWeakPtr();
+}
+
 }  // namespace content
diff --git a/content/browser/renderer_host/input/synthetic_mouse_driver.h b/content/browser/renderer_host/input/synthetic_mouse_driver.h
index d316897f..85a8530 100644
--- a/content/browser/renderer_host/input/synthetic_mouse_driver.h
+++ b/content/browser/renderer_host/input/synthetic_mouse_driver.h
@@ -5,18 +5,19 @@
 #ifndef CONTENT_BROWSER_RENDERER_HOST_INPUT_SYNTHETIC_MOUSE_DRIVER_H_
 #define CONTENT_BROWSER_RENDERER_HOST_INPUT_SYNTHETIC_MOUSE_DRIVER_H_
 
+#include "base/memory/weak_ptr.h"
 #include "content/browser/renderer_host/input/synthetic_pointer_driver.h"
 
 namespace content {
 
-class SyntheticMouseDriver : public SyntheticPointerDriver {
+class SyntheticMouseDriverBase : public SyntheticPointerDriver {
  public:
-  SyntheticMouseDriver();
+  SyntheticMouseDriverBase();
 
-  SyntheticMouseDriver(const SyntheticMouseDriver&) = delete;
-  SyntheticMouseDriver& operator=(const SyntheticMouseDriver&) = delete;
+  SyntheticMouseDriverBase(const SyntheticMouseDriverBase&) = delete;
+  SyntheticMouseDriverBase& operator=(const SyntheticMouseDriverBase&) = delete;
 
-  ~SyntheticMouseDriver() override;
+  ~SyntheticMouseDriverBase() override;
 
   void DispatchEvent(SyntheticGestureTarget* target,
                      const base::TimeTicks& timestamp) override;
@@ -77,6 +78,21 @@
   float last_y_ = 0;
 };
 
+class SyntheticMouseDriver final : public SyntheticMouseDriverBase {
+ public:
+  SyntheticMouseDriver();
+
+  SyntheticMouseDriver(const SyntheticMouseDriver&) = delete;
+  SyntheticMouseDriver& operator=(const SyntheticMouseDriver&) = delete;
+
+  ~SyntheticMouseDriver() override;
+
+  base::WeakPtr<SyntheticPointerDriver> AsWeakPtr() override;
+
+ private:
+  base::WeakPtrFactory<SyntheticMouseDriver> weak_ptr_factory_{this};
+};
+
 }  // namespace content
 
 #endif  // CONTENT_BROWSER_RENDERER_HOST_INPUT_SYNTHETIC_MOUSE_DRIVER_H_
diff --git a/content/browser/renderer_host/input/synthetic_pen_driver.cc b/content/browser/renderer_host/input/synthetic_pen_driver.cc
index 4843c1c..69152938 100644
--- a/content/browser/renderer_host/input/synthetic_pen_driver.cc
+++ b/content/browser/renderer_host/input/synthetic_pen_driver.cc
@@ -8,11 +8,11 @@
 
 namespace content {
 
-SyntheticPenDriver::SyntheticPenDriver() : SyntheticMouseDriver() {
+SyntheticPenDriver::SyntheticPenDriver() {
   mouse_event_.pointer_type = blink::WebPointerProperties::PointerType::kPen;
 }
 
-SyntheticPenDriver::~SyntheticPenDriver() {}
+SyntheticPenDriver::~SyntheticPenDriver() = default;
 
 void SyntheticPenDriver::Leave(int index) {
   DCHECK_EQ(index, 0);
@@ -25,4 +25,8 @@
       modifiers, mouse_event_.pointer_type);
 }
 
+base::WeakPtr<SyntheticPointerDriver> SyntheticPenDriver::AsWeakPtr() {
+  return weak_ptr_factory_.GetWeakPtr();
+}
+
 }  // namespace content
diff --git a/content/browser/renderer_host/input/synthetic_pen_driver.h b/content/browser/renderer_host/input/synthetic_pen_driver.h
index b77c238..b720d71 100644
--- a/content/browser/renderer_host/input/synthetic_pen_driver.h
+++ b/content/browser/renderer_host/input/synthetic_pen_driver.h
@@ -9,7 +9,7 @@
 
 namespace content {
 
-class SyntheticPenDriver : public SyntheticMouseDriver {
+class SyntheticPenDriver final : public SyntheticMouseDriverBase {
  public:
   SyntheticPenDriver();
 
@@ -19,6 +19,11 @@
   ~SyntheticPenDriver() override;
 
   void Leave(int index = 0) override;
+
+  base::WeakPtr<SyntheticPointerDriver> AsWeakPtr() override;
+
+ private:
+  base::WeakPtrFactory<SyntheticPenDriver> weak_ptr_factory_{this};
 };
 
 }  // namespace content
diff --git a/content/browser/renderer_host/input/synthetic_pointer_driver.h b/content/browser/renderer_host/input/synthetic_pointer_driver.h
index 23fd60f..8c6f847 100644
--- a/content/browser/renderer_host/input/synthetic_pointer_driver.h
+++ b/content/browser/renderer_host/input/synthetic_pointer_driver.h
@@ -16,8 +16,7 @@
 
 class SyntheticGestureTarget;
 
-class CONTENT_EXPORT SyntheticPointerDriver
-    : public base::SupportsWeakPtr<SyntheticPointerDriver> {
+class CONTENT_EXPORT SyntheticPointerDriver {
  public:
   SyntheticPointerDriver();
 
@@ -78,6 +77,8 @@
   virtual bool UserInputCheck(
       const SyntheticPointerActionParams& params) const = 0;
 
+  virtual base::WeakPtr<SyntheticPointerDriver> AsWeakPtr() = 0;
+
  protected:
   bool from_devtools_debugger_ = false;
 };
diff --git a/content/browser/renderer_host/input/synthetic_touch_driver.cc b/content/browser/renderer_host/input/synthetic_touch_driver.cc
index 50bab4d..b18f747f 100644
--- a/content/browser/renderer_host/input/synthetic_touch_driver.cc
+++ b/content/browser/renderer_host/input/synthetic_touch_driver.cc
@@ -137,6 +137,10 @@
   return true;
 }
 
+base::WeakPtr<SyntheticPointerDriver> SyntheticTouchDriver::AsWeakPtr() {
+  return weak_ptr_factory_.GetWeakPtr();
+}
+
 void SyntheticTouchDriver::ResetPointerIdIndexMap() {
   unsigned free_index = 0;
   for (unsigned int i = 0; i < blink::WebTouchEvent::kTouchesLengthCap; ++i) {
diff --git a/content/browser/renderer_host/input/synthetic_touch_driver.h b/content/browser/renderer_host/input/synthetic_touch_driver.h
index d0c1b2e6..71d49bf 100644
--- a/content/browser/renderer_host/input/synthetic_touch_driver.h
+++ b/content/browser/renderer_host/input/synthetic_touch_driver.h
@@ -5,13 +5,15 @@
 #ifndef CONTENT_BROWSER_RENDERER_HOST_INPUT_SYNTHETIC_TOUCH_DRIVER_H_
 #define CONTENT_BROWSER_RENDERER_HOST_INPUT_SYNTHETIC_TOUCH_DRIVER_H_
 
-#include <array>
+#include <map>
+
+#include "base/memory/weak_ptr.h"
 #include "content/browser/renderer_host/input/synthetic_pointer_driver.h"
 #include "third_party/blink/public/common/input/synthetic_web_input_event_builders.h"
 
 namespace content {
 
-class SyntheticTouchDriver : public SyntheticPointerDriver {
+class SyntheticTouchDriver final : public SyntheticPointerDriver {
  public:
   SyntheticTouchDriver();
   explicit SyntheticTouchDriver(blink::SyntheticWebTouchEvent touch_event);
@@ -65,6 +67,8 @@
   bool UserInputCheck(
       const SyntheticPointerActionParams& params) const override;
 
+  base::WeakPtr<SyntheticPointerDriver> AsWeakPtr() override;
+
  private:
   using PointerIdIndexMap = std::map<int, int>;
 
@@ -73,6 +77,7 @@
 
   blink::SyntheticWebTouchEvent touch_event_;
   PointerIdIndexMap pointer_id_map_;
+  base::WeakPtrFactory<SyntheticTouchDriver> weak_ptr_factory_{this};
 };
 
 }  // namespace content
diff --git a/content/browser/renderer_host/media/media_stream_ui_proxy_unittest.cc b/content/browser/renderer_host/media/media_stream_ui_proxy_unittest.cc
index 8d9f9f25..4ca04d5 100644
--- a/content/browser/renderer_host/media/media_stream_ui_proxy_unittest.cc
+++ b/content/browser/renderer_host/media/media_stream_ui_proxy_unittest.cc
@@ -45,6 +45,9 @@
   const blink::web_pref::WebPreferences& GetOrCreateWebPreferences() override {
     return mock_web_preferences_;
   }
+  blink::ColorProviderColorMaps GetColorProviderColorMaps() const override {
+    return mock_color_provider_colors_;
+  }
   MOCK_METHOD2(RequestMediaAccessPermission,
                void(const MediaStreamRequest& request,
                     MediaResponseCallback* callback));
@@ -55,6 +58,7 @@
 
  private:
   blink::web_pref::WebPreferences mock_web_preferences_;
+  blink::ColorProviderColorMaps mock_color_provider_colors_;
 };
 
 class MockResponseCallback {
@@ -621,8 +625,13 @@
       return mock_web_preferences_;
     }
 
+    blink::ColorProviderColorMaps GetColorProviderColorMaps() const override {
+      return mock_color_provider_colors_;
+    }
+
    private:
     blink::web_pref::WebPreferences mock_web_preferences_;
+    blink::ColorProviderColorMaps mock_color_provider_colors_;
   };
 
   void GetResultForRequestOnIOThread(
diff --git a/content/browser/renderer_host/navigation_controller_impl_unittest.cc b/content/browser/renderer_host/navigation_controller_impl_unittest.cc
index 1e9ee2d6..2a717d3b 100644
--- a/content/browser/renderer_host/navigation_controller_impl_unittest.cc
+++ b/content/browser/renderer_host/navigation_controller_impl_unittest.cc
@@ -136,6 +136,10 @@
               SetPageBaseBackgroundColor,
               (absl::optional<SkColor> color),
               (override));
+  MOCK_METHOD(void,
+              UpdateColorProviders,
+              (const ::blink::ColorProviderColorMaps& color_provider_colors),
+              (override));
   MOCK_METHOD(
       void,
       CreateRemoteMainFrame,
diff --git a/content/browser/renderer_host/render_frame_host_delegate.h b/content/browser/renderer_host/render_frame_host_delegate.h
index ceccb85a..58b1517 100644
--- a/content/browser/renderer_host/render_frame_host_delegate.h
+++ b/content/browser/renderer_host/render_frame_host_delegate.h
@@ -487,6 +487,10 @@
   virtual const blink::web_pref::WebPreferences&
   GetOrCreateWebPreferences() = 0;
 
+  // Returns the light, dark and forced color maps for the ColorProvider
+  // associated with this RenderFrameHost's WebContents.
+  virtual blink::ColorProviderColorMaps GetColorProviderColorMaps() const = 0;
+
   // Returns the visibility of the delegate.
   virtual Visibility GetVisibility();
 
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
index 81379d3..d2d1b31 100644
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -6403,14 +6403,13 @@
     // checks above and in places like RenderProcessHostImpl::IsSuitableHost().
     // --single-process only has one renderer, so it is exempt from this check.
     size_t non_empty_frame_count = 0;
-    GetProcess()->ForEachRenderFrameHost(base::BindRepeating(
-        [](size_t& non_empty_frame_count, RenderFrameHost* rfh) {
+    GetProcess()->ForEachRenderFrameHost(
+        [&non_empty_frame_count](RenderFrameHost* rfh) {
           if (!static_cast<RenderFrameHostImpl*>(rfh)
                    ->is_initial_empty_document()) {
             ++non_empty_frame_count;
           }
-        },
-        std::ref(non_empty_frame_count)));
+        });
     if (non_empty_frame_count > 0 &&
         !base::CommandLine::ForCurrentProcess()->HasSwitch(
             switches::kSingleProcess)) {
@@ -8466,7 +8465,8 @@
       new_main_rfh->policy_container_host()->CreatePolicyContainerForBlink(),
       blink::BrowsingContextGroupInfo(
           new_main_rfh->GetSiteInstance()->browsing_instance_token(),
-          new_main_rfh->GetSiteInstance()->coop_related_group_token()));
+          new_main_rfh->GetSiteInstance()->coop_related_group_token()),
+      delegate_->GetColorProviderColorMaps());
 
   std::move(callback).Run(mojom::CreateNewWindowStatus::kSuccess,
                           std::move(reply));
diff --git a/content/browser/renderer_host/render_process_host_browsertest.cc b/content/browser/renderer_host/render_process_host_browsertest.cc
index d92a83d..c97646ff 100644
--- a/content/browser/renderer_host/render_process_host_browsertest.cc
+++ b/content/browser/renderer_host/render_process_host_browsertest.cc
@@ -1561,20 +1561,19 @@
   EXPECT_EQ(RenderFrameHostImpl::LifecycleStateImpl::kSpeculative,
             rfh_b->lifecycle_state());
 
+  std::vector<RenderFrameHost*> same_process_rfhs;
   auto non_speculative_rfh_collector =
-      [](std::vector<RenderFrameHost*>& results, RenderFrameHost* rfh) {
+      [&same_process_rfhs](RenderFrameHost* rfh) {
         auto* rfhi = static_cast<RenderFrameHostImpl*>(rfh);
         EXPECT_NE(RenderFrameHostImpl::LifecycleStateImpl::kSpeculative,
                   rfhi->lifecycle_state());
-        results.push_back(rfh);
+        same_process_rfhs.push_back(rfh);
       };
 
   // 5. Check all of the a.com RenderFrameHosts are tracked by `rph_a`.
   RenderProcessHostImpl* rph_a =
       static_cast<RenderProcessHostImpl*>(rfh_a->GetProcess());
-  std::vector<RenderFrameHost*> same_process_rfhs;
-  rph_a->ForEachRenderFrameHost(base::BindRepeating(
-      non_speculative_rfh_collector, std::ref(same_process_rfhs)));
+  rph_a->ForEachRenderFrameHost(non_speculative_rfh_collector);
   EXPECT_EQ(5, rph_a->GetRenderFrameHostCount());
   EXPECT_EQ(5u, same_process_rfhs.size());
   EXPECT_THAT(same_process_rfhs,
@@ -1586,8 +1585,7 @@
   RenderProcessHostImpl* rph_b =
       static_cast<RenderProcessHostImpl*>(rfh_b->GetProcess());
   ASSERT_NE(rph_a, rph_b);
-  rph_b->ForEachRenderFrameHost(base::BindRepeating(
-      non_speculative_rfh_collector, std::ref(same_process_rfhs)));
+  rph_b->ForEachRenderFrameHost(non_speculative_rfh_collector);
   EXPECT_EQ(1, rph_b->GetRenderFrameHostCount());
   // The speculative RenderFrameHost should be filtered out.
   EXPECT_EQ(same_process_rfhs.size(), 0u);
@@ -1602,8 +1600,7 @@
 
   EXPECT_EQ(1, rph_b->GetRenderFrameHostCount());
   same_process_rfhs.clear();
-  rph_b->ForEachRenderFrameHost(base::BindRepeating(
-      non_speculative_rfh_collector, std::ref(same_process_rfhs)));
+  rph_b->ForEachRenderFrameHost(non_speculative_rfh_collector);
   EXPECT_EQ(1, rph_b->GetRenderFrameHostCount());
   EXPECT_EQ(1u, same_process_rfhs.size());
   EXPECT_THAT(same_process_rfhs, testing::ElementsAre(rfh_b));
@@ -1961,13 +1958,10 @@
 
     // Find all other RenderFrameHosts in the process, which should exclude the
     // one being deleted.
-    auto rfh_collector = [](std::vector<RenderFrameHost*>& results,
-                            RenderFrameHost* rfh) { results.push_back(rfh); };
-    RenderProcessHostImpl* process =
-        static_cast<RenderProcessHostImpl*>(render_frame_host->GetProcess());
     std::vector<RenderFrameHost*> all_rfhs;
+    RenderProcessHost* process = render_frame_host->GetProcess();
     process->ForEachRenderFrameHost(
-        base::BindRepeating(rfh_collector, std::ref(all_rfhs)));
+        [&all_rfhs](RenderFrameHost* rfh) { all_rfhs.push_back(rfh); });
 
     // Update the cumulative count of other RenderFrameHosts in the process.
     render_frame_host_iterator_count_ += all_rfhs.size();
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index d265c16..80686822 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -484,9 +484,9 @@
 
   size_t main_frame_count = 0;
   bool devtools_attached = false;
-  host->ForEachRenderFrameHost(base::BindRepeating(
-      [](size_t& main_frame_count, bool& devtools_attached,
-         RenderFrameHost* render_frame_host) {
+  host->ForEachRenderFrameHost(
+      [&main_frame_count,
+       &devtools_attached](RenderFrameHost* render_frame_host) {
         if (static_cast<RenderFrameHostImpl*>(render_frame_host)
                 ->IsOutermostMainFrame()) {
           ++main_frame_count;
@@ -496,8 +496,7 @@
                 render_frame_host->GetDevToolsFrameToken().ToString())) {
           devtools_attached = true;
         }
-      },
-      std::ref(main_frame_count), std::ref(devtools_attached)));
+      });
 
   // If a threshold is specified, don't reuse `host` if it already hosts more
   // main frames (including BFCached and prerendered) than the threshold.
@@ -1097,15 +1096,13 @@
   // existing top-chrome WebUI processes, but should not attempt to reuse an
   // unused process from an unrelated blank tab.
   bool stays_in_existing_browsing_instance = false;
-  host->ForEachRenderFrameHost(base::BindRepeating(
-      [](bool* stays_in_existing_browsing_instance,
-         const IsolationContext& isolation_context, RenderFrameHost* rfh) {
-        if (isolation_context.browsing_instance_id() ==
-            rfh->GetSiteInstance()->GetBrowsingInstanceId()) {
-          *stays_in_existing_browsing_instance = true;
-        }
-      },
-      &stays_in_existing_browsing_instance, isolation_context));
+  host->ForEachRenderFrameHost([&stays_in_existing_browsing_instance,
+                                &isolation_context](RenderFrameHost* rfh) {
+    if (isolation_context.browsing_instance_id() ==
+        rfh->GetSiteInstance()->GetBrowsingInstanceId()) {
+      stays_in_existing_browsing_instance = true;
+    }
+  });
   return stays_in_existing_browsing_instance;
 }
 
@@ -2746,7 +2743,7 @@
 }
 
 void RenderProcessHostImpl::ForEachRenderFrameHost(
-    base::RepeatingCallback<void(RenderFrameHost*)> on_render_frame_host) {
+    base::FunctionRef<void(RenderFrameHost*)> on_render_frame_host) {
   // TODO(crbug.com/652474): This is also implemented in MockRenderProcessHost.
   // When changing something here, don't forget to consider whether that change
   // is also needed in MockRenderProcessHost::ForEachRenderFrameHost().
@@ -2764,7 +2761,7 @@
         RenderFrameHostImpl::LifecycleStateImpl::kSpeculative) {
       continue;
     }
-    on_render_frame_host.Run(rfh);
+    on_render_frame_host(rfh);
   }
 }
 
diff --git a/content/browser/renderer_host/render_process_host_impl.h b/content/browser/renderer_host/render_process_host_impl.h
index ca96e61..849fe2d 100644
--- a/content/browser/renderer_host/render_process_host_impl.h
+++ b/content/browser/renderer_host/render_process_host_impl.h
@@ -289,8 +289,8 @@
       const GlobalRenderFrameHostId& render_frame_host_id) override;
   void UnregisterRenderFrameHost(
       const GlobalRenderFrameHostId& render_frame_host_id) override;
-  void ForEachRenderFrameHost(base::RepeatingCallback<void(RenderFrameHost*)>
-                                  on_render_frame_host) override;
+  void ForEachRenderFrameHost(
+      base::FunctionRef<void(RenderFrameHost*)> on_render_frame_host) override;
   void IncrementWorkerRefCount() override;
   void DecrementWorkerRefCount() override;
   void IncrementPendingReuseRefCount() override;
diff --git a/content/browser/renderer_host/render_view_host_delegate.h b/content/browser/renderer_host/render_view_host_delegate.h
index cf540a5..49ca0ae 100644
--- a/content/browser/renderer_host/render_view_host_delegate.h
+++ b/content/browser/renderer_host/render_view_host_delegate.h
@@ -14,6 +14,7 @@
 #include "net/base/load_states.h"
 #include "services/network/public/mojom/attribution.mojom-forward.h"
 #include "third_party/abseil-cpp/absl/types/optional.h"
+#include "third_party/blink/public/common/page/color_provider_color_maps.h"
 #include "third_party/skia/include/core/SkColor.h"
 
 namespace blink {
@@ -99,6 +100,10 @@
   virtual void SetWebPreferences(const blink::web_pref::WebPreferences& prefs) {
   }
 
+  // Returns the light, dark and forced color maps for the ColorProvider
+  // associated with this RenderViewHost.
+  virtual blink::ColorProviderColorMaps GetColorProviderColorMaps() const = 0;
+
   // Triggers a total recomputation of WebPreferences by resetting the current
   // cached WebPreferences to null and triggering the recomputation path for
   // both the "slow" attributes (hardware configurations/things that require
diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc
index 093bed2d..4c21dfa5 100644
--- a/content/browser/renderer_host/render_view_host_impl.cc
+++ b/content/browser/renderer_host/render_view_host_impl.cc
@@ -451,6 +451,7 @@
   params->renderer_preferences = delegate_->GetRendererPrefs();
   RenderViewHostImpl::GetPlatformSpecificPrefs(&params->renderer_preferences);
   params->web_preferences = delegate_->GetOrCreateWebPreferences();
+  params->color_provider_colors = delegate_->GetColorProviderColorMaps();
   params->opener_frame_token = opener_frame_token;
   params->replication_state =
       frame_tree_node->current_replication_state().Clone();
diff --git a/content/browser/utility_sandbox_delegate_win.cc b/content/browser/utility_sandbox_delegate_win.cc
index d85391e..fc7f7e3 100644
--- a/content/browser/utility_sandbox_delegate_win.cc
+++ b/content/browser/utility_sandbox_delegate_win.cc
@@ -64,13 +64,6 @@
   if (result != sandbox::SBOX_ALL_OK)
     return false;
 
-  // The Audio Service process uses a base::SyncSocket for transmitting audio
-  // data.
-  result = config->AllowNamedPipes(L"\\\\.\\pipe\\chrome.sync.*");
-  if (result != sandbox::SBOX_ALL_OK) {
-    return false;
-  }
-
   config->SetDesktop(sandbox::Desktop::kAlternateWinstation);
 
   return true;
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index ed7e2784..42dd8d0a247 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -182,6 +182,7 @@
 #include "ui/base/window_open_disposition.h"
 #include "ui/color/color_provider_key.h"
 #include "ui/color/color_provider_manager.h"
+#include "ui/color/color_provider_utils.h"
 #include "ui/display/screen.h"
 #include "ui/display/types/display_constants.h"
 #include "ui/events/base_event_utils.h"
@@ -533,6 +534,19 @@
         GetColorProviderKey());
   }
 
+  const ui::RendererColorMap GetRendererColorMap(
+      ui::ColorProviderKey::ColorMode color_mode,
+      ui::ColorProviderKey::ForcedColors forced_colors) const override {
+    auto key = GetColorProviderKey();
+    key.color_mode = color_mode;
+    key.forced_colors = forced_colors;
+    ui::ColorProvider* color_provider =
+        ui::ColorProviderManager::Get().GetColorProviderFor(key);
+    CHECK(color_provider);
+
+    return ui::CreateRendererColorMap(*color_provider);
+  }
+
   // ui::NativeThemeObserver:
   void OnNativeThemeUpdated(ui::NativeTheme* observed_theme) override {
     DCHECK(native_theme_observation_.IsObservingSource(observed_theme));
@@ -1061,7 +1075,8 @@
 }  // namespace
 
 WebContentsImpl::WebContentsImpl(BrowserContext* browser_context)
-    : delegate_(nullptr),
+    : ColorProviderSourceObserver(DefaultColorProviderSource::GetInstance()),
+      delegate_(nullptr),
       render_view_host_delegate_view_(nullptr),
       opened_by_another_window_(false),
       primary_frame_tree_(browser_context,
@@ -1113,13 +1128,6 @@
   display_cutout_host_impl_ = std::make_unique<DisplayCutoutHostImpl>(this);
 #endif
 
-  // WebContents can exist independently of a ColorProviderSource and is still
-  // expected to be able to render its content and be inserted into a
-  // gfx::NativeView hierarchy. Whilst most WebContents clients should be
-  // setting a ColorProviderSource we must accommodate for cases where this is
-  // not currently being done. For these cases fallback to the default source.
-  SetColorProviderSource(DefaultColorProviderSource::GetInstance());
-
   ui::NativeTheme* native_theme = ui::NativeTheme::GetInstanceForWeb();
   native_theme_observation_.Observe(native_theme);
   using_dark_colors_ = native_theme->ShouldUseDarkColors();
@@ -6837,6 +6845,18 @@
   return page_base_background_color_;
 }
 
+blink::ColorProviderColorMaps WebContentsImpl::GetColorProviderColorMaps()
+    const {
+  const auto* source = GetColorProviderSource();
+  return blink::ColorProviderColorMaps{
+      source->GetRendererColorMap(ui::ColorProviderKey::ColorMode::kLight,
+                                  ui::ColorProviderKey::ForcedColors::kNone),
+      source->GetRendererColorMap(ui::ColorProviderKey::ColorMode::kDark,
+                                  ui::ColorProviderKey::ForcedColors::kNone),
+      source->GetRendererColorMap(source->GetColorMode(),
+                                  ui::ColorProviderKey::ForcedColors::kActive)};
+}
+
 void WebContentsImpl::PrintCrossProcessSubframe(
     const gfx::Rect& rect,
     int document_cookie,
@@ -10098,6 +10118,17 @@
     SetColorProviderSource(DefaultColorProviderSource::GetInstance());
     return;
   }
+
+  blink::ColorProviderColorMaps color_map = GetColorProviderColorMaps();
+  ExecutePageBroadcastMethod(base::BindRepeating(
+      [](const blink::ColorProviderColorMaps& color_map,
+         RenderViewHostImpl* rvh) {
+        if (auto& broadcast = rvh->GetAssociatedPageBroadcast()) {
+          broadcast->UpdateColorProviders(color_map);
+        }
+      },
+      color_map));
+
   observers_.NotifyObservers(&WebContentsObserver::OnColorProviderChanged);
 
   // Web preferences may change in response to events such as
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index 1428111..6830a4b 100644
--- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h
@@ -894,6 +894,7 @@
                             WindowOpenDisposition disposition) override;
   void SetOwnerLocationForDebug(
       absl::optional<base::Location> owner_location) override;
+  blink::ColorProviderColorMaps GetColorProviderColorMaps() const override;
 
   network::mojom::AttributionSupport GetAttributionSupport() override;
   void UpdateAttributionSupportRenderer() override;
diff --git a/content/browser/web_contents/web_contents_impl_browsertest.cc b/content/browser/web_contents/web_contents_impl_browsertest.cc
index f6fee40..b16d3bf 100644
--- a/content/browser/web_contents/web_contents_impl_browsertest.cc
+++ b/content/browser/web_contents/web_contents_impl_browsertest.cc
@@ -110,6 +110,8 @@
 #include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
 #include "third_party/blink/public/mojom/frame/fullscreen.mojom.h"
 #include "ui/base/clipboard/clipboard_format_type.h"
+#include "ui/color/color_provider_manager.h"
+#include "ui/color/color_provider_utils.h"
 #include "ui/display/screen.h"
 #include "url/gurl.h"
 
@@ -6163,6 +6165,18 @@
   const ui::ColorProvider* GetColorProvider() const override {
     return &provider_;
   }
+  const ui::RendererColorMap GetRendererColorMap(
+      ui::ColorProviderKey::ColorMode color_mode,
+      ui::ColorProviderKey::ForcedColors forced_colors) const override {
+    auto key = GetColorProviderKey();
+    key.color_mode = color_mode;
+    key.forced_colors = forced_colors;
+    ui::ColorProvider* color_provider =
+        ui::ColorProviderManager::Get().GetColorProviderFor(key);
+    CHECK(color_provider);
+    return ui::CreateRendererColorMap(*color_provider);
+  }
+
   ui::ColorProviderKey GetColorProviderKey() const override { return key_; }
 
  private:
diff --git a/content/browser/web_contents/web_contents_impl_unittest.cc b/content/browser/web_contents/web_contents_impl_unittest.cc
index 9038dda..17e856a 100644
--- a/content/browser/web_contents/web_contents_impl_unittest.cc
+++ b/content/browser/web_contents/web_contents_impl_unittest.cc
@@ -58,6 +58,7 @@
 #include "content/test/navigation_simulator_impl.h"
 #include "content/test/test_content_browser_client.h"
 #include "content/test/test_content_client.h"
+#include "content/test/test_page_broadcast.h"
 #include "content/test/test_render_frame_host.h"
 #include "content/test/test_render_view_host.h"
 #include "content/test/test_web_contents.h"
@@ -325,6 +326,46 @@
   std::map<GURL, FakeResponseData> fake_response_data_per_url_;
 };
 
+class MockPageBroadcast : public TestPageBroadcast {
+ public:
+  using TestPageBroadcast::TestPageBroadcast;
+  MOCK_METHOD(void,
+              UpdateColorProviders,
+              (const blink::ColorProviderColorMaps& color_provider_colors),
+              (override));
+};
+
+class TestColorProviderSource : public ui::ColorProviderSource {
+ public:
+  TestColorProviderSource() { provider_.GenerateColorMap(); }
+
+  const ui::ColorProvider* GetColorProvider() const override {
+    return &provider_;
+  }
+
+  const ui::RendererColorMap GetRendererColorMap(
+      ui::ColorProviderKey::ColorMode color_mode,
+      ui::ColorProviderKey::ForcedColors forced_colors) const override {
+    if (forced_colors == ui::ColorProviderKey::ForcedColors::kActive) {
+      return forced_colors_map;
+    }
+    return color_mode == ui::ColorProviderKey::ColorMode::kLight ? light_colors
+                                                                 : dark_colors;
+  }
+
+  ui::ColorProviderKey GetColorProviderKey() const override { return key_; }
+
+ private:
+  ui::ColorProvider provider_;
+  ui::ColorProviderKey key_;
+  const ui::RendererColorMap light_colors{
+      {color::mojom::RendererColorId::kColorMenuBackground, SK_ColorWHITE}};
+  const ui::RendererColorMap dark_colors{
+      {color::mojom::RendererColorId::kColorMenuBackground, SK_ColorBLACK}};
+  const ui::RendererColorMap forced_colors_map{
+      {color::mojom::RendererColorId::kColorMenuBackground, SK_ColorCYAN}};
+};
+
 }  // namespace
 
 TEST_F(WebContentsImplTest, SetMainFrameMimeType) {
@@ -3133,4 +3174,22 @@
   EXPECT_FALSE(contents()->ShouldIgnoreInputEvents());
 }
 
+TEST_F(WebContentsImplTest, OnColorProviderChangedTriggersPageBroadcast) {
+  TestColorProviderSource color_provider_source;
+  mojo::AssociatedRemote<blink::mojom::PageBroadcast> broadcast_remote;
+  testing::NiceMock<MockPageBroadcast> mock_page_broadcast(
+      broadcast_remote.BindNewEndpointAndPassDedicatedReceiver());
+  contents()->GetRenderViewHost()->BindPageBroadcast(broadcast_remote.Unbind());
+
+  contents()->SetColorProviderSource(&color_provider_source);
+  const auto color_provider_colors = contents()->GetColorProviderColorMaps();
+  color_provider_source.NotifyColorProviderChanged();
+
+  // The page broadcast should have been called twice. Once when first set and
+  // again when the source notified of a ColorProvider change.
+  EXPECT_CALL(mock_page_broadcast, UpdateColorProviders(color_provider_colors))
+      .Times(2);
+  mock_page_broadcast.FlushForTesting();
+}
+
 }  // namespace content
diff --git a/content/common/BUILD.gn b/content/common/BUILD.gn
index ddfe84e2..ca5222b 100644
--- a/content/common/BUILD.gn
+++ b/content/common/BUILD.gn
@@ -253,6 +253,7 @@
     "//ui/base",
     "//ui/base/cursor/mojom:cursor_type",
     "//ui/base/ime",
+    "//ui/color",
     "//ui/display",
     "//ui/events/blink",
     "//ui/gfx",
diff --git a/content/common/frame.mojom b/content/common/frame.mojom
index 40c14e17..28631bef3 100644
--- a/content/common/frame.mojom
+++ b/content/common/frame.mojom
@@ -161,6 +161,9 @@
   // Base background color of this view. Only used by a local main frame.
   skia.mojom.SkColor? base_background_color;
 
+  // The ColorProviderColorMaps for this view.
+  blink.mojom.ColorProviderColorMaps color_provider_colors;
+
   // Indicates which browsing context group the page in this view belongs to.
   blink.mojom.BrowsingContextGroupInfo browsing_context_group_info;
 
@@ -668,6 +671,9 @@
 
   // Indicates which browsing context group the page in this view belongs to.
   blink.mojom.BrowsingContextGroupInfo browsing_context_group_info;
+
+  // The ColorProviderColorMaps for this view.
+  blink.mojom.ColorProviderColorMaps color_provider_colors;
 };
 
 // A per-navigation interface passed along with the BeginNavigation call, used
diff --git a/content/public/browser/render_process_host.h b/content/public/browser/render_process_host.h
index cb3f0cf5..a37b1be 100644
--- a/content/public/browser/render_process_host.h
+++ b/content/public/browser/render_process_host.h
@@ -14,6 +14,7 @@
 #include "base/callback_list.h"
 #include "base/clang_profiling_buildflags.h"
 #include "base/containers/id_map.h"
+#include "base/functional/function_ref.h"
 #include "base/process/kill.h"
 #include "base/process/process.h"
 #include "base/supports_user_data.h"
@@ -466,7 +467,7 @@
   // Calls |on_frame| for every RenderFrameHost whose frames live in this
   // process. Note that speculative RenderFrameHosts will be skipped.
   virtual void ForEachRenderFrameHost(
-      base::RepeatingCallback<void(RenderFrameHost*)> on_frame) = 0;
+      base::FunctionRef<void(RenderFrameHost*)> on_frame) = 0;
 
   // Register/unregister a RenderFrameHost instance whose frame lives in this
   // process. RegisterRenderFrameHost and UnregisterRenderFrameHost are the
diff --git a/content/public/test/mock_render_process_host.cc b/content/public/test/mock_render_process_host.cc
index 65ad728..5746f48 100644
--- a/content/public/test/mock_render_process_host.cc
+++ b/content/public/test/mock_render_process_host.cc
@@ -445,7 +445,7 @@
 }
 
 void MockRenderProcessHost::ForEachRenderFrameHost(
-    base::RepeatingCallback<void(RenderFrameHost*)> on_render_frame_host) {
+    base::FunctionRef<void(RenderFrameHost*)> on_render_frame_host) {
   // TODO(crbug.com/652474): Clean up MockRenderProcessHost usage and merge this
   // implementation with RenderProcessHostImpl::ForEachRenderFrameHost().
   for (auto rfh_id : render_frame_host_id_set_) {
@@ -463,7 +463,7 @@
         RenderFrameHostImpl::LifecycleStateImpl::kSpeculative) {
       continue;
     }
-    on_render_frame_host.Run(rfh);
+    on_render_frame_host(rfh);
   }
 }
 
diff --git a/content/public/test/mock_render_process_host.h b/content/public/test/mock_render_process_host.h
index 33036d9d..ba776a8 100644
--- a/content/public/test/mock_render_process_host.h
+++ b/content/public/test/mock_render_process_host.h
@@ -179,8 +179,8 @@
   size_t GetShutdownDelayRefCount() const override;
   int GetRenderFrameHostCount() const override;
   void DisableRefCounts() override;
-  void ForEachRenderFrameHost(base::RepeatingCallback<void(RenderFrameHost*)>
-                                  on_render_frame_host) override;
+  void ForEachRenderFrameHost(
+      base::FunctionRef<void(RenderFrameHost*)> on_render_frame_host) override;
   void RegisterRenderFrameHost(
       const GlobalRenderFrameHostId& render_frame_host_id) override;
   void UnregisterRenderFrameHost(
diff --git a/content/renderer/agent_scheduling_group.cc b/content/renderer/agent_scheduling_group.cc
index 1f54c79..be97ab97 100644
--- a/content/renderer/agent_scheduling_group.cc
+++ b/content/renderer/agent_scheduling_group.cc
@@ -282,6 +282,7 @@
   web_view->SetRendererPreferences(params->renderer_preferences);
   web_view->SetWebPreferences(params->web_preferences);
   web_view->SetPageAttributionSupport(params->attribution_support);
+  web_view->SetColorProviders(params->color_provider_colors);
 
   if (!local_main_frame) {
     // Create a remote main frame.
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index e32e650..a4822106 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -1218,8 +1218,9 @@
 class WebURLLoaderThrottleProviderForFrameImpl
     : public blink::WebURLLoaderThrottleProviderForFrame {
  public:
-  explicit WebURLLoaderThrottleProviderForFrameImpl(int routing_id)
-      : routing_id_(routing_id) {}
+  explicit WebURLLoaderThrottleProviderForFrameImpl(
+      const blink::LocalFrameToken& frame_token)
+      : frame_token_(frame_token) {}
   ~WebURLLoaderThrottleProviderForFrameImpl() override = default;
 
   WebVector<std::unique_ptr<blink::URLLoaderThrottle>> CreateThrottles(
@@ -1231,11 +1232,11 @@
       return {};
     }
     return render_thread->url_loader_throttle_provider()->CreateThrottles(
-        routing_id_, request);
+        frame_token_, request);
   }
 
  private:
-  const int routing_id_;
+  const blink::LocalFrameToken frame_token_;
 };
 
 blink::WebFrameWidget* PreviousWidgetForLazyCompositorInitialization(
@@ -3475,8 +3476,8 @@
               web_cors_exempt_header_list,
               std::move(pending_resource_load_info_notifier));
 
-  web_dedicated_or_shared_worker_fetch_context->set_ancestor_frame_id(
-      routing_id_);
+  web_dedicated_or_shared_worker_fetch_context->SetAncestorFrameToken(
+      frame_->GetLocalFrameToken());
   web_dedicated_or_shared_worker_fetch_context->set_site_for_cookies(
       frame_->GetDocument().SiteForCookies());
   web_dedicated_or_shared_worker_fetch_context->set_top_frame_origin(
@@ -3515,8 +3516,8 @@
                   std::move(watcher_receiver),
                   std::move(pending_resource_load_info_notifier));
 
-  web_dedicated_or_shared_worker_fetch_context->set_ancestor_frame_id(
-      routing_id_);
+  web_dedicated_or_shared_worker_fetch_context->SetAncestorFrameToken(
+      frame_->GetLocalFrameToken());
   web_dedicated_or_shared_worker_fetch_context->set_site_for_cookies(
       frame_->GetDocument().SiteForCookies());
   web_dedicated_or_shared_worker_fetch_context->set_top_frame_origin(
@@ -6206,7 +6207,7 @@
 std::unique_ptr<blink::WebURLLoaderThrottleProviderForFrame>
 RenderFrameImpl::CreateWebURLLoaderThrottleProviderForFrame() {
   return std::make_unique<WebURLLoaderThrottleProviderForFrameImpl>(
-      routing_id_);
+      frame_->GetLocalFrameToken());
 }
 
 scoped_refptr<blink::WebBackgroundResourceFetchAssets>
@@ -6363,14 +6364,6 @@
 
 std::unique_ptr<blink::WebSocketHandshakeThrottle>
 RenderFrameImpl::CreateWebSocketHandshakeThrottle() {
-  WebLocalFrame* web_local_frame = GetWebFrame();
-  if (!web_local_frame)
-    return nullptr;
-  auto* render_frame = content::RenderFrame::FromWebFrame(web_local_frame);
-  if (!render_frame)
-    return nullptr;
-  int render_frame_id = render_frame->GetRoutingID();
-
   // Lazily create the provider.
   if (!websocket_handshake_throttle_provider_) {
     websocket_handshake_throttle_provider_ =
@@ -6382,8 +6375,8 @@
   }
 
   return websocket_handshake_throttle_provider_->CreateThrottle(
-      render_frame_id,
-      render_frame->GetTaskRunner(blink::TaskType::kInternalDefault));
+      frame_->GetLocalFrameToken(),
+      GetTaskRunner(blink::TaskType::kInternalDefault));
 }
 
 bool RenderFrameImpl::GetCaretBoundsFromFocusedPlugin(gfx::Rect& rect) {
@@ -6622,6 +6615,7 @@
   view_params->replication_state->name = frame_name_utf8;
   view_params->devtools_main_frame_token = reply->devtools_main_frame_token;
   view_params->browsing_context_group_info = reply->browsing_context_group_info;
+  view_params->color_provider_colors = reply->color_provider_colors;
 
   auto main_frame_params = mojom::CreateLocalMainFrameParams::New();
   main_frame_params->frame_token = reply->main_frame_token;
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
index a8c6c2e5..1ddaf4e 100644
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
@@ -779,7 +779,6 @@
 void RenderThreadImpl::RemoveRoute(int32_t routing_id) {
   ChildThreadImpl::GetRouter()->RemoveRoute(routing_id);
   GetChannel()->RemoveListenerTaskRunner(routing_id);
-  pending_frames_.erase(routing_id);
 }
 
 mojom::RendererHost* RenderThreadImpl::GetRendererHost() {
diff --git a/content/renderer/render_thread_impl.h b/content/renderer/render_thread_impl.h
index 4c623f3..7eaf5b42 100644
--- a/content/renderer/render_thread_impl.h
+++ b/content/renderer/render_thread_impl.h
@@ -357,10 +357,6 @@
     return &histogram_customizer_;
   }
 
-  void RegisterPendingFrameCreate(
-      int routing_id,
-      mojo::PendingReceiver<mojom::Frame> frame);
-
   mojom::RendererHost* GetRendererHost();
 
   // Sets the current pipeline rendering color space.
@@ -558,10 +554,6 @@
   // Target rendering ColorSpace.
   gfx::ColorSpace rendering_color_space_;
 
-  // Used when AddRoute() is called and the RenderFrameImpl hasn't been created
-  // yet.
-  std::map<int, mojo::PendingReceiver<mojom::Frame>> pending_frames_;
-
   mojo::AssociatedRemote<mojom::RendererHost> renderer_host_;
 
   blink::AssociatedInterfaceRegistry associated_interfaces_;
diff --git a/content/shell/renderer/shell_content_renderer_client.cc b/content/shell/renderer/shell_content_renderer_client.cc
index 0ffa369..d2687747 100644
--- a/content/shell/renderer/shell_content_renderer_client.cc
+++ b/content/shell/renderer/shell_content_renderer_client.cc
@@ -155,19 +155,20 @@
   }
 
   blink::WebVector<std::unique_ptr<blink::URLLoaderThrottle>> CreateThrottles(
-      int render_frame_id,
+      base::optional_ref<const blink::LocalFrameToken> local_frame_token,
       const blink::WebURLRequest& request) override {
     blink::WebVector<std::unique_ptr<blink::URLLoaderThrottle>> throttles;
     // Workers can call us on a background thread. We don't care about such
     // requests because we purposefully only look at resources from frames
     // that the user can interact with.`
-    content::RenderFrame* frame =
-        RenderThread::IsMainThread()
-            ? content::RenderFrame::FromRoutingID(render_frame_id)
-            : nullptr;
+    blink::WebLocalFrame* frame = nullptr;
+    if (content::RenderThread::IsMainThread() &&
+        local_frame_token.has_value()) {
+      frame = blink::WebLocalFrame::FromFrameToken(local_frame_token.value());
+    }
     if (frame) {
       auto throttle = content::MaybeCreateIdentityUrlLoaderThrottle(
-          base::BindRepeating(blink::SetIdpSigninStatus, frame->GetWebFrame()));
+          base::BindRepeating(blink::SetIdpSigninStatus, frame));
       if (throttle)
         throttles.push_back(std::move(throttle));
     }
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
index fbd2a4fa..36c7885f 100644
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -1799,6 +1799,7 @@
     "//ui/base/ime",
     "//ui/base/ime/init",
     "//ui/base/ime/mojom",
+    "//ui/color:mixers",
     "//ui/compositor",
     "//ui/display",
     "//ui/display:test_support",
diff --git a/content/test/test_page_broadcast.cc b/content/test/test_page_broadcast.cc
index c7f01eb..0297eca 100644
--- a/content/test/test_page_broadcast.cc
+++ b/content/test/test_page_broadcast.cc
@@ -16,6 +16,10 @@
 
 TestPageBroadcast::~TestPageBroadcast() = default;
 
+void TestPageBroadcast::FlushForTesting() {
+  receiver_.FlushForTesting();
+}
+
 // The user should add functionality as needed.
 
 void TestPageBroadcast::SetPageLifecycleState(
@@ -63,4 +67,7 @@
 void TestPageBroadcast::SetPageAttributionSupport(
     network::mojom::AttributionSupport support) {}
 
+void TestPageBroadcast::UpdateColorProviders(
+    const blink::ColorProviderColorMaps& color_provider_colors) {}
+
 }  // namespace content
diff --git a/content/test/test_page_broadcast.h b/content/test/test_page_broadcast.h
index b2204672..bfaa0a4c 100644
--- a/content/test/test_page_broadcast.h
+++ b/content/test/test_page_broadcast.h
@@ -17,6 +17,8 @@
       mojo::PendingAssociatedReceiver<blink::mojom::PageBroadcast> receiver);
   ~TestPageBroadcast() override;
 
+  void FlushForTesting();
+
  private:
   void SetPageLifecycleState(
       blink::mojom::PageLifecycleStatePtr state,
@@ -47,6 +49,8 @@
                                           browsing_context_group_info) override;
   void SetPageAttributionSupport(
       network::mojom::AttributionSupport support) override;
+  void UpdateColorProviders(
+      const blink::ColorProviderColorMaps& color_provider_colors) override;
 
   mojo::AssociatedReceiver<blink::mojom::PageBroadcast> receiver_;
 };
diff --git a/content/web_test/renderer/test_websocket_handshake_throttle_provider.cc b/content/web_test/renderer/test_websocket_handshake_throttle_provider.cc
index 829bb07f..5369a3b 100644
--- a/content/web_test/renderer/test_websocket_handshake_throttle_provider.cc
+++ b/content/web_test/renderer/test_websocket_handshake_throttle_provider.cc
@@ -89,7 +89,7 @@
 
 std::unique_ptr<blink::WebSocketHandshakeThrottle>
 TestWebSocketHandshakeThrottleProvider::CreateThrottle(
-    int render_frame_id,
+    base::optional_ref<const blink::LocalFrameToken> local_frame_token,
     scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
   return std::make_unique<TestWebSocketHandshakeThrottle>(
       std::move(task_runner));
diff --git a/content/web_test/renderer/test_websocket_handshake_throttle_provider.h b/content/web_test/renderer/test_websocket_handshake_throttle_provider.h
index 82e4bef..8846eaff 100644
--- a/content/web_test/renderer/test_websocket_handshake_throttle_provider.h
+++ b/content/web_test/renderer/test_websocket_handshake_throttle_provider.h
@@ -27,7 +27,7 @@
   std::unique_ptr<blink::WebSocketHandshakeThrottleProvider> Clone(
       scoped_refptr<base::SingleThreadTaskRunner> task_runner) override;
   std::unique_ptr<blink::WebSocketHandshakeThrottle> CreateThrottle(
-      int render_frame_id,
+      base::optional_ref<const blink::LocalFrameToken> local_frame_token,
       scoped_refptr<base::SingleThreadTaskRunner> task_runner) override;
 };
 
diff --git a/docs/website b/docs/website
index 3ce3da4..d229894 160000
--- a/docs/website
+++ b/docs/website
@@ -1 +1 @@
-Subproject commit 3ce3da4ea55fa8171b47eb66bda0a051269ba232
+Subproject commit d229894872d2789308455cc9a689a956a6a40e34
diff --git a/extensions/browser/event_router.cc b/extensions/browser/event_router.cc
index 404e6b6..e0bdba4 100644
--- a/extensions/browser/event_router.cc
+++ b/extensions/browser/event_router.cc
@@ -307,11 +307,15 @@
     int render_process_id,
     mojo::PendingAssociatedReceiver<mojom::EventRouter> receiver) {
   auto* host = RenderProcessHost::FromID(render_process_id);
+  if (!host) {
+    return;
+  }
   // EventRouter might be null for some irregular profile, e.g. the System
   // Profile.
   EventRouter* event_router = EventRouter::Get(host->GetBrowserContext());
-  if (!host || !event_router)
+  if (!event_router) {
     return;
+  }
 
   event_router->receivers_.Add(event_router, std::move(receiver),
                                render_process_id);
diff --git a/extensions/browser/extension_function_histogram_value.h b/extensions/browser/extension_function_histogram_value.h
index 24c80686..747998c 100644
--- a/extensions/browser/extension_function_histogram_value.h
+++ b/extensions/browser/extension_function_histogram_value.h
@@ -756,7 +756,7 @@
   DELETED_WEBVIEW_CONTEXTMENUSUPDATE = 696,
   DELETED_WEBVIEW_CONTEXTMENUSREMOVE = 697,
   DELETED_WEBVIEW_CONTEXTMENUSREMOVEALL = 698,
-  AUTOMATIONINTERNAL_ENABLETAB = 699,
+  DELETED_AUTOMATIONINTERNAL_ENABLETAB = 699,
   APP_CURRENTWINDOWINTERNAL_SETSIZECONSTRAINTS = 700,
   BLUETOOTH_GETDEVICE = 701,
   GCM_UNREGISTER = 702,
@@ -1900,6 +1900,8 @@
   USERSCRIPTS_CONFIGUREWORLD = 1838,
   ENTERPRISE_KIOSKINPUT_SETCURRENTINPUTMETHOD = 1839,
   AUTOFILLPRIVATE_BULKDELETEALLCVCS = 1840,
+  PDFVIEWERPRIVATE_GETSTREAMINFO = 1841,
+  PDFVIEWERPRIVATE_SETPDFPLUGINATTRIBUTES = 1842,
   // Last entry: Add new entries above, then run:
   // tools/metrics/histograms/update_extension_histograms.py
   ENUM_BOUNDARY
diff --git a/extensions/browser/script_injection_tracker.cc b/extensions/browser/script_injection_tracker.cc
index 508ad2d..9491847 100644
--- a/extensions/browser/script_injection_tracker.cc
+++ b/extensions/browser/script_injection_tracker.cc
@@ -14,6 +14,7 @@
 #include "components/guest_view/browser/guest_view_base.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/browser_thread.h"
+#include "content/public/browser/global_routing_id.h"
 #include "content/public/browser/navigation_handle.h"
 #include "content/public/browser/render_frame_host.h"
 #include "content/public/browser/render_process_host.h"
@@ -108,6 +109,25 @@
   const ExtensionIdSet& content_scripts() const { return content_scripts_; }
   const ExtensionIdSet& user_scripts() const { return user_scripts_; }
 
+  void AddFrameDebugString(content::RenderFrameHost& frame,
+                           const std::string& debug_string) {
+    std::string& stored_string =
+        frame_debug_strings_[frame.GetGlobalFrameToken()];
+    stored_string += debug_string;
+
+    // Elide all contents except the last 250 characters.  There are 2
+    // motivations for this:
+    // 1. Preventing unbounded memory usage
+    // 2. Only 256 characters fit into `base::debug::CrashKeySize::Size256`.
+    if (stored_string.size() > 250) {
+      stored_string.replace(0, stored_string.size() - 250, "...");
+    }
+  }
+
+  const std::string& GetFrameDebugString(content::RenderFrameHost& frame) {
+    return frame_debug_strings_[frame.GetGlobalFrameToken()];
+  }
+
  private:
   explicit RenderProcessHostUserData(content::RenderProcessHost& process)
       : process_(process) {
@@ -142,6 +162,11 @@
 
   // Only used for tracing.
   const raw_ref<content::RenderProcessHost> process_;
+
+  // TODO(https://crbug.com/1439642): Remove the ad-hoc debugging code after the
+  // bug is fixed.
+  std::map<content::GlobalRenderFrameHostToken, std::string>
+      frame_debug_strings_;
 };
 
 const char* RenderProcessHostUserData::kUserDataKey =
@@ -656,6 +681,54 @@
   return process_data->HasScript(script_type, extension_id);
 }
 
+void AddFrameDebugStringForBug1439642(const ExtensionRegistry& registry,
+                                      const char* debug_string_label,
+                                      content::RenderFrameHost& frame,
+                                      const GURL& url) {
+  // TODO(https://crbug.com/1439642): Remove the ad-hoc debugging code after the
+  // bug is fixed.
+  auto& process_data =
+      RenderProcessHostUserData::GetOrCreate(*frame.GetProcess());
+  std::string debug_string = ", ";
+  debug_string += debug_string_label;
+  debug_string += ":";
+  const ExtensionId extension_id = "gpdjojdkbbmdfjfahjcgigfpmkopogic";
+  const Extension* extension =
+      registry.enabled_extensions().GetByID(extension_id);
+  if (!extension) {
+    if (registry.disabled_extensions().Contains(extension_id)) {
+      debug_string += "disabled,";
+    }
+    if (registry.terminated_extensions().Contains(extension_id)) {
+      debug_string += "terminated,";
+    }
+    if (registry.blocklisted_extensions().Contains(extension_id)) {
+      debug_string += "blocklisted,";
+    }
+    if (registry.blocked_extensions().Contains(extension_id)) {
+      debug_string += "blocked,";
+    }
+    if (registry.ready_extensions().Contains(extension_id)) {
+      debug_string += "ready,";
+    }
+  } else {
+    debug_string += "enabled+";
+    if (DoDynamicContentScriptsMatch(*extension, frame, url)) {
+      debug_string += "dyn-match";
+    } else {
+      debug_string += "no-dyn-match";
+    }
+  }
+  process_data.AddFrameDebugString(frame, debug_string);
+}
+
+const std::string& GetFrameDebugStringForBug1439642(
+    content::RenderFrameHost& frame) {
+  auto& process_data =
+      RenderProcessHostUserData::GetOrCreate(*frame.GetProcess());
+  return process_data.GetFrameDebugString(frame);
+}
+
 }  // namespace
 
 // static
@@ -737,6 +810,8 @@
   URLLoaderFactoryManager::WillInjectContentScriptsWhenNavigationCommits(
       base::PassKey<ScriptInjectionTracker>(), navigation,
       extensions_injecting_content_scripts);
+
+  AddFrameDebugStringForBug1439642(*registry, "RTCNav", frame, url);
 }
 
 // static
@@ -787,6 +862,8 @@
       extensions_injecting_content_scripts.size() +
       extensions_injecting_user_scripts.size();
   RecordUkm(navigation, num_extensions_injecting_scripts);
+
+  AddFrameDebugStringForBug1439642(*registry, "DFNav", frame, url);
 }
 
 // static
@@ -848,18 +925,17 @@
   }
 
   bool any_frame_matches_scripts = false;
-  process.ForEachRenderFrameHost(base::BindRepeating(
-      [](scoped_refptr<const Extension> extension,
-         bool* any_frame_matches_scripts, content::RenderFrameHost* frame) {
+  process.ForEachRenderFrameHost(
+      [&any_frame_matches_scripts,
+       &extension](content::RenderFrameHost* frame) {
         auto url = frame->GetLastCommittedURL();
         if (DoWebViewScripstMatch(*extension, *frame) ||
             DoStaticContentScriptsMatch(*extension, *frame, url) ||
             DoDynamicContentScriptsMatch(*extension, *frame, url) ||
             DoUserScriptsMatch(*extension, *frame, url)) {
-          *any_frame_matches_scripts = true;
+          any_frame_matches_scripts = true;
         }
-      },
-      extension, &any_frame_matches_scripts));
+      });
   if (any_frame_matches_scripts) {
     auto& process_data = RenderProcessHostUserData::GetOrCreate(process);
     process_data.AddScript(ScriptType::kContentScript, extension->id());
@@ -940,6 +1016,12 @@
   return crash_key;
 }
 
+base::debug::CrashKeyString* GetFrameDebugStringCrashKey() {
+  static auto* crash_key = base::debug::AllocateCrashKeyString(
+      "script_frame_debug_string", base::debug::CrashKeySize::Size256);
+  return crash_key;
+}
+
 base::debug::CrashKeyString* GetDoWebViewScriptsMatchCrashKey() {
   static auto* crash_key = base::debug::AllocateCrashKeyString(
       "do_web_view_scripts_match", base::debug::CrashKeySize::Size32);
@@ -996,6 +1078,8 @@
   lifecycle_state_crash_key_.emplace(
       GetLifecycleStateCrashKey(),
       base::NumberToString(static_cast<int>(frame.GetLifecycleState())));
+  frame_debug_string_crash_key_.emplace(
+      GetFrameDebugStringCrashKey(), GetFrameDebugStringForBug1439642(frame));
 
   const ExtensionRegistry* registry =
       ExtensionRegistry::Get(frame.GetBrowserContext());
diff --git a/extensions/browser/script_injection_tracker.h b/extensions/browser/script_injection_tracker.h
index 8af4ccd..78de852 100644
--- a/extensions/browser/script_injection_tracker.h
+++ b/extensions/browser/script_injection_tracker.h
@@ -162,6 +162,8 @@
   absl::optional<base::debug::ScopedCrashKeyString>
       last_committed_url_crash_key_;
   absl::optional<base::debug::ScopedCrashKeyString> lifecycle_state_crash_key_;
+  absl::optional<base::debug::ScopedCrashKeyString>
+      frame_debug_string_crash_key_;
 
   absl::optional<base::debug::ScopedCrashKeyString>
       do_web_view_scripts_match_crash_key_;
diff --git a/extensions/common/api/_api_features.json b/extensions/common/api/_api_features.json
index 51dbb53..7642468 100644
--- a/extensions/common/api/_api_features.json
+++ b/extensions/common/api/_api_features.json
@@ -742,7 +742,7 @@
       "chrome://extensions/*",
       // System Web App version of File Manager.
       "chrome://file-manager/*",
-      "chrome://test/*"
+      "chrome://webui-test/*"
     ]
   }, {
     "channel": "stable",
diff --git a/extensions/common/api/sockets/sockets_manifest_permission.cc b/extensions/common/api/sockets/sockets_manifest_permission.cc
index 0cb3e18..e4820b6e 100644
--- a/extensions/common/api/sockets/sockets_manifest_permission.cc
+++ b/extensions/common/api/sockets/sockets_manifest_permission.cc
@@ -153,9 +153,11 @@
 std::unique_ptr<SocketsManifestPermission> SocketsManifestPermission::FromValue(
     const base::Value& value,
     std::u16string* error) {
-  std::unique_ptr<Sockets> sockets = Sockets::FromValueDeprecated(value, error);
-  if (!sockets)
+  auto sockets = Sockets::FromValue(value);
+  if (!sockets.has_value()) {
+    *error = std::move(sockets).error();
     return nullptr;
+  }
 
   std::unique_ptr<SocketsManifestPermission> result(
       new SocketsManifestPermission());
diff --git a/extensions/renderer/extension_localization_throttle.cc b/extensions/renderer/extension_localization_throttle.cc
index 8f13b9a..d066224 100644
--- a/extensions/renderer/extension_localization_throttle.cc
+++ b/extensions/renderer/extension_localization_throttle.cc
@@ -23,6 +23,7 @@
 #include "services/network/public/mojom/early_hints.mojom.h"
 #include "services/network/public/mojom/url_loader.mojom.h"
 #include "third_party/blink/public/platform/web_url.h"
+#include "third_party/blink/public/web/web_local_frame.h"
 #include "url/gurl.h"
 
 namespace extensions {
@@ -36,11 +37,11 @@
                                        public mojo::DataPipeDrainer::Client {
  public:
   ExtensionLocalizationURLLoader(
-      int render_frame_id,
+      const std::optional<blink::LocalFrameToken>& frame_token,
       const std::string& extension_id,
       mojo::PendingRemote<network::mojom::URLLoaderClient>
           destination_url_loader_client)
-      : render_frame_id_(render_frame_id),
+      : frame_token_(frame_token),
         extension_id_(extension_id),
         destination_url_loader_client_(
             std::move(destination_url_loader_client)) {}
@@ -73,7 +74,7 @@
   void OnReceiveResponse(
       network::mojom::URLResponseHeadPtr response_head,
       mojo::ScopedDataPipeConsumerHandle body,
-      absl::optional<mojo_base::BigBuffer> cached_metadata) override {
+      std::optional<mojo_base::BigBuffer> cached_metadata) override {
     // OnReceiveResponse() shouldn't be called because
     // ExtensionLocalizationURLLoader is
     // created by ExtensionLocalizationThrottle::WillProcessResponse(), which is
@@ -112,7 +113,7 @@
       const std::vector<std::string>& removed_headers,
       const net::HttpRequestHeaders& modified_headers,
       const net::HttpRequestHeaders& modified_cors_exempt_headers,
-      const absl::optional<GURL>& new_url) override {
+      const std::optional<GURL>& new_url) override {
     // ExtensionLocalizationURLLoader starts handling the request after
     // OnReceivedResponse(). A redirect response is not expected.
     NOTREACHED();
@@ -184,14 +185,19 @@
     extensions::SharedL10nMap::IPCTarget* ipc_target = nullptr;
 #if BUILDFLAG(ENABLE_EXTENSIONS_LEGACY_IPC)
     ipc_target = content::RenderThread::Get();
-    (void)render_frame_id_;
+    (void)frame_token_;
 #else
     // TODO(dtapuska): content::RenderThread::Get() returns nullptr so the old
     // version will never send it to the browser. Figure out why we are even
     // doing this on worker threads.
     if (content::RenderThread::IsMainThread()) {
-      content::RenderFrame* render_frame =
-          content::RenderFrame::FromRoutingID(render_frame_id_);
+      content::RenderFrame* render_frame = nullptr;
+      if (frame_token_) {
+        if (auto* web_frame =
+                blink::WebLocalFrame::FromFrameToken(frame_token_.value())) {
+          render_frame = content::RenderFrame::FromWebFrame(web_frame);
+        }
+      }
       if (render_frame) {
         ipc_target = ExtensionFrameHelper::Get(render_frame)->GetRendererHost();
       }
@@ -201,14 +207,14 @@
         extension_id_, &data_, ipc_target);
   }
 
-  const int render_frame_id_;
+  const std::optional<blink::LocalFrameToken> frame_token_;
   const ExtensionId extension_id_;
   std::unique_ptr<mojo::DataPipeDrainer> data_drainer_;
   mojo::ScopedDataPipeProducerHandle producer_handle_;
   std::string data_;
 
-  absl::optional<network::URLLoaderCompletionStatus> original_complete_status_;
-  absl::optional<MojoResult> data_write_result_;
+  std::optional<network::URLLoaderCompletionStatus> original_complete_status_;
+  std::optional<MojoResult> data_write_result_;
 
   mojo::Receiver<network::mojom::URLLoaderClient> source_url_client_receiver_{
       this};
@@ -221,17 +227,18 @@
 
 // static
 std::unique_ptr<ExtensionLocalizationThrottle>
-ExtensionLocalizationThrottle::MaybeCreate(int render_frame_id,
-                                           const blink::WebURL& request_url) {
+ExtensionLocalizationThrottle::MaybeCreate(
+    base::optional_ref<const blink::LocalFrameToken> local_frame_token,
+    const blink::WebURL& request_url) {
   if (!request_url.ProtocolIs(extensions::kExtensionScheme)) {
     return nullptr;
   }
-  return base::WrapUnique(new ExtensionLocalizationThrottle(render_frame_id));
+  return base::WrapUnique(new ExtensionLocalizationThrottle(local_frame_token));
 }
 
 ExtensionLocalizationThrottle::ExtensionLocalizationThrottle(
-    int render_frame_id)
-    : render_frame_id_(render_frame_id) {}
+    base::optional_ref<const blink::LocalFrameToken> local_frame_token)
+    : frame_token_(local_frame_token.CopyAsOptional()) {}
 
 ExtensionLocalizationThrottle::~ExtensionLocalizationThrottle() = default;
 
@@ -274,7 +281,7 @@
   mojo::PendingReceiver<network::mojom::URLLoaderClient> source_client_receiver;
 
   auto loader = std::make_unique<ExtensionLocalizationURLLoader>(
-      render_frame_id_, response_url.host(), std::move(url_loader_client));
+      frame_token_, response_url.host(), std::move(url_loader_client));
 
   ExtensionLocalizationURLLoader* loader_rawptr = loader.get();
   // `loader` will be deleted when `new_remote` is disconnected.
diff --git a/extensions/renderer/extension_localization_throttle.h b/extensions/renderer/extension_localization_throttle.h
index a054ca5..4f45ea4b 100644
--- a/extensions/renderer/extension_localization_throttle.h
+++ b/extensions/renderer/extension_localization_throttle.h
@@ -5,10 +5,14 @@
 #ifndef EXTENSIONS_RENDERER_EXTENSION_LOCALIZATION_THROTTLE_H_
 #define EXTENSIONS_RENDERER_EXTENSION_LOCALIZATION_THROTTLE_H_
 
+#include <optional>
+
 #include "base/memory/weak_ptr.h"
+#include "base/types/optional_ref.h"
 #include "mojo/public/cpp/system/data_pipe.h"
 #include "services/network/public/mojom/url_response_head.mojom.h"
 #include "third_party/blink/public/common/loader/url_loader_throttle.h"
+#include "third_party/blink/public/common/tokens/tokens.h"
 
 namespace blink {
 class WebURL;
@@ -24,7 +28,7 @@
   // Creates a ExtensionLocalizationThrottle only when `request_url`
   // is a chrome-extention scheme URL.
   static std::unique_ptr<ExtensionLocalizationThrottle> MaybeCreate(
-      int render_frame_id,
+      base::optional_ref<const blink::LocalFrameToken> local_frame_token,
       const blink::WebURL& request_url);
 
   ~ExtensionLocalizationThrottle() override;
@@ -39,11 +43,12 @@
   void ForceCreateDataPipeErrorForTest() { force_error_for_test_ = true; }
 
  private:
-  explicit ExtensionLocalizationThrottle(int render_frame_id);
+  explicit ExtensionLocalizationThrottle(
+      base::optional_ref<const blink::LocalFrameToken> local_frame_token);
   void DeferredCancelWithError(int error_code);
 
   bool force_error_for_test_ = false;
-  const int render_frame_id_;
+  const std::optional<blink::LocalFrameToken> frame_token_;
   base::WeakPtrFactory<ExtensionLocalizationThrottle> weak_factory_{this};
 };
 
diff --git a/extensions/renderer/extension_localization_throttle_unittest.cc b/extensions/renderer/extension_localization_throttle_unittest.cc
index 36bd963ca..d85e363 100644
--- a/extensions/renderer/extension_localization_throttle_unittest.cc
+++ b/extensions/renderer/extension_localization_throttle_unittest.cc
@@ -111,7 +111,7 @@
 
     destination_loader_client()->OnReceiveResponse(
         network::mojom::URLResponseHead::New(), std::move(consumer_handle),
-        absl::nullopt);
+        std::nullopt);
   }
 
   void LoadResponseBody(const std::string& body) {
@@ -196,15 +196,15 @@
 
 TEST_F(ExtensionLocalizationThrottleTest, DoNotCreate) {
   EXPECT_FALSE(ExtensionLocalizationThrottle::MaybeCreate(
-      MSG_ROUTING_NONE, blink::WebURL(GURL("https://example.com/test.css"))));
+      std::nullopt, blink::WebURL(GURL("https://example.com/test.css"))));
   EXPECT_FALSE(ExtensionLocalizationThrottle::MaybeCreate(
-      MSG_ROUTING_NONE, blink::WebURL(GURL("http://example.com/test.css"))));
+      std::nullopt, blink::WebURL(GURL("http://example.com/test.css"))));
 }
 
 TEST_F(ExtensionLocalizationThrottleTest, DoNotIntercept) {
   const GURL url("chrome-extension://some_id/test.txt");
   auto throttle = ExtensionLocalizationThrottle::MaybeCreate(
-      MSG_ROUTING_NONE, blink::WebURL(url));
+      std::nullopt, blink::WebURL(url));
   ASSERT_TRUE(throttle);
   auto delegate = std::make_unique<FakeDelegate>();
   throttle->set_delegate(delegate.get());
@@ -220,7 +220,7 @@
 TEST_F(ExtensionLocalizationThrottleTest, OneMessage) {
   const GURL url("chrome-extension://some_id/test.css");
   auto throttle = ExtensionLocalizationThrottle::MaybeCreate(
-      MSG_ROUTING_NONE, blink::WebURL(url));
+      std::nullopt, blink::WebURL(url));
   ASSERT_TRUE(throttle);
 
   auto delegate = std::make_unique<FakeDelegate>();
@@ -249,7 +249,7 @@
 TEST_F(ExtensionLocalizationThrottleTest, TwoMessages) {
   const GURL url("chrome-extension://some_id/test.css");
   auto throttle = ExtensionLocalizationThrottle::MaybeCreate(
-      MSG_ROUTING_NONE, blink::WebURL(url));
+      std::nullopt, blink::WebURL(url));
   ASSERT_TRUE(throttle);
 
   auto delegate = std::make_unique<FakeDelegate>();
@@ -281,7 +281,7 @@
 TEST_F(ExtensionLocalizationThrottleTest, EmptyData) {
   const GURL url("chrome-extension://some_id/test.css");
   auto throttle = ExtensionLocalizationThrottle::MaybeCreate(
-      MSG_ROUTING_NONE, blink::WebURL(url));
+      std::nullopt, blink::WebURL(url));
   ASSERT_TRUE(throttle);
 
   auto delegate = std::make_unique<FakeDelegate>();
@@ -310,7 +310,7 @@
 TEST_F(ExtensionLocalizationThrottleTest, Cancel) {
   const GURL url("chrome-extension://some_id/test.css");
   auto throttle = ExtensionLocalizationThrottle::MaybeCreate(
-      MSG_ROUTING_NONE, blink::WebURL(url));
+      std::nullopt, blink::WebURL(url));
   ASSERT_TRUE(throttle);
 
   auto delegate = std::make_unique<FakeDelegate>();
@@ -340,7 +340,7 @@
 TEST_F(ExtensionLocalizationThrottleTest, SourceSideError) {
   const GURL url("chrome-extension://some_id/test.css");
   auto throttle = ExtensionLocalizationThrottle::MaybeCreate(
-      MSG_ROUTING_NONE, blink::WebURL(url));
+      std::nullopt, blink::WebURL(url));
   ASSERT_TRUE(throttle);
 
   auto delegate = std::make_unique<FakeDelegate>();
@@ -373,7 +373,7 @@
 TEST_F(ExtensionLocalizationThrottleTest, WriteError) {
   const GURL url("chrome-extension://some_id/test.css");
   auto throttle = ExtensionLocalizationThrottle::MaybeCreate(
-      MSG_ROUTING_NONE, blink::WebURL(url));
+      std::nullopt, blink::WebURL(url));
   ASSERT_TRUE(throttle);
 
   auto delegate = std::make_unique<FakeDelegate>();
@@ -402,7 +402,7 @@
 TEST_F(ExtensionLocalizationThrottleTest, CreateDataPipeError) {
   const GURL url("chrome-extension://some_id/test.css");
   auto throttle = ExtensionLocalizationThrottle::MaybeCreate(
-      MSG_ROUTING_NONE, blink::WebURL(url));
+      std::nullopt, blink::WebURL(url));
   ASSERT_TRUE(throttle);
   throttle->ForceCreateDataPipeErrorForTest();
 
@@ -429,7 +429,7 @@
 TEST_F(ExtensionLocalizationThrottleTest, URLLoaderChain) {
   const GURL url("chrome-extension://some_id/test.css");
   auto throttle = ExtensionLocalizationThrottle::MaybeCreate(
-      MSG_ROUTING_NONE, blink::WebURL(url));
+      std::nullopt, blink::WebURL(url));
   ASSERT_TRUE(throttle);
 
   auto delegate = std::make_unique<FakeDelegate>();
@@ -480,7 +480,7 @@
        URLLoaderClientOnTransferSizeUpdated) {
   const GURL url("chrome-extension://some_id/test.css");
   auto throttle = ExtensionLocalizationThrottle::MaybeCreate(
-      MSG_ROUTING_NONE, blink::WebURL(url));
+      std::nullopt, blink::WebURL(url));
   ASSERT_TRUE(throttle);
 
   auto delegate = std::make_unique<FakeDelegate>();
diff --git a/fuchsia_web/webengine/renderer/web_engine_url_loader_throttle_provider.cc b/fuchsia_web/webengine/renderer/web_engine_url_loader_throttle_provider.cc
index 9194cc48..f7affe2 100644
--- a/fuchsia_web/webengine/renderer/web_engine_url_loader_throttle_provider.cc
+++ b/fuchsia_web/webengine/renderer/web_engine_url_loader_throttle_provider.cc
@@ -9,6 +9,7 @@
 #include "content/public/renderer/render_frame.h"
 #include "fuchsia_web/webengine/common/cors_exempt_headers.h"
 #include "fuchsia_web/webengine/renderer/web_engine_content_renderer_client.h"
+#include "third_party/blink/public/web/web_local_frame.h"
 
 WebEngineURLLoaderThrottleProvider::WebEngineURLLoaderThrottleProvider(
     WebEngineContentRendererClient* content_renderer_client)
@@ -29,17 +30,26 @@
 
 blink::WebVector<std::unique_ptr<blink::URLLoaderThrottle>>
 WebEngineURLLoaderThrottleProvider::CreateThrottles(
-    int render_frame_id,
+    base::optional_ref<const blink::LocalFrameToken> local_frame_token,
     const blink::WebURLRequest& request) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-  DCHECK_NE(render_frame_id, MSG_ROUTING_NONE);
-
+  CHECK(local_frame_token.has_value());
   blink::WebVector<std::unique_ptr<blink::URLLoaderThrottle>> throttles;
-  auto rules =
-      content_renderer_client_
-          ->GetWebEngineRenderFrameObserverForRenderFrameId(render_frame_id)
-          ->url_request_rules_receiver()
-          ->GetCachedRules();
+  blink::WebLocalFrame* web_frame =
+      blink::WebLocalFrame::FromFrameToken(local_frame_token.value());
+  if (!web_frame) {
+    return throttles;
+  }
+  content::RenderFrame* render_frame =
+      content::RenderFrame::FromWebFrame(web_frame);
+  if (!render_frame) {
+    return throttles;
+  }
+  auto rules = content_renderer_client_
+                   ->GetWebEngineRenderFrameObserverForRenderFrameId(
+                       render_frame->GetRoutingID())
+                   ->url_request_rules_receiver()
+                   ->GetCachedRules();
   if (rules) {
     throttles.emplace_back(std::make_unique<url_rewrite::URLLoaderThrottle>(
         rules, base::BindRepeating(&IsHeaderCorsExempt)));
diff --git a/fuchsia_web/webengine/renderer/web_engine_url_loader_throttle_provider.h b/fuchsia_web/webengine/renderer/web_engine_url_loader_throttle_provider.h
index 41f7aad..5a6131f 100644
--- a/fuchsia_web/webengine/renderer/web_engine_url_loader_throttle_provider.h
+++ b/fuchsia_web/webengine/renderer/web_engine_url_loader_throttle_provider.h
@@ -29,7 +29,7 @@
   // blink::URLLoaderThrottleProvider implementation.
   std::unique_ptr<blink::URLLoaderThrottleProvider> Clone() override;
   blink::WebVector<std::unique_ptr<blink::URLLoaderThrottle>> CreateThrottles(
-      int render_frame_id,
+      base::optional_ref<const blink::LocalFrameToken> local_frame_token,
       const blink::WebURLRequest& request) override;
   void SetOnline(bool is_online) override;
 
diff --git a/gin/converter.h b/gin/converter.h
index be3931d4..67b8d90 100644
--- a/gin/converter.h
+++ b/gin/converter.h
@@ -10,6 +10,7 @@
 #include <ostream>
 #include <string>
 #include <type_traits>
+#include <utility>
 #include <vector>
 
 #include "base/check.h"
@@ -238,7 +239,7 @@
       T item;
       if (!Converter<T>::FromV8(isolate, v8_item, &item))
         return false;
-      result.push_back(item);
+      result.push_back(std::move(item));
     }
 
     out->swap(result);
diff --git a/gin/converter_unittest.cc b/gin/converter_unittest.cc
index 24dcf6b..770b61a8 100644
--- a/gin/converter_unittest.cc
+++ b/gin/converter_unittest.cc
@@ -270,4 +270,14 @@
   func->Call(context, v8::Undefined(isolate), 1, argv).ToLocalChecked();
 }
 
+TEST_F(ConverterTest, VectorOfMoveOnly) {
+  v8::Isolate* isolate = instance_->isolate();
+  v8::HandleScope handle_scope(isolate);
+
+  v8::Local<v8::Value> v8_value = v8::Array::New(instance_->isolate(), 1);
+  std::vector<MoveOnlyObject> out_value;
+  ASSERT_TRUE(ConvertFromV8(instance_->isolate(), v8_value, &out_value));
+  EXPECT_EQ(out_value.size(), 1u);
+}
+
 }  // namespace gin
diff --git a/google_apis/gcm/base/socket_stream.cc b/google_apis/gcm/base/socket_stream.cc
index 5c0bbf2..ca4e94e 100644
--- a/google_apis/gcm/base/socket_stream.cc
+++ b/google_apis/gcm/base/socket_stream.cc
@@ -27,7 +27,8 @@
     : stream_(std::move(stream)),
       stream_watcher_(FROM_HERE, mojo::SimpleWatcher::ArmingPolicy::MANUAL),
       read_size_(0),
-      io_buffer_(base::MakeRefCounted<net::IOBuffer>(kDefaultBufferSize)),
+      io_buffer_(
+          base::MakeRefCounted<net::IOBufferWithSize>(kDefaultBufferSize)),
       read_buffer_(
           base::MakeRefCounted<net::DrainableIOBuffer>(io_buffer_,
                                                        kDefaultBufferSize)),
diff --git a/gpu/command_buffer/service/dawn_context_provider.cc b/gpu/command_buffer/service/dawn_context_provider.cc
index c62be1a..a2bee58 100644
--- a/gpu/command_buffer/service/dawn_context_provider.cc
+++ b/gpu/command_buffer/service/dawn_context_provider.cc
@@ -296,20 +296,21 @@
       adapter_options.backendType == wgpu::BackendType::D3D11 &&
       features::kSkiaGraphiteDawnShareDevice.Get();
   if (share_d3d11_device) {
-    Microsoft::WRL::ComPtr<ID3D11Device> d3d11Device =
+    Microsoft::WRL::ComPtr<ID3D11Device> d3d11_device =
         gl::QueryD3D11DeviceObjectFromANGLE();
-    CHECK(d3d11Device) << "Query d3d11 device from ANGLE failed.";
+    CHECK(d3d11_device) << "Query d3d11 device from ANGLE failed.";
 
-    Microsoft::WRL::ComPtr<ID3D11DeviceContext> d3d11DeviceContext;
-    d3d11Device->GetImmediateContext(&d3d11DeviceContext);
+    Microsoft::WRL::ComPtr<ID3D11DeviceContext> d3d11_device_context;
+    d3d11_device->GetImmediateContext(&d3d11_device_context);
 
-    Microsoft::WRL::ComPtr<ID3D11Multithread> d3d11Multithread;
-    CHECK(SUCCEEDED(d3d11DeviceContext.As(&d3d11Multithread)))
-        << "Query ID3D11Multithread interface failed.";
+    Microsoft::WRL::ComPtr<ID3D11Multithread> d3d11_multithread;
+    HRESULT hr = d3d11_device_context.As(&d3d11_multithread);
+    CHECK(SUCCEEDED(hr)) << "Query ID3D11Multithread interface failed: 0x"
+                         << std::hex << hr;
 
     // Dawn requires enable multithread protection for d3d11 device.
-    d3d11Multithread->SetMultithreadProtected(TRUE);
-    adapter_options_d3d11_device.device = std::move(d3d11Device);
+    d3d11_multithread->SetMultithreadProtected(TRUE);
+    adapter_options_d3d11_device.device = std::move(d3d11_device);
     adapter_options_d3d11_device.nextInChain = adapter_options.nextInChain;
     adapter_options.nextInChain = &adapter_options_d3d11_device;
   }
diff --git a/gpu/command_buffer/service/shared_image/shared_image_format_service_utils.cc b/gpu/command_buffer/service/shared_image/shared_image_format_service_utils.cc
index cefbb02..00b152f 100644
--- a/gpu/command_buffer/service/shared_image/shared_image_format_service_utils.cc
+++ b/gpu/command_buffer/service/shared_image/shared_image_format_service_utils.cc
@@ -455,34 +455,40 @@
 wgpu::TextureUsage GetSupportedDawnTextureUsage(
     bool is_yuv_plane,
     bool is_dcomp_surface,
-    bool supports_multiplanar_rendering) {
+    bool supports_multiplanar_rendering,
+    bool supports_multiplanar_copy) {
+  // TextureBinding usage is always supported.
+  wgpu::TextureUsage usage = wgpu::TextureUsage::TextureBinding;
+
   if (is_dcomp_surface) {
     // Textures from DComp surfaces cannot be used as TextureBinding, however
     // DCompSurfaceImageBacking creates a textureable intermediate texture.
     // TODO(crbug.com/1468844): Remove TextureBinding usage when the
     // intermediate workaround is remove.
-    return wgpu::TextureUsage::RenderAttachment |
-           wgpu::TextureUsage::TextureBinding | wgpu::TextureUsage::CopySrc |
-           wgpu::TextureUsage::CopyDst;
+    return usage | wgpu::TextureUsage::RenderAttachment |
+           wgpu::TextureUsage::CopySrc | wgpu::TextureUsage::CopyDst;
   }
 
-  // The below usages are not supported for multiplanar formats in Dawn.
   // TODO(crbug.com/1451784): Use read/write intent instead of format to get
   // correct usages.
   if (!is_yuv_plane) {
-    return wgpu::TextureUsage::RenderAttachment |
-           wgpu::TextureUsage::TextureBinding | wgpu::TextureUsage::CopySrc |
-           wgpu::TextureUsage::CopyDst;
+    return usage | wgpu::TextureUsage::RenderAttachment |
+           wgpu::TextureUsage::CopySrc | wgpu::TextureUsage::CopyDst;
   }
 
   // This indirectly checks for MultiPlanarRenderTargets feature being supported
   // by the dawn backend device.
   if (supports_multiplanar_rendering) {
-    return wgpu::TextureUsage::RenderAttachment |
-           wgpu::TextureUsage::TextureBinding;
+    usage |= wgpu::TextureUsage::RenderAttachment;
   }
 
-  return wgpu::TextureUsage::TextureBinding;
+  // This indirectly checks for MultiPlanarFormatExtendedUsages feature being
+  // supported by the dawn backend device.
+  if (supports_multiplanar_copy) {
+    usage |= wgpu::TextureUsage::CopySrc | wgpu::TextureUsage::CopyDst;
+  }
+
+  return usage;
 }
 
 wgpu::TextureAspect GetDawnTextureAspect(viz::SharedImageFormat format,
@@ -512,7 +518,8 @@
     bool is_yuv_plane,
     bool mipmapped,
     bool scanout_dcomp_surface,
-    bool supports_multiplanar_rendering) {
+    bool supports_multiplanar_rendering,
+    bool supports_multiplanar_copy) {
   if (gr_context_type == GrContextType::kGraphiteMetal) {
 #if BUILDFLAG(SKIA_USE_METAL)
     return GetGraphiteMetalTextureInfo(format, plane_index, is_yuv_plane,
@@ -521,9 +528,9 @@
   } else {
     CHECK_EQ(gr_context_type, GrContextType::kGraphiteDawn);
 #if BUILDFLAG(SKIA_USE_DAWN)
-    return GetGraphiteDawnTextureInfo(format, plane_index, is_yuv_plane,
-                                      mipmapped, scanout_dcomp_surface,
-                                      supports_multiplanar_rendering);
+    return GetGraphiteDawnTextureInfo(
+        format, plane_index, is_yuv_plane, mipmapped, scanout_dcomp_surface,
+        supports_multiplanar_rendering, supports_multiplanar_copy);
 #endif
   }
   NOTREACHED_NORETURN();
@@ -536,7 +543,8 @@
     bool is_yuv_plane,
     bool mipmapped,
     bool scanout_dcomp_surface,
-    bool supports_multiplanar_rendering) {
+    bool supports_multiplanar_rendering,
+    bool supports_multiplanar_copy) {
   skgpu::graphite::DawnTextureInfo dawn_texture_info;
   wgpu::TextureFormat wgpu_format =
       ToDawnTextureViewFormat(format, plane_index);
@@ -545,7 +553,8 @@
     dawn_texture_info.fFormat = wgpu_format;
     dawn_texture_info.fAspect = GetDawnTextureAspect(format, plane_index);
     dawn_texture_info.fUsage = GetSupportedDawnTextureUsage(
-        is_yuv_plane, scanout_dcomp_surface, supports_multiplanar_rendering);
+        is_yuv_plane, scanout_dcomp_surface, supports_multiplanar_rendering,
+        supports_multiplanar_copy);
     dawn_texture_info.fMipmapped =
         mipmapped ? skgpu::Mipmapped::kYes : skgpu::Mipmapped::kNo;
   }
diff --git a/gpu/command_buffer/service/shared_image/shared_image_format_service_utils.h b/gpu/command_buffer/service/shared_image/shared_image_format_service_utils.h
index d1ef3dc..5d367884 100644
--- a/gpu/command_buffer/service/shared_image/shared_image_format_service_utils.h
+++ b/gpu/command_buffer/service/shared_image/shared_image_format_service_utils.h
@@ -119,7 +119,8 @@
 wgpu::TextureUsage GetSupportedDawnTextureUsage(
     bool is_yuv_plane = false,
     bool is_dcomp_surface = false,
-    bool supports_multiplanar_rendering = false);
+    bool supports_multiplanar_rendering = false,
+    bool supports_multiplanar_copy = false);
 
 // Returns wgpu::TextureAspect corresponding to `plane_index` of a particular
 // `format`.
@@ -140,6 +141,8 @@
 // `scanout_dcomp_surface` indicates if the texture corresponds to a Windows
 // direct composition surface. `supports_multiplanar_rendering` indicates if the
 // dawn texture supports drawing to multiplanar render targets.
+// `supports_multiplanar_copy` indicates if the dawn backend supports copy
+// operations for multiplanar textures.
 GPU_GLES2_EXPORT skgpu::graphite::TextureInfo GetGraphiteTextureInfo(
     GrContextType gr_context_type,
     viz::SharedImageFormat format,
@@ -147,7 +150,8 @@
     bool is_yuv_plane = false,
     bool mipmapped = false,
     bool scanout_dcomp_surface = false,
-    bool supports_multiplanar_rendering = false);
+    bool supports_multiplanar_rendering = false,
+    bool supports_multiplanar_copy = false);
 
 #if BUILDFLAG(SKIA_USE_DAWN)
 GPU_GLES2_EXPORT skgpu::graphite::DawnTextureInfo GetGraphiteDawnTextureInfo(
@@ -156,7 +160,8 @@
     bool is_yuv_plane = false,
     bool mipmapped = false,
     bool scanout_dcomp_surface = false,
-    bool supports_multiplanar_rendering = false);
+    bool supports_multiplanar_rendering = false,
+    bool support_multiplanar_copy = false);
 #endif
 
 #if BUILDFLAG(SKIA_USE_METAL)
diff --git a/gpu/command_buffer/service/shared_image/skia_graphite_dawn_image_representation.cc b/gpu/command_buffer/service/shared_image/skia_graphite_dawn_image_representation.cc
index fa45560..dcb0cca 100644
--- a/gpu/command_buffer/service/shared_image/skia_graphite_dawn_image_representation.cc
+++ b/gpu/command_buffer/service/shared_image/skia_graphite_dawn_image_representation.cc
@@ -28,6 +28,15 @@
   return dawn_context_provider->SupportsFeature(
       wgpu::FeatureName::MultiPlanarRenderTargets);
 }
+
+bool SupportsMultiplanarCopy(SharedContextState* context_state) {
+  auto* dawn_context_provider = context_state->dawn_context_provider();
+  if (!dawn_context_provider) {
+    return false;
+  }
+  return dawn_context_provider->SupportsFeature(
+      wgpu::FeatureName::MultiPlanarFormatExtendedUsages);
+}
 }  // namespace
 
 // static method.
@@ -44,8 +53,11 @@
       backing->usage() & SHARED_IMAGE_USAGE_SCANOUT_DCOMP_SURFACE;
   const bool supports_multiplanar_rendering =
       SupportsMultiplanarRendering(context_state.get());
+  const bool supports_multiplanar_copy =
+      SupportsMultiplanarCopy(context_state.get());
   wgpu::TextureUsage supported_tex_usages = GetSupportedDawnTextureUsage(
-      is_yuv_plane, is_dcomp_surface, supports_multiplanar_rendering);
+      is_yuv_plane, is_dcomp_surface, supports_multiplanar_rendering,
+      supports_multiplanar_copy);
   return base::WrapUnique(new SkiaGraphiteDawnImageRepresentation(
       std::move(dawn_representation), recorder, std::move(context_state),
       manager, backing, tracker, is_yuv_plane, supported_tex_usages));
@@ -84,6 +96,8 @@
   std::vector<skgpu::graphite::BackendTexture> backend_textures;
   const bool supports_multiplanar_rendering =
       SupportsMultiplanarRendering(context_state_.get());
+  const bool supports_multiplanar_copy =
+      SupportsMultiplanarCopy(context_state_.get());
   if (format() == viz::MultiPlaneFormat::kNV12 ||
       format() == viz::MultiPlaneFormat::kP010) {
     backend_textures.reserve(format().NumberOfPlanes());
@@ -93,7 +107,8 @@
           gfx::SizeToSkISize(format().GetPlaneSize(plane_index, size()));
       skgpu::graphite::DawnTextureInfo plane_info = GetGraphiteDawnTextureInfo(
           format(), plane_index, /*is_yuv_plane=*/true, /*mipmapped=*/false,
-          /*scanout_dcomp_surface=*/false, supports_multiplanar_rendering);
+          /*scanout_dcomp_surface=*/false, supports_multiplanar_rendering,
+          supports_multiplanar_copy);
       backend_textures.emplace_back(plane_size, plane_info, texture.Get());
     }
   } else if (is_yuv_plane_) {
@@ -101,7 +116,8 @@
     SkISize plane_size = gfx::SizeToSkISize(size());
     skgpu::graphite::DawnTextureInfo plane_info = GetGraphiteDawnTextureInfo(
         format(), /*plane_index=*/0, /*is_yuv_plane=*/true, /*mipmapped=*/false,
-        /*scanout_dcomp_surface=*/false, supports_multiplanar_rendering);
+        /*scanout_dcomp_surface=*/false, supports_multiplanar_rendering,
+        supports_multiplanar_copy);
     backend_textures = {
         skgpu::graphite::BackendTexture(plane_size, plane_info, texture.Get())};
   } else {
diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json
index 21cf96b7..2bac61b 100644
--- a/gpu/config/gpu_driver_bug_list.json
+++ b/gpu/config/gpu_driver_bug_list.json
@@ -3086,7 +3086,7 @@
       "os": {
         "type": "win"
       },
-      "multi_gpu_category": "any",
+      "multi_gpu_category": "active",
       "vendor_id": "0x8086",
       "features": [
         "disable_direct_composition_sw_video_overlays"
diff --git a/gpu/vulkan/init/gr_vk_memory_allocator_impl.cc b/gpu/vulkan/init/gr_vk_memory_allocator_impl.cc
index 9dd6ccb4..8a6b7e0 100644
--- a/gpu/vulkan/init/gr_vk_memory_allocator_impl.cc
+++ b/gpu/vulkan/init/gr_vk_memory_allocator_impl.cc
@@ -35,14 +35,15 @@
                                GrVkBackendMemory* backend_memory) override {
     TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("gpu.vulkan.vma"),
                  "GrVkMemoryAllocatorImpl::allocateMemoryForImage");
-    VmaAllocationCreateInfo info;
-    info.flags = 0;
-    info.usage = VMA_MEMORY_USAGE_UNKNOWN;
-    info.requiredFlags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT;
-    info.preferredFlags = 0;
-    info.memoryTypeBits = 0;
-    info.pool = VK_NULL_HANDLE;
-    info.pUserData = nullptr;
+    VmaAllocationCreateInfo info = {
+        .flags = 0,
+        .usage = VMA_MEMORY_USAGE_UNKNOWN,
+        .requiredFlags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
+        .preferredFlags = 0,
+        .memoryTypeBits = 0,
+        .pool = VK_NULL_HANDLE,
+        .pUserData = nullptr,
+    };
 
     if (kDedicatedAllocation_AllocationPropertyFlag & flags) {
       info.flags |= VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT;
diff --git a/infra/config/generated/luci/commit-queue.cfg b/infra/config/generated/luci/commit-queue.cfg
index cf75f94..9c5ca42 100644
--- a/infra/config/generated/luci/commit-queue.cfg
+++ b/infra/config/generated/luci/commit-queue.cfg
@@ -4746,6 +4746,10 @@
         includable_only: true
       }
       builders {
+        name: "chromium/try/mega-cq-launcher"
+        includable_only: true
+      }
+      builders {
         name: "chromium/try/network_service_linux"
         includable_only: true
       }
diff --git a/infra/config/generated/luci/cr-buildbucket.cfg b/infra/config/generated/luci/cr-buildbucket.cfg
index 767b6c0..0fe4b1f 100644
--- a/infra/config/generated/luci/cr-buildbucket.cfg
+++ b/infra/config/generated/luci/cr-buildbucket.cfg
@@ -80960,7 +80960,7 @@
       name: "lacros-amd64-generic-rel-compilator"
       swarming_host: "chromium-swarm.appspot.com"
       dimensions: "builder:lacros-amd64-generic-rel-compilator"
-      dimensions: "cores:16"
+      dimensions: "cores:8"
       dimensions: "cpu:x86-64"
       dimensions: "os:Ubuntu-22.04"
       dimensions: "pool:luci.chromium.try"
@@ -96651,6 +96651,85 @@
       }
     }
     builders {
+      name: "mega-cq-launcher"
+      swarming_host: "chromium-swarm.appspot.com"
+      dimensions: "builderless:1"
+      dimensions: "cores:2"
+      dimensions: "cpu:x86-64"
+      dimensions: "os:Ubuntu-22.04"
+      dimensions: "pool:luci.chromium.try"
+      dimensions: "ssd:0"
+      exe {
+        cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build"
+        cipd_version: "refs/heads/main"
+        cmd: "luciexe"
+      }
+      properties:
+        '{'
+        '  "$recipe_engine/resultdb/test_presentation": {'
+        '    "column_keys": [],'
+        '    "grouping_keys": ['
+        '      "status",'
+        '      "v.test_suite"'
+        '    ]'
+        '  },'
+        '  "builder_group": "tryserver.chromium.infra",'
+        '  "recipe": "chromium/mega_cq_launcher"'
+        '}'
+      execution_timeout_secs: 129600
+      expiration_secs: 7200
+      grace_period {
+        seconds: 120
+      }
+      build_numbers: YES
+      service_account: "chromium-cipd-try-builder@chops-service-accounts.iam.gserviceaccount.com"
+      task_template_canary_percentage {
+        value: 5
+      }
+      experiments {
+        key: "chromium_swarming.expose_merge_script_failures"
+        value: 100
+      }
+      experiments {
+        key: "luci.recipes.use_python3"
+        value: 100
+      }
+      resultdb {
+        enable: true
+        bq_exports {
+          project: "chrome-luci-data"
+          dataset: "chromium"
+          table: "try_test_results"
+          test_results {}
+        }
+        bq_exports {
+          project: "chrome-luci-data"
+          dataset: "chromium"
+          table: "gpu_try_test_results"
+          test_results {
+            predicate {
+              test_id_regexp: "ninja://chrome/test:telemetry_gpu_integration_test[^/]*/.+"
+            }
+          }
+        }
+        bq_exports {
+          project: "chrome-luci-data"
+          dataset: "chromium"
+          table: "blink_web_tests_try_test_results"
+          test_results {
+            predicate {
+              test_id_regexp: "(ninja://[^/]*blink_web_tests/.+)|(ninja://[^/]*_wpt_tests/.+)"
+            }
+          }
+        }
+        history_options {
+          use_invocation_timestamp: true
+        }
+      }
+      description_html: "Triggers all builders needed for Chromium's Mega CQ."
+      contact_team_email: "chrome-browser-infra-team@google.com"
+    }
+    builders {
       name: "network_service_linux"
       swarming_host: "chromium-swarm.appspot.com"
       dimensions: "builderless:1"
@@ -98782,10 +98861,6 @@
         value: 5
       }
       experiments {
-        key: "chromium.pre_retry_shards_without_patch_compile"
-        value: 100
-      }
-      experiments {
         key: "chromium_swarming.expose_merge_script_failures"
         value: 100
       }
diff --git a/infra/config/generated/luci/luci-milo.cfg b/infra/config/generated/luci/luci-milo.cfg
index 7695c6fb..8df36bf4 100644
--- a/infra/config/generated/luci/luci-milo.cfg
+++ b/infra/config/generated/luci/luci-milo.cfg
@@ -18100,6 +18100,9 @@
     name: "buildbucket/luci.chromium.try/mac_upload_rust_arm"
   }
   builders {
+    name: "buildbucket/luci.chromium.try/mega-cq-launcher"
+  }
+  builders {
     name: "buildbucket/luci.chromium.try/network_service_linux"
   }
   builders {
@@ -18990,6 +18993,9 @@
   builders {
     name: "buildbucket/luci.chromium.try/3pp-win-amd64-packager"
   }
+  builders {
+    name: "buildbucket/luci.chromium.try/mega-cq-launcher"
+  }
   builder_view_only: true
 }
 consoles {
diff --git a/infra/config/generated/testing/test_suites.pyl b/infra/config/generated/testing/test_suites.pyl
index f0f25e3..4491776 100644
--- a/infra/config/generated/testing/test_suites.pyl
+++ b/infra/config/generated/testing/test_suites.pyl
@@ -4126,9 +4126,6 @@
     'leak_detection_isolated_scripts': {
       'memory.leak_detection': {
         'test': 'performance_test_suite',
-        'override_compile_targets': [
-          'performance_test_suite',
-        ],
         'args': [
           '--pageset-repeat=1',
           '--test-shard-map-filename=linux_leak_detection_shard_map.json',
@@ -4366,9 +4363,6 @@
     'live_companion_tests': {
       'live_companion_tests': {
         'test': 'browser_tests',
-        'override_compile_targets': [
-          'browser_tests',
-        ],
         'args': [
           '--gtest_filter=CompanionLiveTest.*',
           '--run-live-tests',
diff --git a/infra/config/generated/testing/variants.pyl b/infra/config/generated/testing/variants.pyl
index 232b261..2e54145 100644
--- a/infra/config/generated/testing/variants.pyl
+++ b/infra/config/generated/testing/variants.pyl
@@ -70,16 +70,16 @@
   },
   'LACROS_VERSION_SKEW_CANARY': {
     'identifier': 'Lacros version skew testing ash canary',
-    'description': 'Run with ash-chrome version 121.0.6113.0',
+    'description': 'Run with ash-chrome version 121.0.6114.0',
     'args': [
-      '--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6113.0/test_ash_chrome',
+      '--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6114.0/test_ash_chrome',
     ],
     'swarming': {
       'cipd_packages': [
         {
           'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip',
-          'location': 'lacros_version_skew_tests_v121.0.6113.0',
-          'revision': 'version:121.0.6113.0',
+          'location': 'lacros_version_skew_tests_v121.0.6114.0',
+          'revision': 'version:121.0.6114.0',
         },
       ],
     },
diff --git a/infra/config/recipes.star b/infra/config/recipes.star
index 90c734a7..1e7b41d 100644
--- a/infra/config/recipes.star
+++ b/infra/config/recipes.star
@@ -189,6 +189,10 @@
 )
 
 build_recipe(
+    name = "recipe:chromium/mega_cq_launcher",
+)
+
+build_recipe(
     name = "recipe:chromium_clang_coverage_tot",
 )
 
diff --git a/infra/config/subprojects/chromium/try/tryserver.chromium.chromiumos.star b/infra/config/subprojects/chromium/try/tryserver.chromium.chromiumos.star
index 9729acd..e296ada 100644
--- a/infra/config/subprojects/chromium/try/tryserver.chromium.chromiumos.star
+++ b/infra/config/subprojects/chromium/try/tryserver.chromium.chromiumos.star
@@ -226,6 +226,7 @@
     name = "lacros-amd64-generic-rel-compilator",
     description_html = """\
 Temporary compilator setup for lacros-amd-generic-rel""",
+    cores = 8,
     contact_team_email = "chrome-browser-infra-team@google.com",
     main_list_view = "try",
 )
diff --git a/infra/config/subprojects/chromium/try/tryserver.chromium.infra.star b/infra/config/subprojects/chromium/try/tryserver.chromium.infra.star
index fd7a8482..cdffdad 100644
--- a/infra/config/subprojects/chromium/try/tryserver.chromium.infra.star
+++ b/infra/config/subprojects/chromium/try/tryserver.chromium.infra.star
@@ -8,7 +8,6 @@
 load("//lib/consoles.star", "consoles")
 
 try_.defaults.set(
-    executable = "recipe:chromium_3pp",
     builder_group = "tryserver.chromium.infra",
     pool = try_.DEFAULT_POOL,
     execution_timeout = try_.DEFAULT_EXECUTION_TIMEOUT,
@@ -21,6 +20,7 @@
 
 try_.builder(
     name = "3pp-linux-amd64-packager",
+    executable = "recipe:chromium_3pp",
     builderless = False,
     cores = 8,
     os = os.LINUX_DEFAULT,
@@ -51,6 +51,7 @@
 
 try_.builder(
     name = "3pp-mac-amd64-packager",
+    executable = "recipe:chromium_3pp",
     builderless = True,
     os = os.MAC_DEFAULT,
     properties = {
@@ -65,6 +66,7 @@
 try_.builder(
     name = "3pp-win-amd64-packager",
     description_html = "3PP Packager for Windows",
+    executable = "recipe:chromium_3pp",
     builderless = True,
     os = os.WINDOWS_DEFAULT,
     contact_team_email = "chrome-browser-infra-team@google.com",
@@ -76,3 +78,16 @@
         },
     },
 )
+
+try_.builder(
+    name = "mega-cq-launcher",
+    # TODO(crbug.com/1227778): Document the Mega-CQ somewhere in markdown, then
+    # link to it in the description here.
+    description_html = "Triggers all builders needed for Chromium's Mega CQ.",
+    executable = "recipe:chromium/mega_cq_launcher",
+    builderless = True,
+    cores = 2,
+    os = os.LINUX_DEFAULT,
+    contact_team_email = "chrome-browser-infra-team@google.com",
+    execution_timeout = 36 * time.hour,  # We expect it can take a while.
+)
diff --git a/infra/config/subprojects/chromium/try/tryserver.chromium.win.star b/infra/config/subprojects/chromium/try/tryserver.chromium.win.star
index 470b238..8ce70998 100644
--- a/infra/config/subprojects/chromium/try/tryserver.chromium.win.star
+++ b/infra/config/subprojects/chromium/try/tryserver.chromium.win.star
@@ -94,7 +94,6 @@
     experiments = {
         # go/nplus1shardsproposal
         "chromium.add_one_test_shard": 5,
-        "chromium.pre_retry_shards_without_patch_compile": 100,
     },
     main_list_view = "try",
     tryjob = try_.job(),
diff --git a/infra/config/targets/basic_suites.star b/infra/config/targets/basic_suites.star
index 8107ce69..da93202 100644
--- a/infra/config/targets/basic_suites.star
+++ b/infra/config/targets/basic_suites.star
@@ -4850,9 +4850,6 @@
     tests = {
         "memory.leak_detection": targets.legacy_test_config(
             test = "performance_test_suite",
-            override_compile_targets = [
-                "performance_test_suite",
-            ],
             args = [
                 "--pageset-repeat=1",
                 "--test-shard-map-filename=linux_leak_detection_shard_map.json",
@@ -5154,9 +5151,6 @@
     tests = {
         "live_companion_tests": targets.legacy_test_config(
             test = "browser_tests",
-            override_compile_targets = [
-                "browser_tests",
-            ],
             args = [
                 "--gtest_filter=CompanionLiveTest.*",
                 "--run-live-tests",
diff --git a/infra/config/targets/lacros-version-skew-variants.json b/infra/config/targets/lacros-version-skew-variants.json
index 08cd1d1f..141150f9 100644
--- a/infra/config/targets/lacros-version-skew-variants.json
+++ b/infra/config/targets/lacros-version-skew-variants.json
@@ -1,16 +1,16 @@
 {
   "LACROS_VERSION_SKEW_CANARY": {
     "args": [
-      "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6113.0/test_ash_chrome"
+      "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6114.0/test_ash_chrome"
     ],
-    "description": "Run with ash-chrome version 121.0.6113.0",
+    "description": "Run with ash-chrome version 121.0.6114.0",
     "identifier": "Lacros version skew testing ash canary",
     "swarming": {
       "cipd_packages": [
         {
           "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-          "location": "lacros_version_skew_tests_v121.0.6113.0",
-          "revision": "version:121.0.6113.0"
+          "location": "lacros_version_skew_tests_v121.0.6114.0",
+          "revision": "version:121.0.6114.0"
         }
       ]
     }
diff --git a/internal b/internal
index 95496ca..601621a 160000
--- a/internal
+++ b/internal
@@ -1 +1 @@
-Subproject commit 95496cacbb6d27a923918e1b7c1ef143b79c45b5
+Subproject commit 601621ad463530e5e1acc47d248ce98e2f313e42
diff --git a/ios/chrome/app/BUILD.gn b/ios/chrome/app/BUILD.gn
index 7a401b8..64f412f 100644
--- a/ios/chrome/app/BUILD.gn
+++ b/ios/chrome/app/BUILD.gn
@@ -491,7 +491,7 @@
     "//ios/chrome/browser/memory/model",
     "//ios/chrome/browser/metrics",
     "//ios/chrome/browser/metrics:metrics_internal",
-    "//ios/chrome/browser/omaha",
+    "//ios/chrome/browser/omaha/model",
     "//ios/chrome/browser/passwords/model",
     "//ios/chrome/browser/promos_manager:factory",
     "//ios/chrome/browser/push_notification:push_notification_service",
diff --git a/ios/chrome/app/main_controller.mm b/ios/chrome/app/main_controller.mm
index 5ce1c82..5c068edf 100644
--- a/ios/chrome/app/main_controller.mm
+++ b/ios/chrome/app/main_controller.mm
@@ -79,7 +79,7 @@
 #import "ios/chrome/browser/metrics/first_user_action_recorder.h"
 #import "ios/chrome/browser/metrics/incognito_usage_app_state_agent.h"
 #import "ios/chrome/browser/metrics/window_configuration_recorder.h"
-#import "ios/chrome/browser/omaha/omaha_service.h"
+#import "ios/chrome/browser/omaha/model/omaha_service.h"
 #import "ios/chrome/browser/passwords/model/password_manager_util_ios.h"
 #import "ios/chrome/browser/promos_manager/promos_manager_factory.h"
 #import "ios/chrome/browser/screenshot/model/screenshot_metrics_recorder.h"
diff --git a/ios/chrome/app/startup_tasks.mm b/ios/chrome/app/startup_tasks.mm
index 5a92a11..69b1c24 100644
--- a/ios/chrome/app/startup_tasks.mm
+++ b/ios/chrome/app/startup_tasks.mm
@@ -10,7 +10,7 @@
 #import "base/metrics/histogram_functions.h"
 #import "base/task/thread_pool.h"
 #import "ios/chrome/app/deferred_initialization_runner.h"
-#import "ios/chrome/browser/omaha/omaha_service.h"
+#import "ios/chrome/browser/omaha/model/omaha_service.h"
 #import "ios/chrome/browser/reading_list/model/reading_list_download_service.h"
 #import "ios/chrome/browser/reading_list/model/reading_list_download_service_factory.h"
 #import "ios/chrome/browser/shared/model/application_context/application_context.h"
diff --git a/ios/chrome/browser/omaha/BUILD.gn b/ios/chrome/browser/omaha/model/BUILD.gn
similarity index 97%
rename from ios/chrome/browser/omaha/BUILD.gn
rename to ios/chrome/browser/omaha/model/BUILD.gn
index b459670..69b84f0 100644
--- a/ios/chrome/browser/omaha/BUILD.gn
+++ b/ios/chrome/browser/omaha/model/BUILD.gn
@@ -2,7 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-source_set("omaha") {
+source_set("model") {
   sources = [
     "omaha_service.h",
     "omaha_service.mm",
@@ -34,7 +34,7 @@
   testonly = true
   sources = [ "omaha_service_unittest.mm" ]
   deps = [
-    ":omaha",
+    ":model",
     "//base",
     "//components/metrics",
     "//components/prefs",
diff --git a/ios/chrome/browser/omaha/DEPS b/ios/chrome/browser/omaha/model/DEPS
similarity index 100%
rename from ios/chrome/browser/omaha/DEPS
rename to ios/chrome/browser/omaha/model/DEPS
diff --git a/ios/chrome/browser/omaha/DIR_METADATA b/ios/chrome/browser/omaha/model/DIR_METADATA
similarity index 100%
rename from ios/chrome/browser/omaha/DIR_METADATA
rename to ios/chrome/browser/omaha/model/DIR_METADATA
diff --git a/ios/chrome/browser/omaha/OWNERS b/ios/chrome/browser/omaha/model/OWNERS
similarity index 100%
rename from ios/chrome/browser/omaha/OWNERS
rename to ios/chrome/browser/omaha/model/OWNERS
diff --git a/ios/chrome/browser/omaha/omaha_service.h b/ios/chrome/browser/omaha/model/omaha_service.h
similarity index 97%
rename from ios/chrome/browser/omaha/omaha_service.h
rename to ios/chrome/browser/omaha/model/omaha_service.h
index 59a177f..730177d 100644
--- a/ios/chrome/browser/omaha/omaha_service.h
+++ b/ios/chrome/browser/omaha/model/omaha_service.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef IOS_CHROME_BROWSER_OMAHA_OMAHA_SERVICE_H_
-#define IOS_CHROME_BROWSER_OMAHA_OMAHA_SERVICE_H_
+#ifndef IOS_CHROME_BROWSER_OMAHA_MODEL_OMAHA_SERVICE_H_
+#define IOS_CHROME_BROWSER_OMAHA_MODEL_OMAHA_SERVICE_H_
 
 #include <memory>
 #include <string>
@@ -235,4 +235,4 @@
   OneOffCallback one_off_check_callback_;
 };
 
-#endif  // IOS_CHROME_BROWSER_OMAHA_OMAHA_SERVICE_H_
+#endif  // IOS_CHROME_BROWSER_OMAHA_MODEL_OMAHA_SERVICE_H_
diff --git a/ios/chrome/browser/omaha/omaha_service.mm b/ios/chrome/browser/omaha/model/omaha_service.mm
similarity index 99%
rename from ios/chrome/browser/omaha/omaha_service.mm
rename to ios/chrome/browser/omaha/model/omaha_service.mm
index ac5b5c4..fc6c513 100644
--- a/ios/chrome/browser/omaha/omaha_service.mm
+++ b/ios/chrome/browser/omaha/model/omaha_service.mm
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#import "ios/chrome/browser/omaha/omaha_service.h"
+#import "ios/chrome/browser/omaha/model/omaha_service.h"
 
 #import <Foundation/Foundation.h>
 
diff --git a/ios/chrome/browser/omaha/omaha_service_unittest.mm b/ios/chrome/browser/omaha/model/omaha_service_unittest.mm
similarity index 99%
rename from ios/chrome/browser/omaha/omaha_service_unittest.mm
rename to ios/chrome/browser/omaha/model/omaha_service_unittest.mm
index 83d5963..0c7886eb 100644
--- a/ios/chrome/browser/omaha/omaha_service_unittest.mm
+++ b/ios/chrome/browser/omaha/model/omaha_service_unittest.mm
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#import "ios/chrome/browser/omaha/omaha_service.h"
+#import "ios/chrome/browser/omaha/model/omaha_service.h"
 
 #import <regex.h>
 #import <sys/types.h>
diff --git a/ios/chrome/browser/safety_check/model/BUILD.gn b/ios/chrome/browser/safety_check/model/BUILD.gn
index 9ad14fcf..719d7f6 100644
--- a/ios/chrome/browser/safety_check/model/BUILD.gn
+++ b/ios/chrome/browser/safety_check/model/BUILD.gn
@@ -21,7 +21,7 @@
     "//components/password_manager/core/browser",
     "//components/safe_browsing/core/common:safe_browsing_prefs",
     "//components/version_info",
-    "//ios/chrome/browser/omaha",
+    "//ios/chrome/browser/omaha/model",
     "//ios/chrome/browser/shared/model/prefs:pref_names",
     "//ios/chrome/browser/ui/content_suggestions:constants",
     "//ios/chrome/browser/ui/ntp/metrics:home_metrics",
diff --git a/ios/chrome/browser/safety_check/model/DEPS b/ios/chrome/browser/safety_check/model/DEPS
index d8ba610..e08c2ea 100644
--- a/ios/chrome/browser/safety_check/model/DEPS
+++ b/ios/chrome/browser/safety_check/model/DEPS
@@ -1,7 +1,7 @@
 include_rules = [
   "+ios/chrome/browser/passwords/model",
   "+ios/chrome/browser/upgrade/model",
-  "+ios/chrome/browser/omaha",
+  "+ios/chrome/browser/omaha/model",
   "+ios/chrome/browser/ui/content_suggestions/content_suggestions_constants.h",
   "+ios/chrome/browser/ui/ntp/metrics/home_metrics.h",
 ]
diff --git a/ios/chrome/browser/safety_check/model/ios_chrome_safety_check_manager.mm b/ios/chrome/browser/safety_check/model/ios_chrome_safety_check_manager.mm
index 2e51afb9..88f730b 100644
--- a/ios/chrome/browser/safety_check/model/ios_chrome_safety_check_manager.mm
+++ b/ios/chrome/browser/safety_check/model/ios_chrome_safety_check_manager.mm
@@ -13,7 +13,7 @@
 #import "components/prefs/pref_service.h"
 #import "components/safe_browsing/core/common/safe_browsing_prefs.h"
 #import "components/version_info/version_info.h"
-#import "ios/chrome/browser/omaha/omaha_service.h"
+#import "ios/chrome/browser/omaha/model/omaha_service.h"
 #import "ios/chrome/browser/safety_check/model/ios_chrome_safety_check_manager_utils.h"
 #import "ios/chrome/browser/shared/model/prefs/pref_names.h"
 #import "ios/chrome/browser/ui/content_suggestions/content_suggestions_constants.h"
diff --git a/ios/chrome/browser/shared/model/prefs/browser_prefs.mm b/ios/chrome/browser/shared/model/prefs/browser_prefs.mm
index 82d2887..f15f122 100644
--- a/ios/chrome/browser/shared/model/prefs/browser_prefs.mm
+++ b/ios/chrome/browser/shared/model/prefs/browser_prefs.mm
@@ -483,6 +483,7 @@
 
   registry->RegisterIntegerPref(prefs::kAddressBarSettingsNewBadgeShownCount,
                                 0);
+  registry->RegisterIntegerPref(prefs::kNTPLensEntryPointNewBadgeShownCount, 0);
   registry->RegisterBooleanPref(prefs::kBottomOmnibox, false);
   registry->RegisterBooleanPref(prefs::kBottomOmniboxByDefault, false);
   registry->RegisterBooleanPref(policy::policy_prefs::kPolicyTestPageEnabled,
diff --git a/ios/chrome/browser/shared/model/prefs/pref_names.cc b/ios/chrome/browser/shared/model/prefs/pref_names.cc
index 38d316b..4034edc 100644
--- a/ios/chrome/browser/shared/model/prefs/pref_names.cc
+++ b/ios/chrome/browser/shared/model/prefs/pref_names.cc
@@ -391,6 +391,11 @@
 const char kLensCameraAssistedSearchPolicyAllowed[] =
     "ios.lens_camera_assited_search_policy.allowed";
 
+// Number of times the NTP Lens button "new" IPH badge has been shown.
+// This is set to INT_MAX when the user taps the button.
+const char kNTPLensEntryPointNewBadgeShownCount[] =
+    "ios.ntp_lens_new_badge_shown_count";
+
 // A boolean specifying whether Web Inspector support is enabled.
 const char kWebInspectorEnabled[] = "ios.web_inspector_enabled";
 
diff --git a/ios/chrome/browser/shared/model/prefs/pref_names.h b/ios/chrome/browser/shared/model/prefs/pref_names.h
index 97b8f5b4..4456da2e 100644
--- a/ios/chrome/browser/shared/model/prefs/pref_names.h
+++ b/ios/chrome/browser/shared/model/prefs/pref_names.h
@@ -84,6 +84,7 @@
 extern const char kNTPContentSuggestionsEnabled[];
 extern const char kNTPContentSuggestionsForSupervisedUserEnabled[];
 extern const char kNTPFollowingFeedSortType[];
+extern const char kNTPLensEntryPointNewBadgeShownCount[];
 extern const char kDefaultFollowingFeedSortTypeChanged[];
 extern const char kOSLockdownModeEnabled[];
 extern const char kOverflowMenuDestinationUsageHistory[];
diff --git a/ios/chrome/browser/shared/ui/elements/new_feature_badge_view.mm b/ios/chrome/browser/shared/ui/elements/new_feature_badge_view.mm
index 79fcc23b..97365e6 100644
--- a/ios/chrome/browser/shared/ui/elements/new_feature_badge_view.mm
+++ b/ios/chrome/browser/shared/ui/elements/new_feature_badge_view.mm
@@ -27,6 +27,7 @@
 
     _badge = [[UIImageView alloc]
         initWithImage:DefaultSymbolWithPointSize(kSealFillSymbol, badgeSize)];
+    _badge.contentMode = UIViewContentModeScaleAspectFit;
     _badge.translatesAutoresizingMaskIntoConstraints = NO;
     _badge.tintColor = [UIColor colorNamed:kBlue600Color];
     [self addSubview:_badge];
@@ -48,6 +49,7 @@
     label.font = [UIFont fontWithDescriptor:fontDescriptor size:fontSize];
     [self addSubview:label];
     AddSameCenterConstraints(label, _badge);
+    AddSameConstraints(self, _badge);
 
     [NSLayoutConstraint activateConstraints:@[
       [_badge.widthAnchor constraintEqualToConstant:badgeSize],
diff --git a/ios/chrome/browser/ui/autofill/manual_fill/fallback_coordinator_egtest.mm b/ios/chrome/browser/ui/autofill/manual_fill/fallback_coordinator_egtest.mm
index c325b035..77773e4 100644
--- a/ios/chrome/browser/ui/autofill/manual_fill/fallback_coordinator_egtest.mm
+++ b/ios/chrome/browser/ui/autofill/manual_fill/fallback_coordinator_egtest.mm
@@ -194,9 +194,9 @@
   [[EarlGrey selectElementWithMatcher:ManualFallbackProfilesTableViewMatcher()]
       assertWithMatcher:grey_notVisible()];
 
-  // On iPad and iOS 15 the picker is a table view in a popover, we need to
+  // On iPad the picker is a table view in a popover, we need to
   // dismiss that first.
-  if ([ChromeEarlGrey isIPadIdiom] || base::ios::IsRunningOnIOS15OrLater()) {
+  if ([ChromeEarlGrey isIPadIdiom]) {
     // Tap in the web view so the popover dismisses.
     [[EarlGrey selectElementWithMatcher:chrome_test_util::WebViewMatcher()]
         performAction:grey_tapAtPoint(CGPointMake(0, 0))];
@@ -210,11 +210,9 @@
 
     // Dismissing the popover by tapping on the webView, then tapping on the
     // form element below in quick succession seems to end up dismissing the
-    // keyboard on iOS15. This may be because the state element is still
+    // keyboard on iOS15+. This may be because the state element is still
     // focused. Instead, wait a moment for the focus to be dismissed.
-    if (base::ios::IsRunningOnIOS15OrLater()) {
-      base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(1));
-    }
+    base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(1));
   }
 
   // Bring up the regular keyboard again.
diff --git a/ios/chrome/browser/ui/badges/badge_mediator.mm b/ios/chrome/browser/ui/badges/badge_mediator.mm
index 33839f2..d992bf6 100644
--- a/ios/chrome/browser/ui/badges/badge_mediator.mm
+++ b/ios/chrome/browser/ui/badges/badge_mediator.mm
@@ -74,8 +74,7 @@
 @property(nonatomic, strong, readonly) NSArray<id<BadgeItem>>* badges;
 
 // The correct badge type for permissions infobar.
-@property(nonatomic, assign, readonly)
-    BadgeType permissionsBadgeType API_AVAILABLE(ios(15.0));
+@property(nonatomic, assign, readonly) BadgeType permissionsBadgeType;
 
 @end
 
@@ -162,11 +161,9 @@
         BadgeTypeForInfobarType(infobarTypeBadgeStatePair.first);
     // Update BadgeType for permissions to align with current permission states
     // of the web state.
-    if (@available(iOS 15.0, *)) {
-      if (infobarTypeBadgeStatePair.first ==
-          InfobarType::kInfobarTypePermissions) {
-        badgeType = self.permissionsBadgeType;
-      }
+    if (infobarTypeBadgeStatePair.first ==
+        InfobarType::kInfobarTypePermissions) {
+      badgeType = self.permissionsBadgeType;
     }
     BadgeTappableItem* item =
         [[BadgeTappableItem alloc] initWithBadgeType:badgeType];
diff --git a/ios/chrome/browser/ui/content_suggestions/BUILD.gn b/ios/chrome/browser/ui/content_suggestions/BUILD.gn
index 7e2fbfe..73b013d 100644
--- a/ios/chrome/browser/ui/content_suggestions/BUILD.gn
+++ b/ios/chrome/browser/ui/content_suggestions/BUILD.gn
@@ -293,6 +293,7 @@
     "//ios/chrome/browser/ntp/home:features",
     "//ios/chrome/browser/shared/public/commands",
     "//ios/chrome/browser/shared/public/features",
+    "//ios/chrome/browser/shared/ui/elements",
     "//ios/chrome/browser/shared/ui/symbols",
     "//ios/chrome/browser/shared/ui/util",
     "//ios/chrome/browser/ui/content_suggestions/cells:constants",
diff --git a/ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_utils.h b/ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_utils.h
index f777f2fe..bad17ba 100644
--- a/ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_utils.h
+++ b/ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_utils.h
@@ -58,9 +58,8 @@
 // constraining it.
 void ConfigureVoiceSearchButton(UIButton* voice_search_button,
                                 UIView* search_tab_target);
-// Configure the `lens_button`, adding it to the `search_tap_target` and
-// constraining it.
-void ConfigureLensButton(UIButton* lens_button, UIView* search_tap_target);
+// Configure the `lens_button` appearance.
+void ConfigureLensButtonAppearance(UIButton* lens_button, BOOL use_new_badge);
 
 // Returns the nearest ancestor of `view` that is kind of `of_class`.
 UIView* NearestAncestor(UIView* view, Class of_class);
diff --git a/ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_utils.mm b/ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_utils.mm
index 9bf415c3..a84fac3 100644
--- a/ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_utils.mm
+++ b/ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_utils.mm
@@ -7,6 +7,7 @@
 #import "base/i18n/rtl.h"
 #import "components/strings/grit/components_strings.h"
 #import "ios/chrome/browser/shared/public/features/features.h"
+#import "ios/chrome/browser/shared/ui/elements/new_feature_badge_view.h"
 #import "ios/chrome/browser/shared/ui/symbols/symbols.h"
 #import "ios/chrome/browser/shared/ui/util/uikit_ui_util.h"
 #import "ios/chrome/browser/ui/content_suggestions/ntp_home_constant.h"
@@ -65,6 +66,14 @@
 // The size of the symbol image.
 const CGFloat kSymbolContentSuggestionsPointSize = 18;
 
+// Constants for a symbol button with an new badge.
+const CGFloat kSymbolButtonSize = 37.0;
+const CGFloat kSymbolWithNewBadgePointSize = 18.0;
+const CGFloat kButtonShadowOpacity = 0.35;
+const CGFloat kButtonShadowRadius = 1.0;
+const CGFloat kButtonShadowVerticalOffset = 1.0;
+const CGFloat kNewBadgeOffsetFromButtonCenter = 14.0;
+
 // The height of the Fakebox.
 const CGFloat kFakeboxHeight = 65;
 const CGFloat kFakeboxHeightNonDynamic = 45;
@@ -73,6 +82,11 @@
 const CGFloat kPinnedFakeboxHeight = 48;
 const CGFloat kPinnedFakeboxHeightNonDynamic = 18;
 
+// Height and width of the new feature badge.
+const CGFloat kNewFeatureBadgeSize = 20;
+// Font size of the new feature badge label.
+const CGFloat kNewFeatureFontSize = 10;
+
 // Returns the amount of vertical margin to include in the Fake Toolbar.
 CGFloat FakeToolbarVerticalMargin() {
   UIContentSizeCategory category =
@@ -95,6 +109,45 @@
   }
   return [UIColor colorNamed:kTextfieldPlaceholderColor];
 }
+
+// Sets up fakebox button with a symbol and a round background.
+void SetUpButtonWithNewFeatureBadge(UIButton* button, NSString* symbol_name) {
+  [button setTranslatesAutoresizingMaskIntoConstraints:NO];
+  UIImageSymbolConfiguration* configuration = [UIImageSymbolConfiguration
+      configurationWithPointSize:kSymbolWithNewBadgePointSize
+                          weight:UIImageSymbolWeightSemibold
+                           scale:UIImageSymbolScaleMedium];
+
+  UIImage* icon = MakeSymbolMulticolor(
+      CustomSymbolWithConfiguration(symbol_name, configuration));
+
+  button.backgroundColor = [UIColor colorNamed:kOmniboxKeyboardButtonColor];
+  [button setImage:icon forState:UIControlStateNormal];
+  button.layer.cornerRadius = kSymbolButtonSize / 2;
+
+  button.layer.shadowColor = [UIColor blackColor].CGColor;
+  button.layer.shadowOffset = CGSizeMake(0, kButtonShadowVerticalOffset);
+  button.layer.shadowOpacity = kButtonShadowOpacity;
+  button.layer.shadowRadius = kButtonShadowRadius;
+
+  NewFeatureBadgeView* badgeView =
+      [[NewFeatureBadgeView alloc] initWithBadgeSize:kNewFeatureBadgeSize
+                                            fontSize:kNewFeatureFontSize];
+  badgeView.translatesAutoresizingMaskIntoConstraints = NO;
+  badgeView.accessibilityElementsHidden = YES;
+  [button.imageView addSubview:badgeView];
+
+  [NSLayoutConstraint activateConstraints:@[
+    [button.widthAnchor constraintEqualToConstant:kSymbolButtonSize],
+    [button.heightAnchor constraintEqualToConstant:kSymbolButtonSize],
+    [badgeView.centerXAnchor
+        constraintEqualToAnchor:button.imageView.centerXAnchor
+                       constant:kNewBadgeOffsetFromButtonCenter],
+    [badgeView.centerYAnchor
+        constraintEqualToAnchor:button.imageView.centerYAnchor
+                       constant:-kNewBadgeOffsetFromButtonCenter],
+  ]];
+}
 }
 
 namespace content_suggestions {
@@ -271,20 +324,17 @@
       CreateLiftEffectCirclePointerStyleProvider();
 }
 
-void ConfigureLensButton(UIButton* lens_button, UIView* search_tap_target) {
+void ConfigureLensButtonAppearance(UIButton* lens_button, BOOL use_new_badge) {
   lens_button.translatesAutoresizingMaskIntoConstraints = NO;
-  [search_tap_target addSubview:lens_button];
 
-  UIButtonConfiguration* buttonConfig =
-      [UIButtonConfiguration plainButtonConfiguration];
-  buttonConfig.contentInsets = NSDirectionalEdgeInsetsMake(0, 0, 0, 0);
-  lens_button.configuration = buttonConfig;
-
-  UIImage* camera_image = CustomSymbolWithPointSize(
-      kCameraLensSymbol, kSymbolContentSuggestionsPointSize);
-
-  [lens_button setImage:camera_image forState:UIControlStateNormal];
-  lens_button.tintColor = FakeboxIconColor();
+  if (IsUIButtonConfigurationEnabled()) {
+    UIButtonConfiguration* buttonConfig =
+        [UIButtonConfiguration plainButtonConfiguration];
+    buttonConfig.contentInsets = NSDirectionalEdgeInsetsMake(0, 0, 0, 0);
+    lens_button.configuration = buttonConfig;
+  } else {
+    SetAdjustsImageWhenHighlighted(lens_button, NO);
+  }
   lens_button.accessibilityLabel = l10n_util::GetNSString(IDS_IOS_ACCNAME_LENS);
   lens_button.accessibilityIdentifier = @"Lens";
 
@@ -292,6 +342,17 @@
   // Make the pointer shape fit the location bar's semi-circle end shape.
   lens_button.pointerStyleProvider =
       CreateLiftEffectCirclePointerStyleProvider();
+
+  if (use_new_badge) {
+    // Show the "New" badge and colored symbol.
+    SetUpButtonWithNewFeatureBadge(lens_button, kCameraLensSymbol);
+  } else {
+    // Use a monochrome symbol with no background.
+    UIImage* camera_image = CustomSymbolWithPointSize(
+        kCameraLensSymbol, kSymbolContentSuggestionsPointSize);
+    [lens_button setImage:camera_image forState:UIControlStateNormal];
+    lens_button.tintColor = FakeboxIconColor();
+  }
 }
 
 UIView* NearestAncestor(UIView* view, Class of_class) {
diff --git a/ios/chrome/browser/ui/lens/lens_coordinator.mm b/ios/chrome/browser/ui/lens/lens_coordinator.mm
index 62b4c44..29180668 100644
--- a/ios/chrome/browser/ui/lens/lens_coordinator.mm
+++ b/ios/chrome/browser/ui/lens/lens_coordinator.mm
@@ -211,6 +211,9 @@
     featureTracker->NotifyEvent(
         feature_engagement::events::kLensButtonKeyboardUsed);
     featureTracker->Dismissed(feature_engagement::kIPHiOSLensKeyboardFeature);
+  } else if (entrypoint == LensEntrypoint::NewTabPage) {
+    browserState->GetPrefs()->SetInteger(
+        prefs::kNTPLensEntryPointNewBadgeShownCount, INT_MAX);
   }
 
   if (!isIncognito) {
diff --git a/ios/chrome/browser/ui/ntp/BUILD.gn b/ios/chrome/browser/ui/ntp/BUILD.gn
index f8c79988..76465f9 100644
--- a/ios/chrome/browser/ui/ntp/BUILD.gn
+++ b/ios/chrome/browser/ui/ntp/BUILD.gn
@@ -53,6 +53,7 @@
   deps = [
     ":component_factory_protocol",
     ":ntp_internal",
+    "//components/prefs",
     "//ios/chrome/app:tests_hook",
     "//ios/chrome/app/application_delegate:app_state_header",
     "//ios/chrome/browser/discover_feed",
@@ -62,6 +63,7 @@
     "//ios/chrome/browser/shared/coordinator/scene:scene_state_header",
     "//ios/chrome/browser/shared/model/browser",
     "//ios/chrome/browser/shared/model/browser_state",
+    "//ios/chrome/browser/shared/model/prefs:pref_names",
     "//ios/chrome/browser/signin",
     "//ios/chrome/browser/ui/content_suggestions",
     "//ios/chrome/browser/ui/content_suggestions:content_suggestions_ui",
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_component_factory.h b/ios/chrome/browser/ui/ntp/new_tab_page_component_factory.h
index c7deb93..b4be319 100644
--- a/ios/chrome/browser/ui/ntp/new_tab_page_component_factory.h
+++ b/ios/chrome/browser/ui/ntp/new_tab_page_component_factory.h
@@ -9,6 +9,17 @@
 
 #import "ios/chrome/browser/ui/ntp/new_tab_page_component_factory_protocol.h"
 
+// These values are persisted to IOS.NTP.LensButtonNewBadgeShown histograms.
+// Entries should not be renumbered and numeric values should never be reused.
+enum class IOSNTPNewBadgeShownResult {
+  kShown = 0,
+  kNotShownLimitReached = 1,
+  kNotShownButtonPressed = 2,
+  kMaxValue = kNotShownButtonPressed,
+};
+
+extern const char kNTPLensButtonNewBadgeShownHistogram[];
+
 // A factory which generates various NTP components for the
 // NewTabPageCoordinator.
 @interface NewTabPageComponentFactory
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_component_factory.mm b/ios/chrome/browser/ui/ntp/new_tab_page_component_factory.mm
index 2b54f14b..0ef9e93 100644
--- a/ios/chrome/browser/ui/ntp/new_tab_page_component_factory.mm
+++ b/ios/chrome/browser/ui/ntp/new_tab_page_component_factory.mm
@@ -4,6 +4,8 @@
 
 #import "ios/chrome/browser/ui/ntp/new_tab_page_component_factory.h"
 
+#import "base/metrics/histogram_functions.h"
+#import "components/prefs/pref_service.h"
 #import "ios/chrome/app/application_delegate/app_state.h"
 #import "ios/chrome/app/tests_hook.h"
 #import "ios/chrome/browser/discover_feed/discover_feed_service.h"
@@ -13,6 +15,7 @@
 #import "ios/chrome/browser/shared/coordinator/scene/scene_state_browser_agent.h"
 #import "ios/chrome/browser/shared/model/browser/browser.h"
 #import "ios/chrome/browser/shared/model/browser_state/chrome_browser_state.h"
+#import "ios/chrome/browser/shared/model/prefs/pref_names.h"
 #import "ios/chrome/browser/signin/authentication_service.h"
 #import "ios/chrome/browser/signin/authentication_service_factory.h"
 #import "ios/chrome/browser/signin/chrome_account_manager_service_factory.h"
@@ -28,6 +31,22 @@
 #import "ios/chrome/browser/url_loading/model/url_loading_browser_agent.h"
 #import "ios/public/provider/chrome/browser/ui_utils/ui_utils_api.h"
 
+namespace {
+
+// The histogram name for the Lens button new badge status.
+const char kNTPLensButtonNewBadgeShownHistogram[] =
+    "IOS.NTP.LensButtonNewBadgeShown";
+
+// The maximum number of times to show the new badge on the new tab page.
+const NSInteger kMaxShowCountNTPLensButtonNewBadge = 3;
+
+// Logs the Lens button new badge shown histogram.
+void LogLensButtonNewBadgeShownHistogram(IOSNTPNewBadgeShownResult result) {
+  base::UmaHistogramEnumeration(kNTPLensButtonNewBadgeShownHistogram, result);
+}
+
+}  // namespace
+
 @implementation NewTabPageComponentFactory
 
 #pragma mark - NewTabPageComponentFactoryProtocol methods
@@ -46,8 +65,26 @@
   return discoverFeedService->GetFeedMetricsRecorder();
 }
 
-- (NewTabPageHeaderViewController*)headerViewController {
-  return [[NewTabPageHeaderViewController alloc] init];
+- (NewTabPageHeaderViewController*)headerViewControllerForBrowser:
+    (Browser*)browser {
+  PrefService* prefService = browser->GetBrowserState()->GetPrefs();
+  NSInteger lensNewBadgeShowCount =
+      prefService->GetInteger(prefs::kNTPLensEntryPointNewBadgeShownCount);
+  if (lensNewBadgeShowCount < kMaxShowCountNTPLensButtonNewBadge) {
+    // Show the "New" badge and colored symbol.
+    LogLensButtonNewBadgeShownHistogram(IOSNTPNewBadgeShownResult::kShown);
+    prefService->SetInteger(prefs::kNTPLensEntryPointNewBadgeShownCount,
+                            lensNewBadgeShowCount + 1);
+    return [[NewTabPageHeaderViewController alloc]
+        initWithUseNewBadgeForLensButton:YES];
+  } else {
+    BOOL button_pressed = lensNewBadgeShowCount == INT_MAX;
+    LogLensButtonNewBadgeShownHistogram(
+        button_pressed ? IOSNTPNewBadgeShownResult::kNotShownButtonPressed
+                       : IOSNTPNewBadgeShownResult::kNotShownLimitReached);
+    return [[NewTabPageHeaderViewController alloc]
+        initWithUseNewBadgeForLensButton:NO];
+  }
 }
 
 - (NewTabPageMediator*)NTPMediatorForBrowser:(Browser*)browser
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_component_factory_protocol.h b/ios/chrome/browser/ui/ntp/new_tab_page_component_factory_protocol.h
index 0394bfe..6de5d0b 100644
--- a/ios/chrome/browser/ui/ntp/new_tab_page_component_factory_protocol.h
+++ b/ios/chrome/browser/ui/ntp/new_tab_page_component_factory_protocol.h
@@ -29,7 +29,8 @@
 - (FeedMetricsRecorder*)feedMetricsRecorderForBrowser:(Browser*)browser;
 
 // The header view controller containing the fake omnibox and logo.
-- (NewTabPageHeaderViewController*)headerViewController;
+- (NewTabPageHeaderViewController*)headerViewControllerForBrowser:
+    (Browser*)browser;
 
 // Mediator owned by the NewTabPageCoordinator
 - (NewTabPageMediator*)NTPMediatorForBrowser:(Browser*)browser
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_coordinator.mm b/ios/chrome/browser/ui/ntp/new_tab_page_coordinator.mm
index 40213fa..92041bb 100644
--- a/ios/chrome/browser/ui/ntp/new_tab_page_coordinator.mm
+++ b/ios/chrome/browser/ui/ntp/new_tab_page_coordinator.mm
@@ -600,7 +600,8 @@
       self.componentFactory;
   self.logoVendor = ios::provider::CreateLogoVendor(browser, self.webState);
   self.NTPViewController = [componentFactory NTPViewController];
-  self.headerViewController = [componentFactory headerViewController];
+  self.headerViewController =
+      [componentFactory headerViewControllerForBrowser:browser];
   self.NTPMediator =
       [componentFactory NTPMediatorForBrowser:browser
                      identityDiscImageUpdater:self.headerViewController];
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_header_view.h b/ios/chrome/browser/ui/ntp/new_tab_page_header_view.h
index 3da24e91..ff4ca5ef 100644
--- a/ios/chrome/browser/ui/ntp/new_tab_page_header_view.h
+++ b/ios/chrome/browser/ui/ntp/new_tab_page_header_view.h
@@ -14,6 +14,12 @@
 // primary toolbar, doodle, and fake omnibox.
 @interface NewTabPageHeaderView : UIView
 
+// Initializes the view with the Lens button new badge status.
+- (instancetype)initWithUseNewBadgeForLensButton:(BOOL)useNewBadgeForLensButton
+    NS_DESIGNATED_INITIALIZER;
+- (instancetype)initWithFrame:(CGRect)frame NS_UNAVAILABLE;
+- (instancetype)initWithCoder:(NSCoder*)coder NS_UNAVAILABLE;
+
 // Returns the toolbar view.
 @property(nonatomic, readonly) UIView* toolBarView;
 
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_header_view.mm b/ios/chrome/browser/ui/ntp/new_tab_page_header_view.mm
index 7fea497..4a237c1 100644
--- a/ios/chrome/browser/ui/ntp/new_tab_page_header_view.mm
+++ b/ios/chrome/browser/ui/ntp/new_tab_page_header_view.mm
@@ -10,6 +10,7 @@
 
 #import "base/check.h"
 #import "base/feature_list.h"
+#import "components/prefs/pref_service.h"
 #import "components/strings/grit/components_strings.h"
 #import "ios/chrome/browser/shared/public/features/features.h"
 #import "ios/chrome/browser/shared/ui/elements/extended_touch_target_button.h"
@@ -209,14 +210,17 @@
 
 @implementation NewTabPageHeaderView {
   CGFloat _lastAnimationPercent;
+  BOOL _useNewBadgeForLensButton;
 }
 
 #pragma mark - Public
 
-- (instancetype)initWithFrame:(CGRect)frame {
-  self = [super initWithFrame:frame];
+- (instancetype)initWithUseNewBadgeForLensButton:
+    (BOOL)useNewBadgeForLensButton {
+  self = [super initWithFrame:CGRectZero];
   if (self) {
     self.clipsToBounds = YES;
+    _useNewBadgeForLensButton = useNewBadgeForLensButton;
   }
   return self;
 }
@@ -353,7 +357,9 @@
   if (useLens) {
     self.lensButton =
         [ExtendedTouchTargetButton buttonWithType:UIButtonTypeSystem];
-    content_suggestions::ConfigureLensButton(self.lensButton, searchField);
+    [searchField addSubview:self.lensButton];
+    content_suggestions::ConfigureLensButtonAppearance(
+        self.lensButton, _useNewBadgeForLensButton);
     endButton = self.lensButton;
   }
 
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_header_view_controller.h b/ios/chrome/browser/ui/ntp/new_tab_page_header_view_controller.h
index 209342b9..1bfa6a4 100644
--- a/ios/chrome/browser/ui/ntp/new_tab_page_header_view_controller.h
+++ b/ios/chrome/browser/ui/ntp/new_tab_page_header_view_controller.h
@@ -30,7 +30,9 @@
     : UIViewController <NewTabPageHeaderConsumer,
                         UserAccountImageUpdateDelegate>
 
-- (instancetype)init NS_DESIGNATED_INITIALIZER;
+- (instancetype)initWithUseNewBadgeForLensButton:(BOOL)useNewBadgeForLensButton
+    NS_DESIGNATED_INITIALIZER;
+- (instancetype)init NS_UNAVAILABLE;
 - (instancetype)initWithNibName:(NSString*)nibNameOrNil
                          bundle:(NSBundle*)nibBundleOrNil NS_UNAVAILABLE;
 - (instancetype)initWithCoder:(NSCoder*)aDecoder NS_UNAVAILABLE;
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_header_view_controller.mm b/ios/chrome/browser/ui/ntp/new_tab_page_header_view_controller.mm
index 3b14354..ad303fe 100644
--- a/ios/chrome/browser/ui/ntp/new_tab_page_header_view_controller.mm
+++ b/ios/chrome/browser/ui/ntp/new_tab_page_header_view_controller.mm
@@ -11,6 +11,7 @@
 #import "base/metrics/histogram_macros.h"
 #import "base/metrics/user_metrics.h"
 #import "base/strings/sys_string_conversions.h"
+#import "components/prefs/pref_service.h"
 #import "components/signin/public/base/signin_switches.h"
 #import "components/strings/grit/components_strings.h"
 #import "components/sync/base/features.h"
@@ -21,6 +22,7 @@
 #import "ios/chrome/browser/shared/public/commands/omnibox_commands.h"
 #import "ios/chrome/browser/shared/public/commands/open_lens_input_selection_command.h"
 #import "ios/chrome/browser/shared/public/features/features.h"
+#import "ios/chrome/browser/shared/ui/elements/new_feature_badge_view.h"
 #import "ios/chrome/browser/shared/ui/symbols/symbols.h"
 #import "ios/chrome/browser/shared/ui/util/layout_guide_names.h"
 #import "ios/chrome/browser/shared/ui/util/uikit_ui_util.h"
@@ -85,10 +87,17 @@
 
 @end
 
-@implementation NewTabPageHeaderViewController
+@implementation NewTabPageHeaderViewController {
+  BOOL _useNewBadgeForLensButton;
+}
 
-- (instancetype)init {
-  return [super initWithNibName:nil bundle:nil];
+- (instancetype)initWithUseNewBadgeForLensButton:
+    (BOOL)useNewBadgeForLensButton {
+  self = [super initWithNibName:nil bundle:nil];
+  if (self) {
+    _useNewBadgeForLensButton = useNewBadgeForLensButton;
+  }
+  return self;
 }
 
 #pragma mark - Public
@@ -243,7 +252,8 @@
 
     CGFloat width = self.view.frame.size.width;
 
-    self.headerView = [[NewTabPageHeaderView alloc] init];
+    self.headerView = [[NewTabPageHeaderView alloc]
+        initWithUseNewBadgeForLensButton:_useNewBadgeForLensButton];
     self.headerView.isGoogleDefaultSearchEngine =
         self.isGoogleDefaultSearchEngine;
     self.headerView.translatesAutoresizingMaskIntoConstraints = NO;
diff --git a/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_action.swift b/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_action.swift
index 9fe2cec..379dad1 100644
--- a/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_action.swift
+++ b/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_action.swift
@@ -10,8 +10,8 @@
   /// into account.
   @Published public var enabled = true
 
-  /// If true, do not override the color of the row's text with a custom color.
-  @Published public var useSystemRowColoring = false
+  /// If true, style the row as a button instead of a row option.
+  @Published public var useButtonStyling = false
 
   /// Whether the action should be highlighted in the UI.
   @Published public var highlighted = false
diff --git a/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_action_row.swift b/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_action_row.swift
index 9c15db8..85dba19 100644
--- a/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_action_row.swift
+++ b/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_action_row.swift
@@ -85,7 +85,7 @@
           }
         }
       }
-      .if(!action.useSystemRowColoring) { view in
+      .if(!action.useButtonStyling) { view in
         view.accentColor(.textPrimary)
       }
       .listRowSeparatorTint(.overflowMenuSeparator)
@@ -154,6 +154,9 @@
             .contentShape(Rectangle())
         }
       )
+      .if(action.useButtonStyling) { view in
+        view.buttonStyle(.borderless)
+      }
     }
   }
 
diff --git a/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_mediator.mm b/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_mediator.mm
index fc7a83f..1660229 100644
--- a/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_mediator.mm
+++ b/ios/chrome/browser/ui/popup_menu/overflow_menu/overflow_menu_mediator.mm
@@ -636,7 +636,7 @@
                                  handler:^{
                                    [weakSelf beginCustomization];
                                  }];
-  self.editActionsAction.useSystemRowColoring = YES;
+  self.editActionsAction.useButtonStyling = YES;
 
   // The app actions vary based on page state, so they are set in
   // `-updateModel`.
diff --git a/ios/chrome/browser/ui/settings/password/passwords_in_other_apps/passwords_in_other_apps_view_controller.mm b/ios/chrome/browser/ui/settings/password/passwords_in_other_apps/passwords_in_other_apps_view_controller.mm
index f749da1..c92516c 100644
--- a/ios/chrome/browser/ui/settings/password/passwords_in_other_apps/passwords_in_other_apps_view_controller.mm
+++ b/ios/chrome/browser/ui/settings/password/passwords_in_other_apps/passwords_in_other_apps_view_controller.mm
@@ -263,16 +263,6 @@
                              forBarMetrics:UIBarMetricsDefault];
     self.navigationBar.shadowImage = nil;
     self.navigationBar.translucent = NO;
-
-    // Revert navigation bar style for iOS 14 and under to workaround bug that
-    // navigation bar height not adjusting consistently across subviews. Should
-    // be removed once iOS 14 is deprecated.
-    if (!base::ios::IsRunningOnIOS15OrLater()) {
-      self.navigationBar.standardAppearance = self.defaultAppearance;
-      self.navigationBar.compactAppearance = self.defaultAppearance;
-      self.navigationBar.scrollEdgeAppearance = self.defaultAppearance;
-    }
-
     self.navigationBar = nil;
   }
 }
@@ -288,20 +278,6 @@
     self.navigationItem.rightBarButtonItem = doneButton;
 
     self.navigationBar = self.navigationController.navigationBar;
-
-    // Set navigation bar to transparent for iOS 14 and under to workaround bug
-    // that navigation bar height not adjusting consistently across subviews.
-    // Should be removed once iOS 14 is deprecated.
-    if (!base::ios::IsRunningOnIOS15OrLater()) {
-      UINavigationBarAppearance* transparentAppearance =
-          [[UINavigationBarAppearance alloc] init];
-      [transparentAppearance configureWithTransparentBackground];
-      self.defaultAppearance = self.navigationBar.standardAppearance;
-      self.navigationBar.standardAppearance = transparentAppearance;
-      self.navigationBar.compactAppearance = transparentAppearance;
-      self.navigationBar.scrollEdgeAppearance = transparentAppearance;
-    }
-
     [self.navigationBar setBackgroundImage:[[UIImage alloc] init]
                              forBarMetrics:UIBarMetricsDefault];
     self.navigationBar.shadowImage = [[UIImage alloc] init];
diff --git a/ios/chrome/browser/ui/settings/safety_check/BUILD.gn b/ios/chrome/browser/ui/settings/safety_check/BUILD.gn
index f00c054..014c3dcb 100644
--- a/ios/chrome/browser/ui/settings/safety_check/BUILD.gn
+++ b/ios/chrome/browser/ui/settings/safety_check/BUILD.gn
@@ -62,7 +62,7 @@
     "//components/version_info",
     "//ios/chrome/app/strings",
     "//ios/chrome/browser/content_settings/model",
-    "//ios/chrome/browser/omaha",
+    "//ios/chrome/browser/omaha/model",
     "//ios/chrome/browser/passwords/model",
     "//ios/chrome/browser/passwords/model:password_checkup_utils",
     "//ios/chrome/browser/shared/coordinator/chrome_coordinator",
diff --git a/ios/chrome/browser/ui/settings/safety_check/safety_check_mediator.mm b/ios/chrome/browser/ui/settings/safety_check/safety_check_mediator.mm
index 04f1ca5..697b12a 100644
--- a/ios/chrome/browser/ui/settings/safety_check/safety_check_mediator.mm
+++ b/ios/chrome/browser/ui/settings/safety_check/safety_check_mediator.mm
@@ -24,7 +24,7 @@
 #import "components/sync/service/sync_service.h"
 #import "components/sync/service/sync_user_settings.h"
 #import "components/version_info/version_info.h"
-#import "ios/chrome/browser/omaha/omaha_service.h"
+#import "ios/chrome/browser/omaha/model/omaha_service.h"
 #import "ios/chrome/browser/passwords/model/ios_chrome_password_check_manager.h"
 #import "ios/chrome/browser/passwords/model/ios_chrome_password_check_manager_factory.h"
 #import "ios/chrome/browser/passwords/model/password_check_observer_bridge.h"
diff --git a/ios/chrome/browser/ui/webui/BUILD.gn b/ios/chrome/browser/ui/webui/BUILD.gn
index 443d832..32342fb 100644
--- a/ios/chrome/browser/ui/webui/BUILD.gn
+++ b/ios/chrome/browser/ui/webui/BUILD.gn
@@ -126,7 +126,7 @@
     "//components/version_info:channel",
     "//ios/chrome/app/resources:ios_resources",
     "//ios/chrome/browser/commerce/model:shopping_service",
-    "//ios/chrome/browser/omaha",
+    "//ios/chrome/browser/omaha/model",
     "//ios/chrome/browser/shared/model/browser_state",
     "//ios/chrome/browser/shared/model/url:constants",
     "//ios/chrome/browser/shared/public/features:system_flags",
diff --git a/ios/chrome/browser/ui/webui/omaha_ui.cc b/ios/chrome/browser/ui/webui/omaha_ui.cc
index 4df82f8..f434aa8d 100644
--- a/ios/chrome/browser/ui/webui/omaha_ui.cc
+++ b/ios/chrome/browser/ui/webui/omaha_ui.cc
@@ -9,7 +9,7 @@
 #include "base/functional/bind.h"
 #include "base/memory/weak_ptr.h"
 #include "base/values.h"
-#include "ios/chrome/browser/omaha/omaha_service.h"
+#include "ios/chrome/browser/omaha/model/omaha_service.h"
 #include "ios/chrome/browser/shared/model/browser_state/chrome_browser_state.h"
 #include "ios/chrome/browser/shared/model/url/chrome_url_constants.h"
 #include "ios/chrome/grit/ios_resources.h"
diff --git a/ios/chrome/browser/web/web_performance_metrics/web_performance_metrics_java_script_feature.mm b/ios/chrome/browser/web/web_performance_metrics/web_performance_metrics_java_script_feature.mm
index 4899b47..20c7f89 100644
--- a/ios/chrome/browser/web/web_performance_metrics/web_performance_metrics_java_script_feature.mm
+++ b/ios/chrome/browser/web/web_performance_metrics/web_performance_metrics_java_script_feature.mm
@@ -164,19 +164,13 @@
     bool loaded_from_cache) {
   base::TimeDelta delta = base::Milliseconds(value);
 
-  // WebKit does not reliably support pageshow events
-  // on version iOS 14 and below.
-  // TODO(crbug.com/1276537)
-  const bool page_show_reliably_supported =
-      base::ios::IsRunningOnIOS15OrLater();
-
   if (is_main_frame) {
     if (!loaded_from_cache) {
       UmaHistogramCustomTimes("IOS.Frame.FirstInputDelay.MainFrame2", delta,
                               kTimeRangeInputDelayHistogramMin,
                               kTimeRangeInputDelayHistogramMax,
                               kTimeRangeInputDelayHistogramBucketCount);
-    } else if (loaded_from_cache && page_show_reliably_supported) {
+    } else if (loaded_from_cache) {
       UmaHistogramCustomTimes(
           "IOS.Frame.FirstInputDelay.MainFrame.AfterBackForwardCacheRestore2",
           delta, kTimeRangeInputDelayHistogramMin,
@@ -189,7 +183,7 @@
                               kTimeRangeInputDelayHistogramMin,
                               kTimeRangeInputDelayHistogramMax,
                               kTimeRangeInputDelayHistogramBucketCount);
-    } else if (loaded_from_cache && page_show_reliably_supported) {
+    } else if (loaded_from_cache) {
       UmaHistogramCustomTimes(
           "IOS.Frame.FirstInputDelay.SubFrame.AfterBackForwardCacheRestore2",
           delta, kTimeRangeInputDelayHistogramMin,
diff --git a/ios/chrome/test/BUILD.gn b/ios/chrome/test/BUILD.gn
index c8f290a6..4901507 100644
--- a/ios/chrome/test/BUILD.gn
+++ b/ios/chrome/test/BUILD.gn
@@ -236,7 +236,7 @@
     "//ios/chrome/browser/metrics:unit_tests_internal",
     "//ios/chrome/browser/net:unit_tests",
     "//ios/chrome/browser/ntp:unit_tests",
-    "//ios/chrome/browser/omaha:unit_tests",
+    "//ios/chrome/browser/omaha/model:unit_tests",
     "//ios/chrome/browser/optimization_guide:unit_tests",
     "//ios/chrome/browser/overlays:unit_tests",
     "//ios/chrome/browser/overlays/public/common/confirmation:unit_tests",
diff --git a/ios/components/security_interstitials/safe_browsing/fake_safe_browsing_service.mm b/ios/components/security_interstitials/safe_browsing/fake_safe_browsing_service.mm
index 0748e8e..8fc7fa7f5 100644
--- a/ios/components/security_interstitials/safe_browsing/fake_safe_browsing_service.mm
+++ b/ios/components/security_interstitials/safe_browsing/fake_safe_browsing_service.mm
@@ -32,8 +32,7 @@
             base::WeakPtr<web::WebState>(),
             /*render_process_id=*/
             security_interstitials::UnsafeResource::kNoRenderProcessId,
-            /*render_frame_id=*/
-            security_interstitials::UnsafeResource::kNoRenderFrameId,
+            /*render_frame_token=*/std::nullopt,
             /*frame_tree_node_id=*/
             security_interstitials::UnsafeResource::kNoFrameTreeNodeId,
             /*url_real_time_lookup_enabled=*/false,
diff --git a/ios/components/security_interstitials/safe_browsing/safe_browsing_service_impl.mm b/ios/components/security_interstitials/safe_browsing/safe_browsing_service_impl.mm
index ae547f4..71b5869 100644
--- a/ios/components/security_interstitials/safe_browsing/safe_browsing_service_impl.mm
+++ b/ios/components/security_interstitials/safe_browsing/safe_browsing_service_impl.mm
@@ -173,8 +173,7 @@
       web_state->GetWeakPtr(),
       /*render_process_id=*/
       security_interstitials::UnsafeResource::kNoRenderProcessId,
-      /*render_frame_id=*/
-      security_interstitials::UnsafeResource::kNoRenderFrameId,
+      /*render_frame_token=*/std::nullopt,
       /*frame_tree_node_id=*/
       security_interstitials::UnsafeResource::kNoFrameTreeNodeId,
       can_perform_full_url_lookup, can_url_realtime_check_subresource_url,
diff --git a/ios/components/security_interstitials/safe_browsing/url_checker_delegate_impl.h b/ios/components/security_interstitials/safe_browsing/url_checker_delegate_impl.h
index f913a9e..47a5b2d 100644
--- a/ios/components/security_interstitials/safe_browsing/url_checker_delegate_impl.h
+++ b/ios/components/security_interstitials/safe_browsing/url_checker_delegate_impl.h
@@ -53,11 +53,12 @@
   bool IsUrlAllowlisted(const GURL& url) override;
   void SetPolicyAllowlistDomains(
       const std::vector<std::string>& allowlist_domains) override;
-  bool ShouldSkipRequestCheck(const GURL& original_url,
-                              int frame_tree_node_id,
-                              int render_process_id,
-                              int render_frame_id,
-                              bool originated_from_service_worker) override;
+  bool ShouldSkipRequestCheck(
+      const GURL& original_url,
+      int frame_tree_node_id,
+      int render_process_id,
+      base::optional_ref<const base::UnguessableToken> render_frame_token,
+      bool originated_from_service_worker) override;
 
   // This function is unused on iOS, since iOS cannot use content/.
   // TODO(crbug.com/1069047): Refactor SafeBrowsingUrlCheckerImpl and
diff --git a/ios/components/security_interstitials/safe_browsing/url_checker_delegate_impl.mm b/ios/components/security_interstitials/safe_browsing/url_checker_delegate_impl.mm
index 9b3c5703..52837a6 100644
--- a/ios/components/security_interstitials/safe_browsing/url_checker_delegate_impl.mm
+++ b/ios/components/security_interstitials/safe_browsing/url_checker_delegate_impl.mm
@@ -116,7 +116,7 @@
     const GURL& original_url,
     int frame_tree_node_id,
     int render_process_id,
-    int render_frame_id,
+    base::optional_ref<const base::UnguessableToken> render_frame_token,
     bool originated_from_service_worker) {
   return false;
 }
diff --git a/ios/web/navigation/crw_wk_navigation_handler.mm b/ios/web/navigation/crw_wk_navigation_handler.mm
index d7b7a9ae..77d6e65 100644
--- a/ios/web/navigation/crw_wk_navigation_handler.mm
+++ b/ios/web/navigation/crw_wk_navigation_handler.mm
@@ -1695,29 +1695,16 @@
     // `didFailProvisionalNavigation:` will differ (it is the server-supplied
     // chain), thus if intermediates were considered, the keys would mismatch.
 
-    // TODO(crbug.com/1418068): Remove after minimum version required is >=
-    // iOS 15.
     scoped_refptr<net::X509Certificate> leafCert = nil;
-    if (@available(iOS 15.0, *)) {
-      base::apple::ScopedCFTypeRef<CFArrayRef> certificateChain(
-          SecTrustCopyCertificateChain(trust));
-      SecCertificateRef secCertificate =
-          base::apple::CFCastStrict<SecCertificateRef>(
-              CFArrayGetValueAtIndex(certificateChain.get(), 0));
-      leafCert = net::x509_util::CreateX509CertificateFromSecCertificate(
-          base::apple::ScopedCFTypeRef<SecCertificateRef>(
-              secCertificate, base::scoped_policy::RETAIN),
-          {});
-    }
-#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_15_0
-    else {
-      leafCert = net::x509_util::CreateX509CertificateFromSecCertificate(
-          base::apple::ScopedCFTypeRef<SecCertificateRef>(
-              SecTrustGetCertificateAtIndex(trust, 0),
-              base::scoped_policy::RETAIN),
-          {});
-    }
-#endif  // __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_15_0
+    base::apple::ScopedCFTypeRef<CFArrayRef> certificateChain(
+        SecTrustCopyCertificateChain(trust));
+    SecCertificateRef secCertificate =
+        base::apple::CFCastStrict<SecCertificateRef>(
+            CFArrayGetValueAtIndex(certificateChain.get(), 0));
+    leafCert = net::x509_util::CreateX509CertificateFromSecCertificate(
+        base::apple::ScopedCFTypeRef<SecCertificateRef>(
+            secCertificate, base::scoped_policy::RETAIN),
+        {});
 
     if (leafCert) {
       bool is_recoverable =
diff --git a/ios/web/security/crw_cert_verification_controller.mm b/ios/web/security/crw_cert_verification_controller.mm
index 272e268..fc557e3 100644
--- a/ios/web/security/crw_cert_verification_controller.mm
+++ b/ios/web/security/crw_cert_verification_controller.mm
@@ -232,29 +232,16 @@
   }
 
   // Check if user has decided to proceed with this bad cert.
-  // TODO(crbug.com/1418068): Remove after minimum version required is >=
-  // iOS 15.
-  scoped_refptr<net::X509Certificate> leafCert = nil;
-  if (@available(iOS 15.0, *)) {
-    base::apple::ScopedCFTypeRef<CFArrayRef> certificateChain(
-        SecTrustCopyCertificateChain(trust));
-    SecCertificateRef secCertificate =
-        base::apple::CFCastStrict<SecCertificateRef>(
-            CFArrayGetValueAtIndex(certificateChain.get(), 0));
-    leafCert = net::x509_util::CreateX509CertificateFromSecCertificate(
-        base::apple::ScopedCFTypeRef<SecCertificateRef>(
-            secCertificate, base::scoped_policy::RETAIN),
-        {});
-  }
-#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_15_0
-  else {
-    leafCert = net::x509_util::CreateX509CertificateFromSecCertificate(
-        base::apple::ScopedCFTypeRef<SecCertificateRef>(
-            SecTrustGetCertificateAtIndex(trust, 0),
-            base::scoped_policy::RETAIN),
-        {});
-  }
-#endif  // __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_15_0
+  base::apple::ScopedCFTypeRef<CFArrayRef> certificateChain(
+      SecTrustCopyCertificateChain(trust));
+  SecCertificateRef secCertificate =
+      base::apple::CFCastStrict<SecCertificateRef>(
+          CFArrayGetValueAtIndex(certificateChain.get(), 0));
+  scoped_refptr<net::X509Certificate> leafCert =
+      net::x509_util::CreateX509CertificateFromSecCertificate(
+          base::apple::ScopedCFTypeRef<SecCertificateRef>(
+              secCertificate, base::scoped_policy::RETAIN),
+          {});
 
   if (!leafCert)
     return web::CERT_ACCEPT_POLICY_NON_RECOVERABLE_ERROR;
diff --git a/ios/web/security/wk_web_view_security_util.mm b/ios/web/security/wk_web_view_security_util.mm
index 510ac3a..27549e7b 100644
--- a/ios/web/security/wk_web_view_security_util.mm
+++ b/ios/web/security/wk_web_view_security_util.mm
@@ -72,45 +72,21 @@
   }
 
   std::vector<base::apple::ScopedCFTypeRef<SecCertificateRef>> intermediates;
-
-  // TODO(crbug.com/1418068): Remove available and compile guard after minimum
-  // version required is >= iOS 15.
-  if (@available(iOS 15.0, *)) {
-    base::apple::ScopedCFTypeRef<CFArrayRef> certificateChain(
-        SecTrustCopyCertificateChain(trust));
-    for (CFIndex i = 1; i < cert_count; i++) {
-      SecCertificateRef secCertificate =
-          base::apple::CFCastStrict<SecCertificateRef>(
-              CFArrayGetValueAtIndex(certificateChain.get(), i));
-      intermediates.emplace_back(secCertificate, base::scoped_policy::RETAIN);
-    }
+  base::apple::ScopedCFTypeRef<CFArrayRef> certificateChain(
+      SecTrustCopyCertificateChain(trust));
+  for (CFIndex i = 1; i < cert_count; i++) {
     SecCertificateRef secCertificate =
         base::apple::CFCastStrict<SecCertificateRef>(
-            CFArrayGetValueAtIndex(certificateChain.get(), 0));
-    return net::x509_util::CreateX509CertificateFromSecCertificate(
-        base::apple::ScopedCFTypeRef<SecCertificateRef>(
-            secCertificate, base::scoped_policy::RETAIN),
-        intermediates);
+            CFArrayGetValueAtIndex(certificateChain.get(), i));
+    intermediates.emplace_back(secCertificate, base::scoped_policy::RETAIN);
   }
-#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_15_0
-  else {
-    for (CFIndex i = 1; i < cert_count; i++) {
-      intermediates.emplace_back(SecTrustGetCertificateAtIndex(trust, i),
-                                 base::scoped_policy::RETAIN);
-    }
-    return net::x509_util::CreateX509CertificateFromSecCertificate(
-        base::apple::ScopedCFTypeRef<SecCertificateRef>(
-            SecTrustGetCertificateAtIndex(trust, 0),
-            base::scoped_policy::RETAIN),
-        intermediates);
-  }
-#else
-  // TODO(crbug.com/1418068): Added to make the compiler happy and should be
-  // removed when compile and available guards are cleaned up.
-  NOTREACHED();
+  SecCertificateRef secCertificate =
+      base::apple::CFCastStrict<SecCertificateRef>(
+          CFArrayGetValueAtIndex(certificateChain.get(), 0));
   return net::x509_util::CreateX509CertificateFromSecCertificate(
-      base::apple::ScopedCFTypeRef<SecCertificateRef>(nullptr), intermediates);
-#endif  // __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_15_0
+      base::apple::ScopedCFTypeRef<SecCertificateRef>(
+          secCertificate, base::scoped_policy::RETAIN),
+      intermediates);
 }
 
 base::apple::ScopedCFTypeRef<SecTrustRef> CreateServerTrustFromChain(
diff --git a/ios/web/security/wk_web_view_security_util_unittest.mm b/ios/web/security/wk_web_view_security_util_unittest.mm
index 4e221f73..7e87350f 100644
--- a/ios/web/security/wk_web_view_security_util_unittest.mm
+++ b/ios/web/security/wk_web_view_security_util_unittest.mm
@@ -128,22 +128,11 @@
   EXPECT_EQ(static_cast<CFIndex>(chain.count),
             SecTrustGetCertificateCount(server_trust.get()));
   [chain enumerateObjectsUsingBlock:^(id expected_cert, NSUInteger i, BOOL*) {
-    // TODO(crbug.com/1418068): Remove after minimum version required is >=
-    // iOS 15.
-    SecCertificateRef secCertificate = nil;
-    if (@available(iOS 15.0, *)) {
-      base::apple::ScopedCFTypeRef<CFArrayRef> certificateChain(
-          SecTrustCopyCertificateChain(server_trust.get()));
-      secCertificate =
-          base::apple::CFCastStrict<SecCertificateRef>(CFArrayGetValueAtIndex(
-              certificateChain.get(), static_cast<CFIndex>(i)));
-    }
-#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_15_0
-    else {
-      secCertificate = SecTrustGetCertificateAtIndex(server_trust.get(),
-                                                     static_cast<CFIndex>(i));
-    }
-#endif  // __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_15_0
+    base::apple::ScopedCFTypeRef<CFArrayRef> certificateChain(
+        SecTrustCopyCertificateChain(server_trust.get()));
+    SecCertificateRef secCertificate =
+        base::apple::CFCastStrict<SecCertificateRef>(CFArrayGetValueAtIndex(
+            certificateChain.get(), static_cast<CFIndex>(i)));
 
     id actual_cert = static_cast<id>((__bridge id)secCertificate);
     EXPECT_NSEQ(expected_cert, actual_cert);
diff --git a/ios_internal b/ios_internal
index 168b6e55..ecf8e20 160000
--- a/ios_internal
+++ b/ios_internal
@@ -1 +1 @@
-Subproject commit 168b6e55102803c4082f5404acae97f0ceb0430d
+Subproject commit ecf8e2050b8a7009150675fc1b259f808bc8be22
diff --git a/media/gpu/mac/video_toolbox_decompression_interface.cc b/media/gpu/mac/video_toolbox_decompression_interface.cc
index 663d71b..1e7b7c68 100644
--- a/media/gpu/mac/video_toolbox_decompression_interface.cc
+++ b/media/gpu/mac/video_toolbox_decompression_interface.cc
@@ -138,7 +138,7 @@
     }
 
     // Submit the sample for decoding.
-    void* context = static_cast<void*>(metadata.get());
+    uintptr_t context = reinterpret_cast<uintptr_t>(metadata.get());
     if (!decompression_session_->DecodeFrame(sample.get(), context)) {
       return false;
     }
@@ -174,11 +174,11 @@
       decoder_config.get(),
       kVTVideoDecoderSpecification_EnableHardwareAcceleratedVideoDecoder,
       kCFBooleanTrue);
+  // TODO(crbug.com/1331597): Use session_metadata.allow_software_decoding.
   CFDictionarySetValue(
       decoder_config.get(),
       kVTVideoDecoderSpecification_RequireHardwareAcceleratedVideoDecoder,
-      session_metadata.allow_software_decoding ? kCFBooleanFalse
-                                               : kCFBooleanTrue);
+      kCFBooleanFalse);
 #endif
 
   // Build destination image buffer attributes.
@@ -252,7 +252,7 @@
 }
 
 void VideoToolboxDecompressionInterface::OnOutput(
-    void* context,
+    uintptr_t context,
     OSStatus status,
     VTDecodeInfoFlags flags,
     base::apple::ScopedCFTypeRef<CVImageBufferRef> image) {
diff --git a/media/gpu/mac/video_toolbox_decompression_interface.h b/media/gpu/mac/video_toolbox_decompression_interface.h
index bd7c535..c34fcfa 100644
--- a/media/gpu/mac/video_toolbox_decompression_interface.h
+++ b/media/gpu/mac/video_toolbox_decompression_interface.h
@@ -8,6 +8,7 @@
 #include <CoreMedia/CoreMedia.h>
 #include <VideoToolbox/VideoToolbox.h>
 
+#include <stdint.h>
 #include <memory>
 #include <utility>
 
@@ -60,7 +61,7 @@
       std::unique_ptr<VideoToolboxDecompressionSession> decompression_session);
 
   // Public for testing.
-  void OnOutput(void* context,
+  void OnOutput(uintptr_t context,
                 OSStatus status,
                 VTDecodeInfoFlags flags,
                 base::apple::ScopedCFTypeRef<CVImageBufferRef> image);
@@ -96,7 +97,10 @@
 
   std::unique_ptr<VideoToolboxDecompressionSession> decompression_session_;
   base::apple::ScopedCFTypeRef<CMFormatDescriptionRef> active_format_;
-  base::flat_map<void*, std::unique_ptr<VideoToolboxDecodeMetadata>>
+  // Pointers to decode metadata are passed to VideoToolbox as decode context,
+  // but returned pointers are always looked up in this table rather than
+  // dereferenced.
+  base::flat_map<uintptr_t, std::unique_ptr<VideoToolboxDecodeMetadata>>
       active_decodes_;
 
   // Destroy the active session once it becomes empty. Used to prepare for
diff --git a/media/gpu/mac/video_toolbox_decompression_interface_unittest.cc b/media/gpu/mac/video_toolbox_decompression_interface_unittest.cc
index 2d870ff..30108f7 100644
--- a/media/gpu/mac/video_toolbox_decompression_interface_unittest.cc
+++ b/media/gpu/mac/video_toolbox_decompression_interface_unittest.cc
@@ -93,7 +93,7 @@
     return can_accept_format;
   }
 
-  bool DecodeFrame(CMSampleBufferRef sample, void* context) override {
+  bool DecodeFrame(CMSampleBufferRef sample, uintptr_t context) override {
     if (can_decode_frame) {
       pending_decodes_.push(context);
     }
@@ -104,7 +104,7 @@
   void CompleteDecode() {
     CHECK(!pending_decodes_.empty());
 
-    void* context = pending_decodes_.front();
+    uintptr_t context = pending_decodes_.front();
     OSStatus status = noErr;
     VTDecodeInfoFlags flags = 0;
     base::apple::ScopedCFTypeRef<CVImageBufferRef> image = CreateImage();
@@ -117,7 +117,7 @@
   void FailDecode() {
     CHECK(!pending_decodes_.empty());
 
-    void* context = pending_decodes_.front();
+    uintptr_t context = pending_decodes_.front();
     OSStatus status = -1;
     VTDecodeInfoFlags flags = 0;
     base::apple::ScopedCFTypeRef<CVImageBufferRef> image;
@@ -137,7 +137,7 @@
  private:
   VideoToolboxDecompressionSessionImpl::OutputCB output_cb_;
   bool valid_ = false;
-  base::queue<void*> pending_decodes_;
+  base::queue<uintptr_t> pending_decodes_;
 };
 
 }  // namespace
diff --git a/media/gpu/mac/video_toolbox_decompression_session.cc b/media/gpu/mac/video_toolbox_decompression_session.cc
index 051b2e6..75ce54b13 100644
--- a/media/gpu/mac/video_toolbox_decompression_session.cc
+++ b/media/gpu/mac/video_toolbox_decompression_session.cc
@@ -21,7 +21,8 @@
   VideoToolboxDecompressionSessionImpl* vtdsi =
       static_cast<VideoToolboxDecompressionSessionImpl*>(
           decompression_output_refcon);
-  vtdsi->OnOutputOnAnyThread(source_frame_refcon, status, info_flags,
+  vtdsi->OnOutputOnAnyThread(reinterpret_cast<uintptr_t>(source_frame_refcon),
+                             status, info_flags,
                              base::apple::ScopedCFTypeRef<CVImageBufferRef>(
                                  image_buffer, base::scoped_policy::RETAIN));
 }
@@ -108,7 +109,7 @@
 }
 
 bool VideoToolboxDecompressionSessionImpl::DecodeFrame(CMSampleBufferRef sample,
-                                                       void* context) {
+                                                       uintptr_t context) {
   DVLOG(3) << __func__;
   DCHECK(task_runner_->RunsTasksInCurrentSequence());
   CHECK(session_);
@@ -117,7 +118,8 @@
       kVTDecodeFrame_EnableAsynchronousDecompression;
 
   OSStatus status = VTDecompressionSessionDecodeFrame(
-      session_.get(), sample, decode_flags, context, nullptr);
+      session_.get(), sample, decode_flags, reinterpret_cast<void*>(context),
+      nullptr);
   if (status != noErr) {
     OSSTATUS_MEDIA_LOG(ERROR, status, media_log_.get())
         << "VTDecompressionSessionDecodeFrame()";
@@ -128,7 +130,7 @@
 }
 
 void VideoToolboxDecompressionSessionImpl::OnOutputOnAnyThread(
-    void* context,
+    uintptr_t context,
     OSStatus status,
     VTDecodeInfoFlags flags,
     base::apple::ScopedCFTypeRef<CVImageBufferRef> image) {
@@ -140,7 +142,7 @@
 }
 
 void VideoToolboxDecompressionSessionImpl::OnOutput(
-    void* context,
+    uintptr_t context,
     OSStatus status,
     VTDecodeInfoFlags flags,
     base::apple::ScopedCFTypeRef<CVImageBufferRef> image) {
diff --git a/media/gpu/mac/video_toolbox_decompression_session.h b/media/gpu/mac/video_toolbox_decompression_session.h
index 5ac04f9ff..03a05374 100644
--- a/media/gpu/mac/video_toolbox_decompression_session.h
+++ b/media/gpu/mac/video_toolbox_decompression_session.h
@@ -8,6 +8,7 @@
 #include <CoreMedia/CoreMedia.h>
 #include <VideoToolbox/VideoToolbox.h>
 
+#include <stdint.h>
 #include <memory>
 
 #include "base/apple/scoped_cftyperef.h"
@@ -36,7 +37,7 @@
   virtual void Invalidate() = 0;
   virtual bool IsValid() = 0;
   virtual bool CanAcceptFormat(CMFormatDescriptionRef format) = 0;
-  virtual bool DecodeFrame(CMSampleBufferRef sample, void* context) = 0;
+  virtual bool DecodeFrame(CMSampleBufferRef sample, uintptr_t context) = 0;
 };
 
 // Standard implementation of VideoToolboxDecompressionSession. It's not quite
@@ -46,7 +47,7 @@
     : public VideoToolboxDecompressionSession {
  public:
   using OutputCB = base::RepeatingCallback<void(
-      void*,
+      uintptr_t,
       OSStatus,
       VTDecodeInfoFlags,
       base::apple::ScopedCFTypeRef<CVImageBufferRef>)>;
@@ -64,17 +65,17 @@
   void Invalidate() override;
   bool IsValid() override;
   bool CanAcceptFormat(CMFormatDescriptionRef format) override;
-  bool DecodeFrame(CMSampleBufferRef sample, void* context) override;
+  bool DecodeFrame(CMSampleBufferRef sample, uintptr_t context) override;
 
   // Called by OnOutputThunk().
   void OnOutputOnAnyThread(
-      void* context,
+      uintptr_t context,
       OSStatus status,
       VTDecodeInfoFlags flags,
       base::apple::ScopedCFTypeRef<CVImageBufferRef> image);
 
  private:
-  void OnOutput(void* context,
+  void OnOutput(uintptr_t context,
                 OSStatus status,
                 VTDecodeInfoFlags flags,
                 base::apple::ScopedCFTypeRef<CVImageBufferRef> image);
diff --git a/media/gpu/mac/video_toolbox_frame_converter.cc b/media/gpu/mac/video_toolbox_frame_converter.cc
index 93b127ca..30ae1af 100644
--- a/media/gpu/mac/video_toolbox_frame_converter.cc
+++ b/media/gpu/mac/video_toolbox_frame_converter.cc
@@ -234,7 +234,9 @@
       IsMultiPlaneFormatForHardwareVideoEnabled()
           ? SharedImageFormatType::kSharedImageFormat
           : SharedImageFormatType::kLegacy);
-  frame->metadata().frame_duration = metadata->duration;
+  if (metadata->duration != kNoTimestamp && !metadata->duration.is_zero()) {
+    frame->metadata().frame_duration = metadata->duration;
+  }
   frame->metadata().allow_overlay = true;
   // Releasing |image| must happen after command buffer commands are complete
   // (not just submitted).
diff --git a/media/gpu/mac/video_toolbox_video_decoder.cc b/media/gpu/mac/video_toolbox_video_decoder.cc
index 4c0a7f4..a0da1d7 100644
--- a/media/gpu/mac/video_toolbox_video_decoder.cc
+++ b/media/gpu/mac/video_toolbox_video_decoder.cc
@@ -306,7 +306,9 @@
     decode_cbs_.pop();
   }
 
-  accelerator_->Reset();
+  if (accelerator_) {
+    accelerator_->Reset();
+  }
   video_toolbox_.Reset();
   output_queue_.Reset(status);
 
diff --git a/media/gpu/windows/d3d11_video_decoder.cc b/media/gpu/windows/d3d11_video_decoder.cc
index 82a2198c..441f100 100644
--- a/media/gpu/windows/d3d11_video_decoder.cc
+++ b/media/gpu/windows/d3d11_video_decoder.cc
@@ -96,7 +96,8 @@
     base::RepeatingCallback<gpu::CommandBufferStub*()> get_stub_cb,
     D3D11VideoDecoder::GetD3D11DeviceCB get_d3d11_device_cb,
     SupportedConfigs supported_configs,
-    bool system_hdr_enabled) {
+    bool system_hdr_enabled,
+    CHROME_LUID luid) {
   // Note that the output callback will hop to our thread, post the video
   // frame, and along with a callback that will hop back to the impl thread
   // when it's released.
@@ -108,7 +109,7 @@
   return base::WrapUnique<VideoDecoder>(new D3D11VideoDecoder(
       gpu_task_runner, std::move(media_log), gpu_preferences, gpu_workarounds,
       get_helper_cb, std::move(get_d3d11_device_cb),
-      std::move(supported_configs), system_hdr_enabled));
+      std::move(supported_configs), system_hdr_enabled, luid));
 }
 
 D3D11VideoDecoder::D3D11VideoDecoder(
@@ -119,7 +120,8 @@
     base::RepeatingCallback<scoped_refptr<CommandBufferHelper>()> get_helper_cb,
     GetD3D11DeviceCB get_d3d11_device_cb,
     SupportedConfigs supported_configs,
-    bool system_hdr_enabled)
+    bool system_hdr_enabled,
+    CHROME_LUID luid)
     : media_log_(std::move(media_log)),
       mailbox_release_helper_(
           base::MakeRefCounted<D3D11VideoFrameMailboxReleaseHelper>(
@@ -135,7 +137,8 @@
       system_hdr_enabled_(system_hdr_enabled),
       use_shared_handle_(
           base::FeatureList::IsEnabled(kD3D11VideoDecoderUseSharedHandle) ||
-          gpu_preferences.gr_context_type != gpu::GrContextType::kGL) {
+          gpu_preferences.gr_context_type != gpu::GrContextType::kGL),
+      luid_(luid) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(media_log_);
 }
diff --git a/media/gpu/windows/d3d11_video_decoder.h b/media/gpu/windows/d3d11_video_decoder.h
index f0ded91..9ba792b 100644
--- a/media/gpu/windows/d3d11_video_decoder.h
+++ b/media/gpu/windows/d3d11_video_decoder.h
@@ -17,6 +17,7 @@
 #include "base/task/single_thread_task_runner.h"
 #include "base/threading/sequence_bound.h"
 #include "base/time/time.h"
+#include "base/win/windows_types.h"
 #include "gpu/config/gpu_driver_bug_workarounds.h"
 #include "gpu/config/gpu_preferences.h"
 #include "media/base/callback_registry.h"
@@ -69,7 +70,8 @@
       base::RepeatingCallback<gpu::CommandBufferStub*()> get_stub_cb,
       GetD3D11DeviceCB get_d3d11_device_cb,
       SupportedConfigs supported_configs,
-      bool system_hdr_enabled);
+      bool system_hdr_enabled,
+      CHROME_LUID luid);
 
   D3D11VideoDecoder(const D3D11VideoDecoder&) = delete;
   D3D11VideoDecoder& operator=(const D3D11VideoDecoder&) = delete;
@@ -125,7 +127,8 @@
           get_helper_cb,
       GetD3D11DeviceCB get_d3d11_device_cb,
       SupportedConfigs supported_configs,
-      bool system_hdr_enabled);
+      bool system_hdr_enabled,
+      CHROME_LUID luid);
 
   // Receive |buffer|, that is now unused by the client.
   void ReceivePictureBufferFromClient(scoped_refptr<D3D11PictureBuffer> buffer);
@@ -308,6 +311,9 @@
   // unused picture buffers.
   int decode_count_until_picture_buffer_measurement_ = 0;
 
+  // Adapter currently used by ANGLE/Dawn for its D3D device.
+  const CHROME_LUID luid_;
+
   base::WeakPtrFactory<D3D11VideoDecoder> weak_factory_{this};
 };
 
diff --git a/media/gpu/windows/d3d11_video_decoder_unittest.cc b/media/gpu/windows/d3d11_video_decoder_unittest.cc
index a0e77fa7..852d009 100644
--- a/media/gpu/windows/d3d11_video_decoder_unittest.cc
+++ b/media/gpu/windows/d3d11_video_decoder_unittest.cc
@@ -197,7 +197,8 @@
             gpu_preferences_, gpu_workarounds_,
             base::BindRepeating(&D3D11VideoDecoderTest::GetCommandBufferHelper,
                                 base::Unretained(this)),
-            get_device_cb, *supported_configs, system_hdr_enabled_));
+            get_device_cb, *supported_configs, system_hdr_enabled_,
+            CHROME_LUID{0, 0}));
   }
 
   void InitializeDecoder(const VideoDecoderConfig& config,
diff --git a/media/mojo/services/gpu_mojo_media_client.cc b/media/mojo/services/gpu_mojo_media_client.cc
index b536e188..fea689c2 100644
--- a/media/mojo/services/gpu_mojo_media_client.cc
+++ b/media/mojo/services/gpu_mojo_media_client.cc
@@ -153,9 +153,18 @@
 SupportedVideoDecoderConfigs
 GpuMojoMediaClient::GetSupportedVideoDecoderConfigs() {
   if (!supported_config_cache_) {
-    supported_config_cache_ = GetSupportedVideoDecoderConfigsStatic(
-        media_gpu_channel_manager_, gpu_preferences_, gpu_workarounds_,
-        gpu_info_);
+    // Only bother to query if accelerated video decoding is enabled.
+    // (RenderMediaClient does not know about GPU features before it asks.)
+    if (gpu_preferences_.disable_accelerated_video_decode ||
+        (gpu_feature_info_
+             .status_values[gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE] !=
+         gpu::kGpuFeatureStatusEnabled)) {
+      supported_config_cache_ = SupportedVideoDecoderConfigs();
+    } else {
+      supported_config_cache_ = GetSupportedVideoDecoderConfigsStatic(
+          media_gpu_channel_manager_, gpu_preferences_, gpu_workarounds_,
+          gpu_info_);
+    }
 
     // Once per GPU process record accelerator information. Profile support is
     // often just manufactured and not tested, so just record the base codec.
@@ -234,6 +243,13 @@
     RequestOverlayInfoCB request_overlay_info_cb,
     const gfx::ColorSpace& target_color_space,
     mojo::PendingRemote<stable::mojom::StableVideoDecoder> oop_video_decoder) {
+  // Always respect GPU features.
+  if (gpu_preferences_.disable_accelerated_video_decode ||
+      (gpu_feature_info_
+           .status_values[gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE] !=
+       gpu::kGpuFeatureStatusEnabled)) {
+    return nullptr;
+  }
   // All implementations require a command buffer.
   if (!command_buffer_id)
     return nullptr;
diff --git a/media/mojo/services/gpu_mojo_media_client_win.cc b/media/mojo/services/gpu_mojo_media_client_win.cc
index 92b208e..e50e62a 100644
--- a/media/mojo/services/gpu_mojo_media_client_win.cc
+++ b/media/mojo/services/gpu_mojo_media_client_win.cc
@@ -52,7 +52,8 @@
       traits.gpu_task_runner, traits.media_log->Clone(), traits.gpu_preferences,
       *traits.gpu_workarounds, traits.get_command_buffer_stub_cb,
       GetD3D11DeviceCallback(std::move(d3d11_device)),
-      traits.get_cached_configs_cb.Run(), hdr_enabled);
+      traits.get_cached_configs_cb.Run(), hdr_enabled,
+      traits.gpu_info.active_gpu().luid);
 }
 
 std::unique_ptr<AudioEncoder> CreatePlatformAudioEncoder(
diff --git a/net/cookies/cookie_util.h b/net/cookies/cookie_util.h
index e2e9ea3e..d707233 100644
--- a/net/cookies/cookie_util.h
+++ b/net/cookies/cookie_util.h
@@ -57,7 +57,8 @@
 enum class BreakageIndicatorType {
   USER_RELOAD = 0,
   HTTP_ERROR = 1,
-  kMaxValue = HTTP_ERROR,
+  UNCAUGHT_JS_ERROR = 2,
+  kMaxValue = UNCAUGHT_JS_ERROR,
 };
 // Helper to fire telemetry indicating if a given request for storage was
 // allowed or not by the provided |result|.
diff --git a/net/third_party/quiche/overrides/quiche_platform_impl/quiche_command_line_flags_impl.cc b/net/third_party/quiche/overrides/quiche_platform_impl/quiche_command_line_flags_impl.cc
index 9a4c55fc..c1322b6b 100644
--- a/net/third_party/quiche/overrides/quiche_platform_impl/quiche_command_line_flags_impl.cc
+++ b/net/third_party/quiche/overrides/quiche_platform_impl/quiche_command_line_flags_impl.cc
@@ -85,7 +85,7 @@
   return v;
 }
 
-#if defined(WCHAR_T_IS_UTF16)
+#if defined(WCHAR_T_IS_16_BIT)
 // Overload for platforms where base::CommandLine::StringType == std::wstring.
 [[maybe_unused]] std::vector<std::string> ToQuicheStringVector(
     const std::vector<std::wstring>& v) {
@@ -99,7 +99,7 @@
   }
   return qsv;
 }
-#endif  // defined(WCHAR_T_IS_UTF16)
+#endif  // defined(WCHAR_T_IS_16_BIT)
 
 }  // namespace
 
diff --git a/testing/buildbot/chromium.chromiumos.json b/testing/buildbot/chromium.chromiumos.json
index ce6c519..1d7670c9 100644
--- a/testing/buildbot/chromium.chromiumos.json
+++ b/testing/buildbot/chromium.chromiumos.json
@@ -6097,9 +6097,9 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6113.0/test_ash_chrome"
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6114.0/test_ash_chrome"
         ],
-        "description": "Run with ash-chrome version 121.0.6113.0",
+        "description": "Run with ash-chrome version 121.0.6114.0",
         "isolate_profile_data": true,
         "merge": {
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -6109,8 +6109,8 @@
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v121.0.6113.0",
-              "revision": "version:121.0.6113.0"
+              "location": "lacros_version_skew_tests_v121.0.6114.0",
+              "revision": "version:121.0.6114.0"
             }
           ],
           "dimensions": {
@@ -6247,9 +6247,9 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6113.0/test_ash_chrome"
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6114.0/test_ash_chrome"
         ],
-        "description": "Run with ash-chrome version 121.0.6113.0",
+        "description": "Run with ash-chrome version 121.0.6114.0",
         "isolate_profile_data": true,
         "merge": {
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -6259,8 +6259,8 @@
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v121.0.6113.0",
-              "revision": "version:121.0.6113.0"
+              "location": "lacros_version_skew_tests_v121.0.6114.0",
+              "revision": "version:121.0.6114.0"
             }
           ],
           "dimensions": {
diff --git a/testing/buildbot/chromium.coverage.json b/testing/buildbot/chromium.coverage.json
index 3973992..9c9846b 100644
--- a/testing/buildbot/chromium.coverage.json
+++ b/testing/buildbot/chromium.coverage.json
@@ -20451,9 +20451,9 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6113.0/test_ash_chrome"
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6114.0/test_ash_chrome"
         ],
-        "description": "Run with ash-chrome version 121.0.6113.0",
+        "description": "Run with ash-chrome version 121.0.6114.0",
         "isolate_profile_data": true,
         "merge": {
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -20463,8 +20463,8 @@
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v121.0.6113.0",
-              "revision": "version:121.0.6113.0"
+              "location": "lacros_version_skew_tests_v121.0.6114.0",
+              "revision": "version:121.0.6114.0"
             }
           ],
           "dimensions": {
@@ -20601,9 +20601,9 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6113.0/test_ash_chrome"
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6114.0/test_ash_chrome"
         ],
-        "description": "Run with ash-chrome version 121.0.6113.0",
+        "description": "Run with ash-chrome version 121.0.6114.0",
         "isolate_profile_data": true,
         "merge": {
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -20613,8 +20613,8 @@
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v121.0.6113.0",
-              "revision": "version:121.0.6113.0"
+              "location": "lacros_version_skew_tests_v121.0.6114.0",
+              "revision": "version:121.0.6114.0"
             }
           ],
           "dimensions": {
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json
index 86802a9a..8962ecb 100644
--- a/testing/buildbot/chromium.fyi.json
+++ b/testing/buildbot/chromium.fyi.json
@@ -43451,9 +43451,9 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6113.0/test_ash_chrome"
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6114.0/test_ash_chrome"
         ],
-        "description": "Run with ash-chrome version 121.0.6113.0",
+        "description": "Run with ash-chrome version 121.0.6114.0",
         "merge": {
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
@@ -43462,8 +43462,8 @@
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v121.0.6113.0",
-              "revision": "version:121.0.6113.0"
+              "location": "lacros_version_skew_tests_v121.0.6114.0",
+              "revision": "version:121.0.6114.0"
             }
           ],
           "dimensions": {
@@ -43601,9 +43601,9 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6113.0/test_ash_chrome"
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6114.0/test_ash_chrome"
         ],
-        "description": "Run with ash-chrome version 121.0.6113.0",
+        "description": "Run with ash-chrome version 121.0.6114.0",
         "merge": {
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
@@ -43612,8 +43612,8 @@
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v121.0.6113.0",
-              "revision": "version:121.0.6113.0"
+              "location": "lacros_version_skew_tests_v121.0.6114.0",
+              "revision": "version:121.0.6114.0"
             }
           ],
           "dimensions": {
@@ -44910,9 +44910,9 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6113.0/test_ash_chrome"
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6114.0/test_ash_chrome"
         ],
-        "description": "Run with ash-chrome version 121.0.6113.0",
+        "description": "Run with ash-chrome version 121.0.6114.0",
         "merge": {
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
@@ -44921,8 +44921,8 @@
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v121.0.6113.0",
-              "revision": "version:121.0.6113.0"
+              "location": "lacros_version_skew_tests_v121.0.6114.0",
+              "revision": "version:121.0.6114.0"
             }
           ],
           "dimensions": {
@@ -45060,9 +45060,9 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6113.0/test_ash_chrome"
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6114.0/test_ash_chrome"
         ],
-        "description": "Run with ash-chrome version 121.0.6113.0",
+        "description": "Run with ash-chrome version 121.0.6114.0",
         "merge": {
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
@@ -45071,8 +45071,8 @@
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v121.0.6113.0",
-              "revision": "version:121.0.6113.0"
+              "location": "lacros_version_skew_tests_v121.0.6114.0",
+              "revision": "version:121.0.6114.0"
             }
           ],
           "dimensions": {
@@ -45755,9 +45755,9 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6113.0/test_ash_chrome"
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6114.0/test_ash_chrome"
         ],
-        "description": "Run with ash-chrome version 121.0.6113.0",
+        "description": "Run with ash-chrome version 121.0.6114.0",
         "merge": {
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
@@ -45766,8 +45766,8 @@
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v121.0.6113.0",
-              "revision": "version:121.0.6113.0"
+              "location": "lacros_version_skew_tests_v121.0.6114.0",
+              "revision": "version:121.0.6114.0"
             }
           ],
           "dimensions": {
diff --git a/testing/buildbot/chromium.linux.json b/testing/buildbot/chromium.linux.json
index 0993f18..8db8ad57 100644
--- a/testing/buildbot/chromium.linux.json
+++ b/testing/buildbot/chromium.linux.json
@@ -1565,9 +1565,6 @@
           "script": "//tools/perf/process_perf_results.py"
         },
         "name": "memory.leak_detection",
-        "override_compile_targets": [
-          "performance_test_suite"
-        ],
         "swarming": {
           "dimensions": {
             "os": "Ubuntu-22.04"
diff --git a/testing/buildbot/chromium.memory.json b/testing/buildbot/chromium.memory.json
index eaae2dd5..d23ee6a 100644
--- a/testing/buildbot/chromium.memory.json
+++ b/testing/buildbot/chromium.memory.json
@@ -16249,12 +16249,12 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6113.0/test_ash_chrome",
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6114.0/test_ash_chrome",
           "--test-launcher-print-test-stdio=always",
           "--combine-ash-logs-on-bots",
           "--asan-symbolize-output"
         ],
-        "description": "Run with ash-chrome version 121.0.6113.0",
+        "description": "Run with ash-chrome version 121.0.6114.0",
         "isolate_profile_data": true,
         "merge": {
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -16264,8 +16264,8 @@
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v121.0.6113.0",
-              "revision": "version:121.0.6113.0"
+              "location": "lacros_version_skew_tests_v121.0.6114.0",
+              "revision": "version:121.0.6114.0"
             }
           ],
           "dimensions": {
@@ -16419,12 +16419,12 @@
       {
         "args": [
           "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter",
-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6113.0/test_ash_chrome",
+          "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6114.0/test_ash_chrome",
           "--test-launcher-print-test-stdio=always",
           "--combine-ash-logs-on-bots",
           "--asan-symbolize-output"
         ],
-        "description": "Run with ash-chrome version 121.0.6113.0",
+        "description": "Run with ash-chrome version 121.0.6114.0",
         "isolate_profile_data": true,
         "merge": {
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
@@ -16434,8 +16434,8 @@
           "cipd_packages": [
             {
               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
-              "location": "lacros_version_skew_tests_v121.0.6113.0",
-              "revision": "version:121.0.6113.0"
+              "location": "lacros_version_skew_tests_v121.0.6114.0",
+              "revision": "version:121.0.6114.0"
             }
           ],
           "dimensions": {
diff --git a/testing/buildbot/filters/ios.content_browsertests.filter b/testing/buildbot/filters/ios.content_browsertests.filter
index 434b5abb..16b63ad 100644
--- a/testing/buildbot/filters/ios.content_browsertests.filter
+++ b/testing/buildbot/filters/ios.content_browsertests.filter
@@ -280,6 +280,9 @@
 # TODO(crbug.com/1495761): Text area handle has shrunk.
 -FormControlsBrowserTest.Textarea
 
+# TODO(crbug.com/1500334): Flakily fails on the platform.
+-ThirdPartyCookiesContentSecurityPolicyBrowserTest.CSPMediaThirdPartyCookieBlocking
+
 # These tests are flaky.
 -All/CoopRestrictPropertiesReportingBrowserTest.NavigationVirtualBrowsingContextGroup/RDCrashedFrame_BFCacheDisabled
 -All/DumpAccessibilityTreeTest.AccessibilitySelectListOpen/blink1
diff --git a/testing/buildbot/internal.optimization_guide.json b/testing/buildbot/internal.optimization_guide.json
index 8c628e7..bfb3716 100644
--- a/testing/buildbot/internal.optimization_guide.json
+++ b/testing/buildbot/internal.optimization_guide.json
@@ -21,9 +21,6 @@
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
         "name": "live_companion_tests",
-        "override_compile_targets": [
-          "browser_tests"
-        ],
         "swarming": {
           "dimensions": {
             "os": "Ubuntu-22.04|Ubuntu-18.04",
@@ -57,9 +54,6 @@
           "script": "//testing/merge_scripts/standard_gtest_merge.py"
         },
         "name": "live_companion_tests",
-        "override_compile_targets": [
-          "browser_tests"
-        ],
         "swarming": {
           "dimensions": {
             "os": "Windows-10-19045",
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl
index f0f25e3..4491776 100644
--- a/testing/buildbot/test_suites.pyl
+++ b/testing/buildbot/test_suites.pyl
@@ -4126,9 +4126,6 @@
     'leak_detection_isolated_scripts': {
       'memory.leak_detection': {
         'test': 'performance_test_suite',
-        'override_compile_targets': [
-          'performance_test_suite',
-        ],
         'args': [
           '--pageset-repeat=1',
           '--test-shard-map-filename=linux_leak_detection_shard_map.json',
@@ -4366,9 +4363,6 @@
     'live_companion_tests': {
       'live_companion_tests': {
         'test': 'browser_tests',
-        'override_compile_targets': [
-          'browser_tests',
-        ],
         'args': [
           '--gtest_filter=CompanionLiveTest.*',
           '--run-live-tests',
diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl
index 232b261..2e54145 100644
--- a/testing/buildbot/variants.pyl
+++ b/testing/buildbot/variants.pyl
@@ -70,16 +70,16 @@
   },
   'LACROS_VERSION_SKEW_CANARY': {
     'identifier': 'Lacros version skew testing ash canary',
-    'description': 'Run with ash-chrome version 121.0.6113.0',
+    'description': 'Run with ash-chrome version 121.0.6114.0',
     'args': [
-      '--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6113.0/test_ash_chrome',
+      '--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6114.0/test_ash_chrome',
     ],
     'swarming': {
       'cipd_packages': [
         {
           'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip',
-          'location': 'lacros_version_skew_tests_v121.0.6113.0',
-          'revision': 'version:121.0.6113.0',
+          'location': 'lacros_version_skew_tests_v121.0.6114.0',
+          'revision': 'version:121.0.6114.0',
         },
       ],
     },
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index f12220c..25f045c 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -10672,6 +10672,25 @@
             ]
         }
     ],
+    "NewWebstoreURL": [
+        {
+            "platforms": [
+                "chromeos",
+                "chromeos_lacros",
+                "linux",
+                "mac",
+                "windows"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "enable_features": [
+                        "NewWebstoreURL"
+                    ]
+                }
+            ]
+        }
+    ],
     "NoAppCompatClearInChildren": [
         {
             "platforms": [
@@ -19966,6 +19985,21 @@
             ]
         }
     ],
+    "VideoToolboxVideoDecoder": [
+        {
+            "platforms": [
+                "mac"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "enable_features": [
+                        "VideoToolboxVideoDecoder"
+                    ]
+                }
+            ]
+        }
+    ],
     "VideoTutorials": [
         {
             "platforms": [
diff --git a/third_party/blink/common/BUILD.gn b/third_party/blink/common/BUILD.gn
index 3dab24b..d1494c55 100644
--- a/third_party/blink/common/BUILD.gn
+++ b/third_party/blink/common/BUILD.gn
@@ -250,6 +250,7 @@
     "origin_trials/trial_token_validator.cc",
     "page/browsing_context_group_info.cc",
     "page/browsing_context_group_info_mojom_traits.cc",
+    "page/color_provider_color_maps_mojom_traits.cc",
     "page/content_to_visible_time_reporter.cc",
     "page/drag_mojom_traits.cc",
     "page/drag_operation.cc",
diff --git a/third_party/blink/common/page/color_provider_color_maps_mojom_traits.cc b/third_party/blink/common/page/color_provider_color_maps_mojom_traits.cc
new file mode 100644
index 0000000..f3401fbd
--- /dev/null
+++ b/third_party/blink/common/page/color_provider_color_maps_mojom_traits.cc
@@ -0,0 +1,19 @@
+// Copyright 2023 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "third_party/blink/public/common/page/color_provider_color_maps_mojom_traits.h"
+
+namespace mojo {
+
+// static
+bool StructTraits<blink::mojom::ColorProviderColorMapsDataView,
+                  blink::ColorProviderColorMaps>::
+    Read(blink::mojom::ColorProviderColorMapsDataView data,
+         blink::ColorProviderColorMaps* out_colors) {
+  return data.ReadLightColorsMap(&out_colors->light_colors_map) &&
+         data.ReadDarkColorsMap(&out_colors->dark_colors_map) &&
+         data.ReadForcedColorsMap(&out_colors->forced_colors_map);
+}
+
+}  // namespace mojo
diff --git a/third_party/blink/public/common/BUILD.gn b/third_party/blink/public/common/BUILD.gn
index 6bebcbf..6b6a693 100644
--- a/third_party/blink/public/common/BUILD.gn
+++ b/third_party/blink/public/common/BUILD.gn
@@ -256,6 +256,8 @@
     "origin_trials/trial_token_validator.h",
     "page/browsing_context_group_info.h",
     "page/browsing_context_group_info_mojom_traits.h",
+    "page/color_provider_color_maps.h",
+    "page/color_provider_color_maps_mojom_traits.h",
     "page/content_to_visible_time_reporter.h",
     "page/drag_mojom_traits.h",
     "page/drag_operation.h",
diff --git a/third_party/blink/public/common/DEPS b/third_party/blink/public/common/DEPS
index f163d1e6..211243c 100644
--- a/third_party/blink/public/common/DEPS
+++ b/third_party/blink/public/common/DEPS
@@ -31,6 +31,7 @@
     "+ui/base/pointer/pointer_device.h",
     "+ui/base/page_transition_types.h",
     "+ui/base/ui_base_types.h",
+    "+ui/color",
     "+ui/display",
     "+ui/events/event_constants.h",
     "+ui/events/types",
diff --git a/third_party/blink/public/common/page/color_provider_color_maps.h b/third_party/blink/public/common/page/color_provider_color_maps.h
new file mode 100644
index 0000000..8058f70
--- /dev/null
+++ b/third_party/blink/public/common/page/color_provider_color_maps.h
@@ -0,0 +1,33 @@
+// Copyright 2023 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_PAGE_COLOR_PROVIDER_COLOR_MAPS_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_PAGE_COLOR_PROVIDER_COLOR_MAPS_H_
+
+#include "third_party/blink/public/common/common_export.h"
+#include "ui/color/color_provider_utils.h"
+
+namespace blink {
+
+struct BLINK_COMMON_EXPORT ColorProviderColorMaps {
+  ui::RendererColorMap light_colors_map;
+  ui::RendererColorMap dark_colors_map;
+  ui::RendererColorMap forced_colors_map;
+
+  // Returns true if any of the maps are empty.
+  bool IsEmpty() const {
+    return light_colors_map.empty() || dark_colors_map.empty() ||
+           forced_colors_map.empty();
+  }
+
+  bool operator==(const ColorProviderColorMaps& other) const {
+    return light_colors_map == other.light_colors_map &&
+           dark_colors_map == other.dark_colors_map &&
+           forced_colors_map == other.forced_colors_map;
+  }
+};
+
+}  // namespace blink
+
+#endif  // THIRD_PARTY_BLINK_PUBLIC_COMMON_PAGE_COLOR_PROVIDER_COLOR_MAPS_H_
diff --git a/third_party/blink/public/common/page/color_provider_color_maps_mojom_traits.h b/third_party/blink/public/common/page/color_provider_color_maps_mojom_traits.h
new file mode 100644
index 0000000..f257487
--- /dev/null
+++ b/third_party/blink/public/common/page/color_provider_color_maps_mojom_traits.h
@@ -0,0 +1,40 @@
+// Copyright 2023 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_PAGE_COLOR_PROVIDER_COLOR_MAPS_MOJOM_TRAITS_H_
+#define THIRD_PARTY_BLINK_PUBLIC_COMMON_PAGE_COLOR_PROVIDER_COLOR_MAPS_MOJOM_TRAITS_H_
+
+#include "third_party/blink/public/common/common_export.h"
+#include "third_party/blink/public/common/page/color_provider_color_maps.h"
+#include "third_party/blink/public/mojom/page/page.mojom.h"
+#include "ui/color/color_provider_utils.h"
+
+namespace mojo {
+
+template <>
+struct BLINK_COMMON_EXPORT
+    StructTraits<blink::mojom::ColorProviderColorMapsDataView,
+                 blink::ColorProviderColorMaps> {
+  static const ui::RendererColorMap& light_colors_map(
+      const blink::ColorProviderColorMaps& colors) {
+    return colors.light_colors_map;
+  }
+
+  static const ui::RendererColorMap& dark_colors_map(
+      const blink::ColorProviderColorMaps& colors) {
+    return colors.dark_colors_map;
+  }
+
+  static const ui::RendererColorMap& forced_colors_map(
+      const blink::ColorProviderColorMaps& colors) {
+    return colors.forced_colors_map;
+  }
+
+  static bool Read(blink::mojom::ColorProviderColorMapsDataView data,
+                   blink::ColorProviderColorMaps* out_colors);
+};
+
+}  // namespace mojo
+
+#endif  // THIRD_PARTY_BLINK_PUBLIC_COMMON_PAGE_COLOR_PROVIDER_COLOR_MAPS_MOJOM_TRAITS_H_
diff --git a/third_party/blink/public/mojom/BUILD.gn b/third_party/blink/public/mojom/BUILD.gn
index fd98892..2288ae64 100644
--- a/third_party/blink/public/mojom/BUILD.gn
+++ b/third_party/blink/public/mojom/BUILD.gn
@@ -518,6 +518,16 @@
     {
       types = [
         {
+          mojom = "blink.mojom.ColorProviderColorMaps"
+          cpp = "::blink::ColorProviderColorMaps"
+        },
+      ]
+      traits_headers = [ "//third_party/blink/public/common/page/color_provider_color_maps_mojom_traits.h" ]
+      traits_public_deps = [ "//ui/color" ]
+    },
+    {
+      types = [
+        {
           mojom = "blink.mojom.Impression"
           cpp = "::blink::Impression"
         },
@@ -1330,6 +1340,7 @@
     "//third_party/blink/public/mojom/storage_key",
     "//ui/base/dragdrop/mojom",
     "//ui/base/mojom",
+    "//ui/color:mojom",
     "//ui/display/mojom",
     "//ui/gfx/geometry/mojom",
     "//ui/gfx/mojom",
diff --git a/third_party/blink/public/mojom/manifest/manifest.mojom b/third_party/blink/public/mojom/manifest/manifest.mojom
index 4ee3046..9f0c3173 100644
--- a/third_party/blink/public/mojom/manifest/manifest.mojom
+++ b/third_party/blink/public/mojom/manifest/manifest.mojom
@@ -32,6 +32,9 @@
   // This is empty if the start_url is empty.
   url.mojom.Url id;
 
+  // Set to true if the json specified a specific value for the id.
+  bool has_custom_id;
+
   // TODO(crbug.com/1466730): Investigate if this should return the
   // document_url_ if ManifestParser fails to parse the start_url as per
   // the spec. This can sometimes be an empty KURL, which can be
diff --git a/third_party/blink/public/mojom/page/page.mojom b/third_party/blink/public/mojom/page/page.mojom
index 1270218..7558d0d 100644
--- a/third_party/blink/public/mojom/page/page.mojom
+++ b/third_party/blink/public/mojom/page/page.mojom
@@ -16,6 +16,7 @@
 import "third_party/blink/public/mojom/tokens/tokens.mojom";
 import "third_party/blink/public/mojom/webpreferences/web_preferences.mojom";
 import "third_party/blink/public/mojom/renderer_preferences.mojom";
+import "ui/color/color_id.mojom";
 
 enum PagehideDispatch {
   // We haven't dispatched pagehide and should do so when appropriate.
@@ -65,6 +66,13 @@
   blink.mojom.ViewTransitionState? view_transition_state;
 };
 
+// Contains the information necessary to construct the light, dark, forced ColorProviders.
+struct ColorProviderColorMaps {
+  map<color.mojom.RendererColorId, skia.mojom.SkColor> light_colors_map;
+  map<color.mojom.RendererColorId, skia.mojom.SkColor> dark_colors_map;
+  map<color.mojom.RendererColorId, skia.mojom.SkColor> forced_colors_map;
+};
+
 // Parameters to send with ActivatePrerenderedPage calls when we're activating a
 // prerendered page.
 struct PrerenderPageActivationParams {
@@ -162,4 +170,11 @@
   // supported/unsupported or when attribution is enabled/disabled for
   // Android WebView.
   SetPageAttributionSupport(network.mojom.AttributionSupport support);
+
+  // Sends an update for the ColorProviders to be used for the given page.
+  // The update is sent when either occurs:
+  // 1. A blink::WebView is created.
+  // 2. The ColorProvider associated with the WebContents changes as a result
+  // of theme changes.
+  UpdateColorProviders(ColorProviderColorMaps color_provider_colors);
 };
diff --git a/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom b/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom
index 143231e..696946a 100644
--- a/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom
+++ b/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom
@@ -4058,6 +4058,7 @@
   kAdClickMainFrameNavigation = 4719,
   kLinkRelPrivacyPolicy = 4720,
   kLinkRelTermsOfService = 4721,
+  kWebAppManifestIdField = 4722,
 
   // Add new features immediately above this line. Don't change assigned
   // numbers of any item, and don't reuse removed slots.
diff --git a/third_party/blink/public/platform/DEPS b/third_party/blink/public/platform/DEPS
index 1423e193..dda7ae2 100644
--- a/third_party/blink/public/platform/DEPS
+++ b/third_party/blink/public/platform/DEPS
@@ -22,6 +22,7 @@
     "+base/threading/platform_thread.h",
     "+base/threading/thread.h",
     "+base/threading/thread_checker.h",
+    "+base/types/optional_ref.h",
     "+base/time",
     "+build/build_config.h",
     "+cc",
diff --git a/third_party/blink/public/platform/url_loader_throttle_provider.h b/third_party/blink/public/platform/url_loader_throttle_provider.h
index eac4d26..7730a44 100644
--- a/third_party/blink/public/platform/url_loader_throttle_provider.h
+++ b/third_party/blink/public/platform/url_loader_throttle_provider.h
@@ -7,7 +7,9 @@
 
 #include <memory>
 
+#include "base/types/optional_ref.h"
 #include "third_party/blink/public/common/loader/url_loader_throttle.h"
+#include "third_party/blink/public/common/tokens/tokens.h"
 #include "third_party/blink/public/platform/web_common.h"
 #include "third_party/blink/public/platform/web_url_request.h"
 #include "third_party/blink/public/platform/web_vector.h"
@@ -33,17 +35,17 @@
   virtual std::unique_ptr<URLLoaderThrottleProvider> Clone() = 0;
 
   // For frame requests this is called on the main thread. Dedicated, shared and
-  // service workers call it on the worker thread. |render_frame_id| will be set
-  // to the corresponding frame for frame and dedicated worker requests,
-  // otherwise it will be MSG_ROUTING_NONE.
+  // service workers call it on the worker thread. `local_frame_token` will be
+  // set to the corresponding frame for frame and dedicated worker requests,
+  // otherwise it will be not be set.
   //
-  // TODO(crbug.com/1379780): The 'render_frame_id' argument is required because
-  // a frame's URLLoaderThrottleProvider is designed to be created only once per
-  // process and shared between multiple frames. But when we have
+  // TODO(crbug.com/1379780): The 'local_frame_token' argument is required
+  // because a frame's URLLoaderThrottleProvider is designed to be created only
+  // once per process and shared between multiple frames. But when we have
   // URLLoaderThrottleProvider for each frames in the background threads, we
-  // don't need the 'render_frame_id' argument.
+  // don't need the 'local_frame_token' argument.
   virtual WebVector<std::unique_ptr<URLLoaderThrottle>> CreateThrottles(
-      int render_frame_id,
+      base::optional_ref<const LocalFrameToken> local_frame_token,
       const WebURLRequest& request) = 0;
 
   // Set the network status online state as specified in |is_online|.
diff --git a/third_party/blink/public/platform/web_dedicated_or_shared_worker_fetch_context.h b/third_party/blink/public/platform/web_dedicated_or_shared_worker_fetch_context.h
index 36748b7..c3663bd 100644
--- a/third_party/blink/public/platform/web_dedicated_or_shared_worker_fetch_context.h
+++ b/third_party/blink/public/platform/web_dedicated_or_shared_worker_fetch_context.h
@@ -11,6 +11,7 @@
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "services/network/public/cpp/shared_url_loader_factory.h"
 #include "third_party/blink/public/common/renderer_preferences/renderer_preferences.h"
+#include "third_party/blink/public/common/tokens/tokens.h"
 #include "third_party/blink/public/mojom/loader/resource_load_info_notifier.mojom-forward.h"
 #include "third_party/blink/public/mojom/renderer_preference_watcher.mojom-shared.h"
 #include "third_party/blink/public/mojom/worker/subresource_loader_updater.mojom-shared.h"
@@ -92,7 +93,7 @@
   //
   // TODO(nhiroki): Add more comments about security/privacy implications to
   // each property, for example, site_for_cookies and top_frame_origin.
-  virtual void set_ancestor_frame_id(int id) = 0;
+  virtual void SetAncestorFrameToken(const LocalFrameToken&) = 0;
   virtual void set_site_for_cookies(
       const net::SiteForCookies& site_for_cookies) = 0;
   virtual void set_top_frame_origin(
diff --git a/third_party/blink/public/platform/websocket_handshake_throttle_provider.h b/third_party/blink/public/platform/websocket_handshake_throttle_provider.h
index 19437ff..f674fda 100644
--- a/third_party/blink/public/platform/websocket_handshake_throttle_provider.h
+++ b/third_party/blink/public/platform/websocket_handshake_throttle_provider.h
@@ -8,6 +8,8 @@
 #include <memory>
 
 #include "base/task/single_thread_task_runner.h"
+#include "base/types/optional_ref.h"
+#include "third_party/blink/public/common/tokens/tokens.h"
 #include "third_party/blink/public/platform/web_common.h"
 
 namespace blink {
@@ -28,14 +30,14 @@
   virtual std::unique_ptr<WebSocketHandshakeThrottleProvider> Clone(
       scoped_refptr<base::SingleThreadTaskRunner> task_runner) = 0;
 
-  // For requests from frames and dedicated workers, |render_frame_id| should be
-  // set to the corresponding frame. For requests from shared or service
-  // workers, |render_frame_id| should be set to MSG_ROUTING_NONE.
+  // For requests from frames and dedicated workers, `local_frame_token` should
+  // be set to the corresponding frame. For requests from shared or service
+  // workers, `local_frame_token` will not be set.
   //
   // |task_runner| is used for internal IPC handling of the throttle, and must
   // be bound to the same sequence to the current one.
   virtual std::unique_ptr<blink::WebSocketHandshakeThrottle> CreateThrottle(
-      int render_frame_id,
+      base::optional_ref<const LocalFrameToken> local_frame_token,
       scoped_refptr<base::SingleThreadTaskRunner> task_runner) = 0;
 };
 
diff --git a/third_party/blink/public/web/web_view.h b/third_party/blink/public/web/web_view.h
index e89d715..c7c74f4 100644
--- a/third_party/blink/public/web/web_view.h
+++ b/third_party/blink/public/web/web_view.h
@@ -66,6 +66,7 @@
 }
 
 namespace blink {
+struct ColorProviderColorMaps;
 class PageScheduler;
 class WebFrame;
 class WebFrameWidget;
@@ -368,6 +369,12 @@
   virtual void SetDeviceColorSpaceForTesting(
       const gfx::ColorSpace& color_space) = 0;
 
+  // Sets the initial color maps for this WebView. All frames in a WebView
+  // share the same color map; updates to the color map will be broadcast
+  // over the `UpdateColorProviders()` Mojo IPC.
+  virtual void SetColorProviders(
+      const ColorProviderColorMaps& color_provider_colors) = 0;
+
   // Scheduling -----------------------------------------------------------
 
   virtual PageScheduler* Scheduler() const = 0;
diff --git a/third_party/blink/renderer/bindings/core/v8/DEPS b/third_party/blink/renderer/bindings/core/v8/DEPS
index 966b7d9..4e9e79b0 100644
--- a/third_party/blink/renderer/bindings/core/v8/DEPS
+++ b/third_party/blink/renderer/bindings/core/v8/DEPS
@@ -13,4 +13,7 @@
     "+base/json/json_reader.h",
     "+third_party/re2/src/re2",
   ],
+  "v8_initializer.cc": [
+    "+net/cookies/cookie_util.h",
+  ],
 }
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
index 0a476b4..eefae4b5 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
+++ b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
@@ -35,6 +35,8 @@
 #include "base/system/sys_info.h"
 #include "build/build_config.h"
 #include "components/crash/core/common/crash_key.h"
+#include "net/cookies/cookie_util.h"
+#include "services/metrics/public/cpp/ukm_builders.h"
 #include "third_party/blink/public/common/switches.h"
 #include "third_party/blink/public/platform/platform.h"
 #include "third_party/blink/renderer/bindings/core/v8/binding_security.h"
@@ -170,6 +172,10 @@
 
   UseCounter::Count(context, WebFeature::kUnhandledExceptionCountInMainThread);
   base::UmaHistogramBoolean("V8.UnhandledExceptionCountInMainThread", true);
+  ukm::builders::ThirdPartyCookies_BreakageIndicator(context->UkmSourceID())
+      .SetBreakageIndicatorType(static_cast<int>(
+          net::cookie_util::BreakageIndicatorType::UNCAUGHT_JS_ERROR))
+      .Record(context->UkmRecorder());
 
   std::unique_ptr<SourceLocation> location =
       CaptureSourceLocation(isolate, message, context);
diff --git a/third_party/blink/renderer/core/BUILD.gn b/third_party/blink/renderer/core/BUILD.gn
index de2d632f..3c095a52 100644
--- a/third_party/blink/renderer/core/BUILD.gn
+++ b/third_party/blink/renderer/core/BUILD.gn
@@ -176,6 +176,7 @@
     "//ui/accessibility/mojom:mojom_blink",
     "//ui/base:features",
     "//ui/base/ime/mojom",
+    "//ui/color",
     "//ui/display/mojom:mojom_blink",
     "//ui/events:dom_keycode_converter",
     "//ui/gfx/geometry",
diff --git a/third_party/blink/renderer/core/DEPS b/third_party/blink/renderer/core/DEPS
index 657e329..8420bdd 100644
--- a/third_party/blink/renderer/core/DEPS
+++ b/third_party/blink/renderer/core/DEPS
@@ -109,6 +109,7 @@
     "+ui/base/resource/resource_scale_factor.h",
     "+ui/base/ui_base_features.h",
     "+ui/base/ui_base_types.h",
+    "+ui/color",
     "+ui/display/screen_info.h",
     "+ui/display/screen_infos.h",
     "+ui/events/event_constants.h",
diff --git a/third_party/blink/renderer/core/annotation/annotation_agent_impl.cc b/third_party/blink/renderer/core/annotation/annotation_agent_impl.cc
index 58f6dd1..8c6f069 100644
--- a/third_party/blink/renderer/core/annotation/annotation_agent_impl.cc
+++ b/third_party/blink/renderer/core/annotation/annotation_agent_impl.cc
@@ -330,10 +330,7 @@
 
     // If the active match is hidden inside a hidden=until-found element, then
     // we should reveal it so we can scroll to it.
-    if (RuntimeEnabledFeatures::BeforeMatchEventEnabled(
-            first_node.GetExecutionContext())) {
-      DisplayLockUtilities::RevealHiddenUntilFoundAncestors(first_node);
-    }
+    DisplayLockUtilities::RevealHiddenUntilFoundAncestors(first_node);
 
     // Ensure we leave clean layout since we'll be applying markers after this.
     first_node.GetDocument().UpdateStyleAndLayout(
diff --git a/third_party/blink/renderer/core/css/style_engine.h b/third_party/blink/renderer/core/css/style_engine.h
index 9a71f40..d11b88f7 100644
--- a/third_party/blink/renderer/core/css/style_engine.h
+++ b/third_party/blink/renderer/core/css/style_engine.h
@@ -69,7 +69,7 @@
 
 namespace WTF {
 class TextPosition;
-}
+}  // namespace WTF
 
 namespace blink {
 
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc
index bbe63e15..be40573b 100644
--- a/third_party/blink/renderer/core/dom/element.cc
+++ b/third_party/blink/renderer/core/dom/element.cc
@@ -4316,8 +4316,9 @@
     }
 
     if (slot && RuntimeEnabledFeatures::CSSPseudoDirEnabled()) {
-      ShadowRoot* root = slot->ContainingShadowRoot();
-      return root->host().CachedDirectionality();
+      if (ShadowRoot* root = slot->ContainingShadowRoot()) {
+        return root->host().CachedDirectionality();
+      }
     }
 
     if (node->IsTextNode()) {
@@ -4327,7 +4328,7 @@
       }
     }
 
-    if (slot) {
+    if (slot && !RuntimeEnabledFeatures::CSSPseudoDirEnabled()) {
       absl::optional<TextDirection> text_direction =
           slot->ResolveAutoDirectionality<FlatTreeTraversal>(is_deferred,
                                                              stay_within);
@@ -8734,19 +8735,17 @@
   element_data.presentation_attribute_style_ =
       ComputePresentationAttributeStyle(*this);
 
-  if (RuntimeEnabledFeatures::BeforeMatchEventEnabled(GetExecutionContext())) {
-    // We could do this in CreatePresentationAttributeStyle or
-    // HTMLElement::CollectStyleForPresentationAttribute when we actually
-    // iterate over attributes, but the presentational style gets cached so
-    // those functions aren't necessarily called every time. This function
-    // actually gets called every time, so we must do this check here.
-    AttributeCollection attributes = AttributesWithoutUpdate();
-    auto* hidden_attr = attributes.Find(html_names::kHiddenAttr);
-    if (hidden_attr && hidden_attr->Value() == "until-found") {
-      EnsureDisplayLockContext().SetIsHiddenUntilFoundElement(true);
-    } else if (DisplayLockContext* context = GetDisplayLockContext()) {
-      context->SetIsHiddenUntilFoundElement(false);
-    }
+  // We could do this in CreatePresentationAttributeStyle or
+  // HTMLElement::CollectStyleForPresentationAttribute when we actually iterate
+  // over attributes, but the presentational style gets cached so those
+  // functions aren't necessarily called every time. This function actually gets
+  // called every time, so we must do this check here.
+  AttributeCollection attributes = AttributesWithoutUpdate();
+  auto* hidden_attr = attributes.Find(html_names::kHiddenAttr);
+  if (hidden_attr && hidden_attr->Value() == "until-found") {
+    EnsureDisplayLockContext().SetIsHiddenUntilFoundElement(true);
+  } else if (DisplayLockContext* context = GetDisplayLockContext()) {
+    context->SetIsHiddenUntilFoundElement(false);
   }
 }
 
diff --git a/third_party/blink/renderer/core/dom/global_event_handlers.idl b/third_party/blink/renderer/core/dom/global_event_handlers.idl
index 84bb0ba..052bf7f 100644
--- a/third_party/blink/renderer/core/dom/global_event_handlers.idl
+++ b/third_party/blink/renderer/core/dom/global_event_handlers.idl
@@ -31,7 +31,7 @@
 interface mixin GlobalEventHandlers {
   attribute EventHandler onabort;
   attribute EventHandler onbeforeinput;
-  [RuntimeEnabled=BeforeMatchEvent] attribute EventHandler onbeforematch;
+  attribute EventHandler onbeforematch;
   attribute EventHandler onbeforetoggle;
   attribute EventHandler onblur;
   attribute EventHandler oncancel;
diff --git a/third_party/blink/renderer/core/editing/build.gni b/third_party/blink/renderer/core/editing/build.gni
index a563e9c..0e58db44 100644
--- a/third_party/blink/renderer/core/editing/build.gni
+++ b/third_party/blink/renderer/core/editing/build.gni
@@ -224,6 +224,8 @@
   "markers/highlight_pseudo_marker.h",
   "markers/highlight_pseudo_marker_list_impl.cc",
   "markers/highlight_pseudo_marker_list_impl.h",
+  "markers/overlapping_document_marker_list_editor.cc",
+  "markers/overlapping_document_marker_list_editor.h",
   "markers/sorted_document_marker_list_editor.cc",
   "markers/sorted_document_marker_list_editor.h",
   "markers/spell_check_marker.cc",
@@ -252,8 +254,6 @@
   "markers/text_match_marker.h",
   "markers/text_match_marker_list_impl.cc",
   "markers/text_match_marker_list_impl.h",
-  "markers/unsorted_document_marker_list_editor.cc",
-  "markers/unsorted_document_marker_list_editor.h",
   "ng_flat_tree_shorthands.cc",
   "ng_flat_tree_shorthands.h",
   "plain_text_range.cc",
@@ -416,6 +416,7 @@
   "markers/document_marker_test.cc",
   "markers/grammar_marker_list_impl_test.cc",
   "markers/grammar_marker_test.cc",
+  "markers/overlapping_document_marker_list_editor_test.cc",
   "markers/sorted_document_marker_list_editor_test.cc",
   "markers/spelling_marker_list_impl_test.cc",
   "markers/spelling_marker_test.cc",
@@ -423,7 +424,6 @@
   "markers/suggestion_marker_test.cc",
   "markers/text_fragment_marker_list_impl_test.cc",
   "markers/text_match_marker_list_impl_test.cc",
-  "markers/unsorted_document_marker_list_editor_test.cc",
   "plain_text_range_test.cc",
   "position_iterator_test.cc",
   "position_test.cc",
diff --git a/third_party/blink/renderer/core/editing/finder/text_finder.cc b/third_party/blink/renderer/core/editing/finder/text_finder.cc
index 45f3434..7cb3c84 100644
--- a/third_party/blink/renderer/core/editing/finder/text_finder.cc
+++ b/third_party/blink/renderer/core/editing/finder/text_finder.cc
@@ -101,9 +101,7 @@
 
   // If the active match is hidden inside a hidden=until-found element, then we
   // should reveal it so find-in-page can scroll to it.
-  if (RuntimeEnabledFeatures::BeforeMatchEventEnabled(
-          first_node.GetExecutionContext()) &&
-      DisplayLockUtilities::RevealHiddenUntilFoundAncestors(first_node)) {
+  if (DisplayLockUtilities::RevealHiddenUntilFoundAncestors(first_node)) {
     needs_layout_shift_allowance = true;
     UseCounter::Count(first_node.GetDocument(),
                       WebFeature::kBeforematchRevealedHiddenMatchable);
@@ -137,8 +135,6 @@
       frame_needs_style_and_layout |=
           HTMLDetailsElement::ExpandDetailsAncestors(*frame_element);
       frame_needs_style_and_layout |=
-          RuntimeEnabledFeatures::BeforeMatchEventEnabled(
-              frame_element->GetExecutionContext()) &&
           DisplayLockUtilities::RevealHiddenUntilFoundAncestors(*frame_element);
       if (frame_needs_style_and_layout) {
         frame_element->GetDocument().UpdateStyleAndLayoutForNode(
diff --git a/third_party/blink/renderer/core/editing/markers/composition_marker_list_impl.cc b/third_party/blink/renderer/core/editing/markers/composition_marker_list_impl.cc
index 8af443e9..bb35ba4 100644
--- a/third_party/blink/renderer/core/editing/markers/composition_marker_list_impl.cc
+++ b/third_party/blink/renderer/core/editing/markers/composition_marker_list_impl.cc
@@ -4,8 +4,8 @@
 
 #include "third_party/blink/renderer/core/editing/markers/composition_marker_list_impl.h"
 
+#include "third_party/blink/renderer/core/editing/markers/overlapping_document_marker_list_editor.h"
 #include "third_party/blink/renderer/core/editing/markers/sorted_document_marker_list_editor.h"
-#include "third_party/blink/renderer/core/editing/markers/unsorted_document_marker_list_editor.h"
 
 namespace blink {
 
@@ -19,7 +19,7 @@
 
 void CompositionMarkerListImpl::Add(DocumentMarker* marker) {
   DCHECK_EQ(DocumentMarker::kComposition, marker->GetType());
-  UnsortedDocumentMarkerListEditor::AddMarker(&markers_, marker);
+  OverlappingDocumentMarkerListEditor::AddMarker(&markers_, marker);
 }
 
 void CompositionMarkerListImpl::Clear() {
@@ -41,28 +41,28 @@
 HeapVector<Member<DocumentMarker>>
 CompositionMarkerListImpl::MarkersIntersectingRange(unsigned start_offset,
                                                     unsigned end_offset) const {
-  return UnsortedDocumentMarkerListEditor::MarkersIntersectingRange(
+  return OverlappingDocumentMarkerListEditor::MarkersIntersectingRange(
       markers_, start_offset, end_offset);
 }
 
 bool CompositionMarkerListImpl::MoveMarkers(int length,
                                             DocumentMarkerList* dst_markers_) {
-  return UnsortedDocumentMarkerListEditor::MoveMarkers(&markers_, length,
-                                                       dst_markers_);
+  return OverlappingDocumentMarkerListEditor::MoveMarkers(&markers_, length,
+                                                          dst_markers_);
 }
 
 bool CompositionMarkerListImpl::RemoveMarkers(unsigned start_offset,
                                               int length) {
-  return UnsortedDocumentMarkerListEditor::RemoveMarkers(&markers_,
-                                                         start_offset, length);
+  return OverlappingDocumentMarkerListEditor::RemoveMarkers(
+      &markers_, start_offset, length);
 }
 
 bool CompositionMarkerListImpl::ShiftMarkers(const String&,
                                              unsigned offset,
                                              unsigned old_length,
                                              unsigned new_length) {
-  return UnsortedDocumentMarkerListEditor::ShiftMarkers(&markers_, offset,
-                                                        old_length, new_length);
+  return OverlappingDocumentMarkerListEditor::ShiftMarkers(
+      &markers_, offset, old_length, new_length);
 }
 
 void CompositionMarkerListImpl::Trace(Visitor* visitor) const {
diff --git a/third_party/blink/renderer/core/editing/markers/highlight_pseudo_marker_list_impl.cc b/third_party/blink/renderer/core/editing/markers/highlight_pseudo_marker_list_impl.cc
index a162e40..24ec823 100644
--- a/third_party/blink/renderer/core/editing/markers/highlight_pseudo_marker_list_impl.cc
+++ b/third_party/blink/renderer/core/editing/markers/highlight_pseudo_marker_list_impl.cc
@@ -4,8 +4,8 @@
 
 #include "third_party/blink/renderer/core/editing/markers/highlight_pseudo_marker_list_impl.h"
 
+#include "third_party/blink/renderer/core/editing/markers/overlapping_document_marker_list_editor.h"
 #include "third_party/blink/renderer/core/editing/markers/sorted_document_marker_list_editor.h"
-#include "third_party/blink/renderer/core/editing/markers/unsorted_document_marker_list_editor.h"
 
 namespace blink {
 
@@ -16,7 +16,7 @@
 void HighlightPseudoMarkerListImpl::Add(DocumentMarker* marker) {
   DCHECK(marker->GetType() == DocumentMarker::kCustomHighlight ||
          marker->GetType() == DocumentMarker::kTextFragment);
-  UnsortedDocumentMarkerListEditor::AddMarker(&markers_, marker);
+  OverlappingDocumentMarkerListEditor::AddMarker(&markers_, marker);
 }
 
 void HighlightPseudoMarkerListImpl::Clear() {
@@ -39,29 +39,29 @@
 HighlightPseudoMarkerListImpl::MarkersIntersectingRange(
     unsigned start_offset,
     unsigned end_offset) const {
-  return UnsortedDocumentMarkerListEditor::MarkersIntersectingRange(
+  return OverlappingDocumentMarkerListEditor::MarkersIntersectingRange(
       markers_, start_offset, end_offset);
 }
 
 bool HighlightPseudoMarkerListImpl::MoveMarkers(
     int length,
     DocumentMarkerList* dst_markers_) {
-  return UnsortedDocumentMarkerListEditor::MoveMarkers(&markers_, length,
-                                                       dst_markers_);
+  return OverlappingDocumentMarkerListEditor::MoveMarkers(&markers_, length,
+                                                          dst_markers_);
 }
 
 bool HighlightPseudoMarkerListImpl::RemoveMarkers(unsigned start_offset,
                                                   int length) {
-  return UnsortedDocumentMarkerListEditor::RemoveMarkers(&markers_,
-                                                         start_offset, length);
+  return OverlappingDocumentMarkerListEditor::RemoveMarkers(
+      &markers_, start_offset, length);
 }
 
 bool HighlightPseudoMarkerListImpl::ShiftMarkers(const String&,
                                                  unsigned offset,
                                                  unsigned old_length,
                                                  unsigned new_length) {
-  return UnsortedDocumentMarkerListEditor::ShiftMarkers(&markers_, offset,
-                                                        old_length, new_length);
+  return OverlappingDocumentMarkerListEditor::ShiftMarkers(
+      &markers_, offset, old_length, new_length);
 }
 
 void HighlightPseudoMarkerListImpl::Trace(blink::Visitor* visitor) const {
diff --git a/third_party/blink/renderer/core/editing/markers/unsorted_document_marker_list_editor.cc b/third_party/blink/renderer/core/editing/markers/overlapping_document_marker_list_editor.cc
similarity index 82%
rename from third_party/blink/renderer/core/editing/markers/unsorted_document_marker_list_editor.cc
rename to third_party/blink/renderer/core/editing/markers/overlapping_document_marker_list_editor.cc
index 711e5a7..611b572 100644
--- a/third_party/blink/renderer/core/editing/markers/unsorted_document_marker_list_editor.cc
+++ b/third_party/blink/renderer/core/editing/markers/overlapping_document_marker_list_editor.cc
@@ -2,15 +2,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "third_party/blink/renderer/core/editing/markers/unsorted_document_marker_list_editor.h"
+#include "third_party/blink/renderer/core/editing/markers/overlapping_document_marker_list_editor.h"
 
 #include "base/ranges/algorithm.h"
 #include "third_party/blink/renderer/core/editing/markers/spell_check_marker_list_impl.h"
 
 namespace blink {
 
-void UnsortedDocumentMarkerListEditor::AddMarker(MarkerList* list,
-                                                 DocumentMarker* marker) {
+void OverlappingDocumentMarkerListEditor::AddMarker(
+    MarkerList* list,
+    DocumentMarker* marker) {
   if (list->empty() || list->back()->StartOffset() <= marker->StartOffset()) {
     list->push_back(marker);
     return;
@@ -26,7 +27,8 @@
   list->insert(base::checked_cast<wtf_size_t>(pos - list->begin()), marker);
 }
 
-bool UnsortedDocumentMarkerListEditor::MoveMarkers(
+
+bool OverlappingDocumentMarkerListEditor::MoveMarkers(
     MarkerList* src_list,
     int length,
     DocumentMarkerList* dst_list) {
@@ -53,14 +55,14 @@
   return did_move_marker;
 }
 
-bool UnsortedDocumentMarkerListEditor::RemoveMarkers(MarkerList* list,
+bool OverlappingDocumentMarkerListEditor::RemoveMarkers(MarkerList* list,
                                                      unsigned start_offset,
                                                      int length) {
   // For overlapping markers, even if sorted, the quickest way to perform
   // this operation is to build a new list with the markers that aren't
   // being removed. Exploiting the sort is difficult because markers
   // may be nested. See
-  // UnsortedDocumentMarkerListEditorTest.RemoveMarkersNestedOverlap
+  // OverlappingDocumentMarkerListEditorTest.RemoveMarkersNestedOverlap
   // for an example.
   const unsigned end_offset = start_offset + length;
   HeapVector<Member<DocumentMarker>> unremoved_markers;
@@ -77,12 +79,13 @@
   return did_remove_marker;
 }
 
-bool UnsortedDocumentMarkerListEditor::ShiftMarkers(MarkerList* list,
-                                                    unsigned offset,
-                                                    unsigned old_length,
-                                                    unsigned new_length) {
-  // For an overlapping marker list, the quickest way to perform this operation
-  // is to build a new list with the markers not removed by the shift. Note that
+bool OverlappingDocumentMarkerListEditor::ShiftMarkers(
+    MarkerList* list,
+    unsigned offset,
+    unsigned old_length,
+    unsigned new_length) {
+  // For an overlapping marker list, the quickest way to perform this operation is
+  // to build a new list with the markers not removed by the shift. Note that
   // ComputeOffsetsAfterShift will move markers in such a way that they remain
   // sorted in StartOffset through this operation.
   bool did_shift_marker = false;
@@ -110,7 +113,7 @@
 }
 
 HeapVector<Member<DocumentMarker>>
-UnsortedDocumentMarkerListEditor::MarkersIntersectingRange(
+OverlappingDocumentMarkerListEditor::MarkersIntersectingRange(
     const MarkerList& list,
     unsigned start_offset,
     unsigned end_offset) {
diff --git a/third_party/blink/renderer/core/editing/markers/unsorted_document_marker_list_editor.h b/third_party/blink/renderer/core/editing/markers/overlapping_document_marker_list_editor.h
similarity index 76%
rename from third_party/blink/renderer/core/editing/markers/unsorted_document_marker_list_editor.h
rename to third_party/blink/renderer/core/editing/markers/overlapping_document_marker_list_editor.h
index 79a53733..854b415 100644
--- a/third_party/blink/renderer/core/editing/markers/unsorted_document_marker_list_editor.h
+++ b/third_party/blink/renderer/core/editing/markers/overlapping_document_marker_list_editor.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_MARKERS_UNSORTED_DOCUMENT_MARKER_LIST_EDITOR_H_
-#define THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_MARKERS_UNSORTED_DOCUMENT_MARKER_LIST_EDITOR_H_
+#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_MARKERS_OVERLAPPING_DOCUMENT_MARKER_LIST_EDITOR_H_
+#define THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_MARKERS_OVERLAPPING_DOCUMENT_MARKER_LIST_EDITOR_H_
 
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/core/editing/markers/document_marker_list.h"
@@ -18,7 +18,7 @@
 // StartOffset. The sort order for markers with the same StartOffset is
 // undefined. It will initially match the order in which markers are
 // added, but calling ShiftMarkers may change that.
-class CORE_EXPORT UnsortedDocumentMarkerListEditor final {
+class CORE_EXPORT OverlappingDocumentMarkerListEditor final {
  public:
   using MarkerList = HeapVector<Member<DocumentMarker>>;
 
@@ -36,10 +36,8 @@
   // If the text marked by a marker is changed by the edit, this method attempts
   // to keep the marker tracking the marked region rather than removing the
   // marker.
-  static bool ShiftMarkers(MarkerList*,
-                           unsigned offset,
-                           unsigned old_length,
-                           unsigned new_length);
+  static bool ShiftMarkers(MarkerList*, unsigned offset,
+                            unsigned old_length, unsigned new_length);
 
   // Returns all markers in the specified MarkerList whose interior overlaps
   // with the range [start_offset, end_offset].
@@ -51,4 +49,4 @@
 
 }  // namespace blink
 
-#endif  // THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_MARKERS_UNSORTED_DOCUMENT_MARKER_LIST_EDITOR_H_
+#endif  // THIRD_PARTY_BLINK_RENDERER_CORE_EDITING_MARKERS_OVERLAPPING_DOCUMENT_MARKER_LIST_EDITOR_H_
diff --git a/third_party/blink/renderer/core/editing/markers/overlapping_document_marker_list_editor_test.cc b/third_party/blink/renderer/core/editing/markers/overlapping_document_marker_list_editor_test.cc
new file mode 100644
index 0000000..483ead9
--- /dev/null
+++ b/third_party/blink/renderer/core/editing/markers/overlapping_document_marker_list_editor_test.cc
@@ -0,0 +1,545 @@
+// Copyright 2017 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "third_party/blink/renderer/core/editing/markers/overlapping_document_marker_list_editor.h"
+
+#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/blink/renderer/core/editing/markers/marker_test_utilities.h"
+#include "third_party/blink/renderer/core/editing/markers/suggestion_marker.h"
+#include "third_party/blink/renderer/core/editing/markers/suggestion_marker_list_impl.h"
+#include "third_party/blink/renderer/core/editing/markers/suggestion_marker_properties.h"
+#include "third_party/blink/renderer/platform/heap/persistent.h"
+
+namespace blink {
+
+class OverlappingDocumentMarkerListEditorTest : public testing::Test {
+ public:
+  OverlappingDocumentMarkerListEditorTest()
+      : marker_list_(
+            MakeGarbageCollected<HeapVector<Member<DocumentMarker>>>()) {}
+
+ protected:
+  DocumentMarker* CreateMarker(unsigned start_offset, unsigned end_offset) {
+    return MakeGarbageCollected<SuggestionMarker>(start_offset, end_offset,
+                                                  SuggestionMarkerProperties());
+  }
+
+  Persistent<HeapVector<Member<DocumentMarker>>> marker_list_;
+};
+
+TEST_F(OverlappingDocumentMarkerListEditorTest, AddMarkersOverlapping) {
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(40, 60));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 30));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(70, 100));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 20));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 40));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(45, 70));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(35, 65));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(90, 100));
+
+  EXPECT_EQ(8u, marker_list_->size());
+  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
+  EXPECT_EQ(30u, marker_list_->at(0)->EndOffset());
+  EXPECT_EQ(0u, marker_list_->at(1)->StartOffset());
+  EXPECT_EQ(20u, marker_list_->at(1)->EndOffset());
+  EXPECT_EQ(0u, marker_list_->at(2)->StartOffset());
+  EXPECT_EQ(40u, marker_list_->at(2)->EndOffset());
+  EXPECT_EQ(35u, marker_list_->at(3)->StartOffset());
+  EXPECT_EQ(65u, marker_list_->at(3)->EndOffset());
+  EXPECT_EQ(40u, marker_list_->at(4)->StartOffset());
+  EXPECT_EQ(60u, marker_list_->at(4)->EndOffset());
+  EXPECT_EQ(45u, marker_list_->at(5)->StartOffset());
+  EXPECT_EQ(70u, marker_list_->at(5)->EndOffset());
+  EXPECT_EQ(70u, marker_list_->at(6)->StartOffset());
+  EXPECT_EQ(100u, marker_list_->at(6)->EndOffset());
+  EXPECT_EQ(90u, marker_list_->at(7)->StartOffset());
+  EXPECT_EQ(100u, marker_list_->at(7)->EndOffset());
+}
+
+TEST_F(OverlappingDocumentMarkerListEditorTest, MoveMarkers) {
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(30, 40));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 30));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(10, 40));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 20));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 40));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(20, 40));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(20, 30));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 10));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(10, 30));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(10, 20));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(11, 21));
+
+  DocumentMarkerList* dst_list =
+      MakeGarbageCollected<SuggestionMarkerListImpl>();
+  // The markers with start and end offset < 11 should be moved to dst_list.
+  // Markers that start before 11 and end at 11 or later should be removed.
+  // Markers that start at 11 or later should not be moved.
+  OverlappingDocumentMarkerListEditor::MoveMarkers(marker_list_, 11, dst_list);
+
+  EXPECT_EQ(4u, marker_list_->size());
+
+  EXPECT_EQ(11u, marker_list_->at(0)->StartOffset());
+  EXPECT_EQ(21u, marker_list_->at(0)->EndOffset());
+
+  EXPECT_EQ(20u, marker_list_->at(1)->StartOffset());
+  EXPECT_EQ(40u, marker_list_->at(1)->EndOffset());
+
+  EXPECT_EQ(20u, marker_list_->at(2)->StartOffset());
+  EXPECT_EQ(30u, marker_list_->at(2)->EndOffset());
+
+  EXPECT_EQ(30u, marker_list_->at(3)->StartOffset());
+  EXPECT_EQ(40u, marker_list_->at(3)->EndOffset());
+
+  DocumentMarkerVector dst_list_markers = dst_list->GetMarkers();
+
+  // Markers
+  EXPECT_EQ(1u, dst_list_markers.size());
+
+  EXPECT_EQ(0u, dst_list_markers[0]->StartOffset());
+  EXPECT_EQ(10u, dst_list_markers[0]->EndOffset());
+}
+
+TEST_F(OverlappingDocumentMarkerListEditorTest, RemoveMarkersNestedOverlap) {
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 10));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(10, 30));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(15, 20));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(20, 30));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(30, 40));
+
+  EXPECT_TRUE(
+      OverlappingDocumentMarkerListEditor::RemoveMarkers(marker_list_, 20, 10));
+
+  EXPECT_EQ(3u, marker_list_->size());
+
+  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
+  EXPECT_EQ(10u, marker_list_->at(0)->EndOffset());
+
+  EXPECT_EQ(15u, marker_list_->at(1)->StartOffset());
+  EXPECT_EQ(20u, marker_list_->at(1)->EndOffset());
+
+  EXPECT_EQ(30u, marker_list_->at(2)->StartOffset());
+  EXPECT_EQ(40u, marker_list_->at(2)->EndOffset());
+}
+
+TEST_F(OverlappingDocumentMarkerListEditorTest,
+       RemoveMarkersTouchingEndpoints) {
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(30, 40));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(40, 50));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(10, 20));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 10));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(20, 30));
+
+  EXPECT_TRUE(
+      OverlappingDocumentMarkerListEditor::RemoveMarkers(marker_list_, 20, 10));
+
+  EXPECT_EQ(4u, marker_list_->size());
+
+  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
+  EXPECT_EQ(10u, marker_list_->at(0)->EndOffset());
+
+  EXPECT_EQ(10u, marker_list_->at(1)->StartOffset());
+  EXPECT_EQ(20u, marker_list_->at(1)->EndOffset());
+
+  EXPECT_EQ(30u, marker_list_->at(2)->StartOffset());
+  EXPECT_EQ(40u, marker_list_->at(2)->EndOffset());
+
+  EXPECT_EQ(40u, marker_list_->at(3)->StartOffset());
+  EXPECT_EQ(50u, marker_list_->at(3)->EndOffset());
+}
+
+TEST_F(OverlappingDocumentMarkerListEditorTest,
+       RemoveMarkersOneCharacterIntoInterior) {
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(30, 40));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(40, 50));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(10, 20));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 10));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(20, 30));
+
+  EXPECT_TRUE(
+      OverlappingDocumentMarkerListEditor::RemoveMarkers(marker_list_, 19, 12));
+
+  EXPECT_EQ(2u, marker_list_->size());
+
+  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
+  EXPECT_EQ(10u, marker_list_->at(0)->EndOffset());
+
+  EXPECT_EQ(40u, marker_list_->at(1)->StartOffset());
+  EXPECT_EQ(50u, marker_list_->at(1)->EndOffset());
+}
+
+TEST_F(OverlappingDocumentMarkerListEditorTest,
+       ShiftMarkers_ReplaceStartOfMarker) {
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 10));
+
+  // Replace with shorter text
+  OverlappingDocumentMarkerListEditor::ShiftMarkers(marker_list_, 0, 5, 4);
+
+  EXPECT_EQ(1u, marker_list_->size());
+  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
+  EXPECT_EQ(9u, marker_list_->at(0)->EndOffset());
+
+  // Replace with longer text
+  OverlappingDocumentMarkerListEditor::ShiftMarkers(marker_list_, 0, 4, 5);
+
+  EXPECT_EQ(1u, marker_list_->size());
+  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
+  EXPECT_EQ(10u, marker_list_->at(0)->EndOffset());
+
+  // Replace with text of same length
+  OverlappingDocumentMarkerListEditor::ShiftMarkers(marker_list_, 0, 5, 5);
+
+  EXPECT_EQ(1u, marker_list_->size());
+  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
+  EXPECT_EQ(10u, marker_list_->at(0)->EndOffset());
+}
+
+TEST_F(OverlappingDocumentMarkerListEditorTest,
+       ShiftMarkers_ReplaceContainsStartOfMarker) {
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(5, 15));
+
+  OverlappingDocumentMarkerListEditor::ShiftMarkers(marker_list_, 0, 10, 10);
+
+  EXPECT_EQ(1u, marker_list_->size());
+  EXPECT_EQ(10u, marker_list_->at(0)->StartOffset());
+  EXPECT_EQ(15u, marker_list_->at(0)->EndOffset());
+}
+
+TEST_F(OverlappingDocumentMarkerListEditorTest,
+       ShiftMarkers_ReplaceEndOfMarker) {
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 10));
+
+  // Replace with shorter text
+  OverlappingDocumentMarkerListEditor::ShiftMarkers(marker_list_, 5, 5, 4);
+
+  EXPECT_EQ(1u, marker_list_->size());
+  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
+  EXPECT_EQ(9u, marker_list_->at(0)->EndOffset());
+
+  // Replace with longer text
+  OverlappingDocumentMarkerListEditor::ShiftMarkers(marker_list_, 5, 4, 5);
+
+  EXPECT_EQ(1u, marker_list_->size());
+  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
+  EXPECT_EQ(10u, marker_list_->at(0)->EndOffset());
+
+  // Replace with text of same length
+  OverlappingDocumentMarkerListEditor::ShiftMarkers(marker_list_, 5, 5, 5);
+
+  EXPECT_EQ(1u, marker_list_->size());
+  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
+  EXPECT_EQ(10u, marker_list_->at(0)->EndOffset());
+}
+
+TEST_F(OverlappingDocumentMarkerListEditorTest,
+       ShiftMarkers_ReplaceContainsEndOfMarker) {
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 10));
+
+  OverlappingDocumentMarkerListEditor::ShiftMarkers(marker_list_, 5, 10, 10);
+
+  EXPECT_EQ(1u, marker_list_->size());
+  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
+  EXPECT_EQ(5u, marker_list_->at(0)->EndOffset());
+}
+
+TEST_F(OverlappingDocumentMarkerListEditorTest,
+       ShiftMarkers_ReplaceEntireMarker) {
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 10));
+
+  // Replace with shorter text
+  OverlappingDocumentMarkerListEditor::ShiftMarkers(marker_list_, 0, 10, 9);
+
+  EXPECT_EQ(1u, marker_list_->size());
+  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
+  EXPECT_EQ(9u, marker_list_->at(0)->EndOffset());
+
+  // Replace with longer text
+  OverlappingDocumentMarkerListEditor::ShiftMarkers(marker_list_, 0, 9, 10);
+
+  EXPECT_EQ(1u, marker_list_->size());
+  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
+  EXPECT_EQ(10u, marker_list_->at(0)->EndOffset());
+
+  // Replace with text of same length
+  OverlappingDocumentMarkerListEditor::ShiftMarkers(marker_list_, 0, 10, 10);
+
+  EXPECT_EQ(1u, marker_list_->size());
+  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
+  EXPECT_EQ(10u, marker_list_->at(0)->EndOffset());
+}
+
+TEST_F(OverlappingDocumentMarkerListEditorTest,
+       ShiftMarkers_ReplaceTextWithMarkerAtBeginning) {
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 10));
+
+  OverlappingDocumentMarkerListEditor::ShiftMarkers(marker_list_, 0, 15, 15);
+
+  EXPECT_EQ(0u, marker_list_->size());
+}
+
+TEST_F(OverlappingDocumentMarkerListEditorTest,
+       ShiftMarkers_ReplaceTextWithMarkerAtEnd) {
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(5, 15));
+
+  OverlappingDocumentMarkerListEditor::ShiftMarkers(marker_list_, 0, 15, 15);
+
+  EXPECT_EQ(0u, marker_list_->size());
+}
+
+TEST_F(OverlappingDocumentMarkerListEditorTest, ShiftMarkers_Deletions) {
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 5));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(5, 10));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(10, 15));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(15, 20));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(20, 25));
+
+  // Delete range containing the end of the second marker, the entire third
+  // marker, and the start of the fourth marker
+  OverlappingDocumentMarkerListEditor::ShiftMarkers(marker_list_, 8, 9, 0);
+
+  EXPECT_EQ(4u, marker_list_->size());
+
+  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
+  EXPECT_EQ(5u, marker_list_->at(0)->EndOffset());
+
+  EXPECT_EQ(5u, marker_list_->at(1)->StartOffset());
+  EXPECT_EQ(8u, marker_list_->at(1)->EndOffset());
+
+  EXPECT_EQ(8u, marker_list_->at(2)->StartOffset());
+  EXPECT_EQ(11u, marker_list_->at(2)->EndOffset());
+
+  EXPECT_EQ(11u, marker_list_->at(3)->StartOffset());
+  EXPECT_EQ(16u, marker_list_->at(3)->EndOffset());
+}
+
+TEST_F(OverlappingDocumentMarkerListEditorTest,
+       ShiftMarkers_DeletionWithinNested) {
+  // A marker that overlaps the range with markers that do not overlap
+  // nested within it.
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(5, 35));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(7, 10));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(15, 25));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(30, 32));
+
+  // Delete range overlapping the outermost marker and containing the
+  // third marker.
+  OverlappingDocumentMarkerListEditor::ShiftMarkers(marker_list_, 15, 10, 0);
+
+  EXPECT_EQ(3u, marker_list_->size());
+
+  EXPECT_EQ(5u, marker_list_->at(0)->StartOffset());
+  EXPECT_EQ(25u, marker_list_->at(0)->EndOffset());
+
+  EXPECT_EQ(7u, marker_list_->at(1)->StartOffset());
+  EXPECT_EQ(10u, marker_list_->at(1)->EndOffset());
+
+  EXPECT_EQ(20u, marker_list_->at(2)->StartOffset());
+  EXPECT_EQ(22u, marker_list_->at(2)->EndOffset());
+}
+
+TEST_F(OverlappingDocumentMarkerListEditorTest,
+       ShiftMarkers_DeleteExactlyOnMarker) {
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 10));
+
+  OverlappingDocumentMarkerListEditor::ShiftMarkers(marker_list_, 0, 10, 0);
+
+  EXPECT_EQ(0u, marker_list_->size());
+}
+
+TEST_F(OverlappingDocumentMarkerListEditorTest,
+       ShiftMarkers_InsertInMarkerInterior) {
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 5));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(5, 10));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(10, 15));
+
+  // insert in middle of second marker
+  OverlappingDocumentMarkerListEditor::ShiftMarkers(marker_list_, 7, 0, 5);
+
+  EXPECT_EQ(3u, marker_list_->size());
+
+  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
+  EXPECT_EQ(5u, marker_list_->at(0)->EndOffset());
+
+  EXPECT_EQ(5u, marker_list_->at(1)->StartOffset());
+  EXPECT_EQ(15u, marker_list_->at(1)->EndOffset());
+
+  EXPECT_EQ(15u, marker_list_->at(2)->StartOffset());
+  EXPECT_EQ(20u, marker_list_->at(2)->EndOffset());
+}
+
+TEST_F(OverlappingDocumentMarkerListEditorTest,
+       ShiftMarkers_InsertBetweenMarkers) {
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 5));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(5, 10));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(10, 15));
+
+  // insert before second marker
+  OverlappingDocumentMarkerListEditor::ShiftMarkers(marker_list_, 5, 0, 5);
+
+  EXPECT_EQ(3u, marker_list_->size());
+
+  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
+  EXPECT_EQ(5u, marker_list_->at(0)->EndOffset());
+
+  EXPECT_EQ(10u, marker_list_->at(1)->StartOffset());
+  EXPECT_EQ(15u, marker_list_->at(1)->EndOffset());
+
+  EXPECT_EQ(15u, marker_list_->at(2)->StartOffset());
+  EXPECT_EQ(20u, marker_list_->at(2)->EndOffset());
+}
+
+TEST_F(OverlappingDocumentMarkerListEditorTest,
+       MarkersIntersectingRange_RangeContainingNoMarkers) {
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 10));
+
+  OverlappingDocumentMarkerListEditor::MarkerList markers_intersecting_range =
+      OverlappingDocumentMarkerListEditor::MarkersIntersectingRange(
+          *marker_list_, 10, 15);
+  EXPECT_EQ(0u, markers_intersecting_range.size());
+}
+
+TEST_F(OverlappingDocumentMarkerListEditorTest,
+       MarkersIntersectingRange_TouchingStart) {
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 9));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(1, 9));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 10));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(1, 10));
+
+  OverlappingDocumentMarkerListEditor::MarkerList markers_intersecting_range =
+      OverlappingDocumentMarkerListEditor::MarkersIntersectingRange(
+          *marker_list_, 0, 1);
+
+  EXPECT_EQ(2u, markers_intersecting_range.size());
+
+  EXPECT_EQ(0u, markers_intersecting_range[0]->StartOffset());
+  EXPECT_EQ(9u, markers_intersecting_range[0]->EndOffset());
+
+  EXPECT_EQ(0u, markers_intersecting_range[1]->StartOffset());
+  EXPECT_EQ(10u, markers_intersecting_range[1]->EndOffset());
+}
+
+TEST_F(OverlappingDocumentMarkerListEditorTest,
+       MarkersIntersectingRange_TouchingEnd) {
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 9));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(1, 9));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(0, 10));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(1, 10));
+
+  OverlappingDocumentMarkerListEditor::MarkerList markers_intersecting_range =
+      OverlappingDocumentMarkerListEditor::MarkersIntersectingRange(
+          *marker_list_, 9, 10);
+
+  EXPECT_EQ(2u, markers_intersecting_range.size());
+
+  EXPECT_EQ(0u, markers_intersecting_range[0]->StartOffset());
+  EXPECT_EQ(10u, markers_intersecting_range[0]->EndOffset());
+
+  EXPECT_EQ(1u, markers_intersecting_range[1]->StartOffset());
+  EXPECT_EQ(10u, markers_intersecting_range[1]->EndOffset());
+}
+
+TEST_F(OverlappingDocumentMarkerListEditorTest,
+       MarkersIntersectingRange_CollapsedRange) {
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(5, 10));
+
+  OverlappingDocumentMarkerListEditor::MarkerList markers_intersecting_range =
+      OverlappingDocumentMarkerListEditor::MarkersIntersectingRange(
+          *marker_list_, 7, 7);
+  EXPECT_EQ(1u, markers_intersecting_range.size());
+
+  EXPECT_EQ(5u, markers_intersecting_range[0]->StartOffset());
+  EXPECT_EQ(10u, markers_intersecting_range[0]->EndOffset());
+}
+
+TEST_F(OverlappingDocumentMarkerListEditorTest,
+       MarkersIntersectingRange_NestedMarkers) {
+  // A marker that overlaps the range with markers that do not overlap
+  // nested within it.
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(5, 35));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(7, 10));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(15, 25));
+  OverlappingDocumentMarkerListEditor::AddMarker(marker_list_,
+                                                 CreateMarker(30, 32));
+
+  OverlappingDocumentMarkerListEditor::MarkerList markers_intersecting_range =
+      OverlappingDocumentMarkerListEditor::MarkersIntersectingRange(
+          *marker_list_, 15, 25);
+  EXPECT_EQ(2u, markers_intersecting_range.size());
+
+  EXPECT_EQ(5u, markers_intersecting_range[0]->StartOffset());
+  EXPECT_EQ(35u, markers_intersecting_range[0]->EndOffset());
+  EXPECT_EQ(15u, markers_intersecting_range[1]->StartOffset());
+  EXPECT_EQ(25u, markers_intersecting_range[1]->EndOffset());
+}
+
+}  // namespace blink
diff --git a/third_party/blink/renderer/core/editing/markers/suggestion_marker_list_impl.cc b/third_party/blink/renderer/core/editing/markers/suggestion_marker_list_impl.cc
index 386f25e0..1b8d01e0 100644
--- a/third_party/blink/renderer/core/editing/markers/suggestion_marker_list_impl.cc
+++ b/third_party/blink/renderer/core/editing/markers/suggestion_marker_list_impl.cc
@@ -4,9 +4,9 @@
 
 #include "third_party/blink/renderer/core/editing/markers/suggestion_marker_list_impl.h"
 
+#include "third_party/blink/renderer/core/editing/markers/overlapping_document_marker_list_editor.h"
 #include "third_party/blink/renderer/core/editing/markers/sorted_document_marker_list_editor.h"
 #include "third_party/blink/renderer/core/editing/markers/suggestion_marker_replacement_scope.h"
-#include "third_party/blink/renderer/core/editing/markers/unsorted_document_marker_list_editor.h"
 #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
 
 namespace blink {
@@ -65,7 +65,7 @@
 
 void SuggestionMarkerListImpl::Add(DocumentMarker* marker) {
   DCHECK_EQ(DocumentMarker::kSuggestion, marker->GetType());
-  UnsortedDocumentMarkerListEditor::AddMarker(&markers_, marker);
+  OverlappingDocumentMarkerListEditor::AddMarker(&markers_, marker);
 }
 
 void SuggestionMarkerListImpl::Clear() {
@@ -87,20 +87,20 @@
 HeapVector<Member<DocumentMarker>>
 SuggestionMarkerListImpl::MarkersIntersectingRange(unsigned start_offset,
                                                    unsigned end_offset) const {
-  return UnsortedDocumentMarkerListEditor::MarkersIntersectingRange(
+  return OverlappingDocumentMarkerListEditor::MarkersIntersectingRange(
       markers_, start_offset, end_offset);
 }
 
 bool SuggestionMarkerListImpl::MoveMarkers(int length,
                                            DocumentMarkerList* dst_list) {
-  return UnsortedDocumentMarkerListEditor::MoveMarkers(&markers_, length,
-                                                       dst_list);
+  return OverlappingDocumentMarkerListEditor::MoveMarkers(&markers_, length,
+                                                          dst_list);
 }
 
 bool SuggestionMarkerListImpl::RemoveMarkers(unsigned start_offset,
                                              int length) {
-  return UnsortedDocumentMarkerListEditor::RemoveMarkers(&markers_,
-                                                         start_offset, length);
+  return OverlappingDocumentMarkerListEditor::RemoveMarkers(
+      &markers_, start_offset, length);
 }
 
 bool SuggestionMarkerListImpl::ShiftMarkers(const String& node_text,
diff --git a/third_party/blink/renderer/core/editing/markers/unsorted_document_marker_list_editor_test.cc b/third_party/blink/renderer/core/editing/markers/unsorted_document_marker_list_editor_test.cc
deleted file mode 100644
index c4eb0ba..0000000
--- a/third_party/blink/renderer/core/editing/markers/unsorted_document_marker_list_editor_test.cc
+++ /dev/null
@@ -1,535 +0,0 @@
-// Copyright 2017 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "third_party/blink/renderer/core/editing/markers/unsorted_document_marker_list_editor.h"
-
-#include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/blink/renderer/core/editing/markers/marker_test_utilities.h"
-#include "third_party/blink/renderer/core/editing/markers/suggestion_marker.h"
-#include "third_party/blink/renderer/core/editing/markers/suggestion_marker_list_impl.h"
-#include "third_party/blink/renderer/core/editing/markers/suggestion_marker_properties.h"
-#include "third_party/blink/renderer/platform/heap/persistent.h"
-
-namespace blink {
-
-class UnsortedDocumentMarkerListEditorTest : public testing::Test {
- public:
-  UnsortedDocumentMarkerListEditorTest()
-      : marker_list_(
-            MakeGarbageCollected<HeapVector<Member<DocumentMarker>>>()) {}
-
- protected:
-  DocumentMarker* CreateMarker(unsigned start_offset, unsigned end_offset) {
-    return MakeGarbageCollected<SuggestionMarker>(start_offset, end_offset,
-                                                  SuggestionMarkerProperties());
-  }
-
-  Persistent<HeapVector<Member<DocumentMarker>>> marker_list_;
-};
-
-TEST_F(UnsortedDocumentMarkerListEditorTest, AddMarkersOverlapping) {
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(40, 60));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(0, 30));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(70, 100));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(0, 20));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(0, 40));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(45, 70));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(35, 65));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(90, 100));
-
-  EXPECT_EQ(8u, marker_list_->size());
-  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
-  EXPECT_EQ(30u, marker_list_->at(0)->EndOffset());
-  EXPECT_EQ(0u, marker_list_->at(1)->StartOffset());
-  EXPECT_EQ(20u, marker_list_->at(1)->EndOffset());
-  EXPECT_EQ(0u, marker_list_->at(2)->StartOffset());
-  EXPECT_EQ(40u, marker_list_->at(2)->EndOffset());
-  EXPECT_EQ(35u, marker_list_->at(3)->StartOffset());
-  EXPECT_EQ(65u, marker_list_->at(3)->EndOffset());
-  EXPECT_EQ(40u, marker_list_->at(4)->StartOffset());
-  EXPECT_EQ(60u, marker_list_->at(4)->EndOffset());
-  EXPECT_EQ(45u, marker_list_->at(5)->StartOffset());
-  EXPECT_EQ(70u, marker_list_->at(5)->EndOffset());
-  EXPECT_EQ(70u, marker_list_->at(6)->StartOffset());
-  EXPECT_EQ(100u, marker_list_->at(6)->EndOffset());
-  EXPECT_EQ(90u, marker_list_->at(7)->StartOffset());
-  EXPECT_EQ(100u, marker_list_->at(7)->EndOffset());
-}
-
-TEST_F(UnsortedDocumentMarkerListEditorTest, MoveMarkers) {
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(30, 40));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(0, 30));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(10, 40));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(0, 20));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(0, 40));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(20, 40));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(20, 30));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(0, 10));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(10, 30));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(10, 20));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(11, 21));
-
-  DocumentMarkerList* dst_list =
-      MakeGarbageCollected<SuggestionMarkerListImpl>();
-  // The markers with start and end offset < 11 should be moved to dst_list.
-  // Markers that start before 11 and end at 11 or later should be removed.
-  // Markers that start at 11 or later should not be moved.
-  UnsortedDocumentMarkerListEditor::MoveMarkers(marker_list_, 11, dst_list);
-
-  EXPECT_EQ(4u, marker_list_->size());
-
-  EXPECT_EQ(11u, marker_list_->at(0)->StartOffset());
-  EXPECT_EQ(21u, marker_list_->at(0)->EndOffset());
-
-  EXPECT_EQ(20u, marker_list_->at(1)->StartOffset());
-  EXPECT_EQ(40u, marker_list_->at(1)->EndOffset());
-
-  EXPECT_EQ(20u, marker_list_->at(2)->StartOffset());
-  EXPECT_EQ(30u, marker_list_->at(2)->EndOffset());
-
-  EXPECT_EQ(30u, marker_list_->at(3)->StartOffset());
-  EXPECT_EQ(40u, marker_list_->at(3)->EndOffset());
-
-  DocumentMarkerVector dst_list_markers = dst_list->GetMarkers();
-
-  // Markers
-  EXPECT_EQ(1u, dst_list_markers.size());
-
-  EXPECT_EQ(0u, dst_list_markers[0]->StartOffset());
-  EXPECT_EQ(10u, dst_list_markers[0]->EndOffset());
-}
-
-TEST_F(UnsortedDocumentMarkerListEditorTest, RemoveMarkersNestedOverlap) {
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(0, 10));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(10, 30));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(15, 20));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(20, 30));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(30, 40));
-
-  EXPECT_TRUE(
-      UnsortedDocumentMarkerListEditor::RemoveMarkers(marker_list_, 20, 10));
-
-  EXPECT_EQ(3u, marker_list_->size());
-
-  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
-  EXPECT_EQ(10u, marker_list_->at(0)->EndOffset());
-
-  EXPECT_EQ(15u, marker_list_->at(1)->StartOffset());
-  EXPECT_EQ(20u, marker_list_->at(1)->EndOffset());
-
-  EXPECT_EQ(30u, marker_list_->at(2)->StartOffset());
-  EXPECT_EQ(40u, marker_list_->at(2)->EndOffset());
-}
-
-TEST_F(UnsortedDocumentMarkerListEditorTest, RemoveMarkersTouchingEndpoints) {
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(30, 40));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(40, 50));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(10, 20));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(0, 10));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(20, 30));
-
-  EXPECT_TRUE(
-      UnsortedDocumentMarkerListEditor::RemoveMarkers(marker_list_, 20, 10));
-
-  EXPECT_EQ(4u, marker_list_->size());
-
-  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
-  EXPECT_EQ(10u, marker_list_->at(0)->EndOffset());
-
-  EXPECT_EQ(10u, marker_list_->at(1)->StartOffset());
-  EXPECT_EQ(20u, marker_list_->at(1)->EndOffset());
-
-  EXPECT_EQ(30u, marker_list_->at(2)->StartOffset());
-  EXPECT_EQ(40u, marker_list_->at(2)->EndOffset());
-
-  EXPECT_EQ(40u, marker_list_->at(3)->StartOffset());
-  EXPECT_EQ(50u, marker_list_->at(3)->EndOffset());
-}
-
-TEST_F(UnsortedDocumentMarkerListEditorTest,
-       RemoveMarkersOneCharacterIntoInterior) {
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(30, 40));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(40, 50));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(10, 20));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(0, 10));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(20, 30));
-
-  EXPECT_TRUE(
-      UnsortedDocumentMarkerListEditor::RemoveMarkers(marker_list_, 19, 12));
-
-  EXPECT_EQ(2u, marker_list_->size());
-
-  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
-  EXPECT_EQ(10u, marker_list_->at(0)->EndOffset());
-
-  EXPECT_EQ(40u, marker_list_->at(1)->StartOffset());
-  EXPECT_EQ(50u, marker_list_->at(1)->EndOffset());
-}
-
-TEST_F(UnsortedDocumentMarkerListEditorTest,
-       ShiftMarkers_ReplaceStartOfMarker) {
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(0, 10));
-
-  // Replace with shorter text
-  UnsortedDocumentMarkerListEditor::ShiftMarkers(marker_list_, 0, 5, 4);
-
-  EXPECT_EQ(1u, marker_list_->size());
-  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
-  EXPECT_EQ(9u, marker_list_->at(0)->EndOffset());
-
-  // Replace with longer text
-  UnsortedDocumentMarkerListEditor::ShiftMarkers(marker_list_, 0, 4, 5);
-
-  EXPECT_EQ(1u, marker_list_->size());
-  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
-  EXPECT_EQ(10u, marker_list_->at(0)->EndOffset());
-
-  // Replace with text of same length
-  UnsortedDocumentMarkerListEditor::ShiftMarkers(marker_list_, 0, 5, 5);
-
-  EXPECT_EQ(1u, marker_list_->size());
-  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
-  EXPECT_EQ(10u, marker_list_->at(0)->EndOffset());
-}
-
-TEST_F(UnsortedDocumentMarkerListEditorTest,
-       ShiftMarkers_ReplaceContainsStartOfMarker) {
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(5, 15));
-
-  UnsortedDocumentMarkerListEditor::ShiftMarkers(marker_list_, 0, 10, 10);
-
-  EXPECT_EQ(1u, marker_list_->size());
-  EXPECT_EQ(10u, marker_list_->at(0)->StartOffset());
-  EXPECT_EQ(15u, marker_list_->at(0)->EndOffset());
-}
-
-TEST_F(UnsortedDocumentMarkerListEditorTest, ShiftMarkers_ReplaceEndOfMarker) {
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(0, 10));
-
-  // Replace with shorter text
-  UnsortedDocumentMarkerListEditor::ShiftMarkers(marker_list_, 5, 5, 4);
-
-  EXPECT_EQ(1u, marker_list_->size());
-  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
-  EXPECT_EQ(9u, marker_list_->at(0)->EndOffset());
-
-  // Replace with longer text
-  UnsortedDocumentMarkerListEditor::ShiftMarkers(marker_list_, 5, 4, 5);
-
-  EXPECT_EQ(1u, marker_list_->size());
-  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
-  EXPECT_EQ(10u, marker_list_->at(0)->EndOffset());
-
-  // Replace with text of same length
-  UnsortedDocumentMarkerListEditor::ShiftMarkers(marker_list_, 5, 5, 5);
-
-  EXPECT_EQ(1u, marker_list_->size());
-  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
-  EXPECT_EQ(10u, marker_list_->at(0)->EndOffset());
-}
-
-TEST_F(UnsortedDocumentMarkerListEditorTest,
-       ShiftMarkers_ReplaceContainsEndOfMarker) {
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(0, 10));
-
-  UnsortedDocumentMarkerListEditor::ShiftMarkers(marker_list_, 5, 10, 10);
-
-  EXPECT_EQ(1u, marker_list_->size());
-  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
-  EXPECT_EQ(5u, marker_list_->at(0)->EndOffset());
-}
-
-TEST_F(UnsortedDocumentMarkerListEditorTest, ShiftMarkers_ReplaceEntireMarker) {
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(0, 10));
-
-  // Replace with shorter text
-  UnsortedDocumentMarkerListEditor::ShiftMarkers(marker_list_, 0, 10, 9);
-
-  EXPECT_EQ(1u, marker_list_->size());
-  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
-  EXPECT_EQ(9u, marker_list_->at(0)->EndOffset());
-
-  // Replace with longer text
-  UnsortedDocumentMarkerListEditor::ShiftMarkers(marker_list_, 0, 9, 10);
-
-  EXPECT_EQ(1u, marker_list_->size());
-  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
-  EXPECT_EQ(10u, marker_list_->at(0)->EndOffset());
-
-  // Replace with text of same length
-  UnsortedDocumentMarkerListEditor::ShiftMarkers(marker_list_, 0, 10, 10);
-
-  EXPECT_EQ(1u, marker_list_->size());
-  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
-  EXPECT_EQ(10u, marker_list_->at(0)->EndOffset());
-}
-
-TEST_F(UnsortedDocumentMarkerListEditorTest,
-       ShiftMarkers_ReplaceTextWithMarkerAtBeginning) {
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(0, 10));
-
-  UnsortedDocumentMarkerListEditor::ShiftMarkers(marker_list_, 0, 15, 15);
-
-  EXPECT_EQ(0u, marker_list_->size());
-}
-
-TEST_F(UnsortedDocumentMarkerListEditorTest,
-       ShiftMarkers_ReplaceTextWithMarkerAtEnd) {
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(5, 15));
-
-  UnsortedDocumentMarkerListEditor::ShiftMarkers(marker_list_, 0, 15, 15);
-
-  EXPECT_EQ(0u, marker_list_->size());
-}
-
-TEST_F(UnsortedDocumentMarkerListEditorTest, ShiftMarkers_Deletions) {
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_, CreateMarker(0, 5));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(5, 10));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(10, 15));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(15, 20));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(20, 25));
-
-  // Delete range containing the end of the second marker, the entire third
-  // marker, and the start of the fourth marker
-  UnsortedDocumentMarkerListEditor::ShiftMarkers(marker_list_, 8, 9, 0);
-
-  EXPECT_EQ(4u, marker_list_->size());
-
-  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
-  EXPECT_EQ(5u, marker_list_->at(0)->EndOffset());
-
-  EXPECT_EQ(5u, marker_list_->at(1)->StartOffset());
-  EXPECT_EQ(8u, marker_list_->at(1)->EndOffset());
-
-  EXPECT_EQ(8u, marker_list_->at(2)->StartOffset());
-  EXPECT_EQ(11u, marker_list_->at(2)->EndOffset());
-
-  EXPECT_EQ(11u, marker_list_->at(3)->StartOffset());
-  EXPECT_EQ(16u, marker_list_->at(3)->EndOffset());
-}
-
-TEST_F(UnsortedDocumentMarkerListEditorTest,
-       ShiftMarkers_DeletionWithinNested) {
-  // A marker that overlaps the range with markers that do not overlap
-  // nested within it.
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(5, 35));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(7, 10));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(15, 25));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(30, 32));
-
-  // Delete range overlapping the outermost marker and containing the
-  // third marker.
-  UnsortedDocumentMarkerListEditor::ShiftMarkers(marker_list_, 15, 10, 0);
-
-  EXPECT_EQ(3u, marker_list_->size());
-
-  EXPECT_EQ(5u, marker_list_->at(0)->StartOffset());
-  EXPECT_EQ(25u, marker_list_->at(0)->EndOffset());
-
-  EXPECT_EQ(7u, marker_list_->at(1)->StartOffset());
-  EXPECT_EQ(10u, marker_list_->at(1)->EndOffset());
-
-  EXPECT_EQ(20u, marker_list_->at(2)->StartOffset());
-  EXPECT_EQ(22u, marker_list_->at(2)->EndOffset());
-}
-
-TEST_F(UnsortedDocumentMarkerListEditorTest,
-       ShiftMarkers_DeleteExactlyOnMarker) {
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(0, 10));
-
-  UnsortedDocumentMarkerListEditor::ShiftMarkers(marker_list_, 0, 10, 0);
-
-  EXPECT_EQ(0u, marker_list_->size());
-}
-
-TEST_F(UnsortedDocumentMarkerListEditorTest,
-       ShiftMarkers_InsertInMarkerInterior) {
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_, CreateMarker(0, 5));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(5, 10));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(10, 15));
-
-  // insert in middle of second marker
-  UnsortedDocumentMarkerListEditor::ShiftMarkers(marker_list_, 7, 0, 5);
-
-  EXPECT_EQ(3u, marker_list_->size());
-
-  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
-  EXPECT_EQ(5u, marker_list_->at(0)->EndOffset());
-
-  EXPECT_EQ(5u, marker_list_->at(1)->StartOffset());
-  EXPECT_EQ(15u, marker_list_->at(1)->EndOffset());
-
-  EXPECT_EQ(15u, marker_list_->at(2)->StartOffset());
-  EXPECT_EQ(20u, marker_list_->at(2)->EndOffset());
-}
-
-TEST_F(UnsortedDocumentMarkerListEditorTest,
-       ShiftMarkers_InsertBetweenMarkers) {
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_, CreateMarker(0, 5));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(5, 10));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(10, 15));
-
-  // insert before second marker
-  UnsortedDocumentMarkerListEditor::ShiftMarkers(marker_list_, 5, 0, 5);
-
-  EXPECT_EQ(3u, marker_list_->size());
-
-  EXPECT_EQ(0u, marker_list_->at(0)->StartOffset());
-  EXPECT_EQ(5u, marker_list_->at(0)->EndOffset());
-
-  EXPECT_EQ(10u, marker_list_->at(1)->StartOffset());
-  EXPECT_EQ(15u, marker_list_->at(1)->EndOffset());
-
-  EXPECT_EQ(15u, marker_list_->at(2)->StartOffset());
-  EXPECT_EQ(20u, marker_list_->at(2)->EndOffset());
-}
-
-TEST_F(UnsortedDocumentMarkerListEditorTest,
-       MarkersIntersectingRange_RangeContainingNoMarkers) {
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(0, 10));
-
-  UnsortedDocumentMarkerListEditor::MarkerList markers_intersecting_range =
-      UnsortedDocumentMarkerListEditor::MarkersIntersectingRange(*marker_list_,
-                                                                 10, 15);
-  EXPECT_EQ(0u, markers_intersecting_range.size());
-}
-
-TEST_F(UnsortedDocumentMarkerListEditorTest,
-       MarkersIntersectingRange_TouchingStart) {
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_, CreateMarker(0, 9));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_, CreateMarker(1, 9));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(0, 10));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(1, 10));
-
-  UnsortedDocumentMarkerListEditor::MarkerList markers_intersecting_range =
-      UnsortedDocumentMarkerListEditor::MarkersIntersectingRange(*marker_list_,
-                                                                 0, 1);
-
-  EXPECT_EQ(2u, markers_intersecting_range.size());
-
-  EXPECT_EQ(0u, markers_intersecting_range[0]->StartOffset());
-  EXPECT_EQ(9u, markers_intersecting_range[0]->EndOffset());
-
-  EXPECT_EQ(0u, markers_intersecting_range[1]->StartOffset());
-  EXPECT_EQ(10u, markers_intersecting_range[1]->EndOffset());
-}
-
-TEST_F(UnsortedDocumentMarkerListEditorTest,
-       MarkersIntersectingRange_TouchingEnd) {
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_, CreateMarker(0, 9));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_, CreateMarker(1, 9));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(0, 10));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(1, 10));
-
-  UnsortedDocumentMarkerListEditor::MarkerList markers_intersecting_range =
-      UnsortedDocumentMarkerListEditor::MarkersIntersectingRange(*marker_list_,
-                                                                 9, 10);
-
-  EXPECT_EQ(2u, markers_intersecting_range.size());
-
-  EXPECT_EQ(0u, markers_intersecting_range[0]->StartOffset());
-  EXPECT_EQ(10u, markers_intersecting_range[0]->EndOffset());
-
-  EXPECT_EQ(1u, markers_intersecting_range[1]->StartOffset());
-  EXPECT_EQ(10u, markers_intersecting_range[1]->EndOffset());
-}
-
-TEST_F(UnsortedDocumentMarkerListEditorTest,
-       MarkersIntersectingRange_CollapsedRange) {
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(5, 10));
-
-  UnsortedDocumentMarkerListEditor::MarkerList markers_intersecting_range =
-      UnsortedDocumentMarkerListEditor::MarkersIntersectingRange(*marker_list_,
-                                                                 7, 7);
-  EXPECT_EQ(1u, markers_intersecting_range.size());
-
-  EXPECT_EQ(5u, markers_intersecting_range[0]->StartOffset());
-  EXPECT_EQ(10u, markers_intersecting_range[0]->EndOffset());
-}
-
-TEST_F(UnsortedDocumentMarkerListEditorTest,
-       MarkersIntersectingRange_NestedMarkers) {
-  // A marker that overlaps the range with markers that do not overlap
-  // nested within it.
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(5, 35));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(7, 10));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(15, 25));
-  UnsortedDocumentMarkerListEditor::AddMarker(marker_list_,
-                                              CreateMarker(30, 32));
-
-  UnsortedDocumentMarkerListEditor::MarkerList markers_intersecting_range =
-      UnsortedDocumentMarkerListEditor::MarkersIntersectingRange(*marker_list_,
-                                                                 15, 25);
-  EXPECT_EQ(2u, markers_intersecting_range.size());
-
-  EXPECT_EQ(5u, markers_intersecting_range[0]->StartOffset());
-  EXPECT_EQ(35u, markers_intersecting_range[0]->EndOffset());
-  EXPECT_EQ(15u, markers_intersecting_range[1]->StartOffset());
-  EXPECT_EQ(25u, markers_intersecting_range[1]->EndOffset());
-}
-
-}  // namespace blink
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc
index f554c31..f7cc042 100644
--- a/third_party/blink/renderer/core/exported/web_view_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
@@ -49,6 +49,7 @@
 #include "third_party/blink/public/common/history/session_history_constants.h"
 #include "third_party/blink/public/common/input/web_input_event.h"
 #include "third_party/blink/public/common/input/web_menu_source_type.h"
+#include "third_party/blink/public/common/page/color_provider_color_maps.h"
 #include "third_party/blink/public/common/page/page_zoom.h"
 #include "third_party/blink/public/common/renderer_preferences/renderer_preferences.h"
 #include "third_party/blink/public/common/switches.h"
@@ -3266,6 +3267,11 @@
   UpdateBaseBackgroundColor();
 }
 
+void WebViewImpl::UpdateColorProviders(
+    const ColorProviderColorMaps& color_provider_colors) {
+  page_->UpdateColorProviders(color_provider_colors);
+}
+
 void WebViewImpl::SetBaseBackgroundColorOverrideTransparent(
     bool override_to_transparent) {
   DCHECK(does_composite_);
@@ -3957,6 +3963,11 @@
   web_widget_->SetDeviceColorSpaceForTesting(color_space);
 }
 
+void WebViewImpl::SetColorProviders(
+    const ColorProviderColorMaps& color_provider_colors) {
+  UpdateColorProviders(color_provider_colors);
+}
+
 const SessionStorageNamespaceId& WebViewImpl::GetSessionStorageNamespaceId() {
   CHECK(!session_storage_namespace_id_.empty());
   return session_storage_namespace_id_;
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_party/blink/renderer/core/exported/web_view_impl.h
index 90359a1f..eea00a3 100644
--- a/third_party/blink/renderer/core/exported/web_view_impl.h
+++ b/third_party/blink/renderer/core/exported/web_view_impl.h
@@ -90,6 +90,7 @@
 }
 
 class BrowserControls;
+struct ColorProviderColorMaps;
 class DevToolsEmulator;
 class Frame;
 class FullscreenController;
@@ -221,6 +222,8 @@
   void SetDeviceColorSpaceForTesting(
       const gfx::ColorSpace& color_space) override;
   void PaintContent(cc::PaintCanvas*, const gfx::Rect&) override;
+  void SetColorProviders(
+      const ColorProviderColorMaps& color_provider_colors) override;
   void RegisterRendererPreferenceWatcher(
       CrossVariantMojoRemote<mojom::RendererPreferenceWatcherInterfaceBase>
           watcher) override;
@@ -322,6 +325,8 @@
       const BrowsingContextGroupInfo& browsing_context_group_info) override;
   void SetPageAttributionSupport(
       network::mojom::AttributionSupport support) override;
+  void UpdateColorProviders(
+      const ColorProviderColorMaps& color_provider_colors) override;
 
   void DispatchPersistedPageshow(base::TimeTicks navigation_start);
   void DispatchPagehide(mojom::blink::PagehideDispatch pagehide_dispatch);
diff --git a/third_party/blink/renderer/core/html/closewatcher/close_watcher.cc b/third_party/blink/renderer/core/html/closewatcher/close_watcher.cc
index 97e9843..bb8405d6 100644
--- a/third_party/blink/renderer/core/html/closewatcher/close_watcher.cc
+++ b/third_party/blink/renderer/core/html/closewatcher/close_watcher.cc
@@ -92,12 +92,12 @@
 }
 
 // static
-CloseWatcher* CloseWatcher::Create(LocalDOMWindow* window) {
-  if (!window->GetFrame()) {
+CloseWatcher* CloseWatcher::Create(LocalDOMWindow& window) {
+  if (!window.GetFrame()) {
     return nullptr;
   }
 
-  WatcherStack& stack = *window->closewatcher_stack();
+  WatcherStack& stack = *window.closewatcher_stack();
   return CreateInternal(window, stack, nullptr);
 }
 
@@ -106,7 +106,7 @@
                                    CloseWatcherOptions* options,
                                    ExceptionState& exception_state) {
   LocalDOMWindow* window = LocalDOMWindow::From(script_state);
-  if (!window->GetFrame()) {
+  if (!window || !window->GetFrame()) {
     exception_state.ThrowDOMException(
         DOMExceptionCode::kInvalidStateError,
         "CloseWatchers cannot be created in detached Windows.");
@@ -114,19 +114,19 @@
   }
 
   WatcherStack& stack = *window->closewatcher_stack();
-  return CreateInternal(window, stack, options);
+  return CreateInternal(*window, stack, options);
 }
 
 // static
-CloseWatcher* CloseWatcher::CreateInternal(LocalDOMWindow* window,
+CloseWatcher* CloseWatcher::CreateInternal(LocalDOMWindow& window,
                                            WatcherStack& stack,
                                            CloseWatcherOptions* options) {
-  CHECK(window->document()->IsActive());
+  CHECK(window.document()->IsActive());
 
   CloseWatcher* watcher = MakeGarbageCollected<CloseWatcher>(window);
 
-  if (window->GetFrame()->IsHistoryUserActivationActive()) {
-    window->GetFrame()->ConsumeHistoryUserActivation();
+  if (window.GetFrame()->IsHistoryUserActivationActive()) {
+    window.GetFrame()->ConsumeHistoryUserActivation();
     watcher->created_with_user_activation_ = true;
     watcher->grouped_with_previous_ = false;
   } else if (!stack.HasConsumedFreeWatcher()) {
@@ -151,8 +151,8 @@
   return watcher;
 }
 
-CloseWatcher::CloseWatcher(LocalDOMWindow* window)
-    : ExecutionContextClient(window) {}
+CloseWatcher::CloseWatcher(LocalDOMWindow& window)
+    : ExecutionContextClient(&window) {}
 
 void CloseWatcher::requestClose() {
   if (IsClosed() || dispatching_cancel_ || !DomWindow()) {
diff --git a/third_party/blink/renderer/core/html/closewatcher/close_watcher.h b/third_party/blink/renderer/core/html/closewatcher/close_watcher.h
index 035f178..15404c7 100644
--- a/third_party/blink/renderer/core/html/closewatcher/close_watcher.h
+++ b/third_party/blink/renderer/core/html/closewatcher/close_watcher.h
@@ -27,9 +27,9 @@
                               CloseWatcherOptions*,
                               ExceptionState&);
 
-  static CloseWatcher* Create(LocalDOMWindow*);
+  static CloseWatcher* Create(LocalDOMWindow&);
 
-  explicit CloseWatcher(LocalDOMWindow*);
+  explicit CloseWatcher(LocalDOMWindow&);
 
   void Trace(Visitor*) const override;
 
@@ -80,7 +80,7 @@
   };
 
  private:
-  static CloseWatcher* CreateInternal(LocalDOMWindow*,
+  static CloseWatcher* CreateInternal(LocalDOMWindow&,
                                       WatcherStack&,
                                       CloseWatcherOptions*);
 
diff --git a/third_party/blink/renderer/core/html/html_dialog_element.cc b/third_party/blink/renderer/core/html/html_dialog_element.cc
index 8909f12..1a46d05 100644
--- a/third_party/blink/renderer/core/html/html_dialog_element.cc
+++ b/third_party/blink/renderer/core/html/html_dialog_element.cc
@@ -311,7 +311,7 @@
   document.UpdateStyleAndLayout(DocumentUpdateReason::kJavaScript);
 
   if (LocalDOMWindow* window = GetDocument().domWindow()) {
-    close_watcher_ = CloseWatcher::Create(window);
+    close_watcher_ = CloseWatcher::Create(*window);
     if (close_watcher_) {
       auto* event_listener =
           MakeGarbageCollected<DialogCloseWatcherEventListener>(this);
diff --git a/third_party/blink/renderer/core/html/html_element.cc b/third_party/blink/renderer/core/html/html_element.cc
index 6c2f5111..f008f015 100644
--- a/third_party/blink/renderer/core/html/html_element.cc
+++ b/third_party/blink/renderer/core/html/html_element.cc
@@ -352,9 +352,7 @@
           style, CSSPropertyID::kWebkitUserModify, CSSValueID::kReadOnly);
     }
   } else if (name == html_names::kHiddenAttr) {
-    if (RuntimeEnabledFeatures::BeforeMatchEventEnabled(
-            GetExecutionContext()) &&
-        EqualIgnoringASCIICase(value, "until-found")) {
+    if (EqualIgnoringASCIICase(value, "until-found")) {
       AddPropertyToPresentationAttributeStyle(
           style, CSSPropertyID::kContentVisibility, CSSValueID::kHidden);
       UseCounter::Count(GetDocument(), WebFeature::kHiddenUntilFoundAttribute);
@@ -1118,11 +1116,6 @@
 V8UnionBooleanOrStringOrUnrestrictedDouble* HTMLElement::hidden() const {
   const AtomicString& attribute = FastGetAttribute(html_names::kHiddenAttr);
 
-  if (!RuntimeEnabledFeatures::BeforeMatchEventEnabled(GetExecutionContext())) {
-    return MakeGarbageCollected<V8UnionBooleanOrStringOrUnrestrictedDouble>(
-        attribute != g_null_atom);
-  }
-
   if (attribute == g_null_atom) {
     return MakeGarbageCollected<V8UnionBooleanOrStringOrUnrestrictedDouble>(
         false);
@@ -1149,9 +1142,7 @@
       }
       break;
     case V8UnionBooleanOrStringOrUnrestrictedDouble::ContentType::kString:
-      if (RuntimeEnabledFeatures::BeforeMatchEventEnabled(
-              GetExecutionContext()) &&
-          EqualIgnoringASCIICase(value->GetAsString(), "until-found")) {
+      if (EqualIgnoringASCIICase(value->GetAsString(), "until-found")) {
         setAttribute(html_names::kHiddenAttr, AtomicString("until-found"));
       } else if (value->GetAsString() == "") {
         removeAttribute(html_names::kHiddenAttr);
@@ -1526,7 +1517,10 @@
     }
 
     if (RuntimeEnabledFeatures::CloseWatcherEnabled()) {
-      auto* close_watcher = CloseWatcher::Create(GetDocument().domWindow());
+      CloseWatcher* close_watcher = nullptr;
+      if (auto* window = GetDocument().domWindow()) {
+        close_watcher = CloseWatcher::Create(*window);
+      }
       if (close_watcher) {
         auto* event_listener =
             MakeGarbageCollected<PopoverCloseWatcherEventListener>(this);
diff --git a/third_party/blink/renderer/core/inspector/BUILD.gn b/third_party/blink/renderer/core/inspector/BUILD.gn
index 4b4a3f4..fbe8f2a 100644
--- a/third_party/blink/renderer/core/inspector/BUILD.gn
+++ b/third_party/blink/renderer/core/inspector/BUILD.gn
@@ -119,5 +119,8 @@
     "//v8",
   ]
 
-  public_deps = [ "//third_party/inspector_protocol:crdtp" ]
+  public_deps = [
+    "//third_party/inspector_protocol:crdtp",
+    "//v8:v8_internal_headers",
+  ]
 }
diff --git a/third_party/blink/renderer/core/layout/layout_box.cc b/third_party/blink/renderer/core/layout/layout_box.cc
index debd3bad7..8baf483 100644
--- a/third_party/blink/renderer/core/layout/layout_box.cc
+++ b/third_party/blink/renderer/core/layout/layout_box.cc
@@ -1003,19 +1003,6 @@
   }
 }
 
-int LayoutBox::PixelSnappedClientWidth() const {
-  NOT_DESTROYED();
-  DCHECK(!RuntimeEnabledFeatures::LayoutNewOverflowLogicEnabled());
-  return SnapSizeToPixel(ClientWidth(), PhysicalLocation().left + ClientLeft());
-}
-
-DISABLE_CFI_PERF
-int LayoutBox::PixelSnappedClientHeight() const {
-  NOT_DESTROYED();
-  DCHECK(!RuntimeEnabledFeatures::LayoutNewOverflowLogicEnabled());
-  return SnapSizeToPixel(ClientHeight(), PhysicalLocation().top + ClientTop());
-}
-
 LayoutUnit LayoutBox::ClientWidthWithTableSpecialBehavior() const {
   NOT_DESTROYED();
   // clientWidth/Height is the visual portion of the box content, not including
@@ -1096,25 +1083,6 @@
                   PhysicalLayoutOverflowRect().Bottom() - BorderTop());
 }
 
-int LayoutBox::PixelSnappedScrollWidth() const {
-  NOT_DESTROYED();
-  DCHECK(!RuntimeEnabledFeatures::LayoutNewOverflowLogicEnabled());
-  return SnapSizeToPixel(ScrollWidth(), PhysicalLocation().left + ClientLeft());
-}
-
-int LayoutBox::PixelSnappedScrollHeight() const {
-  NOT_DESTROYED();
-  DCHECK(!RuntimeEnabledFeatures::LayoutNewOverflowLogicEnabled());
-  LayoutUnit top = PhysicalLocation().top;
-  if (IsScrollContainer()) {
-    return SnapSizeToPixel(GetScrollableArea()->ScrollHeight(),
-                           top + ClientTop());
-  }
-  // For objects with visible overflow, this matches IE.
-  // FIXME: Need to work right with writing modes.
-  return SnapSizeToPixel(ScrollHeight(), top + ClientTop());
-}
-
 PhysicalBoxStrut LayoutBox::MarginBoxOutsets() const {
   NOT_DESTROYED();
   if (PhysicalFragmentCount()) {
diff --git a/third_party/blink/renderer/core/layout/layout_box.h b/third_party/blink/renderer/core/layout/layout_box.h
index f44eec5..d116bac 100644
--- a/third_party/blink/renderer/core/layout/layout_box.h
+++ b/third_party/blink/renderer/core/layout/layout_box.h
@@ -564,10 +564,6 @@
     return IsHorizontalWritingMode() ? ClientHeight() : ClientWidth();
   }
 
-  // TODO(crbug.com/962299): This is incorrect in some cases.
-  int PixelSnappedClientWidth() const;
-  int PixelSnappedClientHeight() const;
-
   LayoutUnit ClientWidthWithTableSpecialBehavior() const;
   LayoutUnit ClientHeightWithTableSpecialBehavior() const;
 
@@ -582,9 +578,6 @@
   // TODO(cathiechen): We should do the same with ScrollWidth|Height .
   virtual LayoutUnit ScrollWidth() const;
   virtual LayoutUnit ScrollHeight() const;
-  // TODO(crbug.com/962299): This is incorrect in some cases.
-  int PixelSnappedScrollWidth() const;
-  int PixelSnappedScrollHeight() const;
 
   PhysicalBoxStrut MarginBoxOutsets() const;
   LayoutUnit MarginTop() const override {
@@ -883,19 +876,11 @@
 
   bool HasScrollableOverflowX() const {
     NOT_DESTROYED();
-    if (RuntimeEnabledFeatures::LayoutNewOverflowLogicEnabled()) {
-      return ScrollsOverflowX() && ScrollWidth() != ClientWidth();
-    }
-    return ScrollsOverflowX() &&
-           PixelSnappedScrollWidth() != PixelSnappedClientWidth();
+    return ScrollsOverflowX() && ScrollWidth() != ClientWidth();
   }
   bool HasScrollableOverflowY() const {
     NOT_DESTROYED();
-    if (RuntimeEnabledFeatures::LayoutNewOverflowLogicEnabled()) {
-      return ScrollsOverflowY() && ScrollHeight() != ClientHeight();
-    }
-    return ScrollsOverflowY() &&
-           PixelSnappedScrollHeight() != PixelSnappedClientHeight();
+    return ScrollsOverflowY() && ScrollHeight() != ClientHeight();
   }
   bool ScrollsOverflowX() const {
     NOT_DESTROYED();
diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc
index 43f2b74..c059ec6 100644
--- a/third_party/blink/renderer/core/page/page.cc
+++ b/third_party/blink/renderer/core/page/page.cc
@@ -24,6 +24,7 @@
 #include "base/compiler_specific.h"
 #include "base/feature_list.h"
 #include "third_party/blink/public/common/features.h"
+#include "third_party/blink/public/common/page/color_provider_color_maps.h"
 #include "third_party/blink/public/mojom/frame/lifecycle.mojom-blink-forward.h"
 #include "third_party/blink/public/platform/platform.h"
 #include "third_party/blink/public/web/blink.h"
@@ -92,6 +93,8 @@
 #include "third_party/blink/renderer/platform/scheduler/public/agent_group_scheduler.h"
 #include "third_party/blink/renderer/platform/scheduler/public/frame_scheduler.h"
 #include "third_party/skia/include/core/SkColor.h"
+#include "ui/color/color_provider.h"
+#include "ui/color/color_provider_utils.h"
 
 namespace blink {
 
@@ -459,6 +462,25 @@
     page->InvalidatePaint();
 }
 
+void Page::UpdateColorProviders(
+    const ColorProviderColorMaps& color_provider_colors) {
+  if (color_provider_colors.IsEmpty()) {
+    return;
+  }
+
+  // TODO(samomekarajr): Might want to only create new ColorProviders if the
+  // renderer color maps do not match the existing ColorProviders.
+  light_color_provider_ = std::make_unique<ui::ColorProvider>(
+      ui::CreateColorProviderFromRendererColorMap(
+          color_provider_colors.light_colors_map));
+  dark_color_provider_ = std::make_unique<ui::ColorProvider>(
+      ui::CreateColorProviderFromRendererColorMap(
+          color_provider_colors.dark_colors_map));
+  forced_colors_color_provider_ = std::make_unique<ui::ColorProvider>(
+      ui::CreateColorProviderFromRendererColorMap(
+          color_provider_colors.forced_colors_map));
+}
+
 void Page::InitialStyleChanged() {
   for (Frame* frame = MainFrame(); frame;
        frame = frame->Tree().TraverseNext()) {
diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/renderer/core/page/page.h
index b548b4e..f32dd612 100644
--- a/third_party/blink/renderer/core/page/page.h
+++ b/third_party/blink/renderer/core/page/page.h
@@ -64,12 +64,17 @@
 
 namespace cc {
 class AnimationHost;
-}
+}  // namespace cc
+
+namespace ui {
+class ColorProvider;
+}  // namespace ui
 
 namespace blink {
 class AutoscrollController;
 class BrowserControls;
 class ChromeClient;
+struct ColorProviderColorMaps;
 class ConsoleMessageStorage;
 class ContextMenuController;
 class Document;
@@ -155,6 +160,9 @@
   static void ColorSchemeChanged();
   static void ColorProvidersChanged();
 
+  void UpdateColorProviders(
+      const ColorProviderColorMaps& color_provider_colors);
+
   void InitialStyleChanged();
   void UpdateAcceleratedCompositingSettings();
 
@@ -571,6 +579,12 @@
 
   int subframe_count_;
 
+  // The light, dark and forced_colors mode ColorProviders corresponding to the
+  // top-level web container this Page is associated with.
+  std::unique_ptr<ui::ColorProvider> light_color_provider_;
+  std::unique_ptr<ui::ColorProvider> dark_color_provider_;
+  std::unique_ptr<ui::ColorProvider> forced_colors_color_provider_;
+
   HeapHashSet<WeakMember<PluginsChangedObserver>> plugins_changed_observers_;
 
   // A circular, double-linked list of pages that are related to the current
diff --git a/third_party/blink/renderer/core/page/scrolling/element_fragment_anchor.cc b/third_party/blink/renderer/core/page/scrolling/element_fragment_anchor.cc
index 05185d7..9888544 100644
--- a/third_party/blink/renderer/core/page/scrolling/element_fragment_anchor.cc
+++ b/third_party/blink/renderer/core/page/scrolling/element_fragment_anchor.cc
@@ -81,11 +81,7 @@
     return nullptr;
 
   HTMLDetailsElement::ExpandDetailsAncestors(*anchor_node);
-
-  if (RuntimeEnabledFeatures::BeforeMatchEventEnabled(
-          frame.GetDocument()->GetExecutionContext())) {
-    DisplayLockUtilities::RevealHiddenUntilFoundAncestors(*anchor_node);
-  }
+  DisplayLockUtilities::RevealHiddenUntilFoundAncestors(*anchor_node);
 
   return MakeGarbageCollected<ElementFragmentAnchor>(*anchor_node, frame);
 }
diff --git a/third_party/blink/renderer/core/speculation_rules/speculation_rule_set_test.cc b/third_party/blink/renderer/core/speculation_rules/speculation_rule_set_test.cc
index 307fa40..417dfb4e 100644
--- a/third_party/blink/renderer/core/speculation_rules/speculation_rule_set_test.cc
+++ b/third_party/blink/renderer/core/speculation_rules/speculation_rule_set_test.cc
@@ -1587,9 +1587,9 @@
           MatchesPredicate(Href({URLPattern("/foo#bar")})),
           MatchesPredicate(Href({URLPattern("/foo")})),
           MatchesPredicate(Href({URLPattern("/buzz"), URLPattern("/fizz"),
-                                 URLPattern("https://bar.com")})),
-          MatchesPredicate(Or({Href({URLPattern("https://foo.com")}),
-                               Neg(Href({URLPattern("http://*")}))}))));
+                                 URLPattern("https://bar.com:*")})),
+          MatchesPredicate(Or({Href({URLPattern("https://foo.com:*")}),
+                               Neg(Href({URLPattern("http://*:*")}))}))));
 }
 
 TEST_F(DocumentRulesTest, ParseHref_AllUrlPatternKeys) {
@@ -1604,7 +1604,7 @@
     "hostname": "abc.xyz",
     "baseURL": "https://example.com"
   })");
-  EXPECT_THAT(href_matches, Href({URLPattern("https://abc.xyz:*/*\\?*")}));
+  EXPECT_THAT(href_matches, Href({URLPattern("https://:@abc.xyz:*/*\\?*#")}));
 }
 
 TEST_F(DocumentRulesTest, HrefMatchesWithBaseURL) {
@@ -1802,10 +1802,10 @@
   EXPECT_EQ(rule_set->error_type(),
             SpeculationRuleSetErrorType::kInvalidRulesSkipped);
   EXPECT_THAT(rule_set->prefetch_rules(),
-              ElementsAre(MatchesPredicate(
-                  And({Or({Href({URLPattern("/hello.html")}),
-                           Selector({StyleRuleWithSelectorText(".valid")})}),
-                       Neg(And({Href({URLPattern("https://world.com")})}))}))));
+              ElementsAre(MatchesPredicate(And(
+                  {Or({Href({URLPattern("/hello.html")}),
+                       Selector({StyleRuleWithSelectorText(".valid")})}),
+                   Neg(And({Href({URLPattern("https://world.com:*")})}))}))));
 }
 
 // Tests that errors of individual rules which cause them to be ignored are
diff --git a/third_party/blink/renderer/core/url_pattern/url_pattern.cc b/third_party/blink/renderer/core/url_pattern/url_pattern.cc
index 5118030..62e50fc 100644
--- a/third_party/blink/renderer/core/url_pattern/url_pattern.cc
+++ b/third_party/blink/renderer/core/url_pattern/url_pattern.cc
@@ -19,6 +19,7 @@
 #include "third_party/blink/renderer/core/url_pattern/url_pattern_parser.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
 #include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
+#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
 #include "third_party/blink/renderer/platform/weborigin/kurl.h"
 #include "third_party/blink/renderer/platform/weborigin/security_origin.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
@@ -113,6 +114,9 @@
                String& search,
                String& hash,
                ExceptionState& exception_state) {
+  const bool more_wildcards =
+      RuntimeEnabledFeatures::URLPatternWildcardMoreOftenEnabled();
+
   // If there is a baseURL we need to apply its component values first.  The
   // rest of the URLPatternInit structure will then later override these
   // values.  Note, the baseURL will always set either an empty string or
@@ -128,23 +132,67 @@
       return;
     }
 
-    protocol = base_url.Protocol()
+    // With URLPatternWildcardMoreOften enabled, components are only inherited
+    // from the base URL if no "earlier" component is specified in |init|.
+    // Furthermore, when the base URL is being used as the basis of a pattern
+    // (not a URL being matched against), usernames and passwords are always
+    // wildcarded unless explicitly specified otherwise, because they usually do
+    // not affect which resource is requested (though they do often affect
+    // whether access is authorized).
+    //
+    // Even though they appear earlier than the hostname in a URL, the username
+    // and password are treated as appearing after it because they typically
+    // refer to credentials within a realm on an origin, rather than being used
+    // across all hostnames.
+    //
+    // This partial ordering is represented by the following diagram:
+    //
+    //                                 +-> pathname --> search --> hash
+    // protocol --> hostname --> port -|
+    //                                 +-> username --> password
+    protocol = more_wildcards && init->hasProtocol() ? String()
+               : base_url.Protocol()
                    ? EscapeBaseURLString(base_url.Protocol(), type)
                    : g_empty_string;
-    username = base_url.User() ? EscapeBaseURLString(base_url.User(), type)
-                               : g_empty_string;
-    password = base_url.Pass() ? EscapeBaseURLString(base_url.Pass(), type)
-                               : g_empty_string;
-    hostname = base_url.Host() ? EscapeBaseURLString(base_url.Host(), type)
-                               : g_empty_string;
-    port =
-        base_url.Port() > 0 ? String::Number(base_url.Port()) : g_empty_string;
-    pathname = base_url.GetPath()
+    username = more_wildcards && (type == ValueType::kPattern ||
+                                  (init->hasProtocol() || init->hasHostname() ||
+                                   init->hasPort() || init->hasUsername()))
+                   ? String()
+               : base_url.User() ? EscapeBaseURLString(base_url.User(), type)
+                                 : g_empty_string;
+    password = more_wildcards && (type == ValueType::kPattern ||
+                                  (init->hasProtocol() || init->hasHostname() ||
+                                   init->hasPort() || init->hasUsername() ||
+                                   init->hasPassword()))
+                   ? String()
+               : base_url.Pass() ? EscapeBaseURLString(base_url.Pass(), type)
+                                 : g_empty_string;
+    hostname = more_wildcards && (init->hasProtocol() || init->hasHostname())
+                   ? String()
+               : base_url.Host() ? EscapeBaseURLString(base_url.Host(), type)
+                                 : g_empty_string;
+    port = more_wildcards && (init->hasProtocol() || init->hasHostname() ||
+                              init->hasPort())
+               ? String()
+           : base_url.Port() > 0 ? String::Number(base_url.Port())
+                                 : g_empty_string;
+    pathname = more_wildcards && (init->hasProtocol() || init->hasHostname() ||
+                                  init->hasPort() || init->hasPathname())
+                   ? String()
+               : base_url.GetPath()
                    ? EscapeBaseURLString(base_url.GetPath(), type)
                    : g_empty_string;
-    search = base_url.Query() ? EscapeBaseURLString(base_url.Query(), type)
-                              : g_empty_string;
-    hash = base_url.HasFragmentIdentifier()
+    search = more_wildcards && (init->hasProtocol() || init->hasHostname() ||
+                                init->hasPort() || init->hasPathname() ||
+                                init->hasSearch())
+                 ? String()
+             : base_url.Query() ? EscapeBaseURLString(base_url.Query(), type)
+                                : g_empty_string;
+    hash = more_wildcards && (init->hasProtocol() || init->hasHostname() ||
+                              init->hasPort() || init->hasPathname() ||
+                              init->hasSearch() || init->hasHash())
+               ? String()
+           : base_url.HasFragmentIdentifier()
                ? EscapeBaseURLString(base_url.FragmentIdentifier(), type)
                : g_empty_string;
   }
@@ -754,15 +802,18 @@
                  match(search_, search, search_group_list_ref) &&
                  match(hash_, hash, hash_group_list_ref);
 
-  if (affected_by_string_format_change && script_state) {
-    UseCounter::Count(
-        ExecutionContext::From(script_state),
-        WebFeature::kURLPatternReliantOnImplicitURLComponentsInString);
-  }
-  if (affected_by_base_url_change && script_state) {
-    UseCounter::Count(
-        ExecutionContext::From(script_state),
-        WebFeature::kURLPatternReliantOnLaterComponentFromBaseURL);
+  if (!RuntimeEnabledFeatures::URLPatternWildcardMoreOftenEnabled() &&
+      script_state) {
+    if (affected_by_string_format_change) {
+      UseCounter::Count(
+          ExecutionContext::From(script_state),
+          WebFeature::kURLPatternReliantOnImplicitURLComponentsInString);
+    }
+    if (affected_by_base_url_change) {
+      UseCounter::Count(
+          ExecutionContext::From(script_state),
+          WebFeature::kURLPatternReliantOnLaterComponentFromBaseURL);
+    }
   }
 
   if (!matched || !result)
diff --git a/third_party/blink/renderer/core/url_pattern/url_pattern_histogram_test.cc b/third_party/blink/renderer/core/url_pattern/url_pattern_histogram_test.cc
index b97fb043..e7cd2f97 100644
--- a/third_party/blink/renderer/core/url_pattern/url_pattern_histogram_test.cc
+++ b/third_party/blink/renderer/core/url_pattern/url_pattern_histogram_test.cc
@@ -92,6 +92,10 @@
              << " did not log feature " << feature;
     }
   }
+
+  // This histogram does not function correctly when the new behavior is
+  // enabled.
+  ScopedURLPatternWildcardMoreOftenForTest new_behavior{false};
 };
 
 TEST_F(URLPatternHistogramTest, OmittedSearchAndHashInString) {
diff --git a/third_party/blink/renderer/core/url_pattern/url_pattern_parser.cc b/third_party/blink/renderer/core/url_pattern/url_pattern_parser.cc
index 5e277e15..6f9083b5 100644
--- a/third_party/blink/renderer/core/url_pattern/url_pattern_parser.cc
+++ b/third_party/blink/renderer/core/url_pattern/url_pattern_parser.cc
@@ -5,9 +5,11 @@
 #include "third_party/blink/renderer/core/url_pattern/url_pattern_parser.h"
 
 #include "base/notreached.h"
+#include "base/ranges/algorithm.h"
 #include "third_party/blink/renderer/bindings/core/v8/v8_url_pattern_init.h"
 #include "third_party/blink/renderer/core/url_pattern/url_pattern_component.h"
 #include "third_party/blink/renderer/platform/bindings/exception_state.h"
+#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
 #include "third_party/blink/renderer/platform/wtf/text/string_utf8_adaptor.h"
 #include "third_party/liburlpattern/tokenize.h"
 
@@ -34,23 +36,25 @@
   token_list_ = std::move(tokenize_result.value());
   result_ = MakeGarbageCollected<URLPatternInit>();
 
+  // This enables the behavior proposed in WICG/urlpattern#179.
+  const bool more_wildcards =
+      RuntimeEnabledFeatures::URLPatternWildcardMoreOftenEnabled();
+
   // When constructing a pattern using structured input like
   // `new URLPattern({ pathname: 'foo' })` any missing components will be
-  // defaulted to wildcards.  In the constructor string case, however, all
-  // components are precisely defined as either empty string or a longer
-  // value.  This is due to there being no way to simply "leave out" a
-  // component when writing a URL.  The behavior also matches the URL
-  // constructor.
+  // defaulted to wildcards.
   //
-  // To implement this we initialize components to the empty string in advance.
+  // If |more_wildcards| is false, then the string format will make every
+  // component empty or a longer value, rather than a wildcard. This isn't done
+  // immediately, so that the base URL can be included to provide some component
+  // values for relative URLs. Therefore these values are initialized to their
+  // default values only when the parser exits the kInit state, and it is known
+  // if the pattern is relative or absolute.
   //
-  // We can't, however, do this immediately.  We want to allow the baseURL to
-  // provide information for relative URLs, so we only want to set the default
-  // empty string values for components following the first component in the
-  // relative URL.
-  //
-  // We therefore wait to set the default component values until after we exit
-  // the kInit state and have determined if we are in relative or absolute mode.
+  // If |more_wildcards| is true, components which ordinarily appear "later"
+  // than those specified are instead treated as wildcards, which avoids the
+  // need to explicitly wildcard each of them. As a result, these values are not
+  // initialized to be empty until a "later" component is seen.
 
   // Iterate through the list of tokens and update our state machine as we go.
   for (; token_index_ < token_list_.size(); token_index_ += token_increment_) {
@@ -77,11 +81,15 @@
           ChangeState(StringParseState::kHash, Skip(1));
         } else if (IsSearchPrefix()) {
           ChangeState(StringParseState::kSearch, Skip(1));
-          result_->setHash(g_empty_string);
+          if (!more_wildcards) {
+            result_->setHash(g_empty_string);
+          }
         } else {
           ChangeState(StringParseState::kPathname, Skip(0));
-          result_->setSearch(g_empty_string);
-          result_->setHash(g_empty_string);
+          if (!more_wildcards) {
+            result_->setSearch(g_empty_string);
+            result_->setHash(g_empty_string);
+          }
         }
         continue;
       }
@@ -117,16 +125,18 @@
     switch (state_) {
       case StringParseState::kInit:
         if (IsProtocolSuffix()) {
-          // We are in absolute mode and we know values will not be inherited
-          // from a base URL.  Therefore initialize the rest of the components
-          // to the empty string.
-          result_->setUsername(g_empty_string);
-          result_->setPassword(g_empty_string);
-          result_->setHostname(g_empty_string);
-          result_->setPort(g_empty_string);
-          result_->setPathname(g_empty_string);
-          result_->setSearch(g_empty_string);
-          result_->setHash(g_empty_string);
+          if (!more_wildcards) {
+            // We are in absolute mode and we know values will not be inherited
+            // from a base URL.  Therefore initialize the rest of the components
+            // to the empty string.
+            result_->setUsername(g_empty_string);
+            result_->setPassword(g_empty_string);
+            result_->setHostname(g_empty_string);
+            result_->setPort(g_empty_string);
+            result_->setPathname(g_empty_string);
+            result_->setSearch(g_empty_string);
+            result_->setHash(g_empty_string);
+          }
 
           // Update the state to expect the start of an absolute URL.
           RewindAndSetState(StringParseState::kProtocol);
@@ -145,7 +155,10 @@
             return;
 
           // Standard URLs default to `/` for the pathname.
-          if (should_treat_as_standard_url_) {
+          //
+          // If |more_wildcards| is true, we wait until actually seeing the
+          // pathname or a later component to apply this default.
+          if (should_treat_as_standard_url_ && !more_wildcards) {
             result_->setPathname("/");
           }
 
@@ -268,6 +281,14 @@
         break;
     };
   }
+
+  // Special case: if you specify a hostname, it is assumed that you want the
+  // default port, if you didn't specify. This is ensures that
+  // https://example.com/* does not match https://example.com:8443/, which is
+  // another origin entirely.
+  if (more_wildcards && result_->hasHostname() && !result_->hasPort()) {
+    result_->setPort(g_empty_string);
+  }
 }
 
 void Parser::ChangeState(StringParseState new_state, Skip skip) {
@@ -318,6 +339,39 @@
       break;
   }
 
+  if (RuntimeEnabledFeatures::URLPatternWildcardMoreOftenEnabled() &&
+      state_ != StringParseState::kInit &&
+      new_state != StringParseState::kDone) {
+    // If a component was skipped but a later component is present, it gets its
+    // default value, explicitly.
+    //
+    // This relies on the ordering of the states, which does correspond to the
+    // order of components (aside from authority/username/password, which are
+    // special).
+    static_assert(
+        base::ranges::is_sorted(std::initializer_list<StringParseState>{
+            StringParseState::kHostname, StringParseState::kPort,
+            StringParseState::kPathname, StringParseState::kSearch,
+            StringParseState::kHash}));
+    if (state_ < StringParseState::kHostname &&
+        new_state > StringParseState::kHostname && !result_->hasHostname()) {
+      result_->setHostname(g_empty_string);
+    }
+    if (state_ < StringParseState::kPort &&
+        new_state > StringParseState::kPort && !result_->hasPort()) {
+      result_->setPort(g_empty_string);
+    }
+    if (state_ < StringParseState::kPathname &&
+        new_state > StringParseState::kPathname && !result_->hasPathname()) {
+      result_->setPathname(should_treat_as_standard_url_ ? "/"
+                                                         : g_empty_string);
+    }
+    if (state_ < StringParseState::kSearch &&
+        new_state > StringParseState::kSearch && !result_->hasSearch()) {
+      result_->setSearch(g_empty_string);
+    }
+  }
+
   ChangeStateWithoutSettingComponent(new_state, skip);
 }
 
diff --git a/third_party/blink/renderer/modules/manifest/BUILD.gn b/third_party/blink/renderer/modules/manifest/BUILD.gn
index 18c7139d..6a2f19f6 100644
--- a/third_party/blink/renderer/modules/manifest/BUILD.gn
+++ b/third_party/blink/renderer/modules/manifest/BUILD.gn
@@ -16,8 +16,6 @@
     "manifest_manager.h",
     "manifest_parser.cc",
     "manifest_parser.h",
-    "manifest_uma_util.cc",
-    "manifest_uma_util.h",
   ]
 
   deps = [
diff --git a/third_party/blink/renderer/modules/manifest/manifest_manager.cc b/third_party/blink/renderer/modules/manifest/manifest_manager.cc
index fbfb062..c4188ba 100644
--- a/third_party/blink/renderer/modules/manifest/manifest_manager.cc
+++ b/third_party/blink/renderer/modules/manifest/manifest_manager.cc
@@ -232,6 +232,10 @@
 }
 
 void ManifestManager::RecordMetrics(const mojom::blink::Manifest& manifest) {
+  if (manifest.has_custom_id) {
+    UseCounter::Count(GetSupplementable(), WebFeature::kWebAppManifestIdField);
+  }
+
   if (manifest.capture_links != mojom::blink::CaptureLinks::kUndefined) {
     UseCounter::Count(GetSupplementable(),
                       WebFeature::kWebAppManifestCaptureLinks);
diff --git a/third_party/blink/renderer/modules/manifest/manifest_parser.cc b/third_party/blink/renderer/modules/manifest/manifest_parser.cc
index 411cc0b..58e2cf6 100644
--- a/third_party/blink/renderer/modules/manifest/manifest_parser.cc
+++ b/third_party/blink/renderer/modules/manifest/manifest_parser.cc
@@ -7,6 +7,7 @@
 #include <string>
 
 #include "base/feature_list.h"
+#include "base/metrics/histogram_functions.h"
 #include "net/base/mime_util.h"
 #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
 #include "third_party/blink/public/common/features.h"
@@ -31,7 +32,6 @@
 #include "third_party/blink/renderer/core/css/parser/css_parser_token_range.h"
 #include "third_party/blink/renderer/core/css_value_keywords.h"
 #include "third_party/blink/renderer/core/permissions_policy/permissions_policy_parser.h"
-#include "third_party/blink/renderer/modules/manifest/manifest_uma_util.h"
 #include "third_party/blink/renderer/modules/navigatorcontentutils/navigator_content_utils.h"
 #include "third_party/blink/renderer/platform/json/json_parser.h"
 #include "third_party/blink/renderer/platform/json/json_values.h"
@@ -120,6 +120,44 @@
   return absl::nullopt;
 }
 
+static const char kUMAIdParseResult[] = "Manifest.ParseIdResult";
+
+// Record that the Manifest was successfully parsed. If it is an empty
+// Manifest, it will recorded as so and nothing will happen. Otherwise, the
+// presence of each properties will be recorded.
+void ParseSucceeded(const mojom::blink::ManifestPtr& manifest) {
+  auto empty_manifest = mojom::blink::Manifest::New();
+  if (manifest == empty_manifest) {
+    return;
+  }
+
+  base::UmaHistogramBoolean("Manifest.HasProperty.name",
+                            !manifest->name.empty());
+  base::UmaHistogramBoolean("Manifest.HasProperty.short_name",
+                            !manifest->short_name.empty());
+  base::UmaHistogramBoolean("Manifest.HasProperty.description",
+                            !manifest->description.empty());
+  base::UmaHistogramBoolean("Manifest.HasProperty.start_url",
+                            !manifest->start_url.IsEmpty());
+  base::UmaHistogramBoolean(
+      "Manifest.HasProperty.display",
+      manifest->display != blink::mojom::DisplayMode::kUndefined);
+  base::UmaHistogramBoolean(
+      "Manifest.HasProperty.orientation",
+      manifest->orientation !=
+          device::mojom::blink::ScreenOrientationLockType::DEFAULT);
+  base::UmaHistogramBoolean("Manifest.HasProperty.icons",
+                            !manifest->icons.empty());
+  base::UmaHistogramBoolean("Manifest.HasProperty.screenshots",
+                            !manifest->screenshots.empty());
+  base::UmaHistogramBoolean("Manifest.HasProperty.share_target",
+                            manifest->share_target.get());
+  base::UmaHistogramBoolean("Manifest.HasProperty.protocol_handlers",
+                            !manifest->protocol_handlers.empty());
+  base::UmaHistogramBoolean("Manifest.HasProperty.gcm_sender_id",
+                            !manifest->gcm_sender_id.empty());
+}
+
 }  // anonymous namespace
 
 ManifestParser::ManifestParser(const String& data,
@@ -165,7 +203,12 @@
   manifest_->short_name = ParseShortName(root_object.get());
   manifest_->description = ParseDescription(root_object.get());
   manifest_->start_url = ParseStartURL(root_object.get());
-  manifest_->id = ParseId(root_object.get(), manifest_->start_url);
+
+  const auto& [id, id_parse_result] =
+      ParseId(root_object.get(), manifest_->start_url);
+  manifest_->id = id;
+  manifest_->has_custom_id = id_parse_result == ParseIdResultType::kSucceed;
+
   manifest_->scope = ParseScope(root_object.get(), manifest_->start_url);
   manifest_->display = ParseDisplay(root_object.get());
   manifest_->display_override = ParseDisplayOverride(root_object.get());
@@ -235,7 +278,8 @@
 
   manifest_->version = ParseVersion(root_object.get());
 
-  ManifestUmaUtil::ParseSucceeded(manifest_);
+  ParseSucceeded(manifest_);
+  base::UmaHistogramEnumeration(kUMAIdParseResult, id_parse_result);
 
   return has_comments;
 }
@@ -454,28 +498,27 @@
   return description.has_value() ? *description : String();
 }
 
-KURL ManifestParser::ParseId(const JSONObject* object, const KURL& start_url) {
+std::pair<KURL, ManifestParser::ParseIdResultType> ManifestParser::ParseId(
+    const JSONObject* object,
+    const KURL& start_url) {
   if (!start_url.IsValid()) {
-    ManifestUmaUtil::ParseIdResult(
-        ManifestUmaUtil::ParseIdResultType::kInvalidStartUrl);
-    return KURL();
+    return {KURL(), ParseIdResultType::kInvalidStartUrl};
   }
   KURL start_url_origin = KURL(SecurityOrigin::Create(start_url)->ToString());
 
   KURL id = ParseURL(object, "id", start_url_origin,
                      ParseURLRestrictions::kSameOriginOnly,
                      /*ignore_empty_string=*/true);
+  ParseIdResultType parse_result;
   if (id.IsValid()) {
-    ManifestUmaUtil::ParseIdResult(
-        ManifestUmaUtil::ParseIdResultType::kSucceed);
+    parse_result = ParseIdResultType::kSucceed;
   } else {
     // If id is not specified, sets to start_url
-    ManifestUmaUtil::ParseIdResult(
-        ManifestUmaUtil::ParseIdResultType::kDefaultToStartUrl);
+    parse_result = ParseIdResultType::kDefaultToStartUrl;
     id = start_url;
   }
   id.RemoveFragmentIdentifier();
-  return id;
+  return {id, parse_result};
 }
 
 KURL ManifestParser::ParseStartURL(const JSONObject* object) {
diff --git a/third_party/blink/renderer/modules/manifest/manifest_parser.h b/third_party/blink/renderer/modules/manifest/manifest_parser.h
index 967bc15d..36257b2 100644
--- a/third_party/blink/renderer/modules/manifest/manifest_parser.h
+++ b/third_party/blink/renderer/modules/manifest/manifest_parser.h
@@ -62,6 +62,8 @@
   // Takes ownership of the Manifest produced by Parse(). Once called, the
   // parser is invalid and should no longer be used.
   mojom::blink::ManifestPtr TakeManifest();
+
+  // Take any errors generated.
   void TakeErrors(Vector<mojom::blink::ManifestErrorPtr>* errors);
 
  private:
@@ -77,6 +79,16 @@
                       // (implies same origin as document URL).
   };
 
+  // These values are persisted to logs. Entries should not be renumbered and
+  // numeric values should never be reused.
+  enum class ParseIdResultType {
+    kSucceed = 0,
+    kDefaultToStartUrl = 1,
+    kInvalidStartUrl = 2,
+    kFeatureDisabled = 3,  // No longer emitted, feature flag is removed.
+    kMaxValue = kFeatureDisabled,
+  };
+
   // Helper function to parse booleans present on a given |dictionary| in a
   // given field identified by its |key|.
   // Returns the parsed boolean if any, or |default_value| if parsing failed.
@@ -155,7 +167,8 @@
   String ParseDescription(const JSONObject* object);
 
   // Parses the 'id' field of the manifest.
-  KURL ParseId(const JSONObject* object, const KURL& start_url);
+  std::pair<KURL, ParseIdResultType> ParseId(const JSONObject* object,
+                                             const KURL& start_url);
 
   // Parses the 'scope' field of the manifest, as defined in:
   // https://w3c.github.io/manifest/#scope-member. Returns the parsed KURL if
diff --git a/third_party/blink/renderer/modules/manifest/manifest_uma_util.cc b/third_party/blink/renderer/modules/manifest/manifest_uma_util.cc
deleted file mode 100644
index 1814c1b..0000000
--- a/third_party/blink/renderer/modules/manifest/manifest_uma_util.cc
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright 2014 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "third_party/blink/renderer/modules/manifest/manifest_uma_util.h"
-
-#include "base/metrics/histogram_functions.h"
-#include "base/metrics/histogram_macros.h"
-
-namespace blink {
-
-namespace {
-
-static const char kUMAIdParseResult[] = "Manifest.ParseIdResult";
-
-}  // anonymous namespace
-
-void ManifestUmaUtil::ParseSucceeded(
-    const mojom::blink::ManifestPtr& manifest) {
-  auto empty_manifest = mojom::blink::Manifest::New();
-  if (manifest == empty_manifest)
-    return;
-
-  UMA_HISTOGRAM_BOOLEAN("Manifest.HasProperty.name", !manifest->name.empty());
-  UMA_HISTOGRAM_BOOLEAN("Manifest.HasProperty.short_name",
-                        !manifest->short_name.empty());
-  UMA_HISTOGRAM_BOOLEAN("Manifest.HasProperty.description",
-                        !manifest->description.empty());
-  UMA_HISTOGRAM_BOOLEAN("Manifest.HasProperty.start_url",
-                        !manifest->start_url.IsEmpty());
-  UMA_HISTOGRAM_BOOLEAN(
-      "Manifest.HasProperty.display",
-      manifest->display != blink::mojom::DisplayMode::kUndefined);
-  UMA_HISTOGRAM_BOOLEAN(
-      "Manifest.HasProperty.orientation",
-      manifest->orientation !=
-          device::mojom::blink::ScreenOrientationLockType::DEFAULT);
-  UMA_HISTOGRAM_BOOLEAN("Manifest.HasProperty.icons", !manifest->icons.empty());
-  UMA_HISTOGRAM_BOOLEAN("Manifest.HasProperty.screenshots",
-                        !manifest->screenshots.empty());
-  UMA_HISTOGRAM_BOOLEAN("Manifest.HasProperty.share_target",
-                        manifest->share_target.get());
-  UMA_HISTOGRAM_BOOLEAN("Manifest.HasProperty.protocol_handlers",
-                        !manifest->protocol_handlers.empty());
-  UMA_HISTOGRAM_BOOLEAN("Manifest.HasProperty.gcm_sender_id",
-                        !manifest->gcm_sender_id.empty());
-}
-
-void ManifestUmaUtil::ParseIdResult(ParseIdResultType result) {
-  base::UmaHistogramEnumeration(kUMAIdParseResult, result);
-}
-
-}  // namespace blink
diff --git a/third_party/blink/renderer/modules/manifest/manifest_uma_util.h b/third_party/blink/renderer/modules/manifest/manifest_uma_util.h
deleted file mode 100644
index 1292807..0000000
--- a/third_party/blink/renderer/modules/manifest/manifest_uma_util.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2014 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_MANIFEST_MANIFEST_UMA_UTIL_H_
-#define THIRD_PARTY_BLINK_RENDERER_MODULES_MANIFEST_MANIFEST_UMA_UTIL_H_
-
-#include "third_party/blink/renderer/modules/manifest/manifest_parser.h"
-
-namespace blink {
-
-class ManifestUmaUtil {
- public:
-  // These values are persisted to logs. Entries should not be renumbered and
-  // numeric values should never be reused.
-  enum class ParseIdResultType {
-    kSucceed = 0,
-    kDefaultToStartUrl = 1,
-    kInvalidStartUrl = 2,
-    kFeatureDisabled = 3,
-    kMaxValue = kFeatureDisabled,
-  };
-
-  // Record that the Manifest was successfully parsed. If it is an empty
-  // Manifest, it will recorded as so and nothing will happen. Otherwise, the
-  // presence of each properties will be recorded.
-  static void ParseSucceeded(const mojom::blink::ManifestPtr& manifest);
-
-  // Record the result of parsing manifest id.
-  static void ParseIdResult(ParseIdResultType result);
-};
-
-}  // namespace blink
-
-#endif  // THIRD_PARTY_BLINK_RENDERER_MODULES_MANIFEST_MANIFEST_UMA_UTIL_H_
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_router_type_converter_test.cc b/third_party/blink/renderer/modules/service_worker/service_worker_router_type_converter_test.cc
index 6db01db..24809613 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_router_type_converter_test.cc
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_router_type_converter_test.cc
@@ -28,28 +28,28 @@
 }
 
 blink::SafeUrlPattern DefaultStringUrlPattern() {
+  auto make_fixed_part = [](base::StringPiece value) {
+    liburlpattern::Part part;
+    part.modifier = liburlpattern::Modifier::kNone;
+    part.type = liburlpattern::PartType::kFixed;
+    part.value = value;
+    return part;
+  };
+  auto make_wildcard_part = [](base::StringPiece name) {
+    liburlpattern::Part part;
+    part.modifier = liburlpattern::Modifier::kNone;
+    part.type = liburlpattern::PartType::kFullWildcard;
+    part.name = name;
+    return part;
+  };
   blink::SafeUrlPattern url_pattern;
-  {
-    liburlpattern::Part part;
-    part.modifier = liburlpattern::Modifier::kNone;
-    part.type = liburlpattern::PartType::kFixed;
-    part.value = "https";
-    url_pattern.protocol.emplace_back(part);
-  }
-  {
-    liburlpattern::Part part;
-    part.modifier = liburlpattern::Modifier::kNone;
-    part.type = liburlpattern::PartType::kFixed;
-    part.value = "www.example.com";
-    url_pattern.hostname.emplace_back(part);
-  }
-  {
-    liburlpattern::Part part;
-    part.modifier = liburlpattern::Modifier::kNone;
-    part.type = liburlpattern::PartType::kFixed;
-    part.value = "/test/base/";
-    url_pattern.pathname.emplace_back(part);
-  }
+  url_pattern.protocol.push_back(make_fixed_part("https"));
+  url_pattern.username.push_back(make_wildcard_part("0"));
+  url_pattern.password.push_back(make_wildcard_part("0"));
+  url_pattern.hostname.push_back(make_fixed_part("www.example.com"));
+  url_pattern.pathname.push_back(make_fixed_part("/test/base/"));
+  url_pattern.search.push_back(make_wildcard_part("0"));
+  url_pattern.hash.push_back(make_wildcard_part("0"));
   return url_pattern;
 }
 
diff --git a/third_party/blink/renderer/modules/service_worker/web_service_worker_fetch_context_impl.cc b/third_party/blink/renderer/modules/service_worker/web_service_worker_fetch_context_impl.cc
index 247ea6c..e169dfe 100644
--- a/third_party/blink/renderer/modules/service_worker/web_service_worker_fetch_context_impl.cc
+++ b/third_party/blink/renderer/modules/service_worker/web_service_worker_fetch_context_impl.cc
@@ -177,7 +177,7 @@
     // worker scripts.
     script_url_to_skip_throttling_ = KURL();
   } else if (throttle_provider_) {
-    return throttle_provider_->CreateThrottles(MSG_ROUTING_NONE, request);
+    return throttle_provider_->CreateThrottles(std::nullopt, request);
   }
   return {};
 }
@@ -205,7 +205,7 @@
   if (!websocket_handshake_throttle_provider_)
     return nullptr;
   return websocket_handshake_throttle_provider_->CreateThrottle(
-      MSG_ROUTING_NONE, std::move(task_runner));
+      std::nullopt, std::move(task_runner));
 }
 
 void WebServiceWorkerFetchContextImpl::UpdateSubresourceLoaderFactories(
diff --git a/third_party/blink/renderer/modules/service_worker/web_service_worker_fetch_context_impl_test.cc b/third_party/blink/renderer/modules/service_worker/web_service_worker_fetch_context_impl_test.cc
index 01317e39..39b099c 100644
--- a/third_party/blink/renderer/modules/service_worker/web_service_worker_fetch_context_impl_test.cc
+++ b/third_party/blink/renderer/modules/service_worker/web_service_worker_fetch_context_impl_test.cc
@@ -28,7 +28,7 @@
     }
 
     WebVector<std::unique_ptr<URLLoaderThrottle>> CreateThrottles(
-        int render_frame_id,
+        base::optional_ref<const blink::LocalFrameToken> local_frame_token,
         const WebURLRequest& request) override {
       WebVector<std::unique_ptr<URLLoaderThrottle>> throttles;
       throttles.emplace_back(std::make_unique<FakeURLLoaderThrottle>());
diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/dedicated_or_shared_worker_fetch_context_impl.cc b/third_party/blink/renderer/platform/loader/fetch/url_loader/dedicated_or_shared_worker_fetch_context_impl.cc
index cb0b8541..03beb1fe 100644
--- a/third_party/blink/renderer/platform/loader/fetch/url_loader/dedicated_or_shared_worker_fetch_context_impl.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/url_loader/dedicated_or_shared_worker_fetch_context_impl.cc
@@ -289,8 +289,9 @@
   return new_context;
 }
 
-void DedicatedOrSharedWorkerFetchContextImpl::set_ancestor_frame_id(int id) {
-  ancestor_frame_id_ = id;
+void DedicatedOrSharedWorkerFetchContextImpl::SetAncestorFrameToken(
+    const LocalFrameToken& token) {
+  ancestor_frame_token_ = token;
 }
 
 void DedicatedOrSharedWorkerFetchContextImpl::set_site_for_cookies(
@@ -390,7 +391,7 @@
 DedicatedOrSharedWorkerFetchContextImpl::CreateThrottles(
     const WebURLRequest& request) {
   if (throttle_provider_) {
-    return throttle_provider_->CreateThrottles(ancestor_frame_id_, request);
+    return throttle_provider_->CreateThrottles(ancestor_frame_token_, request);
   }
   return {};
 }
@@ -442,7 +443,7 @@
   if (!websocket_handshake_throttle_provider_)
     return nullptr;
   return websocket_handshake_throttle_provider_->CreateThrottle(
-      ancestor_frame_id_, std::move(task_runner));
+      ancestor_frame_token_, std::move(task_runner));
 }
 
 void DedicatedOrSharedWorkerFetchContextImpl::SetIsOfflineMode(
@@ -535,7 +536,7 @@
       cors_exempt_header_list_,
       std::move(pending_resource_load_info_notifier)));
   new_context->is_on_sub_frame_ = is_on_sub_frame_;
-  new_context->ancestor_frame_id_ = ancestor_frame_id_;
+  new_context->ancestor_frame_token_ = ancestor_frame_token_;
   new_context->site_for_cookies_ = site_for_cookies_;
   new_context->top_frame_origin_ = top_frame_origin_;
   child_preference_watchers_.Add(std::move(preference_watcher));
diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/dedicated_or_shared_worker_fetch_context_impl.h b/third_party/blink/renderer/platform/loader/fetch/url_loader/dedicated_or_shared_worker_fetch_context_impl.h
index f31bd22..9fbebae 100644
--- a/third_party/blink/renderer/platform/loader/fetch/url_loader/dedicated_or_shared_worker_fetch_context_impl.h
+++ b/third_party/blink/renderer/platform/loader/fetch/url_loader/dedicated_or_shared_worker_fetch_context_impl.h
@@ -104,7 +104,7 @@
   //
   // TODO(nhiroki): Add more comments about security/privacy implications to
   // each property, for example, site_for_cookies and top_frame_origin.
-  void set_ancestor_frame_id(int id) override;
+  void SetAncestorFrameToken(const LocalFrameToken& token) override;
   void set_site_for_cookies(
       const net::SiteForCookies& site_for_cookies) override;
   void set_top_frame_origin(const WebSecurityOrigin& top_frame_origin) override;
@@ -124,7 +124,7 @@
   void SetIsOnSubframe(bool) override;
   bool IsOnSubframe() const override;
   net::SiteForCookies SiteForCookies() const override;
-  absl::optional<WebSecurityOrigin> TopFrameOrigin() const override;
+  std::optional<WebSecurityOrigin> TopFrameOrigin() const override;
   void SetSubresourceFilterBuilder(
       std::unique_ptr<WebDocumentSubresourceFilter::Builder>) override;
   std::unique_ptr<WebDocumentSubresourceFilter> TakeSubresourceFilter()
@@ -259,9 +259,9 @@
   // non-nested workers, the closest ancestor for nested workers). For shared
   // workers, this is the shadow page.
   bool is_on_sub_frame_ = false;
-  int ancestor_frame_id_ = MSG_ROUTING_NONE;
+  std::optional<LocalFrameToken> ancestor_frame_token_;
   net::SiteForCookies site_for_cookies_;
-  absl::optional<url::Origin> top_frame_origin_;
+  std::optional<url::Origin> top_frame_origin_;
 
   RendererPreferences renderer_preferences_;
 
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
index 25c0119..c9d526f 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -448,13 +448,6 @@
       base_feature: "none",
     },
     {
-      // https://github.com/WICG/display-locking/blob/master/explainer-beforematch.md
-      name: "BeforeMatchEvent",
-      origin_trial_feature_name: "BeforeMatchEvent",
-      status: "stable",
-      base_feature: "none",
-    },
-    {
       // There are two different code changes guarded by this feature. Both
       // are about triggering a beforeunload cancel dialog and need adoption
       // from developers.
@@ -2298,10 +2291,6 @@
       status: "stable",
     },
     {
-      name: "LayoutNewOverflowLogic",
-      status: "stable",
-    },
-    {
       name: "LayoutNGShapeCache",
       status: "test",
       base_feature: "LayoutNGShapeCache",
@@ -3981,6 +3970,10 @@
       base_feature: "none",
     },
     {
+      name: "URLPatternWildcardMoreOften",
+      status: "stable",
+    },
+    {
       name: "URLSearchParamsHasAndDeleteMultipleArgs",
       status: "stable",
     },
diff --git a/third_party/blink/renderer/platform/text/text_break_iterator.cc b/third_party/blink/renderer/platform/text/text_break_iterator.cc
index ddfbd512..59ad6cc3 100644
--- a/third_party/blink/renderer/platform/text/text_break_iterator.cc
+++ b/third_party/blink/renderer/platform/text/text_break_iterator.cc
@@ -357,16 +357,21 @@
         // prior context.
         if (i || prior_context.length) {
           if (TextBreakIterator* break_iterator = GetIterator(prior_context)) {
-            // Adjust the offset by |start_offset_| because |break_iterator| has
-            // text after |start_offset_|.
-            DCHECK_GE(i + prior_context.length, start_offset_);
-            next_break = i - 1 + prior_context.length - start_offset_;
-            do {
-              next_break = break_iterator->following(next_break);
-            } while (UNLIKELY(disable_soft_hyphen_ && next_break > 0 &&
-                              str[next_break - 1] == kSoftHyphenCharacter));
-            if (next_break >= 0) {
-              next_break = next_break + start_offset_ - prior_context.length;
+            next_break = i - 1;
+            for (;;) {
+              // Adjust the offset by |start_offset_| because |break_iterator|
+              // has text after |start_offset_|.
+              DCHECK_GE(next_break + prior_context.length, start_offset_);
+              next_break = break_iterator->following(
+                  next_break + prior_context.length - start_offset_);
+              if (next_break >= 0) {
+                next_break = next_break + start_offset_ - prior_context.length;
+                if (UNLIKELY(disable_soft_hyphen_) && next_break > 0 &&
+                    UNLIKELY(str[next_break - 1] == kSoftHyphenCharacter)) {
+                  continue;
+                }
+              }
+              break;
             }
           }
         }
diff --git a/third_party/blink/tools/blinkpy/w3c/test_importer.py b/third_party/blink/tools/blinkpy/w3c/test_importer.py
index 526c2f2..bc1dc0f 100644
--- a/third_party/blink/tools/blinkpy/w3c/test_importer.py
+++ b/third_party/blink/tools/blinkpy/w3c/test_importer.py
@@ -253,7 +253,11 @@
 
             self._generate_manifest()
             message = 'Update test expectations and baselines.'
-            self._commit_changes(message)
+            if self.project_git.has_working_directory_changes():
+                self._commit_changes(message)
+            # Even if we didn't commit anything here, we may still upload
+            # `TestExpectations`, which are committed earlier (before
+            # rebaselining).
             self._upload_patchset(message)
         return True
 
diff --git a/third_party/blink/tools/blinkpy/w3c/test_importer_unittest.py b/third_party/blink/tools/blinkpy/w3c/test_importer_unittest.py
index 705a704..2f7a6832 100644
--- a/third_party/blink/tools/blinkpy/w3c/test_importer_unittest.py
+++ b/third_party/blink/tools/blinkpy/w3c/test_importer_unittest.py
@@ -166,7 +166,6 @@
             'INFO: All jobs finished.\n',
             'INFO: Skip Slow and Timeout tests.\n',
             'INFO: Generating MANIFEST.json\n',
-            'INFO: Committing changes.\n',
         ])
 
     def test_run_commit_queue_for_cl_pass(self):
diff --git a/third_party/blink/tools/blinkpy/web_tests/fuzzy_diff_analyzer/fuzzy_diff_analyzer.py b/third_party/blink/tools/blinkpy/web_tests/fuzzy_diff_analyzer/fuzzy_diff_analyzer.py
index b2206e2..43b3aed 100644
--- a/third_party/blink/tools/blinkpy/web_tests/fuzzy_diff_analyzer/fuzzy_diff_analyzer.py
+++ b/third_party/blink/tools/blinkpy/web_tests/fuzzy_diff_analyzer/fuzzy_diff_analyzer.py
@@ -16,12 +16,21 @@
 
 import argparse
 import re
+import urllib.parse
 
+from blinkpy.common.host import Host
+from blinkpy.common.net.luci_auth import LuciAuth
+from blinkpy.w3c.monorail import MonorailAPI
 from blinkpy.web_tests.fuzzy_diff_analyzer import analyzer
 from blinkpy.web_tests.fuzzy_diff_analyzer import queries
 from blinkpy.web_tests.fuzzy_diff_analyzer import results
 
 
+DASHBOARD_BASE_URL = 'https://dashboards.corp.google.com/image_comparison'\
+                     '_web_test_status_dashboard_history_data_per_test'
+RESULT_TITLE = 'Fuzzy Diff Analyzer result:'
+
+
 def ParseArgs() -> argparse.Namespace:
     parser = argparse.ArgumentParser(description=(
         'Script to fuzzy diff analyzer for flaky image comparison web tests'))
@@ -58,6 +67,12 @@
         default=False,
         help='Only checks the image diff tests result on existing bugs in the'
         ' LUCI analysis database.')
+    parser.add_argument(
+        '--attach-analysis-result',
+        action='store_true',
+        default=False,
+        help='Attach the fuzzy diff analysis result to the corresponding bug.'
+        ' Only used with --check-bugs-only flag.')
     args = parser.parse_args()
     return args
 
@@ -80,7 +95,13 @@
                 re.sub('ninja://:blink_w(eb|pt)_tests/', '', test_id)
                 for test_id in bug['test_ids']
             ]
-            bugs[bug['bug_id']] = test_path_list
+            bug_id = ''
+            if bug['bug_id'] and '/' in bug['bug_id']:
+                bug_id = bug['bug_id'].split('/')[1]
+            bugs[bug_id] = test_path_list
+        if args.attach_analysis_result:
+            token = LuciAuth(Host()).get_access_token()
+            monorail_api = MonorailAPI(access_token=token)
     else:
         bugs = {'': [args.test_path]}
 
@@ -95,12 +116,23 @@
                 test_analysis_result = matching_analyzer.run_analyzer(
                     test_data)
                 if test_analysis_result.is_analyzed:
-                    print('')
+                    result_string = RESULT_TITLE
                     if bug_id:
-                        print('bug number: %s' % bug_id)
-                    print('test_name: %s' % test_name)
-                    print('test_result: %s' %
-                          test_analysis_result.analysis_result)
-                    print('')
+                        result_string += '\nbug number: %s' % bug_id
+                    result_string += '\ntest_name: %s' % test_name
+                    result_string += '\ntest_result: %s' % \
+                                     test_analysis_result.analysis_result
+                    result_string += '\ndashboard_link: %s\n' % \
+                                     (DASHBOARD_BASE_URL +
+                                      '?f=test_name_cgk78f:re:' +
+                                      urllib.parse.quote(test_name, safe=''))
+                    if args.attach_analysis_result:
+                        if RESULT_TITLE not in str(
+                                monorail_api.get_comment_list(
+                                    'chromium', bug_id)):
+                            monorail_api.insert_comment(
+                                'chromium', bug_id, result_string)
+                    else:
+                        print(result_string)
 
     return 0
diff --git a/third_party/blink/tools/blinkpy/web_tests/models/testharness_results.py b/third_party/blink/tools/blinkpy/web_tests/models/testharness_results.py
index e832be6c..4a6ab98 100644
--- a/third_party/blink/tools/blinkpy/web_tests/models/testharness_results.py
+++ b/third_party/blink/tools/blinkpy/web_tests/models/testharness_results.py
@@ -213,6 +213,7 @@
     r'\n': '\n',
     r'\r': '\r',
     r'\0': '\0',
+    r'\\': '\\',
 }
 _ESCAPE_SUBSTITUTIONS = str.maketrans({
     unescaped: escaped
diff --git a/third_party/blink/tools/blinkpy/web_tests/models/testharness_results_unittest.py b/third_party/blink/tools/blinkpy/web_tests/models/testharness_results_unittest.py
index 9478847..43d3ad5 100644
--- a/third_party/blink/tools/blinkpy/web_tests/models/testharness_results_unittest.py
+++ b/third_party/blink/tools/blinkpy/web_tests/models/testharness_results_unittest.py
@@ -251,8 +251,8 @@
                 This is a testharness.js-based test.
                 Harness Error. harness_status.status = 1 , harness_status.message = ReferenceError: ShadowRealm is not defined
                 [PASS] Query "geolocation" permission
-                [ FAIL, TIMEOUT ] Window interface: attribute\\n\\0\\revent
-                  assert_true: property should be enumerable\\n\\0\\r  expected true got false
+                [ FAIL, TIMEOUT ] Window interface: attribute\\n\\0\\r\\\\nevent
+                  assert_true: property should be enumerable\\n\\0\\r\\\\n  expected true got false
 
                 CONSOLE ERROR: Console error
                 Harness: the test ran to completion.
@@ -278,10 +278,10 @@
         self.assertIs(results[3].line_type, LineType.SUBTEST)
         self.assertEqual(results[3].statuses, {Status.FAIL, Status.TIMEOUT})
         self.assertEqual(results[3].subtest,
-                         'Window interface: attribute\n\0\revent')
+                         'Window interface: attribute\n\0\r\\nevent')
         self.assertEqual(
             results[3].message, 'assert_true: property should be enumerable'
-            '\n\0\r  expected true got false')
+            '\n\0\r\\n  expected true got false')
 
         self.assertIs(results[4].line_type, LineType.CONSOLE_ERROR)
         self.assertEqual(results[4].statuses, frozenset())
@@ -349,7 +349,7 @@
             TestharnessLine(LineType.HARNESS_ERROR, {Status.ERROR},
                             'SyntaxError'),
             TestharnessLine(LineType.SUBTEST, {Status.PASS, Status.TIMEOUT},
-                            'fake-message\n\r\0', 'subtest-1\n\r\0'),
+                            'fake-message\n\r\0\\n', 'subtest-1\n\r\0\\n'),
             TestharnessLine(LineType.SUBTEST, {Status.NOTRUN},
                             subtest='subtest-2'),
             TestharnessLine(LineType.FOOTER),
@@ -360,8 +360,8 @@
                 CONSOLE WARNING: warning before test
                 This is a testharness.js-based test.
                 Harness Error. harness_status.status = 1 , harness_status.message = SyntaxError
-                [PASS, TIMEOUT] subtest-1\\n\\r\\0
-                  fake-message\\n\\r\\0
+                [PASS, TIMEOUT] subtest-1\\n\\r\\0\\\\n
+                  fake-message\\n\\r\\0\\\\n
                 [NOTRUN] subtest-2
                 Harness: the test ran to completion.
                 """))
diff --git a/third_party/blink/web_tests/animations/composition/backdrop-filter-composition-expected.txt b/third_party/blink/web_tests/animations/composition/backdrop-filter-composition-expected.txt
index b71d5e8..ac67caa8 100644
--- a/third_party/blink/web_tests/animations/composition/backdrop-filter-composition-expected.txt
+++ b/third_party/blink/web_tests/animations/composition/backdrop-filter-composition-expected.txt
@@ -50,33 +50,33 @@
 [PASS] Compositing: property <backdrop-filter> underlying [blur(10px)] from add [grayscale(50%) blur(10px)] to add [grayscale(25%) blur(10px)] at (1) is [blur(10px) grayscale(0.25) blur(10px)]
 [PASS] Compositing: property <backdrop-filter> underlying [blur(10px)] from add [grayscale(50%) blur(10px)] to add [grayscale(25%) blur(10px)] at (1.5) is [blur(10px) grayscale(0.125) blur(10px)]
 [FAIL] Compositing: property <backdrop-filter> underlying [url(#a)] from add [grayscale(50%) blur(30px)] to add [grayscale(25%) blur(40px)] at (-0.5) is [grayscale(0.5) blur(30px)]
-  assert_equals: expected "url ( \" # a \" ) grayscale ( 0.5 ) blur ( 30px ) " but got "grayscale ( 0.5 ) blur ( 30px ) "
+  assert_equals: expected "url ( \\" # a \\" ) grayscale ( 0.5 ) blur ( 30px ) " but got "grayscale ( 0.5 ) blur ( 30px ) "
 [FAIL] Compositing: property <backdrop-filter> underlying [url(#a)] from add [grayscale(50%) blur(30px)] to add [grayscale(25%) blur(40px)] at (0) is [grayscale(0.5) blur(30px)]
-  assert_equals: expected "url ( \" # a \" ) grayscale ( 0.5 ) blur ( 30px ) " but got "grayscale ( 0.5 ) blur ( 30px ) "
+  assert_equals: expected "url ( \\" # a \\" ) grayscale ( 0.5 ) blur ( 30px ) " but got "grayscale ( 0.5 ) blur ( 30px ) "
 [FAIL] Compositing: property <backdrop-filter> underlying [url(#a)] from add [grayscale(50%) blur(30px)] to add [grayscale(25%) blur(40px)] at (0.25) is [grayscale(0.5) blur(30px)]
-  assert_equals: expected "url ( \" # a \" ) grayscale ( 0.5 ) blur ( 30px ) " but got "grayscale ( 0.5 ) blur ( 30px ) "
+  assert_equals: expected "url ( \\" # a \\" ) grayscale ( 0.5 ) blur ( 30px ) " but got "grayscale ( 0.5 ) blur ( 30px ) "
 [FAIL] Compositing: property <backdrop-filter> underlying [url(#a)] from add [grayscale(50%) blur(30px)] to add [grayscale(25%) blur(40px)] at (0.5) is [grayscale(0.25) blur(40px)]
-  assert_equals: expected "url ( \" # a \" ) grayscale ( 0.25 ) blur ( 40px ) " but got "grayscale ( 0.25 ) blur ( 40px ) "
+  assert_equals: expected "url ( \\" # a \\" ) grayscale ( 0.25 ) blur ( 40px ) " but got "grayscale ( 0.25 ) blur ( 40px ) "
 [FAIL] Compositing: property <backdrop-filter> underlying [url(#a)] from add [grayscale(50%) blur(30px)] to add [grayscale(25%) blur(40px)] at (0.75) is [grayscale(0.25) blur(40px)]
-  assert_equals: expected "url ( \" # a \" ) grayscale ( 0.25 ) blur ( 40px ) " but got "grayscale ( 0.25 ) blur ( 40px ) "
+  assert_equals: expected "url ( \\" # a \\" ) grayscale ( 0.25 ) blur ( 40px ) " but got "grayscale ( 0.25 ) blur ( 40px ) "
 [FAIL] Compositing: property <backdrop-filter> underlying [url(#a)] from add [grayscale(50%) blur(30px)] to add [grayscale(25%) blur(40px)] at (1) is [grayscale(0.25) blur(40px)]
-  assert_equals: expected "url ( \" # a \" ) grayscale ( 0.25 ) blur ( 40px ) " but got "grayscale ( 0.25 ) blur ( 40px ) "
+  assert_equals: expected "url ( \\" # a \\" ) grayscale ( 0.25 ) blur ( 40px ) " but got "grayscale ( 0.25 ) blur ( 40px ) "
 [FAIL] Compositing: property <backdrop-filter> underlying [url(#a)] from add [grayscale(50%) blur(30px)] to add [grayscale(25%) blur(40px)] at (1.5) is [grayscale(0.25) blur(40px)]
-  assert_equals: expected "url ( \" # a \" ) grayscale ( 0.25 ) blur ( 40px ) " but got "grayscale ( 0.25 ) blur ( 40px ) "
+  assert_equals: expected "url ( \\" # a \\" ) grayscale ( 0.25 ) blur ( 40px ) " but got "grayscale ( 0.25 ) blur ( 40px ) "
 [FAIL] Compositing: property <backdrop-filter> underlying [blur(10px)] from add [url(#a) brightness(1)] to add [url(#b) brightness(0)] at (-0.5) is [url("#a") brightness(1)]
-  assert_equals: expected "blur ( 10px ) url ( \" # a \" ) brightness ( 1 ) " but got "url ( \" # a \" ) brightness ( 1 ) "
+  assert_equals: expected "blur ( 10px ) url ( \\" # a \\" ) brightness ( 1 ) " but got "url ( \\" # a \\" ) brightness ( 1 ) "
 [FAIL] Compositing: property <backdrop-filter> underlying [blur(10px)] from add [url(#a) brightness(1)] to add [url(#b) brightness(0)] at (0) is [url("#a") brightness(1)]
-  assert_equals: expected "blur ( 10px ) url ( \" # a \" ) brightness ( 1 ) " but got "url ( \" # a \" ) brightness ( 1 ) "
+  assert_equals: expected "blur ( 10px ) url ( \\" # a \\" ) brightness ( 1 ) " but got "url ( \\" # a \\" ) brightness ( 1 ) "
 [FAIL] Compositing: property <backdrop-filter> underlying [blur(10px)] from add [url(#a) brightness(1)] to add [url(#b) brightness(0)] at (0.25) is [url("#a") brightness(1)]
-  assert_equals: expected "blur ( 10px ) url ( \" # a \" ) brightness ( 1 ) " but got "url ( \" # a \" ) brightness ( 1 ) "
+  assert_equals: expected "blur ( 10px ) url ( \\" # a \\" ) brightness ( 1 ) " but got "url ( \\" # a \\" ) brightness ( 1 ) "
 [FAIL] Compositing: property <backdrop-filter> underlying [blur(10px)] from add [url(#a) brightness(1)] to add [url(#b) brightness(0)] at (0.5) is [url("#b") brightness(0)]
-  assert_equals: expected "blur ( 10px ) url ( \" # b \" ) brightness ( 0 ) " but got "url ( \" # b \" ) brightness ( 0 ) "
+  assert_equals: expected "blur ( 10px ) url ( \\" # b \\" ) brightness ( 0 ) " but got "url ( \\" # b \\" ) brightness ( 0 ) "
 [FAIL] Compositing: property <backdrop-filter> underlying [blur(10px)] from add [url(#a) brightness(1)] to add [url(#b) brightness(0)] at (0.75) is [url("#b") brightness(0)]
-  assert_equals: expected "blur ( 10px ) url ( \" # b \" ) brightness ( 0 ) " but got "url ( \" # b \" ) brightness ( 0 ) "
+  assert_equals: expected "blur ( 10px ) url ( \\" # b \\" ) brightness ( 0 ) " but got "url ( \\" # b \\" ) brightness ( 0 ) "
 [FAIL] Compositing: property <backdrop-filter> underlying [blur(10px)] from add [url(#a) brightness(1)] to add [url(#b) brightness(0)] at (1) is [url("#b") brightness(0)]
-  assert_equals: expected "blur ( 10px ) url ( \" # b \" ) brightness ( 0 ) " but got "url ( \" # b \" ) brightness ( 0 ) "
+  assert_equals: expected "blur ( 10px ) url ( \\" # b \\" ) brightness ( 0 ) " but got "url ( \\" # b \\" ) brightness ( 0 ) "
 [FAIL] Compositing: property <backdrop-filter> underlying [blur(10px)] from add [url(#a) brightness(1)] to add [url(#b) brightness(0)] at (1.5) is [url("#b") brightness(0)]
-  assert_equals: expected "blur ( 10px ) url ( \" # b \" ) brightness ( 0 ) " but got "url ( \" # b \" ) brightness ( 0 ) "
+  assert_equals: expected "blur ( 10px ) url ( \\" # b \\" ) brightness ( 0 ) " but got "url ( \\" # b \\" ) brightness ( 0 ) "
 [PASS] Compositing: property <backdrop-filter> underlying [blur(10px)] from accumulate [blur(40px)] to accumulate [blur(90px)] at (-0.5) is [blur(25px)]
 [PASS] Compositing: property <backdrop-filter> underlying [blur(10px)] from accumulate [blur(40px)] to accumulate [blur(90px)] at (0) is [blur(50px)]
 [PASS] Compositing: property <backdrop-filter> underlying [blur(10px)] from accumulate [blur(40px)] to accumulate [blur(90px)] at (0.25) is [blur(62.5px)]
diff --git a/third_party/blink/web_tests/animations/svg-attribute-composition/svg-d-composition-expected.txt b/third_party/blink/web_tests/animations/svg-attribute-composition/svg-d-composition-expected.txt
index d5ebf1d..726d2ed9 100644
--- a/third_party/blink/web_tests/animations/svg-attribute-composition/svg-d-composition-expected.txt
+++ b/third_party/blink/web_tests/animations/svg-attribute-composition/svg-d-composition-expected.txt
@@ -1,13 +1,13 @@
 This is a testharness.js-based test.
 [PASS] This test uses interpolation-test.js.
 [FAIL] SMIL: Interpolate attribute <d> with underlying [M 10 10 H 20] from add [M 20 30 L 40 50] to add [M 30 40 L 50 60] at (0) is [M 20 30 L 40 50]
-  assert_equals: expected "path ( \" M 20 30 L 40 50 \" ) " but got "path ( \" M 30 40 \" ) "
+  assert_equals: expected "path ( \\" M 20 30 L 40 50 \\" ) " but got "path ( \\" M 30 40 \\" ) "
 [FAIL] SMIL: Interpolate attribute <d> with underlying [M 10 10 H 20] from add [M 20 30 L 40 50] to add [M 30 40 L 50 60] at (0.2) is [M 22 32 L 42 52]
-  assert_equals: expected "path ( \" M 22 32 L 42 52 \" ) " but got "path ( \" M 32 42 \" ) "
+  assert_equals: expected "path ( \\" M 22 32 L 42 52 \\" ) " but got "path ( \\" M 32 42 \\" ) "
 [FAIL] SMIL: Interpolate attribute <d> with underlying [M 10 10 H 20] from add [M 20 30 L 40 50] to add [M 30 40 L 50 60] at (0.6) is [M 26 36 L 46 56]
-  assert_equals: expected "path ( \" M 26 36 L 46 56 \" ) " but got "path ( \" M 36 46 \" ) "
+  assert_equals: expected "path ( \\" M 26 36 L 46 56 \\" ) " but got "path ( \\" M 36 46 \\" ) "
 [FAIL] SMIL: Interpolate attribute <d> with underlying [M 10 10 H 20] from add [M 20 30 L 40 50] to add [M 30 40 L 50 60] at (1) is [M 30 40 L 50 60]
-  assert_equals: expected "path ( \" M 30 40 L 50 60 \" ) " but got "path ( \" M 40 50 \" ) "
+  assert_equals: expected "path ( \\" M 30 40 L 50 60 \\" ) " but got "path ( \\" M 40 50 \\" ) "
 [PASS] Web Animations: Interpolate attribute <d> with underlying [M 10 10 H 20] from add [M 20 30 L 40 50] to add [M 30 40 L 50 60] at (-0.4) is [M 16 26 L 36 46]
 [PASS] Web Animations: Interpolate attribute <d> with underlying [M 10 10 H 20] from add [M 20 30 L 40 50] to add [M 30 40 L 50 60] at (0) is [M 20 30 L 40 50]
 [PASS] Web Animations: Interpolate attribute <d> with underlying [M 10 10 H 20] from add [M 20 30 L 40 50] to add [M 30 40 L 50 60] at (0.2) is [M 22 32 L 42 52]
@@ -37,13 +37,13 @@
 [PASS] Web Animations: Interpolate attribute <d> with underlying [M 10 10 L 20 20] from neutral to replace [m 30 40 l 50 60] at (1) is [m 30 40 l 50 60]
 [PASS] Web Animations: Interpolate attribute <d> with underlying [M 10 10 L 20 20] from neutral to replace [m 30 40 l 50 60] at (1.4) is [m 38 52 l 66 80]
 [FAIL] SMIL: Interpolate attribute <d> with underlying [M 10 10 L 20 20] from neutral to add [m 30 40 l 50 60] at (0) is [M 10 10 L 20 20]
-  assert_equals: expected "path ( \" M 10 10 L 20 20 \" ) " but got "none "
+  assert_equals: expected "path ( \\" M 10 10 L 20 20 \\" ) " but got "none "
 [FAIL] SMIL: Interpolate attribute <d> with underlying [M 10 10 L 20 20] from neutral to add [m 30 40 l 50 60] at (0.2) is [m 14 16 l 18 20]
-  assert_equals: expected "path ( \" M 14 16 L 32 36 \" ) " but got "none "
+  assert_equals: expected "path ( \\" M 14 16 L 32 36 \\" ) " but got "none "
 [FAIL] SMIL: Interpolate attribute <d> with underlying [M 10 10 L 20 20] from neutral to add [m 30 40 l 50 60] at (0.6) is [m 22 28 l 34 40]
-  assert_equals: expected "path ( \" M 22 28 L 56 68 \" ) " but got "none "
+  assert_equals: expected "path ( \\" M 22 28 L 56 68 \\" ) " but got "none "
 [FAIL] SMIL: Interpolate attribute <d> with underlying [M 10 10 L 20 20] from neutral to add [m 30 40 l 50 60] at (1) is [m 30 40 l 50 60]
-  assert_equals: expected "path ( \" M 30 40 L 80 100 \" ) " but got "none "
+  assert_equals: expected "path ( \\" M 30 40 L 80 100 \\" ) " but got "none "
 [PASS] Web Animations: Interpolate attribute <d> with underlying [M 10 10 L 20 20] from neutral to add [m 30 40 l 50 60] at (-0.4) is [m 2 -2 l -6 -10]
 [PASS] Web Animations: Interpolate attribute <d> with underlying [M 10 10 L 20 20] from neutral to add [m 30 40 l 50 60] at (0) is [M 10 10 L 20 20]
 [PASS] Web Animations: Interpolate attribute <d> with underlying [M 10 10 L 20 20] from neutral to add [m 30 40 l 50 60] at (0.2) is [m 14 16 l 18 20]
@@ -51,11 +51,11 @@
 [PASS] Web Animations: Interpolate attribute <d> with underlying [M 10 10 L 20 20] from neutral to add [m 30 40 l 50 60] at (1) is [m 30 40 l 50 60]
 [PASS] Web Animations: Interpolate attribute <d> with underlying [M 10 10 L 20 20] from neutral to add [m 30 40 l 50 60] at (1.4) is [m 38 52 l 66 80]
 [FAIL] SMIL: Interpolate attribute <d> with underlying [m 30 40 l 50 60] from add [M 10 10 L 20 20] to neutral at (0) is [M 10 10 L 20 20]
-  assert_equals: expected "path ( \" M 10 10 L 20 20 \" ) " but got "path ( \" M 30 40 L 80 100 \" ) "
+  assert_equals: expected "path ( \\" M 10 10 L 20 20 \\" ) " but got "path ( \\" M 30 40 L 80 100 \\" ) "
 [FAIL] SMIL: Interpolate attribute <d> with underlying [m 30 40 l 50 60] from add [M 10 10 L 20 20] to neutral at (0.2) is [m 14 16 l 18 20]
-  assert_equals: expected "path ( \" M 14 16 L 32 36 \" ) " but got "path ( \" M 30 40 L 80 100 \" ) "
+  assert_equals: expected "path ( \\" M 14 16 L 32 36 \\" ) " but got "path ( \\" M 30 40 L 80 100 \\" ) "
 [FAIL] SMIL: Interpolate attribute <d> with underlying [m 30 40 l 50 60] from add [M 10 10 L 20 20] to neutral at (0.6) is [m 22 28 l 34 40]
-  assert_equals: expected "path ( \" M 22 28 L 56 68 \" ) " but got "path ( \" M 30 40 L 80 100 \" ) "
+  assert_equals: expected "path ( \\" M 22 28 L 56 68 \\" ) " but got "path ( \\" M 30 40 L 80 100 \\" ) "
 [PASS] SMIL: Interpolate attribute <d> with underlying [m 30 40 l 50 60] from add [M 10 10 L 20 20] to neutral at (1) is [m 30 40 l 50 60]
 [PASS] Web Animations: Interpolate attribute <d> with underlying [m 30 40 l 50 60] from add [M 10 10 L 20 20] to neutral at (-0.4) is [m 2 -2 l -6 -10]
 [PASS] Web Animations: Interpolate attribute <d> with underlying [m 30 40 l 50 60] from add [M 10 10 L 20 20] to neutral at (0) is [M 10 10 L 20 20]
diff --git a/third_party/blink/web_tests/animations/svg-attribute-interpolation/svg-d-interpolation-expected.txt b/third_party/blink/web_tests/animations/svg-attribute-interpolation/svg-d-interpolation-expected.txt
index 66a2350a..d1197246 100644
--- a/third_party/blink/web_tests/animations/svg-attribute-interpolation/svg-d-interpolation-expected.txt
+++ b/third_party/blink/web_tests/animations/svg-attribute-interpolation/svg-d-interpolation-expected.txt
@@ -11,13 +11,13 @@
 [PASS] Web Animations: Interpolate attribute <d> from replace [m 0 0 h 1 h 2] to replace [m 0 0 h 3] at (1) is [m 0 0 h 3]
 [PASS] Web Animations: Interpolate attribute <d> from replace [m 0 0 h 1 h 2] to replace [m 0 0 h 3] at (1.4) is [m 0 0 h 3]
 [FAIL] SMIL: Interpolate attribute <d> from replace [m 10 0 h 1] to replace [m 20 0 v 2] at (0) is [m 10 0 h 1]
-  assert_equals: expected "path ( \" M 10 0 H 11 \" ) " but got "path ( \" M 10 0 \" ) "
+  assert_equals: expected "path ( \\" M 10 0 H 11 \\" ) " but got "path ( \\" M 10 0 \\" ) "
 [FAIL] SMIL: Interpolate attribute <d> from replace [m 10 0 h 1] to replace [m 20 0 v 2] at (0.2) is [m 10 0 h 1]
-  assert_equals: expected "path ( \" M 10 0 H 11 \" ) " but got "path ( \" M 12 0 \" ) "
+  assert_equals: expected "path ( \\" M 10 0 H 11 \\" ) " but got "path ( \\" M 12 0 \\" ) "
 [FAIL] SMIL: Interpolate attribute <d> from replace [m 10 0 h 1] to replace [m 20 0 v 2] at (0.6) is [m 20 0 v 2]
-  assert_equals: expected "path ( \" M 20 0 V 2 \" ) " but got "path ( \" M 16 0 \" ) "
+  assert_equals: expected "path ( \\" M 20 0 V 2 \\" ) " but got "path ( \\" M 16 0 \\" ) "
 [FAIL] SMIL: Interpolate attribute <d> from replace [m 10 0 h 1] to replace [m 20 0 v 2] at (1) is [m 20 0 v 2]
-  assert_equals: expected "path ( \" M 20 0 V 2 \" ) " but got "path ( \" M 20 0 \" ) "
+  assert_equals: expected "path ( \\" M 20 0 V 2 \\" ) " but got "path ( \\" M 20 0 \\" ) "
 [PASS] Web Animations: Interpolate attribute <d> from replace [m 10 0 h 1] to replace [m 20 0 v 2] at (-0.4) is [m 10 0 h 1]
 [PASS] Web Animations: Interpolate attribute <d> from replace [m 10 0 h 1] to replace [m 20 0 v 2] at (0) is [m 10 0 h 1]
 [PASS] Web Animations: Interpolate attribute <d> from replace [m 10 0 h 1] to replace [m 20 0 v 2] at (0.2) is [m 10 0 h 1]
diff --git a/third_party/blink/web_tests/external/wpt/cookies/name/name-ctl-expected.txt b/third_party/blink/web_tests/external/wpt/cookies/name/name-ctl-expected.txt
index 981a435..d8c0b4e 100644
--- a/third_party/blink/web_tests/external/wpt/cookies/name/name-ctl-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/cookies/name/name-ctl-expected.txt
@@ -10,7 +10,7 @@
 [PASS] Cookie with %x7 in name is rejected (DOM).
 [PASS] Cookie with %x8 in name is rejected (DOM).
 [FAIL] Cookie with %x9 in name is accepted (DOM).
-  assert_equals: The cookie was set as expected. expected "test9\tname=9" but got ""
+  assert_equals: The cookie was set as expected. expected "test9\\tname=9" but got ""
 [PASS] Cookie with %xa in name is rejected (DOM).
 [PASS] Cookie with %xb in name is rejected (DOM).
 [PASS] Cookie with %xc in name is rejected (DOM).
@@ -44,7 +44,7 @@
 [PASS] Cookie with %x7 in name is rejected (HTTP).
 [PASS] Cookie with %x8 in name is rejected (HTTP).
 [FAIL] Cookie with %x9 in name is accepted (HTTP).
-  assert_equals: The cookie was set as expected. expected "test9\tname=9" but got ""
+  assert_equals: The cookie was set as expected. expected "test9\\tname=9" but got ""
 [FAIL] Cookie with %xa in name is rejected or modified (HTTP).
   assert_equals: The cookie was set as expected. expected "test10 name=10" but got "test10"
 [PASS] Cookie with %xb in name is rejected (HTTP).
diff --git a/third_party/blink/web_tests/external/wpt/cookies/value/value-ctl-expected.txt b/third_party/blink/web_tests/external/wpt/cookies/value/value-ctl-expected.txt
index 2d7947e..3d8ea13 100644
--- a/third_party/blink/web_tests/external/wpt/cookies/value/value-ctl-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/cookies/value/value-ctl-expected.txt
@@ -10,7 +10,7 @@
 [PASS] Cookie with %x7 in value is rejected (DOM).
 [PASS] Cookie with %x8 in value is rejected (DOM).
 [FAIL] Cookie with %x9 in value is accepted (DOM).
-  assert_equals: The cookie was set as expected. expected "test=9\tvalue" but got ""
+  assert_equals: The cookie was set as expected. expected "test=9\\tvalue" but got ""
 [PASS] Cookie with %xa in value is rejected (DOM).
 [PASS] Cookie with %xb in value is rejected (DOM).
 [PASS] Cookie with %xc in value is rejected (DOM).
@@ -44,7 +44,7 @@
 [PASS] Cookie with %x7 in value is rejected (HTTP).
 [PASS] Cookie with %x8 in value is rejected (HTTP).
 [FAIL] Cookie with %x9 in value is accepted (HTTP).
-  assert_equals: The cookie was set as expected. expected "test=9\tvalue" but got ""
+  assert_equals: The cookie was set as expected. expected "test=9\\tvalue" but got ""
 [FAIL] Cookie with %xa in name is rejected or modified (HTTP).
   assert_equals: The cookie was set as expected. expected "test10 name=10" but got "test10"
 [PASS] Cookie with %xb in value is rejected (HTTP).
diff --git a/third_party/blink/web_tests/external/wpt/css/css-animations/parsing/animation-name-valid-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-animations/parsing/animation-name-valid-expected.txt
index 33833702a..9b65262 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-animations/parsing/animation-name-valid-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-animations/parsing/animation-name-valid-expected.txt
@@ -6,13 +6,13 @@
 [PASS] e.style['animation-name'] = "infinite" should set the property value
 [PASS] e.style['animation-name'] = "paused" should set the property value
 [PASS] e.style['animation-name'] = "first, second, third" should set the property value
-[FAIL] e.style['animation-name'] = "\"string\"" should set the property value
+[FAIL] e.style['animation-name'] = "\\"string\\"" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['animation-name'] = "\"multi word string\"" should set the property value
+[FAIL] e.style['animation-name'] = "\\"multi word string\\"" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['animation-name'] = "\"initial\"" should set the property value
+[FAIL] e.style['animation-name'] = "\\"initial\\"" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['animation-name'] = "\"---\\22---\"" should set the property value
+[FAIL] e.style['animation-name'] = "\\"---\\\\22---\\"" should set the property value
   assert_not_equals: property should be set got disallowed value ""
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/parsing/background-image-valid-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/parsing/background-image-valid-expected.txt
index dcc3591b..7c778b6 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/parsing/background-image-valid-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/parsing/background-image-valid-expected.txt
@@ -1,7 +1,7 @@
 This is a testharness.js-based test.
 [PASS] e.style['background-image'] = "none" should set the property value
-[PASS] e.style['background-image'] = "url(\"http://www.example.com/\")" should set the property value
-[PASS] e.style['background-image'] = "none, url(\"http://www.example.com/\")" should set the property value
+[PASS] e.style['background-image'] = "url(\\"http://www.example.com/\\")" should set the property value
+[PASS] e.style['background-image'] = "none, url(\\"http://www.example.com/\\")" should set the property value
 [FAIL] e.style['background-image'] = "cross-fade(50% url(http://www.example.com), 50% url(http://www.example.com))" should set the property value
   assert_not_equals: property should be set got disallowed value ""
 [FAIL] e.style['background-image'] = "cross-fade(33% red, 33% white, blue)" should set the property value
diff --git a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/parsing/background-shorthand-serialization-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/parsing/background-shorthand-serialization-expected.txt
index d3d1479..4ac2d8b 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/parsing/background-shorthand-serialization-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/parsing/background-shorthand-serialization-expected.txt
@@ -4,7 +4,7 @@
 [PASS] multiple backgrounds
 [PASS] background-size with non-initial background-position
 [FAIL] multiple backgrounds with varying values
-  assert_equals: expected "url(\"/favicon.ico\") left top no-repeat, url(\"/favicon.ico\") center center / 100% 100% no-repeat, white url(\"/favicon.ico\")" but got "url(\"/favicon.ico\") left top no-repeat, url(\"/favicon.ico\") center center / 100% 100% no-repeat, url(\"/favicon.ico\") white"
+  assert_equals: expected "url(\\"/favicon.ico\\") left top no-repeat, url(\\"/favicon.ico\\") center center / 100% 100% no-repeat, white url(\\"/favicon.ico\\")" but got "url(\\"/favicon.ico\\") left top no-repeat, url(\\"/favicon.ico\\") center center / 100% 100% no-repeat, url(\\"/favicon.ico\\") white"
 [FAIL] all initial values
   assert_equals: expected "none" but got "padding-box border-box"
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/parsing/background-valid-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/parsing/background-valid-expected.txt
index b82b8037c..4d4c730 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-backgrounds/parsing/background-valid-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-backgrounds/parsing/background-valid-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-[PASS] e.style['background'] = "url(\"https://example.com/\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\"https://example.com/\") 1px 2px / 3px 4px space round local padding-box content-box" should set the property value
+[PASS] e.style['background'] = "url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box" should set the property value
 [FAIL] e.style['background'] = "none" should set background-attachment
   assert_equals: background-attachment should be canonical expected "scroll" but got "initial"
 [FAIL] e.style['background'] = "none" should set background-clip
@@ -16,14 +16,14 @@
 [FAIL] e.style['background'] = "none" should set background-size
   assert_equals: background-size should be canonical expected "auto" but got "initial"
 [PASS] e.style['background'] = "none" should not set unrelated longhands
-[PASS] e.style['background'] = "url(\"https://example.com/\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\"https://example.com/\") 1px 2px / 3px 4px space round local padding-box content-box" should set background-attachment
-[PASS] e.style['background'] = "url(\"https://example.com/\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\"https://example.com/\") 1px 2px / 3px 4px space round local padding-box content-box" should set background-clip
-[PASS] e.style['background'] = "url(\"https://example.com/\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\"https://example.com/\") 1px 2px / 3px 4px space round local padding-box content-box" should set background-color
-[PASS] e.style['background'] = "url(\"https://example.com/\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\"https://example.com/\") 1px 2px / 3px 4px space round local padding-box content-box" should set background-image
-[PASS] e.style['background'] = "url(\"https://example.com/\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\"https://example.com/\") 1px 2px / 3px 4px space round local padding-box content-box" should set background-origin
-[PASS] e.style['background'] = "url(\"https://example.com/\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\"https://example.com/\") 1px 2px / 3px 4px space round local padding-box content-box" should set background-position
-[PASS] e.style['background'] = "url(\"https://example.com/\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\"https://example.com/\") 1px 2px / 3px 4px space round local padding-box content-box" should set background-repeat
-[PASS] e.style['background'] = "url(\"https://example.com/\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\"https://example.com/\") 1px 2px / 3px 4px space round local padding-box content-box" should set background-size
-[PASS] e.style['background'] = "url(\"https://example.com/\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\"https://example.com/\") 1px 2px / 3px 4px space round local padding-box content-box" should not set unrelated longhands
+[PASS] e.style['background'] = "url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box" should set background-attachment
+[PASS] e.style['background'] = "url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box" should set background-clip
+[PASS] e.style['background'] = "url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box" should set background-color
+[PASS] e.style['background'] = "url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box" should set background-image
+[PASS] e.style['background'] = "url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box" should set background-origin
+[PASS] e.style['background'] = "url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box" should set background-position
+[PASS] e.style['background'] = "url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box" should set background-repeat
+[PASS] e.style['background'] = "url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box" should set background-size
+[PASS] e.style['background'] = "url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box" should not set unrelated longhands
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-feature-settings-computed-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-feature-settings-computed-expected.txt
index a5117b6..3a20c2f 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-feature-settings-computed-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-feature-settings-computed-expected.txt
@@ -5,9 +5,9 @@
 [PASS] Property font-feature-settings value '"c2sc"'
 [PASS] Property font-feature-settings value '"liga" 0'
 [FAIL] Property font-feature-settings value '"tnum", "hist"'
-  assert_equals: expected "\"hist\", \"tnum\"" but got "\"tnum\", \"hist\""
+  assert_equals: expected "\\"hist\\", \\"tnum\\"" but got "\\"tnum\\", \\"hist\\""
 [PASS] Property font-feature-settings value '"PKRN"'
 [FAIL] Property font-feature-settings value '"dlig", "smcp", "dlig" 0'
-  assert_equals: expected "\"dlig\" 0, \"smcp\"" but got "\"dlig\", \"smcp\", \"dlig\" 0"
+  assert_equals: expected "\\"dlig\\" 0, \\"smcp\\"" but got "\\"dlig\\", \\"smcp\\", \\"dlig\\" 0"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-language-override-valid-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-language-override-valid-expected.txt
index 9047a508..7a7d639 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-language-override-valid-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-fonts/parsing/font-language-override-valid-expected.txt
@@ -1,21 +1,21 @@
 This is a testharness.js-based test.
 [FAIL] e.style['font-language-override'] = "normal" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['font-language-override'] = "\"KSW\"" should set the property value
+[FAIL] e.style['font-language-override'] = "\\"KSW\\"" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['font-language-override'] = "\"APPH\"" should set the property value
+[FAIL] e.style['font-language-override'] = "\\"APPH\\"" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['font-language-override'] = "\"ENG \"" should set the property value
+[FAIL] e.style['font-language-override'] = "\\"ENG \\"" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['font-language-override'] = "\"ksw\"" should set the property value
+[FAIL] e.style['font-language-override'] = "\\"ksw\\"" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['font-language-override'] = "\"tr\"" should set the property value
+[FAIL] e.style['font-language-override'] = "\\"tr\\"" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['font-language-override'] = "\"en  \"" should set the property value
+[FAIL] e.style['font-language-override'] = "\\"en  \\"" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['font-language-override'] = "\" en \"" should set the property value
+[FAIL] e.style['font-language-override'] = "\\" en \\"" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['font-language-override'] = "\"1 %\"" should set the property value
+[FAIL] e.style['font-language-override'] = "\\"1 %\\"" should set the property value
   assert_not_equals: property should be set got disallowed value ""
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-fonts/test_font_feature_values_parsing-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-fonts/test_font_feature_values_parsing-expected.txt
index 0786bba..45e64d63 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-fonts/test_font_feature_values_parsing-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-fonts/test_font_feature_values_parsing-expected.txt
@@ -214,9 +214,9 @@
 [PASS] basic parse tests - @font-feature-values 'bongo' { @styleset { blah: 1; } }
 [PASS] serialization check - @font-feature-values 'bongo' { @styleset { blah: 1; } }
 [PASS] serialization round-trip - @font-feature-values 'bongo' { @styleset { blah: 1; } }
-[PASS] basic parse tests - @font-feature-values \62 ongo { @styleset { blah: 1; } }
-[PASS] serialization check - @font-feature-values \62 ongo { @styleset { blah: 1; } }
-[PASS] serialization round-trip - @font-feature-values \62 ongo { @styleset { blah: 1; } }
+[PASS] basic parse tests - @font-feature-values \\62 ongo { @styleset { blah: 1; } }
+[PASS] serialization check - @font-feature-values \\62 ongo { @styleset { blah: 1; } }
+[PASS] serialization round-trip - @font-feature-values \\62 ongo { @styleset { blah: 1; } }
 [PASS] basic parse tests - @font-feature-values bongo, super bongo, bongo the supreme { @styleset { blah: 1; } }
 [PASS] serialization check - @font-feature-values bongo, super bongo, bongo the supreme { @styleset { blah: 1; } }
 [PASS] serialization round-trip - @font-feature-values bongo, super bongo, bongo the supreme { @styleset { blah: 1; } }
@@ -248,45 +248,45 @@
 [FAIL] serialization check - @font-feature-values bongo { @styleset { blah: 1; de-blah: 1; blah: 2; } }
   assert_equals: canonical cssText serialization doesn't match expected "@styleset { blah: 1; de-blah: 1; blah: 2; }" but got "@styleset { blah: 2; de-blah: 1; }"
 [PASS] serialization round-trip - @font-feature-values bongo { @styleset { blah: 1; de-blah: 1; blah: 2; } }
-[PASS] basic parse tests - @font-feature-values bongo { @styleset { \tra-la: 1; } }
-[PASS] serialization check - @font-feature-values bongo { @styleset { \tra-la: 1; } }
-[PASS] serialization round-trip - @font-feature-values bongo { @styleset { \tra-la: 1; } }
-[PASS] basic parse tests - @font-feature-values bongo { @styleset { b\lah: 1; } }
-[PASS] serialization check - @font-feature-values bongo { @styleset { b\lah: 1; } }
-[PASS] serialization round-trip - @font-feature-values bongo { @styleset { b\lah: 1; } }
-[PASS] basic parse tests - @font-feature-values bongo { @styleset { \62 lah: 1; } }
-[PASS] serialization check - @font-feature-values bongo { @styleset { \62 lah: 1; } }
-[PASS] serialization round-trip - @font-feature-values bongo { @styleset { \62 lah: 1; } }
-[PASS] basic parse tests - @font-feature-values bongo { @styleset { \:blah: 1; } }
-[PASS] serialization check - @font-feature-values bongo { @styleset { \:blah: 1; } }
-[PASS] serialization round-trip - @font-feature-values bongo { @styleset { \:blah: 1; } }
-[PASS] basic parse tests - @font-feature-values bongo { @styleset { \;blah: 1; } }
-[PASS] serialization check - @font-feature-values bongo { @styleset { \;blah: 1; } }
-[PASS] serialization round-trip - @font-feature-values bongo { @styleset { \;blah: 1; } }
-[PASS] basic parse tests - @font-feature-values bongo { @styleset { complex\20 blah: 1; } }
-[PASS] serialization check - @font-feature-values bongo { @styleset { complex\20 blah: 1; } }
-[PASS] serialization round-trip - @font-feature-values bongo { @styleset { complex\20 blah: 1; } }
-[PASS] basic parse tests - @font-feature-values bongo { @styleset { complex\ blah: 1; } }
-[PASS] serialization check - @font-feature-values bongo { @styleset { complex\ blah: 1; } }
-[PASS] serialization round-trip - @font-feature-values bongo { @styleset { complex\ blah: 1; } }
+[PASS] basic parse tests - @font-feature-values bongo { @styleset { \\tra-la: 1; } }
+[PASS] serialization check - @font-feature-values bongo { @styleset { \\tra-la: 1; } }
+[PASS] serialization round-trip - @font-feature-values bongo { @styleset { \\tra-la: 1; } }
+[PASS] basic parse tests - @font-feature-values bongo { @styleset { b\\lah: 1; } }
+[PASS] serialization check - @font-feature-values bongo { @styleset { b\\lah: 1; } }
+[PASS] serialization round-trip - @font-feature-values bongo { @styleset { b\\lah: 1; } }
+[PASS] basic parse tests - @font-feature-values bongo { @styleset { \\62 lah: 1; } }
+[PASS] serialization check - @font-feature-values bongo { @styleset { \\62 lah: 1; } }
+[PASS] serialization round-trip - @font-feature-values bongo { @styleset { \\62 lah: 1; } }
+[PASS] basic parse tests - @font-feature-values bongo { @styleset { \\:blah: 1; } }
+[PASS] serialization check - @font-feature-values bongo { @styleset { \\:blah: 1; } }
+[PASS] serialization round-trip - @font-feature-values bongo { @styleset { \\:blah: 1; } }
+[PASS] basic parse tests - @font-feature-values bongo { @styleset { \\;blah: 1; } }
+[PASS] serialization check - @font-feature-values bongo { @styleset { \\;blah: 1; } }
+[PASS] serialization round-trip - @font-feature-values bongo { @styleset { \\;blah: 1; } }
+[PASS] basic parse tests - @font-feature-values bongo { @styleset { complex\\20 blah: 1; } }
+[PASS] serialization check - @font-feature-values bongo { @styleset { complex\\20 blah: 1; } }
+[PASS] serialization round-trip - @font-feature-values bongo { @styleset { complex\\20 blah: 1; } }
+[PASS] basic parse tests - @font-feature-values bongo { @styleset { complex\\ blah: 1; } }
+[PASS] serialization check - @font-feature-values bongo { @styleset { complex\\ blah: 1; } }
+[PASS] serialization round-trip - @font-feature-values bongo { @styleset { complex\\ blah: 1; } }
 [PASS] basic parse tests - @font-feature-values bongo { @styleset { Håkon: 1; } }
 [PASS] serialization check - @font-feature-values bongo { @styleset { Håkon: 1; } }
 [PASS] serialization round-trip - @font-feature-values bongo { @styleset { Håkon: 1; } }
 [PASS] basic parse tests - @font-feature-values bongo { @styleset { Åквариум: 1; } }
 [PASS] serialization check - @font-feature-values bongo { @styleset { Åквариум: 1; } }
 [PASS] serialization round-trip - @font-feature-values bongo { @styleset { Åквариум: 1; } }
-[PASS] basic parse tests - @font-feature-values bongo { @styleset { \1f449\1f4a9\1f448: 1; } }
-[PASS] serialization check - @font-feature-values bongo { @styleset { \1f449\1f4a9\1f448: 1; } }
-[PASS] serialization round-trip - @font-feature-values bongo { @styleset { \1f449\1f4a9\1f448: 1; } }
+[PASS] basic parse tests - @font-feature-values bongo { @styleset { \\1f449\\1f4a9\\1f448: 1; } }
+[PASS] serialization check - @font-feature-values bongo { @styleset { \\1f449\\1f4a9\\1f448: 1; } }
+[PASS] serialization round-trip - @font-feature-values bongo { @styleset { \\1f449\\1f4a9\\1f448: 1; } }
 [PASS] basic parse tests - @font-feature-values bongo { @styleset { 魅力: 1; } }
 [PASS] serialization check - @font-feature-values bongo { @styleset { 魅力: 1; } }
 [PASS] serialization round-trip - @font-feature-values bongo { @styleset { 魅力: 1; } }
 [PASS] basic parse tests - @font-feature-values bongo { @styleset { 毎日カレーを食べたい!: 1; } }
 [PASS] serialization check - @font-feature-values bongo { @styleset { 毎日カレーを食べたい!: 1; } }
 [PASS] serialization round-trip - @font-feature-values bongo { @styleset { 毎日カレーを食べたい!: 1; } }
-[PASS] basic parse tests - @font-feature-values bongo { @styleset { TECHNICIÄNS\ ÖF\ SPÅCE\ SHIP\ EÅRTH\ THIS\ IS\ YÖÜR\ CÄPTÅIN\ SPEÄKING\ YÖÜR\ ØÅPTÅIN\ IS\ DEA̋D: 1; } }
-[PASS] serialization check - @font-feature-values bongo { @styleset { TECHNICIÄNS\ ÖF\ SPÅCE\ SHIP\ EÅRTH\ THIS\ IS\ YÖÜR\ CÄPTÅIN\ SPEÄKING\ YÖÜR\ ØÅPTÅIN\ IS\ DEA̋D: 1; } }
-[PASS] serialization round-trip - @font-feature-values bongo { @styleset { TECHNICIÄNS\ ÖF\ SPÅCE\ SHIP\ EÅRTH\ THIS\ IS\ YÖÜR\ CÄPTÅIN\ SPEÄKING\ YÖÜR\ ØÅPTÅIN\ IS\ DEA̋D: 1; } }
+[PASS] basic parse tests - @font-feature-values bongo { @styleset { TECHNICIÄNS\\ ÖF\\ SPÅCE\\ SHIP\\ EÅRTH\\ THIS\\ IS\\ YÖÜR\\ CÄPTÅIN\\ SPEÄKING\\ YÖÜR\\ ØÅPTÅIN\\ IS\\ DEA̋D: 1; } }
+[PASS] serialization check - @font-feature-values bongo { @styleset { TECHNICIÄNS\\ ÖF\\ SPÅCE\\ SHIP\\ EÅRTH\\ THIS\\ IS\\ YÖÜR\\ CÄPTÅIN\\ SPEÄKING\\ YÖÜR\\ ØÅPTÅIN\\ IS\\ DEA̋D: 1; } }
+[PASS] serialization round-trip - @font-feature-values bongo { @styleset { TECHNICIÄNS\\ ÖF\\ SPÅCE\\ SHIP\\ EÅRTH\\ THIS\\ IS\\ YÖÜR\\ CÄPTÅIN\\ SPEÄKING\\ YÖÜR\\ ØÅPTÅIN\\ IS\\ DEA̋D: 1; } }
 [PASS] basic parse tests - @font-feature-values bongo { @styleset { 123blah: 1; } }
 [PASS] no value definitions in serialization - @font-feature-values bongo { @styleset { 123blah: 1; } }
 [PASS] invalid declarations don't affect valid ones - @font-feature-values bongo { @styleset { 123blah: 1; } }
@@ -305,8 +305,8 @@
 [PASS] basic parse tests - @font-feature-values bongo { @styleset { complex blah: 1; } }
 [PASS] no value definitions in serialization - @font-feature-values bongo { @styleset { complex blah: 1; } }
 [PASS] invalid declarations don't affect valid ones - @font-feature-values bongo { @styleset { complex blah: 1; } }
-[PASS] basic parse tests - @font-feature-values bongo { @styleset { complex\  blah: 1; } }
-[PASS] no value definitions in serialization - @font-feature-values bongo { @styleset { complex\  blah: 1; } }
-[PASS] invalid declarations don't affect valid ones - @font-feature-values bongo { @styleset { complex\  blah: 1; } }
+[PASS] basic parse tests - @font-feature-values bongo { @styleset { complex\\  blah: 1; } }
+[PASS] no value definitions in serialization - @font-feature-values bongo { @styleset { complex\\  blah: 1; } }
+[PASS] invalid declarations don't affect valid ones - @font-feature-values bongo { @styleset { complex\\  blah: 1; } }
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-fonts/variations/font-style-parsing-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-fonts/variations/font-style-parsing-expected.txt
index 519fefa..cd6cbfb9 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-fonts/variations/font-style-parsing-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-fonts/variations/font-style-parsing-expected.txt
@@ -33,7 +33,7 @@
   assert_equals: Font-style computed style: 'oblique' followed by zero degrees is valid expected "oblique 0deg" but got "normal"
 [PASS] Font-style (computed): 'oblique' followed by positive angle in degrees is valid
 [FAIL] Font-style (computed): 'oblique' followed by positive angle in radians is valid
-  assert_regexp_match: Font-style computed style: 'oblique' followed by positive angle in radians is valid expected object "/^oblique 28\.64\d*deg$/" but got "oblique 28.5deg"
+  assert_regexp_match: Font-style computed style: 'oblique' followed by positive angle in radians is valid expected object "/^oblique 28\\.64\\d*deg$/" but got "oblique 28.5deg"
 [PASS] Font-style (computed): 'oblique' followed by positive angle in gradians is valid
 [PASS] Font-style (computed): 'oblique' followed by positive angle in turns is valid
 [PASS] Font-style (computed): 'oblique' followed by negative angle is valid
diff --git a/third_party/blink/web_tests/external/wpt/css/css-lists/parsing/content-invalid-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-lists/parsing/content-invalid-expected.txt
index 8e6de6dc..6e476f9 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-lists/parsing/content-invalid-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-lists/parsing/content-invalid-expected.txt
@@ -1,33 +1,33 @@
 This is a testharness.js-based test.
 [FAIL] e.style['content'] = "counter(foo, none)" should not set the property value
   assert_equals: expected "" but got "counter(foo, none)"
-[FAIL] e.style['content'] = "counters(foo, \"\", none)" should not set the property value
+[FAIL] e.style['content'] = "counters(foo, \\"\\", none)" should not set the property value
   assert_equals: expected "" but got "counter(foo, none)"
 [PASS] e.style['content'] = "counter(foo, unset)" should not set the property value
-[PASS] e.style['content'] = "counters(foo, \"\", unset)" should not set the property value
+[PASS] e.style['content'] = "counters(foo, \\"\\", unset)" should not set the property value
 [PASS] e.style['content'] = "counter(foo, initial)" should not set the property value
-[PASS] e.style['content'] = "counters(foo, \"\", initial)" should not set the property value
+[PASS] e.style['content'] = "counters(foo, \\"\\", initial)" should not set the property value
 [PASS] e.style['content'] = "counter(foo, inherit)" should not set the property value
-[PASS] e.style['content'] = "counters(foo, \"\", inherit)" should not set the property value
-[FAIL] e.style['content'] = "\"z\" counter(foo, none)" should not set the property value
-  assert_equals: expected "" but got "\"z\" counter(foo, none)"
-[FAIL] e.style['content'] = "\"z\" counters(foo, \"\", none)" should not set the property value
-  assert_equals: expected "" but got "\"z\" counter(foo, none)"
-[PASS] e.style['content'] = "\"z\" counter(foo, unset)" should not set the property value
-[PASS] e.style['content'] = "\"z\" counters(foo, \"\", unset)" should not set the property value
-[PASS] e.style['content'] = "\"z\" counter(foo, initial)" should not set the property value
-[PASS] e.style['content'] = "\"z\" counters(foo, \"\", initial)" should not set the property value
-[PASS] e.style['content'] = "\"z\" counter(foo, inherit)" should not set the property value
-[PASS] e.style['content'] = "\"z\" counters(foo, \"\", inherit)" should not set the property value
-[FAIL] e.style['content'] = "counter(foo, none) \"z\"" should not set the property value
-  assert_equals: expected "" but got "counter(foo, none) \"z\""
-[FAIL] e.style['content'] = "counters(foo, \"\", none) \"z\"" should not set the property value
-  assert_equals: expected "" but got "counter(foo, none) \"z\""
-[PASS] e.style['content'] = "counter(foo, unset) \"z\"" should not set the property value
-[PASS] e.style['content'] = "counters(foo, \"\", unset) \"z\"" should not set the property value
-[PASS] e.style['content'] = "counter(foo, initial) \"z\"" should not set the property value
-[PASS] e.style['content'] = "counters(foo, \"\", initial) \"z\"" should not set the property value
-[PASS] e.style['content'] = "counter(foo, inherit) \"z\"" should not set the property value
-[PASS] e.style['content'] = "counters(foo, \"\", inherit) \"z\"" should not set the property value
+[PASS] e.style['content'] = "counters(foo, \\"\\", inherit)" should not set the property value
+[FAIL] e.style['content'] = "\\"z\\" counter(foo, none)" should not set the property value
+  assert_equals: expected "" but got "\\"z\\" counter(foo, none)"
+[FAIL] e.style['content'] = "\\"z\\" counters(foo, \\"\\", none)" should not set the property value
+  assert_equals: expected "" but got "\\"z\\" counter(foo, none)"
+[PASS] e.style['content'] = "\\"z\\" counter(foo, unset)" should not set the property value
+[PASS] e.style['content'] = "\\"z\\" counters(foo, \\"\\", unset)" should not set the property value
+[PASS] e.style['content'] = "\\"z\\" counter(foo, initial)" should not set the property value
+[PASS] e.style['content'] = "\\"z\\" counters(foo, \\"\\", initial)" should not set the property value
+[PASS] e.style['content'] = "\\"z\\" counter(foo, inherit)" should not set the property value
+[PASS] e.style['content'] = "\\"z\\" counters(foo, \\"\\", inherit)" should not set the property value
+[FAIL] e.style['content'] = "counter(foo, none) \\"z\\"" should not set the property value
+  assert_equals: expected "" but got "counter(foo, none) \\"z\\""
+[FAIL] e.style['content'] = "counters(foo, \\"\\", none) \\"z\\"" should not set the property value
+  assert_equals: expected "" but got "counter(foo, none) \\"z\\""
+[PASS] e.style['content'] = "counter(foo, unset) \\"z\\"" should not set the property value
+[PASS] e.style['content'] = "counters(foo, \\"\\", unset) \\"z\\"" should not set the property value
+[PASS] e.style['content'] = "counter(foo, initial) \\"z\\"" should not set the property value
+[PASS] e.style['content'] = "counters(foo, \\"\\", initial) \\"z\\"" should not set the property value
+[PASS] e.style['content'] = "counter(foo, inherit) \\"z\\"" should not set the property value
+[PASS] e.style['content'] = "counters(foo, \\"\\", inherit) \\"z\\"" should not set the property value
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-lists/parsing/list-style-computed.sub-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-lists/parsing/list-style-computed.sub-expected.txt
index 43b0f553..67a53c2 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-lists/parsing/list-style-computed.sub-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-lists/parsing/list-style-computed.sub-expected.txt
@@ -4,7 +4,7 @@
 [FAIL] Property list-style value 'inside none disc'
   assert_equals: expected "inside" but got "inside none disc"
 [FAIL] Property list-style value 'outside url("https://web-platform.test/") disc'
-  assert_equals: expected "url(\"https://web-platform.test/\")" but got "outside url(\"https://web-platform.test/\") disc"
+  assert_equals: expected "url(\\"https://web-platform.test/\\")" but got "outside url(\\"https://web-platform.test/\\") disc"
 [FAIL] Property list-style value 'outside none square'
   assert_equals: expected "square" but got "outside none square"
 [PASS] Property list-style value 'inside url("https://web-platform.test/") square'
diff --git a/third_party/blink/web_tests/external/wpt/css/css-lists/parsing/list-style-type-valid-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-lists/parsing/list-style-type-valid-expected.txt
index 7f951ab..bf7c4a6 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-lists/parsing/list-style-type-valid-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-lists/parsing/list-style-type-valid-expected.txt
@@ -16,21 +16,21 @@
 [PASS] e.style['list-style-type'] = "georgian" should set the property value
 [PASS] e.style['list-style-type'] = "lower-alpha" should set the property value
 [PASS] e.style['list-style-type'] = "upper-alpha" should set the property value
-[PASS] e.style['list-style-type'] = "\"marker string\"" should set the property value
-[PASS] e.style['list-style-type'] = "\"Note: \"" should set the property value
+[PASS] e.style['list-style-type'] = "\\"marker string\\"" should set the property value
+[PASS] e.style['list-style-type'] = "\\"Note: \\"" should set the property value
 [PASS] e.style['list-style-type'] = "counter-Style-Name" should set the property value
 [PASS] e.style['list-style-type'] = "CounterStyleName" should set the property value
-[FAIL] e.style['list-style-type'] = "symbols(cyclic \"string\")" should set the property value
+[FAIL] e.style['list-style-type'] = "symbols(cyclic \\"string\\")" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['list-style-type'] = "symbols(cyclic \"○\" \"●\")" should set the property value
+[FAIL] e.style['list-style-type'] = "symbols(cyclic \\"○\\" \\"●\\")" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['list-style-type'] = "symbols(fixed \"1\")" should set the property value
+[FAIL] e.style['list-style-type'] = "symbols(fixed \\"1\\")" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['list-style-type'] = "symbols(symbolic \"string\")" should set the property value
+[FAIL] e.style['list-style-type'] = "symbols(symbolic \\"string\\")" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['list-style-type'] = "symbols(alphabetic \"first\" \"second\")" should set the property value
+[FAIL] e.style['list-style-type'] = "symbols(alphabetic \\"first\\" \\"second\\")" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['list-style-type'] = "symbols(numeric \"first\" \"second\")" should set the property value
+[FAIL] e.style['list-style-type'] = "symbols(numeric \\"first\\" \\"second\\")" should set the property value
   assert_not_equals: property should be set got disallowed value ""
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-lists/parsing/list-style-valid-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-lists/parsing/list-style-valid-expected.txt
index 4d9b9ad2..9a7f90e 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-lists/parsing/list-style-valid-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-lists/parsing/list-style-valid-expected.txt
@@ -13,14 +13,14 @@
 [FAIL] e.style['list-style'] = "none none inside" should set the property value
   assert_equals: serialization should be canonical expected "inside none" but got "inside none none"
 [PASS] e.style['list-style'] = "none inside" should set the property value
-[PASS] e.style['list-style'] = "url(\"https://example.com/\")" should set the property value
-[PASS] e.style['list-style'] = "none url(\"https://example.com/\")" should set the property value
-[FAIL] e.style['list-style'] = "url(\"https://example.com/\") disc" should set the property value
-  assert_equals: serialization should be canonical expected "url(\"https://example.com/\")" but got "url(\"https://example.com/\") disc"
-[FAIL] e.style['list-style'] = "url(\"https://example.com/\") disc outside" should set the property value
-  assert_equals: serialization should be canonical expected "url(\"https://example.com/\")" but got "outside url(\"https://example.com/\") disc"
+[PASS] e.style['list-style'] = "url(\\"https://example.com/\\")" should set the property value
+[PASS] e.style['list-style'] = "none url(\\"https://example.com/\\")" should set the property value
+[FAIL] e.style['list-style'] = "url(\\"https://example.com/\\") disc" should set the property value
+  assert_equals: serialization should be canonical expected "url(\\"https://example.com/\\")" but got "url(\\"https://example.com/\\") disc"
+[FAIL] e.style['list-style'] = "url(\\"https://example.com/\\") disc outside" should set the property value
+  assert_equals: serialization should be canonical expected "url(\\"https://example.com/\\")" but got "outside url(\\"https://example.com/\\") disc"
 [PASS] e.style['list-style'] = "square" should set the property value
-[PASS] e.style['list-style'] = "square url(\"https://example.com/\") inside" should set the property value
+[PASS] e.style['list-style'] = "square url(\\"https://example.com/\\") inside" should set the property value
 [PASS] e.style['list-style'] = "square linear-gradient(red,blue) inside" should set the property value
 [FAIL] e.style['list-style'] = "disc radial-gradient(circle, #006, #00a 90%, #0000af 100%,white 100%) inside" should set the property value
   assert_equals: serialization should be canonical expected "inside radial-gradient(circle, rgb(0, 0, 102), rgb(0, 0, 170) 90%, rgb(0, 0, 175) 100%, white 100%)" but got "inside radial-gradient(circle, rgb(0, 0, 102), rgb(0, 0, 170) 90%, rgb(0, 0, 175) 100%, white 100%) disc"
diff --git a/third_party/blink/web_tests/external/wpt/css/css-masking/parsing/mask-valid.sub-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-masking/parsing/mask-valid.sub-expected.txt
index de6ce163..0336070 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-masking/parsing/mask-valid.sub-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-masking/parsing/mask-valid.sub-expected.txt
@@ -3,23 +3,23 @@
 [PASS] e.style['mask'] = "none" should set the property value
 [PASS] e.style['mask'] = "linear-gradient(to left bottom, red, blue)" should set the property value
 [PASS] e.style['mask'] = "linear-gradient(to left bottom, red, blue) luminance" should set the property value
-[PASS] e.style['mask'] = "url(\"https://web-platform.test/\")" should set the property value
+[PASS] e.style['mask'] = "url(\\"https://web-platform.test/\\")" should set the property value
 [PASS] e.style['mask'] = "linear-gradient(to left bottom, red, blue) 1px 2px" should set the property value
-[PASS] e.style['mask'] = "url(\"https://web-platform.test/\") 1px 2px / contain" should set the property value
+[PASS] e.style['mask'] = "url(\\"https://web-platform.test/\\") 1px 2px / contain" should set the property value
 [PASS] e.style['mask'] = "repeat-y" should set the property value
 [PASS] e.style['mask'] = "border-box" should set the property value
 [PASS] e.style['mask'] = "linear-gradient(to left bottom, red, blue) padding-box" should set the property value
 [PASS] e.style['mask'] = "content-box" should set the property value
-[PASS] e.style['mask'] = "url(\"https://web-platform.test/\") fill-box" should set the property value
+[PASS] e.style['mask'] = "url(\\"https://web-platform.test/\\") fill-box" should set the property value
 [PASS] e.style['mask'] = "linear-gradient(to left bottom, red, blue) stroke-box" should set the property value
 [PASS] e.style['mask'] = "view-box" should set the property value
 [PASS] e.style['mask'] = "no-clip" should set the property value
-[PASS] e.style['mask'] = "url(\"https://web-platform.test/\") add" should set the property value
+[PASS] e.style['mask'] = "url(\\"https://web-platform.test/\\") add" should set the property value
 [PASS] e.style['mask'] = "subtract" should set the property value
-[PASS] e.style['mask'] = "url(\"https://web-platform.test/\") intersect" should set the property value
+[PASS] e.style['mask'] = "url(\\"https://web-platform.test/\\") intersect" should set the property value
 [PASS] e.style['mask'] = "linear-gradient(to left bottom, red, blue) exclude" should set the property value
 [PASS] e.style['mask'] = "alpha" should set the property value
-[PASS] e.style['mask'] = "url(\"https://web-platform.test/\") alpha" should set the property value
+[PASS] e.style['mask'] = "url(\\"https://web-platform.test/\\") alpha" should set the property value
 [PASS] e.style['mask'] = "border-box border-box" should set the property value
 [PASS] e.style['mask'] = "content-box content-box" should set the property value
 [PASS] e.style['mask'] = "border-box content-box" should set the property value
diff --git a/third_party/blink/web_tests/external/wpt/css/css-nesting/serialize-group-rules-with-decls-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-nesting/serialize-group-rules-with-decls-expected.txt
index 43c6bdc9..4b93f624 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-nesting/serialize-group-rules-with-decls-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-nesting/serialize-group-rules-with-decls-expected.txt
@@ -1,19 +1,19 @@
 This is a testharness.js-based test.
 [PASS] Declarations are serialized on one line, rules on two.
 [FAIL] Mixed declarations/rules are on two lines.
-  assert_equals: Mixed declarations/rules are on two lines. expected "div {\n  @media screen {\n  & { color: red; background-color: green; }\n}\n}" but got "div {\n  @media screen { color: red; background-color: green; }\n}"
+  assert_equals: Mixed declarations/rules are on two lines. expected "div {\\n  @media screen {\\n  & { color: red; background-color: green; }\\n}\\n}" but got "div {\\n  @media screen { color: red; background-color: green; }\\n}"
 [FAIL] Implicit rule is serialized
-  assert_equals: Implicit rule is serialized expected "div {\n  @supports selector(&) {\n  & { color: red; background-color: green; }\n}\n  &:hover { color: navy; }\n}" but got "div {\n  @supports selector(&) { color: red; background-color: green; }\n  &:hover { color: navy; }\n}"
+  assert_equals: Implicit rule is serialized expected "div {\\n  @supports selector(&) {\\n  & { color: red; background-color: green; }\\n}\\n  &:hover { color: navy; }\\n}" but got "div {\\n  @supports selector(&) { color: red; background-color: green; }\\n  &:hover { color: navy; }\\n}"
 [FAIL] Implicit rule not removed
-  assert_equals: Implicit rule not removed expected "div {\n  @media screen {\n  & { color: red; }\n}\n}" but got "div {\n  @media screen { color: red; }\n}"
+  assert_equals: Implicit rule not removed expected "div {\\n  @media screen {\\n  & { color: red; }\\n}\\n}" but got "div {\\n  @media screen { color: red; }\\n}"
 [PASS] Implicit + empty hover rule
 [PASS] Implicit like rule not in first position
 [FAIL] Two implicit-like rules
-  assert_equals: Two implicit-like rules expected "div {\n  @media screen {\n  & { color: red; }\n  & { color: red; }\n}\n}" but got "div {\n  @media screen {\n  color: red;\n  & { color: red; }\n}\n}"
+  assert_equals: Two implicit-like rules expected "div {\\n  @media screen {\\n  & { color: red; }\\n  & { color: red; }\\n}\\n}" but got "div {\\n  @media screen {\\n  color: red;\\n  & { color: red; }\\n}\\n}"
 [FAIL] Implicit like rule after decls
-  assert_equals: Implicit like rule after decls expected "div {\n  @media screen {\n  & { color: red; }\n  & { color: red; }\n}\n}" but got "div {\n  @media screen {\n  color: red;\n  & { color: red; }\n}\n}"
+  assert_equals: Implicit like rule after decls expected "div {\\n  @media screen {\\n  & { color: red; }\\n  & { color: red; }\\n}\\n}" but got "div {\\n  @media screen {\\n  color: red;\\n  & { color: red; }\\n}\\n}"
 [FAIL] Implicit like rule after decls, missing closing braces
-  assert_equals: Implicit like rule after decls, missing closing braces expected "div {\n  @media screen {\n  & { color: red; }\n  & { color: blue; }\n}\n}" but got "div {\n  @media screen {\n  color: red;\n  & { color: blue; }\n}\n}"
+  assert_equals: Implicit like rule after decls, missing closing braces expected "div {\\n  @media screen {\\n  & { color: red; }\\n  & { color: blue; }\\n}\\n}" but got "div {\\n  @media screen {\\n  color: red;\\n  & { color: blue; }\\n}\\n}"
 [PASS] Implicit like rule with other selectors
 [PASS] Implicit-like rule in style rule
 [PASS] Empty conditional rule
diff --git a/third_party/blink/web_tests/external/wpt/css/css-overflow/parsing/block-ellipsis-valid-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-overflow/parsing/block-ellipsis-valid-expected.txt
index e6a3ae3..44fafff 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-overflow/parsing/block-ellipsis-valid-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-overflow/parsing/block-ellipsis-valid-expected.txt
@@ -3,7 +3,7 @@
   assert_not_equals: property should be set got disallowed value ""
 [FAIL] e.style['block-ellipsis'] = "auto" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['block-ellipsis'] = "\" etc., etc. \"" should set the property value
+[FAIL] e.style['block-ellipsis'] = "\\" etc., etc. \\"" should set the property value
   assert_not_equals: property should be set got disallowed value ""
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-overflow/parsing/line-clamp-valid-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-overflow/parsing/line-clamp-valid-expected.txt
index f3b1d3c..525238db 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-overflow/parsing/line-clamp-valid-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-overflow/parsing/line-clamp-valid-expected.txt
@@ -9,7 +9,7 @@
   assert_not_equals: property should be set got disallowed value ""
 [FAIL] e.style['line-clamp'] = "8 auto" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['line-clamp'] = "9 \" etc., etc. \"" should set the property value
+[FAIL] e.style['line-clamp'] = "9 \\" etc., etc. \\"" should set the property value
   assert_not_equals: property should be set got disallowed value ""
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-shapes/parsing/shape-outside-valid-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-shapes/parsing/shape-outside-valid-expected.txt
index ce2e5fd3..cce64c0c 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-shapes/parsing/shape-outside-valid-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-shapes/parsing/shape-outside-valid-expected.txt
@@ -35,8 +35,8 @@
 [PASS] e.style['shape-outside'] = "margin-box ellipse(at 1em 2em)" should set the property value
 [PASS] e.style['shape-outside'] = "content-box polygon(1% 2%)" should set the property value
 [PASS] e.style['shape-outside'] = "url(https://example.com/)" should set the property value
-[PASS] e.style['shape-outside'] = "url(\"https://example.com/\")" should set the property value
-[FAIL] e.style['shape-outside'] = "cross-fade(url(\"https://example.com/\"), green)" should set the property value
+[PASS] e.style['shape-outside'] = "url(\\"https://example.com/\\")" should set the property value
+[FAIL] e.style['shape-outside'] = "cross-fade(url(\\"https://example.com/\\"), green)" should set the property value
   assert_not_equals: property should be set got disallowed value ""
 [PASS] e.style['shape-outside'] = "linear-gradient(yellow, blue)" should set the property value
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/css/css-syntax/input-preprocessing-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-syntax/input-preprocessing-expected.txt
index d950461f..6101d4f 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-syntax/input-preprocessing-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-syntax/input-preprocessing-expected.txt
@@ -5,14 +5,14 @@
 [PASS] "\0" becomes "�"
 [PASS] "\0\0\0" becomes "���"
 [FAIL] "fooU+d800" becomes "foo�"
-  assert_equals: expected "foo\ufffd" but got "fooU+d800"
+  assert_equals: expected "foo\\ufffd" but got "fooU+d800"
 [FAIL] "fU+d800oo" becomes "f�oo"
-  assert_equals: expected "f\ufffdoo" but got "fU+d800oo"
+  assert_equals: expected "f\\ufffdoo" but got "fU+d800oo"
 [FAIL] "U+d800foo" becomes "�foo"
-  assert_equals: expected "\ufffdfoo" but got "U+d800foo"
+  assert_equals: expected "\\ufffdfoo" but got "U+d800foo"
 [FAIL] "U+d800" becomes "�"
-  assert_equals: expected "\ufffd" but got "U+d800"
+  assert_equals: expected "\\ufffd" but got "U+d800"
 [FAIL] "U+d800U+d800U+d800" becomes "���"
-  assert_equals: expected "\ufffd\ufffd\ufffd" but got "U+d800U+d800U+d800"
+  assert_equals: expected "\\ufffd\\ufffd\\ufffd" but got "U+d800U+d800U+d800"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/hyphens/hyphens-none-shy-on-2nd-line-001.html b/third_party/blink/web_tests/external/wpt/css/css-text/hyphens/hyphens-none-shy-on-2nd-line-001.html
new file mode 100644
index 0000000..3efaa54
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-text/hyphens/hyphens-none-shy-on-2nd-line-001.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<title>CSS Text: `hyphens: none` disables soft hyphens on 2nd and later lines</title>
+<link rel="help" href="https://drafts.csswg.org/css-text-4/#valdef-hyphens-none">
+<link rel="match" href="reference/hyphens-none-shy-on-2nd-line-001-ref.html">
+<style>
+.target {
+  hyphens: none;
+  width: 10ch;
+}
+</style>
+<div class="target">
+  12345678
+  Deoxy&shy;ribo&shy;nucleic
+  Deoxy&shy;ribo&shy;nucleic
+  12345678
+</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/hyphens/reference/hyphens-none-shy-on-2nd-line-001-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/hyphens/reference/hyphens-none-shy-on-2nd-line-001-ref.html
new file mode 100644
index 0000000..932330e9
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-text/hyphens/reference/hyphens-none-shy-on-2nd-line-001-ref.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<style>
+.target {
+  width: 10ch;
+}
+</style>
+<div class="target">
+  12345678
+  Deoxyribonucleic
+  Deoxyribonucleic
+  12345678
+</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-values/urls/fragment-only-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-values/urls/fragment-only-expected.txt
index 37b1f63..e79da1e 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-values/urls/fragment-only-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-values/urls/fragment-only-expected.txt
@@ -1,13 +1,13 @@
 This is a testharness.js-based test.
 [FAIL] empty URL: inline-unquoted
-  assert_equals: expected "url(\"#foo\")" but got "url(\"http://web-platform.test:8001/css/css-values/urls/fragment-only.html#foo\")"
+  assert_equals: expected "url(\\"#foo\\")" but got "url(\\"http://web-platform.test:8001/css/css-values/urls/fragment-only.html#foo\\")"
 [FAIL] empty URL: inline-quoted
-  assert_equals: expected "url(\"#foo\")" but got "url(\"http://web-platform.test:8001/css/css-values/urls/fragment-only.html#foo\")"
+  assert_equals: expected "url(\\"#foo\\")" but got "url(\\"http://web-platform.test:8001/css/css-values/urls/fragment-only.html#foo\\")"
 [FAIL] empty URL: external-unquoted
-  assert_equals: expected "url(\"#foo\")" but got "url(\"http://web-platform.test:8001/css/css-values/urls/support/fragment-only-urls.css#foo\")"
+  assert_equals: expected "url(\\"#foo\\")" but got "url(\\"http://web-platform.test:8001/css/css-values/urls/support/fragment-only-urls.css#foo\\")"
 [FAIL] empty URL: external-quoted
-  assert_equals: expected "url(\"#foo\")" but got "url(\"http://web-platform.test:8001/css/css-values/urls/support/fragment-only-urls.css#foo\")"
+  assert_equals: expected "url(\\"#foo\\")" but got "url(\\"http://web-platform.test:8001/css/css-values/urls/support/fragment-only-urls.css#foo\\")"
 [FAIL] empty URL: external-variable
-  assert_equals: expected "url(\"#foo\")" but got "url(\"http://web-platform.test:8001/css/css-values/urls/support/fragment-only-urls.css#foo\")"
+  assert_equals: expected "url(\\"#foo\\")" but got "url(\\"http://web-platform.test:8001/css/css-values/urls/support/fragment-only-urls.css#foo\\")"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/css/cssom/CSSKeyframesRule-expected.txt b/third_party/blink/web_tests/external/wpt/css/cssom/CSSKeyframesRule-expected.txt
index 3a390c9..6b30c4b 100644
--- a/third_party/blink/web_tests/external/wpt/css/cssom/CSSKeyframesRule-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/cssom/CSSKeyframesRule-expected.txt
@@ -1,6 +1,6 @@
 This is a testharness.js-based test.
 [FAIL] name, cssRules, appendRule, findRule, deleteRule
-  assert_equals: CSSKeyframesRule cssText attribute with CSS-wide keyword name expected "@keyframes\"initial\"{}" but got "@keyframesinitial{}"
+  assert_equals: CSSKeyframesRule cssText attribute with CSS-wide keyword name expected "@keyframes\\"initial\\"{}" but got "@keyframesinitial{}"
 [FAIL] indexed getter, length
   assert_equals: CSSKeyframesRule.length expected (number) 2 but got (undefined) undefined
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/css/cssom/CSSStyleSheet-constructable-baseURL.tentative-expected.txt b/third_party/blink/web_tests/external/wpt/css/cssom/CSSStyleSheet-constructable-baseURL.tentative-expected.txt
index c50d7706..e0e6df8 100644
--- a/third_party/blink/web_tests/external/wpt/css/cssom/CSSStyleSheet-constructable-baseURL.tentative-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/cssom/CSSStyleSheet-constructable-baseURL.tentative-expected.txt
@@ -1,8 +1,8 @@
 This is a testharness.js-based test.
 [FAIL] Constructing sheet with custom base URL ueses that URL for CSS rules
-  assert_equals: expected "url(\"http://web-platform.test:8001/custom/path/example.png\")" but got "url(\"http://web-platform.test:8001/css/cssom/example.png\")"
+  assert_equals: expected "url(\\"http://web-platform.test:8001/custom/path/example.png\\")" but got "url(\\"http://web-platform.test:8001/css/cssom/example.png\\")"
 [FAIL] Constructing sheet with relative URL adds to the constructor document's base URL
-  assert_equals: expected "url(\"http://web-platform.test:8001/css/cssom/custom/path/example.png\")" but got "url(\"http://web-platform.test:8001/css/cssom/example.png\")"
+  assert_equals: expected "url(\\"http://web-platform.test:8001/css/cssom/custom/path/example.png\\")" but got "url(\\"http://web-platform.test:8001/css/cssom/example.png\\")"
 [FAIL] Constructing sheet with invalid base URL throws a NotAllowedError
   assert_throws_dom: function "() => { new CSSStyleSheet({ baseURL: "https://test:test/"}) }" did not throw
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/css/cssom/serialize-values-expected.txt b/third_party/blink/web_tests/external/wpt/css/cssom/serialize-values-expected.txt
index 9c88d0b..ec85812b 100644
--- a/third_party/blink/web_tests/external/wpt/css/cssom/serialize-values-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/cssom/serialize-values-expected.txt
@@ -330,11 +330,11 @@
 [FAIL] content: attr( |bar )
   assert_equals: content raw inline style declaration expected "attr(bar)" but got ""
 [FAIL] content: attr(foo-bar, "fallback")
-  assert_equals: content raw inline style declaration expected "attr(foo-bar, \"fallback\")" but got ""
+  assert_equals: content raw inline style declaration expected "attr(foo-bar, \\"fallback\\")" but got ""
 [FAIL] content: attr(foo_bar, "fallback")
-  assert_equals: content raw inline style declaration expected "attr(foo_bar, \"fallback\")" but got ""
+  assert_equals: content raw inline style declaration expected "attr(foo_bar, \\"fallback\\")" but got ""
 [FAIL] content: attr(|bar, "fallback")
-  assert_equals: content raw inline style declaration expected "attr(bar, \"fallback\")" but got ""
+  assert_equals: content raw inline style declaration expected "attr(bar, \\"fallback\\")" but got ""
 [FAIL] content: attr(foo, "")
   assert_equals: content raw inline style declaration expected "attr(foo)" but got ""
 [FAIL] content: attr( |foo ,  "" )
diff --git a/third_party/blink/web_tests/external/wpt/css/selectors/parsing/parse-has-expected.txt b/third_party/blink/web_tests/external/wpt/css/selectors/parsing/parse-has-expected.txt
index 798dc19..b83277a2 100644
--- a/third_party/blink/web_tests/external/wpt/css/selectors/parsing/parse-has-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/selectors/parsing/parse-has-expected.txt
@@ -3,8 +3,8 @@
 [PASS] ":has(#a)" should be a valid selector
 [PASS] ":has(.a)" should be a valid selector
 [PASS] ":has([a])" should be a valid selector
-[PASS] ":has([a=\"b\"])" should be a valid selector
-[PASS] ":has([a|=\"b\"])" should be a valid selector
+[PASS] ":has([a=\\"b\\"])" should be a valid selector
+[PASS] ":has([a|=\\"b\\"])" should be a valid selector
 [PASS] ":has(:hover)" should be a valid selector
 [PASS] "*:has(.a)" should be a valid selector
 [PASS] ".a:has(.b)" should be a valid selector
diff --git a/third_party/blink/web_tests/external/wpt/dom/nodes/DOMImplementation-createDocument-expected.txt b/third_party/blink/web_tests/external/wpt/dom/nodes/DOMImplementation-createDocument-expected.txt
index 0767ab8a..6b0293a 100644
--- a/third_party/blink/web_tests/external/wpt/dom/nodes/DOMImplementation-createDocument-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/dom/nodes/DOMImplementation-createDocument-expected.txt
@@ -27,9 +27,9 @@
 [PASS] createDocument test: null,"}foo",null,"INVALID_CHARACTER_ERR"
 [PASS] createDocument test: null,"f}oo",null,"INVALID_CHARACTER_ERR"
 [PASS] createDocument test: null,"foo}",null,"INVALID_CHARACTER_ERR"
-[PASS] createDocument test: null,"\ufffffoo",null,"INVALID_CHARACTER_ERR"
-[PASS] createDocument test: null,"f\uffffoo",null,"INVALID_CHARACTER_ERR"
-[PASS] createDocument test: null,"foo\uffff",null,"INVALID_CHARACTER_ERR"
+[PASS] createDocument test: null,"\\ufffffoo",null,"INVALID_CHARACTER_ERR"
+[PASS] createDocument test: null,"f\\uffffoo",null,"INVALID_CHARACTER_ERR"
+[PASS] createDocument test: null,"foo\\uffff",null,"INVALID_CHARACTER_ERR"
 [PASS] createDocument test: null,"<foo",null,"INVALID_CHARACTER_ERR"
 [PASS] createDocument test: null,"foo>",null,"INVALID_CHARACTER_ERR"
 [PASS] createDocument test: null,"<foo>",null,"INVALID_CHARACTER_ERR"
@@ -210,7 +210,7 @@
 [PASS] createDocument test: "http://example.com/","namespaceURI:=",null,"INVALID_CHARACTER_ERR"
 [PASS] createDocument test: "http://example.com/","namespaceURI:[",null,"INVALID_CHARACTER_ERR"
 [PASS] createDocument test: "http://example.com/","namespaceURI:]",null,"INVALID_CHARACTER_ERR"
-[PASS] createDocument test: "http://example.com/","namespaceURI:\\",null,"INVALID_CHARACTER_ERR"
+[PASS] createDocument test: "http://example.com/","namespaceURI:\\\\",null,"INVALID_CHARACTER_ERR"
 [PASS] createDocument test: "http://example.com/","namespaceURI:/",null,"INVALID_CHARACTER_ERR"
 [PASS] createDocument test: "http://example.com/","namespaceURI:;",null,"INVALID_CHARACTER_ERR"
 [PASS] createDocument test: "http://example.com/","namespaceURI:`",null,"INVALID_CHARACTER_ERR"
@@ -218,7 +218,7 @@
 [PASS] createDocument test: "http://example.com/","namespaceURI:>",null,"INVALID_CHARACTER_ERR"
 [PASS] createDocument test: "http://example.com/","namespaceURI:,",null,"INVALID_CHARACTER_ERR"
 [PASS] createDocument test: "http://example.com/","namespaceURI:a ",null,"INVALID_CHARACTER_ERR"
-[PASS] createDocument test: "http://example.com/","namespaceURI:\"",null,"INVALID_CHARACTER_ERR"
+[PASS] createDocument test: "http://example.com/","namespaceURI:\\"",null,"INVALID_CHARACTER_ERR"
 [PASS] createDocument test: "/","foo",null,null
 [PASS] createDocument test: metadata for "/","foo",null
 [PASS] createDocument test: characterSet aliases for "/","foo",null
diff --git a/third_party/blink/web_tests/external/wpt/dom/nodes/Document-createElementNS-expected.txt b/third_party/blink/web_tests/external/wpt/dom/nodes/Document-createElementNS-expected.txt
index 0ddf72d..736ed426 100644
--- a/third_party/blink/web_tests/external/wpt/dom/nodes/Document-createElementNS-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/dom/nodes/Document-createElementNS-expected.txt
@@ -36,15 +36,15 @@
 [PASS] createElementNS test in HTML document: null,"foo}","INVALID_CHARACTER_ERR"
 [PASS] createElementNS test in XML document: null,"foo}","INVALID_CHARACTER_ERR"
 [PASS] createElementNS test in XHTML document: null,"foo}","INVALID_CHARACTER_ERR"
-[PASS] createElementNS test in HTML document: null,"\ufffffoo","INVALID_CHARACTER_ERR"
-[PASS] createElementNS test in XML document: null,"\ufffffoo","INVALID_CHARACTER_ERR"
-[PASS] createElementNS test in XHTML document: null,"\ufffffoo","INVALID_CHARACTER_ERR"
-[PASS] createElementNS test in HTML document: null,"f\uffffoo","INVALID_CHARACTER_ERR"
-[PASS] createElementNS test in XML document: null,"f\uffffoo","INVALID_CHARACTER_ERR"
-[PASS] createElementNS test in XHTML document: null,"f\uffffoo","INVALID_CHARACTER_ERR"
-[PASS] createElementNS test in HTML document: null,"foo\uffff","INVALID_CHARACTER_ERR"
-[PASS] createElementNS test in XML document: null,"foo\uffff","INVALID_CHARACTER_ERR"
-[PASS] createElementNS test in XHTML document: null,"foo\uffff","INVALID_CHARACTER_ERR"
+[PASS] createElementNS test in HTML document: null,"\\ufffffoo","INVALID_CHARACTER_ERR"
+[PASS] createElementNS test in XML document: null,"\\ufffffoo","INVALID_CHARACTER_ERR"
+[PASS] createElementNS test in XHTML document: null,"\\ufffffoo","INVALID_CHARACTER_ERR"
+[PASS] createElementNS test in HTML document: null,"f\\uffffoo","INVALID_CHARACTER_ERR"
+[PASS] createElementNS test in XML document: null,"f\\uffffoo","INVALID_CHARACTER_ERR"
+[PASS] createElementNS test in XHTML document: null,"f\\uffffoo","INVALID_CHARACTER_ERR"
+[PASS] createElementNS test in HTML document: null,"foo\\uffff","INVALID_CHARACTER_ERR"
+[PASS] createElementNS test in XML document: null,"foo\\uffff","INVALID_CHARACTER_ERR"
+[PASS] createElementNS test in XHTML document: null,"foo\\uffff","INVALID_CHARACTER_ERR"
 [PASS] createElementNS test in HTML document: null,"<foo","INVALID_CHARACTER_ERR"
 [PASS] createElementNS test in XML document: null,"<foo","INVALID_CHARACTER_ERR"
 [PASS] createElementNS test in XHTML document: null,"<foo","INVALID_CHARACTER_ERR"
@@ -363,9 +363,9 @@
 [PASS] createElementNS test in HTML document: "http://example.com/","namespaceURI:]","INVALID_CHARACTER_ERR"
 [PASS] createElementNS test in XML document: "http://example.com/","namespaceURI:]","INVALID_CHARACTER_ERR"
 [PASS] createElementNS test in XHTML document: "http://example.com/","namespaceURI:]","INVALID_CHARACTER_ERR"
-[PASS] createElementNS test in HTML document: "http://example.com/","namespaceURI:\\","INVALID_CHARACTER_ERR"
-[PASS] createElementNS test in XML document: "http://example.com/","namespaceURI:\\","INVALID_CHARACTER_ERR"
-[PASS] createElementNS test in XHTML document: "http://example.com/","namespaceURI:\\","INVALID_CHARACTER_ERR"
+[PASS] createElementNS test in HTML document: "http://example.com/","namespaceURI:\\\\","INVALID_CHARACTER_ERR"
+[PASS] createElementNS test in XML document: "http://example.com/","namespaceURI:\\\\","INVALID_CHARACTER_ERR"
+[PASS] createElementNS test in XHTML document: "http://example.com/","namespaceURI:\\\\","INVALID_CHARACTER_ERR"
 [PASS] createElementNS test in HTML document: "http://example.com/","namespaceURI:/","INVALID_CHARACTER_ERR"
 [PASS] createElementNS test in XML document: "http://example.com/","namespaceURI:/","INVALID_CHARACTER_ERR"
 [PASS] createElementNS test in XHTML document: "http://example.com/","namespaceURI:/","INVALID_CHARACTER_ERR"
@@ -387,9 +387,9 @@
 [PASS] createElementNS test in HTML document: "http://example.com/","namespaceURI:a ","INVALID_CHARACTER_ERR"
 [PASS] createElementNS test in XML document: "http://example.com/","namespaceURI:a ","INVALID_CHARACTER_ERR"
 [PASS] createElementNS test in XHTML document: "http://example.com/","namespaceURI:a ","INVALID_CHARACTER_ERR"
-[PASS] createElementNS test in HTML document: "http://example.com/","namespaceURI:\"","INVALID_CHARACTER_ERR"
-[PASS] createElementNS test in XML document: "http://example.com/","namespaceURI:\"","INVALID_CHARACTER_ERR"
-[PASS] createElementNS test in XHTML document: "http://example.com/","namespaceURI:\"","INVALID_CHARACTER_ERR"
+[PASS] createElementNS test in HTML document: "http://example.com/","namespaceURI:\\"","INVALID_CHARACTER_ERR"
+[PASS] createElementNS test in XML document: "http://example.com/","namespaceURI:\\"","INVALID_CHARACTER_ERR"
+[PASS] createElementNS test in XHTML document: "http://example.com/","namespaceURI:\\"","INVALID_CHARACTER_ERR"
 [PASS] createElementNS test in HTML document: "/","foo",null
 [PASS] createElementNS test in XML document: "/","foo",null
 [PASS] createElementNS test in XHTML document: "/","foo",null
diff --git a/third_party/blink/web_tests/external/wpt/dom/nodes/ParentNode-querySelector-escapes-expected.txt b/third_party/blink/web_tests/external/wpt/dom/nodes/ParentNode-querySelector-escapes-expected.txt
index 6b5527e..649cdad 100644
--- a/third_party/blink/web_tests/external/wpt/dom/nodes/ParentNode-querySelector-escapes-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/dom/nodes/ParentNode-querySelector-escapes-expected.txt
@@ -1,63 +1,63 @@
 This is a testharness.js-based test.
 Found 68 tests; 67 PASS, 1 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [PASS] "nonescaped" should match with "#nonescaped"
-[PASS] "0nextIsWhiteSpace" should match with "#\\30 nextIsWhiteSpace"
-[PASS] "0nextIsNotHexLetters" should match with "#\\30nextIsNotHexLetters"
-[PASS] "0connectHexMoreThan6Hex" should match with "#\\000030connectHexMoreThan6Hex"
-[PASS] "0spaceMoreThan6Hex" should match with "#\\000030 spaceMoreThan6Hex"
-[PASS] "zero�" should match with "#zero\\0"
-[PASS] "zero\u0000" should never match with "#zero\\0"
-[PASS] "zero�" should match with "#zero\\000000"
-[PASS] "zero\u0000" should never match with "#zero\\000000"
-[PASS] "�surrogateFirst" should match with "#\\d83d surrogateFirst"
-[PASS] "\ud83dsurrogateFirst" should never match with "#\\d83d surrogateFirst"
-[PASS] "surrogateSecond�" should match with "#surrogateSecond\\dd11"
-[PASS] "surrogateSecond\udd11" should never match with "#surrogateSecond\\dd11"
-[PASS] "surrogatePair��" should match with "#surrogatePair\\d83d\\dd11"
-[PASS] "surrogatePair🔑" should never match with "#surrogatePair\\d83d\\dd11"
-[PASS] "outOfRange�" should match with "#outOfRange\\110000"
-[PASS] "outOfRange�" should match with "#outOfRange\\110030"
-[PASS] "outOfRange0" should never match with "#outOfRange\\110030"
-[PASS] "outOfRange�" should match with "#outOfRange\\555555"
-[PASS] "outOfRange�" should match with "#outOfRange\\ffffff"
-[PASS] "eof\\" should never match with "#eof\\"
-[PASS] ".comma" should match with "#\\.comma"
-[PASS] "-minus" should match with "#\\-minus"
-[PASS] "g" should match with "#\\g"
-[PASS] "aBMPRegular" should match with "#\\61 BMPRegular"
-[PASS] "🔑nonBMP" should match with "#\\1f511 nonBMP"
-[PASS] "00continueEscapes" should match with "#\\30\\30 continueEscapes"
-[PASS] "00continueEscapes" should match with "#\\30 \\30 continueEscapes"
-[PASS] "continueEscapes00" should match with "#continueEscapes\\30 \\30 "
-[PASS] "continueEscapes00" should match with "#continueEscapes\\30 \\30"
-[PASS] "continueEscapes00" should match with "#continueEscapes\\30\\30 "
-[PASS] "continueEscapes00" should match with "#continueEscapes\\30\\30"
-[PASS] "hello" should match with "#hel\\6Co"
-[PASS] "&B" should match with "#\\26 B"
-[PASS] "hello" should match with "#hel\\6C o"
-[PASS] "spaces" should match with "#spac\\65\r\ns"
-[PASS] "spaces" should match with "#sp\\61\tc\\65\fs"
-[PASS] "test힙" should match with "#test\\D799"
-[PASS] "" should match with "#\\E000"
-[PASS] "test" should match with "#te\\s\\t"
-[PASS] "spaces in\tident" should match with "#spaces\\ in\\\tident"
-[PASS] ".,:!" should match with "#\\.\\,\\:\\!"
-[PASS] "null�" should match with "#null\\0"
-[PASS] "null�" should match with "#null\\0000"
-[PASS] "large�" should match with "#large\\110000"
-[PASS] "large�" should match with "#large\\23456a"
-[PASS] "surrogate�" should match with "#surrogate\\D800"
-[PASS] "surrogate�" should match with "#surrogate\\0DBAC"
-[PASS] "�surrogate" should match with "#\\00DFFFsurrogate"
-[PASS] "􏿿" should match with "#\\10fFfF"
-[PASS] "􏿿0" should match with "#\\10fFfF0"
-[PASS] "􀀀00" should match with "#\\10000000"
-[PASS] "eof�" should match with "#eof\\"
+[PASS] "0nextIsWhiteSpace" should match with "#\\\\30 nextIsWhiteSpace"
+[PASS] "0nextIsNotHexLetters" should match with "#\\\\30nextIsNotHexLetters"
+[PASS] "0connectHexMoreThan6Hex" should match with "#\\\\000030connectHexMoreThan6Hex"
+[PASS] "0spaceMoreThan6Hex" should match with "#\\\\000030 spaceMoreThan6Hex"
+[PASS] "zero�" should match with "#zero\\\\0"
+[PASS] "zero\\u0000" should never match with "#zero\\\\0"
+[PASS] "zero�" should match with "#zero\\\\000000"
+[PASS] "zero\\u0000" should never match with "#zero\\\\000000"
+[PASS] "�surrogateFirst" should match with "#\\\\d83d surrogateFirst"
+[PASS] "\\ud83dsurrogateFirst" should never match with "#\\\\d83d surrogateFirst"
+[PASS] "surrogateSecond�" should match with "#surrogateSecond\\\\dd11"
+[PASS] "surrogateSecond\\udd11" should never match with "#surrogateSecond\\\\dd11"
+[PASS] "surrogatePair��" should match with "#surrogatePair\\\\d83d\\\\dd11"
+[PASS] "surrogatePair🔑" should never match with "#surrogatePair\\\\d83d\\\\dd11"
+[PASS] "outOfRange�" should match with "#outOfRange\\\\110000"
+[PASS] "outOfRange�" should match with "#outOfRange\\\\110030"
+[PASS] "outOfRange0" should never match with "#outOfRange\\\\110030"
+[PASS] "outOfRange�" should match with "#outOfRange\\\\555555"
+[PASS] "outOfRange�" should match with "#outOfRange\\\\ffffff"
+[PASS] "eof\\\\" should never match with "#eof\\\\"
+[PASS] ".comma" should match with "#\\\\.comma"
+[PASS] "-minus" should match with "#\\\\-minus"
+[PASS] "g" should match with "#\\\\g"
+[PASS] "aBMPRegular" should match with "#\\\\61 BMPRegular"
+[PASS] "🔑nonBMP" should match with "#\\\\1f511 nonBMP"
+[PASS] "00continueEscapes" should match with "#\\\\30\\\\30 continueEscapes"
+[PASS] "00continueEscapes" should match with "#\\\\30 \\\\30 continueEscapes"
+[PASS] "continueEscapes00" should match with "#continueEscapes\\\\30 \\\\30 "
+[PASS] "continueEscapes00" should match with "#continueEscapes\\\\30 \\\\30"
+[PASS] "continueEscapes00" should match with "#continueEscapes\\\\30\\\\30 "
+[PASS] "continueEscapes00" should match with "#continueEscapes\\\\30\\\\30"
+[PASS] "hello" should match with "#hel\\\\6Co"
+[PASS] "&B" should match with "#\\\\26 B"
+[PASS] "hello" should match with "#hel\\\\6C o"
+[PASS] "spaces" should match with "#spac\\\\65\\r\\ns"
+[PASS] "spaces" should match with "#sp\\\\61\\tc\\\\65\\fs"
+[PASS] "test힙" should match with "#test\\\\D799"
+[PASS] "" should match with "#\\\\E000"
+[PASS] "test" should match with "#te\\\\s\\\\t"
+[PASS] "spaces in\\tident" should match with "#spaces\\\\ in\\\\\\tident"
+[PASS] ".,:!" should match with "#\\\\.\\\\,\\\\:\\\\!"
+[PASS] "null�" should match with "#null\\\\0"
+[PASS] "null�" should match with "#null\\\\0000"
+[PASS] "large�" should match with "#large\\\\110000"
+[PASS] "large�" should match with "#large\\\\23456a"
+[PASS] "surrogate�" should match with "#surrogate\\\\D800"
+[PASS] "surrogate�" should match with "#surrogate\\\\0DBAC"
+[PASS] "�surrogate" should match with "#\\\\00DFFFsurrogate"
+[PASS] "􏿿" should match with "#\\\\10fFfF"
+[PASS] "􏿿0" should match with "#\\\\10fFfF0"
+[PASS] "􀀀00" should match with "#\\\\10000000"
+[PASS] "eof�" should match with "#eof\\\\"
 [PASS] "simple-ident" should match with "#simple-ident"
 [PASS] "testing123" should match with "#testing123"
 [PASS] "_underscore" should match with "#_underscore"
 [PASS] "-text" should match with "#-text"
-[PASS] "-m" should match with "#-\\6d"
+[PASS] "-m" should match with "#-\\\\6d"
 [PASS] "--abc" should match with "#--abc"
 [PASS] "--" should match with "#--"
 [PASS] "--11" should match with "#--11"
@@ -66,8 +66,8 @@
 [PASS] " " should match with "# "
 [PASS] "ሴ" should match with "#ሴ"
 [PASS] "𒍅" should match with "#𒍅"
-[FAIL] "�" should match with "#\u0000"
+[FAIL] "�" should match with "#\\u0000"
   Failed to execute 'querySelector' on 'Element': '#\0' is not a valid selector.
-[PASS] "ab�c" should match with "#ab\u0000c"
+[PASS] "ab�c" should match with "#ab\\u0000c"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/domparsing/XMLSerializer-serializeToString-expected.txt b/third_party/blink/web_tests/external/wpt/domparsing/XMLSerializer-serializeToString-expected.txt
index bf54dba..194c32c 100644
--- a/third_party/blink/web_tests/external/wpt/domparsing/XMLSerializer-serializeToString-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/domparsing/XMLSerializer-serializeToString-expected.txt
@@ -4,14 +4,14 @@
 [PASS] Check if the default namespace is correctly reset.
 [PASS] Check if there is no redundant empty namespace declaration.
 [FAIL] Check if redundant xmlns="..." is dropped.
-  assert_equals: expected "<root><child/></root>" but got "<root><child xmlns=\"\"/></root>"
+  assert_equals: expected "<root><child/></root>" but got "<root><child xmlns=\\"\\"/></root>"
 [PASS] Check if inconsistent xmlns="..." is dropped.
 [PASS] Check if an attribute with namespace and no prefix is serialized with the nearest-declared prefix
 [FAIL] Check if an attribute with namespace and no prefix is serialized with the nearest-declared prefix even if the prefix is assigned to another namespace.
-  assert_equals: expected "<el1 xmlns:p=\"u1\" xmlns:q=\"u1\"><el2 xmlns:q=\"u2\" q:name=\"v\"/></el1>" but got "<el1 xmlns:p=\"u1\" xmlns:q=\"u1\"><el2 xmlns:q=\"u2\" p:name=\"v\"/></el1>"
+  assert_equals: expected "<el1 xmlns:p=\\"u1\\" xmlns:q=\\"u1\\"><el2 xmlns:q=\\"u2\\" q:name=\\"v\\"/></el1>" but got "<el1 xmlns:p=\\"u1\\" xmlns:q=\\"u1\\"><el2 xmlns:q=\\"u2\\" p:name=\\"v\\"/></el1>"
 [PASS] Check if the prefix of an attribute is replaced with another existing prefix mapped to the same namespace URI.
 [FAIL] Check if the prefix of an attribute is NOT preserved in a case where neither its prefix nor its namespace URI is not already used.
-  assert_equals: expected "<r xmlns:xx=\"uri\" xmlns:ns1=\"uri2\" ns1:name=\"value\"/>" but got "<r xmlns:xx=\"uri\" xmlns:p=\"uri2\" p:name=\"value\"/>"
+  assert_equals: expected "<r xmlns:xx=\\"uri\\" xmlns:ns1=\\"uri2\\" ns1:name=\\"value\\"/>" but got "<r xmlns:xx=\\"uri\\" xmlns:p=\\"uri2\\" p:name=\\"value\\"/>"
 [PASS] Check if the prefix of an attribute is replaced with a generated one in a case where the prefix is already mapped to a different namespace URI.
 [PASS] check XMLSerializer.serializeToString escapes attribute values for roundtripping
 [PASS] Check if attribute serialization takes into account of following xmlns:* attributes
@@ -21,10 +21,10 @@
 [PASS] Check if start tag serialization takes into account of its xmlns:* attributes
 [PASS] Check if start tag serialization applied the original prefix even if it is declared in an ancestor element.
 [FAIL] Check if start tag serialization does NOT apply the default namespace if its namespace is declared in an ancestor.
-  assert_equals: expected "<root xmlns:x=\"uri1\"><x:table xmlns=\"uri1\"/></root>" but got "<root xmlns:x=\"uri1\"><table xmlns=\"uri1\"/></root>"
+  assert_equals: expected "<root xmlns:x=\\"uri1\\"><x:table xmlns=\\"uri1\\"/></root>" but got "<root xmlns:x=\\"uri1\\"><table xmlns=\\"uri1\\"/></root>"
 [PASS] Check if generated prefixes match to "ns${index}".
 [FAIL] Check if "ns1" is generated even if the element already has xmlns:ns1.
-  assert_equals: expected "<root xmlns:ns2=\"uri2\"><child xmlns:ns1=\"uri1\" xmlns:ns1=\"uri3\" ns1:attr1=\"value1\"/></root>" but got "<root xmlns:ns2=\"uri2\"><child xmlns:ns1=\"uri1\" xmlns:ns3=\"uri3\" ns3:attr1=\"value1\"/></root>"
+  assert_equals: expected "<root xmlns:ns2=\\"uri2\\"><child xmlns:ns1=\\"uri1\\" xmlns:ns1=\\"uri3\\" ns1:attr1=\\"value1\\"/></root>" but got "<root xmlns:ns2=\\"uri2\\"><child xmlns:ns1=\\"uri1\\" xmlns:ns3=\\"uri3\\" ns3:attr1=\\"value1\\"/></root>"
 [PASS] Check if no special handling for XLink namespace unlike HTML serializer.
 [PASS] Check if document fragment serializes.
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/delete-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/delete-expected.txt
index 077672f..3e30412c 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/delete-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/delete-expected.txt
@@ -12,9 +12,9 @@
 [PASS] 10: "<p><br></p><p><br><br><br></p>" 1,2 delete
 [PASS] 11: "<p><br><br></p><p><br><br></p>" 1,1 delete
 [PASS] 12: "<p><br></p><br>" 1 delete
-[PASS] 13: "<p><br></p><p><br></p>\n" 1,0 delete
-[PASS] 14: "<p><br></p><p><br></p>\n" 0,0 forwarddelete
-[FAIL] 15: "\n<p><tt>x</tt></p><p><tt><br></tt></p><p><tt><br></tt></p>\n" 3,0,0 delete
-  assert_equals: innerHTML expected "\n<p><tt>x</tt></p><p><tt><br></tt></p>\n" but got "\n<p><tt>x</tt></p><p><br></p>\n"
+[PASS] 13: "<p><br></p><p><br></p>\\n" 1,0 delete
+[PASS] 14: "<p><br></p><p><br></p>\\n" 0,0 forwarddelete
+[FAIL] 15: "\\n<p><tt>x</tt></p><p><tt><br></tt></p><p><tt><br></tt></p>\\n" 3,0,0 delete
+  assert_equals: innerHTML expected "\\n<p><tt>x</tt></p><p><tt><br></tt></p>\\n" but got "\\n<p><tt>x</tt></p><p><br></p>\\n"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/delete-in-child-of-head.tentative_designMode=off_method=backspace-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/delete-in-child-of-head.tentative_designMode=off_method=backspace-expected.txt
index 1a9f17c..de54b6a 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/delete-in-child-of-head.tentative_designMode=off_method=backspace-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/delete-in-child-of-head.tentative_designMode=off_method=backspace-expected.txt
@@ -25,7 +25,7 @@
 [FAIL] delete at boundary of <style> and <div> in <head> should not join them
   assert_equals: Visible <style> and <div> shouldn't be merged expected "<head><title>iframe</title><style>abc</style><div>def</div></head><body><br></body>" but got "<head><title>iframe</title><style>abcdef</style></head><body><br></body>"
 [FAIL] delete at boundary of <title> and <div> in <head> should not join them
-  assert_equals: Visible <title> and <div> shouldn't be merged expected "<head><title>iframe</title><title>abc</title><div>def</div></head><body><br></body>" but got "<head><title>iframe</title><title title=\"display:block\">abc</title><div>def</div></head><body><br></body>"
+  assert_equals: Visible <title> and <div> shouldn't be merged expected "<head><title>iframe</title><title>abc</title><div>def</div></head><body><br></body>" but got "<head><title>iframe</title><title title=\\"display:block\\">abc</title><div>def</div></head><body><br></body>"
 [FAIL] delete at boundary of <div> and <script> in <head> should not join them
   assert_equals: <div> and visible <script> shouldn't be merged expected "<head><title>iframe</title><div>// abc</div><script>// def</script></head><body><br></body>" but got "<head><title>iframe</title><div>// abc// def</div></head><body><br></body>"
 [FAIL] delete at boundary of <div> and <style> in <head> should not join them
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/delete-in-child-of-head.tentative_designMode=off_method=forwarddelete-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/delete-in-child-of-head.tentative_designMode=off_method=forwarddelete-expected.txt
index 0431e64..322f10823 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/delete-in-child-of-head.tentative_designMode=off_method=forwarddelete-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/delete-in-child-of-head.tentative_designMode=off_method=forwarddelete-expected.txt
@@ -25,7 +25,7 @@
 [FAIL] forwarddelete at boundary of <style> and <div> in <head> should not join them
   assert_equals: Visible <style> and <div> shouldn't be merged expected "<head><title>iframe</title><style>abc</style><div>def</div></head><body><br></body>" but got "<head><title>iframe</title><style>abcdef</style></head><body><br></body>"
 [FAIL] forwarddelete at boundary of <title> and <div> in <head> should not join them
-  assert_equals: Visible <title> and <div> shouldn't be merged expected "<head><title>iframe</title><title>abc</title><div>def</div></head><body><br></body>" but got "<head><title>iframe</title><title title=\"display:block\">abc</title><div>ef</div></head><body><br></body>"
+  assert_equals: Visible <title> and <div> shouldn't be merged expected "<head><title>iframe</title><title>abc</title><div>def</div></head><body><br></body>" but got "<head><title>iframe</title><title title=\\"display:block\\">abc</title><div>ef</div></head><body><br></body>"
 [FAIL] forwarddelete at boundary of <div> and <script> in <head> should not join them
   assert_equals: <div> and visible <script> shouldn't be merged expected "<head><title>iframe</title><div>// abc</div><script>// def</script></head><body><br></body>" but got "<head><title>iframe</title><div>// abc// def</div></head><body><br></body>"
 [FAIL] forwarddelete at boundary of <div> and <style> in <head> should not join them
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/delete-in-child-of-head.tentative_designMode=on_method=backspace-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/delete-in-child-of-head.tentative_designMode=on_method=backspace-expected.txt
index 1a9f17c..de54b6a 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/delete-in-child-of-head.tentative_designMode=on_method=backspace-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/delete-in-child-of-head.tentative_designMode=on_method=backspace-expected.txt
@@ -25,7 +25,7 @@
 [FAIL] delete at boundary of <style> and <div> in <head> should not join them
   assert_equals: Visible <style> and <div> shouldn't be merged expected "<head><title>iframe</title><style>abc</style><div>def</div></head><body><br></body>" but got "<head><title>iframe</title><style>abcdef</style></head><body><br></body>"
 [FAIL] delete at boundary of <title> and <div> in <head> should not join them
-  assert_equals: Visible <title> and <div> shouldn't be merged expected "<head><title>iframe</title><title>abc</title><div>def</div></head><body><br></body>" but got "<head><title>iframe</title><title title=\"display:block\">abc</title><div>def</div></head><body><br></body>"
+  assert_equals: Visible <title> and <div> shouldn't be merged expected "<head><title>iframe</title><title>abc</title><div>def</div></head><body><br></body>" but got "<head><title>iframe</title><title title=\\"display:block\\">abc</title><div>def</div></head><body><br></body>"
 [FAIL] delete at boundary of <div> and <script> in <head> should not join them
   assert_equals: <div> and visible <script> shouldn't be merged expected "<head><title>iframe</title><div>// abc</div><script>// def</script></head><body><br></body>" but got "<head><title>iframe</title><div>// abc// def</div></head><body><br></body>"
 [FAIL] delete at boundary of <div> and <style> in <head> should not join them
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/delete-in-child-of-head.tentative_designMode=on_method=forwarddelete-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/delete-in-child-of-head.tentative_designMode=on_method=forwarddelete-expected.txt
index 0431e64..322f10823 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/delete-in-child-of-head.tentative_designMode=on_method=forwarddelete-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/delete-in-child-of-head.tentative_designMode=on_method=forwarddelete-expected.txt
@@ -25,7 +25,7 @@
 [FAIL] forwarddelete at boundary of <style> and <div> in <head> should not join them
   assert_equals: Visible <style> and <div> shouldn't be merged expected "<head><title>iframe</title><style>abc</style><div>def</div></head><body><br></body>" but got "<head><title>iframe</title><style>abcdef</style></head><body><br></body>"
 [FAIL] forwarddelete at boundary of <title> and <div> in <head> should not join them
-  assert_equals: Visible <title> and <div> shouldn't be merged expected "<head><title>iframe</title><title>abc</title><div>def</div></head><body><br></body>" but got "<head><title>iframe</title><title title=\"display:block\">abc</title><div>ef</div></head><body><br></body>"
+  assert_equals: Visible <title> and <div> shouldn't be merged expected "<head><title>iframe</title><title>abc</title><div>def</div></head><body><br></body>" but got "<head><title>iframe</title><title title=\\"display:block\\">abc</title><div>ef</div></head><body><br></body>"
 [FAIL] forwarddelete at boundary of <div> and <script> in <head> should not join them
   assert_equals: <div> and visible <script> shouldn't be merged expected "<head><title>iframe</title><div>// abc</div><script>// def</script></head><body><br></body>" but got "<head><title>iframe</title><div>// abc// def</div></head><body><br></body>"
 [FAIL] forwarddelete at boundary of <div> and <style> in <head> should not join them
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insert-text-in-void-element.tentative-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insert-text-in-void-element.tentative-expected.txt
index b77630b..604c9911 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insert-text-in-void-element.tentative-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insert-text-in-void-element.tentative-expected.txt
@@ -28,7 +28,7 @@
 [PASS] Inserting text when selection is collapsed in <hr> which follows a text node and an empty <span> element
 [PASS] Inserting text when selection is collapsed in <hr> which follows a non-empty <span> element
 [FAIL] Inserting text when selection is collapsed in <hr> which follows a text node, an empty <span> element and white-space only text node
-  assert_in_array: The text should be inserted after the previous empty inline element value "<div>abc<span></span>\ndef<hr></div>" not in array ["<div>abc<span></span>def<hr></div>", "<div>abc<span></span>def<br><hr></div>"]
+  assert_in_array: The text should be inserted after the previous empty inline element value "<div>abc<span></span>\\ndef<hr></div>" not in array ["<div>abc<span></span>def<hr></div>", "<div>abc<span></span>def<br><hr></div>"]
 [PASS] Inserting text when selection is collapsed in <img> which is only child
 [PASS] Inserting text when selection is collapsed in <img> which is only child (explicitly flushes maybe pending layout)
 [PASS] Inserting text when selection is collapsed in <img> which follows a text node
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=off_white-space=normal-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=off_white-space=normal-expected.txt
index 28f8f8d..61af227 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=off_white-space=normal-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=off_white-space=normal-expected.txt
@@ -1,18 +1,18 @@
 This is a testharness.js-based test.
 [FAIL] insertParagraph in empty <title style="display:block;white-space:normal"> should not split it
-  assert_in_array: 0-2 collapsible linefeed(s) should be inserted value "<head><title></title></head><body><br><div><br></div></body>" not in array ["<head><title></title></head><body><br></body>", "<head><title>\n</title></head><body><br></body>", "<head><title>\n\n</title></head><body><br></body>"]
+  assert_in_array: 0-2 collapsible linefeed(s) should be inserted value "<head><title></title></head><body><br><div><br></div></body>" not in array ["<head><title></title></head><body><br></body>", "<head><title>\\n</title></head><body><br></body>", "<head><title>\\n\\n</title></head><body><br></body>"]
 [FAIL] insertParagraph in <title style="display:block;white-space:normal"> containing text should not split it
-  assert_in_array: 0-1 collapsible linefeed should be inserted value "<head><title>ab</title><title style=\"display:block;white-space:normal\">cd</title></head><body><br></body>" not in array ["<head><title>abcd</title></head><body><br></body>", "<head><title>ab\ncd</title></head><body><br></body>"]
+  assert_in_array: 0-1 collapsible linefeed should be inserted value "<head><title>ab</title><title style=\\"display:block;white-space:normal\\">cd</title></head><body><br></body>" not in array ["<head><title>abcd</title></head><body><br></body>", "<head><title>ab\\ncd</title></head><body><br></body>"]
 [FAIL] insertParagraph in empty <style style="display:block;white-space:normal"> should not split it
-  assert_in_array: 0-2 collapsible linefeeds should be inserted value "<head><title>iframe</title><style></style></head><body><br><div><br></div></body>" not in array ["<head><title>iframe</title><style></style></head><body><br></body>", "<head><title>iframe</title><style>\n</style></head><body><br></body>", "<head><title>iframe</title><style>\n\n</style></head><body><br></body>"]
+  assert_in_array: 0-2 collapsible linefeeds should be inserted value "<head><title>iframe</title><style></style></head><body><br><div><br></div></body>" not in array ["<head><title>iframe</title><style></style></head><body><br></body>", "<head><title>iframe</title><style>\\n</style></head><body><br></body>", "<head><title>iframe</title><style>\\n\\n</style></head><body><br></body>"]
 [FAIL] insertParagraph in <style style="display:block;white-space:normal"> containing text should not split it
-  assert_in_array: 0-1 collapsible linefeed should be inserted value "<head><title>iframe</title><style>ab</style><style style=\"display:block;white-space:normal\">cd</style></head><body><br></body>" not in array ["<head><title>iframe</title><style>abcd</style></head><body><br></body>", "<head><title>iframe</title><style>ab\ncd</style></head><body><br></body>"]
+  assert_in_array: 0-1 collapsible linefeed should be inserted value "<head><title>iframe</title><style>ab</style><style style=\\"display:block;white-space:normal\\">cd</style></head><body><br></body>" not in array ["<head><title>iframe</title><style>abcd</style></head><body><br></body>", "<head><title>iframe</title><style>ab\\ncd</style></head><body><br></body>"]
 [FAIL] insertParagraph in empty <script style="display:block;white-space:normal"> should not split it
-  assert_in_array: 0-2 collapsible linefeeds should be inserted value "<head><title>iframe</title><script></script></head><body><br><div><br></div></body>" not in array ["<head><title>iframe</title><script></script></head><body><br></body>", "<head><title>iframe</title><script>\n</script></head><body><br></body>", "<head><title>iframe</title><script>\n\n</script></head><body><br></body>"]
+  assert_in_array: 0-2 collapsible linefeeds should be inserted value "<head><title>iframe</title><script></script></head><body><br><div><br></div></body>" not in array ["<head><title>iframe</title><script></script></head><body><br></body>", "<head><title>iframe</title><script>\\n</script></head><body><br></body>", "<head><title>iframe</title><script>\\n\\n</script></head><body><br></body>"]
 [FAIL] insertParagraph in <script style="display:block;white-space:normal"> containing text should not split it
-  assert_in_array: 0-1 linefeed should be inserted value "<head><title>iframe</title><script>// ab</script><script style=\"display:block;white-space:normal\">// cd</script></head><body><br></body>" not in array ["<head><title>iframe</title><script>// ab// cd</script></head><body><br></body>", "<head><title>iframe</title><script>// ab\n// cd</script></head><body><br></body>"]
+  assert_in_array: 0-1 linefeed should be inserted value "<head><title>iframe</title><script>// ab</script><script style=\\"display:block;white-space:normal\\">// cd</script></head><body><br></body>" not in array ["<head><title>iframe</title><script>// ab// cd</script></head><body><br></body>", "<head><title>iframe</title><script>// ab\\n// cd</script></head><body><br></body>"]
 [FAIL] insertParagraph in empty <div style="white-space:normal"> in the <head> should split the <div>
-  assert_equals: The <div> should be split expected "<head><title>iframe</title><div style=\"white-space:normal\"><br></div><div style=\"white-space:normal\"><br></div></head><body><br></body>" but got "<head><title>iframe</title><div style=\"white-space:normal\"></div></head><body><br><div><br></div></body>"
+  assert_equals: The <div> should be split expected "<head><title>iframe</title><div style=\\"white-space:normal\\"><br></div><div style=\\"white-space:normal\\"><br></div></head><body><br></body>" but got "<head><title>iframe</title><div style=\\"white-space:normal\\"></div></head><body><br><div><br></div></body>"
 [PASS] insertParagraph in <div style="white-space:normal"> (containing only a <br>) in the <head> should split the <div> element
 [PASS] insertParagraph in <div style="white-space:normal"> (containing text) in the <head> should split the <div> element
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=off_white-space=pre-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=off_white-space=pre-expected.txt
index ed3ec583..ec5deb4f 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=off_white-space=pre-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=off_white-space=pre-expected.txt
@@ -1,18 +1,18 @@
 This is a testharness.js-based test.
 [FAIL] insertParagraph in empty <title style="display:block;white-space:pre"> should not split it
-  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>\n\n</title></head><body><br></body>" but got "<head><title></title></head><body><br><div><br></div></body>"
+  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>\\n\\n</title></head><body><br></body>" but got "<head><title></title></head><body><br><div><br></div></body>"
 [FAIL] insertParagraph in <title style="display:block;white-space:pre"> containing text should not split it
-  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>ab\ncd</title></head><body><br></body>" but got "<head><title>ab</title><title style=\"display:block;white-space:pre\">cd</title></head><body><br></body>"
+  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>ab\\ncd</title></head><body><br></body>" but got "<head><title>ab</title><title style=\\"display:block;white-space:pre\\">cd</title></head><body><br></body>"
 [FAIL] insertParagraph in empty <style style="display:block;white-space:pre"> should not split it
-  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><style>\n\n</style></head><body><br></body>" but got "<head><title>iframe</title><style></style></head><body><br><div><br></div></body>"
+  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><style>\\n\\n</style></head><body><br></body>" but got "<head><title>iframe</title><style></style></head><body><br><div><br></div></body>"
 [FAIL] insertParagraph in <style style="display:block;white-space:pre"> containing text should not split it
-  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><style>ab\ncd</style></head><body><br></body>" but got "<head><title>iframe</title><style>ab</style><style style=\"display:block;white-space:pre\">cd</style></head><body><br></body>"
+  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><style>ab\\ncd</style></head><body><br></body>" but got "<head><title>iframe</title><style>ab</style><style style=\\"display:block;white-space:pre\\">cd</style></head><body><br></body>"
 [FAIL] insertParagraph in empty <script style="display:block;white-space:pre"> should not split it
-  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><script>\n\n</script></head><body><br></body>" but got "<head><title>iframe</title><script></script></head><body><br><div><br></div></body>"
+  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><script>\\n\\n</script></head><body><br></body>" but got "<head><title>iframe</title><script></script></head><body><br><div><br></div></body>"
 [FAIL] insertParagraph in <script style="display:block;white-space:pre"> containing text should not split it
-  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><script>// ab\n// cd</script></head><body><br></body>" but got "<head><title>iframe</title><script>// ab</script><script style=\"display:block;white-space:pre\">// cd</script></head><body><br></body>"
+  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><script>// ab\\n// cd</script></head><body><br></body>" but got "<head><title>iframe</title><script>// ab</script><script style=\\"display:block;white-space:pre\\">// cd</script></head><body><br></body>"
 [FAIL] insertParagraph in empty <div style="white-space:pre"> in the <head> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title><div style=\"white-space:pre\"></div></head><body><br><div><br></div></body>" not in array ["<head><title>iframe</title><div style=\"white-space:pre\">\n</div><div style=\"white-space:pre\">\n</div></head><body><br></body>", "<head><title>iframe</title><div style=\"white-space:pre\"><br></div><div style=\"white-space:pre\"><br></div></head><body><br></body>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title><div style=\\"white-space:pre\\"></div></head><body><br><div><br></div></body>" not in array ["<head><title>iframe</title><div style=\\"white-space:pre\\">\\n</div><div style=\\"white-space:pre\\">\\n</div></head><body><br></body>", "<head><title>iframe</title><div style=\\"white-space:pre\\"><br></div><div style=\\"white-space:pre\\"><br></div></head><body><br></body>"]
 [PASS] insertParagraph in <div style="white-space:pre"> (containing only a <br>) in the <head> should split the <div> element
 [PASS] insertParagraph in <div style="white-space:pre"> (containing text) in the <head> should split the <div> element
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=off_white-space=pre-line-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=off_white-space=pre-line-expected.txt
index e77cbc4b..1b7c2fb 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=off_white-space=pre-line-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=off_white-space=pre-line-expected.txt
@@ -1,18 +1,18 @@
 This is a testharness.js-based test.
 [FAIL] insertParagraph in empty <title style="display:block;white-space:pre-line"> should not split it
-  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>\n\n</title></head><body><br></body>" but got "<head><title></title></head><body><br><div><br></div></body>"
+  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>\\n\\n</title></head><body><br></body>" but got "<head><title></title></head><body><br><div><br></div></body>"
 [FAIL] insertParagraph in <title style="display:block;white-space:pre-line"> containing text should not split it
-  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>ab\ncd</title></head><body><br></body>" but got "<head><title>ab</title><title style=\"display:block;white-space:pre-line\">cd</title></head><body><br></body>"
+  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>ab\\ncd</title></head><body><br></body>" but got "<head><title>ab</title><title style=\\"display:block;white-space:pre-line\\">cd</title></head><body><br></body>"
 [FAIL] insertParagraph in empty <style style="display:block;white-space:pre-line"> should not split it
-  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><style>\n\n</style></head><body><br></body>" but got "<head><title>iframe</title><style></style></head><body><br><div><br></div></body>"
+  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><style>\\n\\n</style></head><body><br></body>" but got "<head><title>iframe</title><style></style></head><body><br><div><br></div></body>"
 [FAIL] insertParagraph in <style style="display:block;white-space:pre-line"> containing text should not split it
-  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><style>ab\ncd</style></head><body><br></body>" but got "<head><title>iframe</title><style>ab</style><style style=\"display:block;white-space:pre-line\">cd</style></head><body><br></body>"
+  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><style>ab\\ncd</style></head><body><br></body>" but got "<head><title>iframe</title><style>ab</style><style style=\\"display:block;white-space:pre-line\\">cd</style></head><body><br></body>"
 [FAIL] insertParagraph in empty <script style="display:block;white-space:pre-line"> should not split it
-  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><script>\n\n</script></head><body><br></body>" but got "<head><title>iframe</title><script></script></head><body><br><div><br></div></body>"
+  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><script>\\n\\n</script></head><body><br></body>" but got "<head><title>iframe</title><script></script></head><body><br><div><br></div></body>"
 [FAIL] insertParagraph in <script style="display:block;white-space:pre-line"> containing text should not split it
-  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><script>// ab\n// cd</script></head><body><br></body>" but got "<head><title>iframe</title><script>// ab</script><script style=\"display:block;white-space:pre-line\">// cd</script></head><body><br></body>"
+  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><script>// ab\\n// cd</script></head><body><br></body>" but got "<head><title>iframe</title><script>// ab</script><script style=\\"display:block;white-space:pre-line\\">// cd</script></head><body><br></body>"
 [FAIL] insertParagraph in empty <div style="white-space:pre-line"> in the <head> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title><div style=\"white-space:pre-line\"></div></head><body><br><div><br></div></body>" not in array ["<head><title>iframe</title><div style=\"white-space:pre-line\">\n</div><div style=\"white-space:pre-line\">\n</div></head><body><br></body>", "<head><title>iframe</title><div style=\"white-space:pre-line\"><br></div><div style=\"white-space:pre-line\"><br></div></head><body><br></body>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title><div style=\\"white-space:pre-line\\"></div></head><body><br><div><br></div></body>" not in array ["<head><title>iframe</title><div style=\\"white-space:pre-line\\">\\n</div><div style=\\"white-space:pre-line\\">\\n</div></head><body><br></body>", "<head><title>iframe</title><div style=\\"white-space:pre-line\\"><br></div><div style=\\"white-space:pre-line\\"><br></div></head><body><br></body>"]
 [PASS] insertParagraph in <div style="white-space:pre-line"> (containing only a <br>) in the <head> should split the <div> element
 [PASS] insertParagraph in <div style="white-space:pre-line"> (containing text) in the <head> should split the <div> element
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=off_white-space=pre-wrap-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=off_white-space=pre-wrap-expected.txt
index fd602f9..37d44b8 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=off_white-space=pre-wrap-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=off_white-space=pre-wrap-expected.txt
@@ -1,18 +1,18 @@
 This is a testharness.js-based test.
 [FAIL] insertParagraph in empty <title style="display:block;white-space:pre-wrap"> should not split it
-  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>\n\n</title></head><body><br></body>" but got "<head><title></title></head><body><br><div><br></div></body>"
+  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>\\n\\n</title></head><body><br></body>" but got "<head><title></title></head><body><br><div><br></div></body>"
 [FAIL] insertParagraph in <title style="display:block;white-space:pre-wrap"> containing text should not split it
-  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>ab\ncd</title></head><body><br></body>" but got "<head><title>ab</title><title style=\"display:block;white-space:pre-wrap\">cd</title></head><body><br></body>"
+  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>ab\\ncd</title></head><body><br></body>" but got "<head><title>ab</title><title style=\\"display:block;white-space:pre-wrap\\">cd</title></head><body><br></body>"
 [FAIL] insertParagraph in empty <style style="display:block;white-space:pre-wrap"> should not split it
-  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><style>\n\n</style></head><body><br></body>" but got "<head><title>iframe</title><style></style></head><body><br><div><br></div></body>"
+  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><style>\\n\\n</style></head><body><br></body>" but got "<head><title>iframe</title><style></style></head><body><br><div><br></div></body>"
 [FAIL] insertParagraph in <style style="display:block;white-space:pre-wrap"> containing text should not split it
-  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><style>ab\ncd</style></head><body><br></body>" but got "<head><title>iframe</title><style>ab</style><style style=\"display:block;white-space:pre-wrap\">cd</style></head><body><br></body>"
+  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><style>ab\\ncd</style></head><body><br></body>" but got "<head><title>iframe</title><style>ab</style><style style=\\"display:block;white-space:pre-wrap\\">cd</style></head><body><br></body>"
 [FAIL] insertParagraph in empty <script style="display:block;white-space:pre-wrap"> should not split it
-  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><script>\n\n</script></head><body><br></body>" but got "<head><title>iframe</title><script></script></head><body><br><div><br></div></body>"
+  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><script>\\n\\n</script></head><body><br></body>" but got "<head><title>iframe</title><script></script></head><body><br><div><br></div></body>"
 [FAIL] insertParagraph in <script style="display:block;white-space:pre-wrap"> containing text should not split it
-  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><script>// ab\n// cd</script></head><body><br></body>" but got "<head><title>iframe</title><script>// ab</script><script style=\"display:block;white-space:pre-wrap\">// cd</script></head><body><br></body>"
+  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><script>// ab\\n// cd</script></head><body><br></body>" but got "<head><title>iframe</title><script>// ab</script><script style=\\"display:block;white-space:pre-wrap\\">// cd</script></head><body><br></body>"
 [FAIL] insertParagraph in empty <div style="white-space:pre-wrap"> in the <head> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title><div style=\"white-space:pre-wrap\"></div></head><body><br><div><br></div></body>" not in array ["<head><title>iframe</title><div style=\"white-space:pre-wrap\">\n</div><div style=\"white-space:pre-wrap\">\n</div></head><body><br></body>", "<head><title>iframe</title><div style=\"white-space:pre-wrap\"><br></div><div style=\"white-space:pre-wrap\"><br></div></head><body><br></body>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title><div style=\\"white-space:pre-wrap\\"></div></head><body><br><div><br></div></body>" not in array ["<head><title>iframe</title><div style=\\"white-space:pre-wrap\\">\\n</div><div style=\\"white-space:pre-wrap\\">\\n</div></head><body><br></body>", "<head><title>iframe</title><div style=\\"white-space:pre-wrap\\"><br></div><div style=\\"white-space:pre-wrap\\"><br></div></head><body><br></body>"]
 [PASS] insertParagraph in <div style="white-space:pre-wrap"> (containing only a <br>) in the <head> should split the <div> element
 [PASS] insertParagraph in <div style="white-space:pre-wrap"> (containing text) in the <head> should split the <div> element
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=on_white-space=normal-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=on_white-space=normal-expected.txt
index 28f8f8d..61af227 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=on_white-space=normal-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=on_white-space=normal-expected.txt
@@ -1,18 +1,18 @@
 This is a testharness.js-based test.
 [FAIL] insertParagraph in empty <title style="display:block;white-space:normal"> should not split it
-  assert_in_array: 0-2 collapsible linefeed(s) should be inserted value "<head><title></title></head><body><br><div><br></div></body>" not in array ["<head><title></title></head><body><br></body>", "<head><title>\n</title></head><body><br></body>", "<head><title>\n\n</title></head><body><br></body>"]
+  assert_in_array: 0-2 collapsible linefeed(s) should be inserted value "<head><title></title></head><body><br><div><br></div></body>" not in array ["<head><title></title></head><body><br></body>", "<head><title>\\n</title></head><body><br></body>", "<head><title>\\n\\n</title></head><body><br></body>"]
 [FAIL] insertParagraph in <title style="display:block;white-space:normal"> containing text should not split it
-  assert_in_array: 0-1 collapsible linefeed should be inserted value "<head><title>ab</title><title style=\"display:block;white-space:normal\">cd</title></head><body><br></body>" not in array ["<head><title>abcd</title></head><body><br></body>", "<head><title>ab\ncd</title></head><body><br></body>"]
+  assert_in_array: 0-1 collapsible linefeed should be inserted value "<head><title>ab</title><title style=\\"display:block;white-space:normal\\">cd</title></head><body><br></body>" not in array ["<head><title>abcd</title></head><body><br></body>", "<head><title>ab\\ncd</title></head><body><br></body>"]
 [FAIL] insertParagraph in empty <style style="display:block;white-space:normal"> should not split it
-  assert_in_array: 0-2 collapsible linefeeds should be inserted value "<head><title>iframe</title><style></style></head><body><br><div><br></div></body>" not in array ["<head><title>iframe</title><style></style></head><body><br></body>", "<head><title>iframe</title><style>\n</style></head><body><br></body>", "<head><title>iframe</title><style>\n\n</style></head><body><br></body>"]
+  assert_in_array: 0-2 collapsible linefeeds should be inserted value "<head><title>iframe</title><style></style></head><body><br><div><br></div></body>" not in array ["<head><title>iframe</title><style></style></head><body><br></body>", "<head><title>iframe</title><style>\\n</style></head><body><br></body>", "<head><title>iframe</title><style>\\n\\n</style></head><body><br></body>"]
 [FAIL] insertParagraph in <style style="display:block;white-space:normal"> containing text should not split it
-  assert_in_array: 0-1 collapsible linefeed should be inserted value "<head><title>iframe</title><style>ab</style><style style=\"display:block;white-space:normal\">cd</style></head><body><br></body>" not in array ["<head><title>iframe</title><style>abcd</style></head><body><br></body>", "<head><title>iframe</title><style>ab\ncd</style></head><body><br></body>"]
+  assert_in_array: 0-1 collapsible linefeed should be inserted value "<head><title>iframe</title><style>ab</style><style style=\\"display:block;white-space:normal\\">cd</style></head><body><br></body>" not in array ["<head><title>iframe</title><style>abcd</style></head><body><br></body>", "<head><title>iframe</title><style>ab\\ncd</style></head><body><br></body>"]
 [FAIL] insertParagraph in empty <script style="display:block;white-space:normal"> should not split it
-  assert_in_array: 0-2 collapsible linefeeds should be inserted value "<head><title>iframe</title><script></script></head><body><br><div><br></div></body>" not in array ["<head><title>iframe</title><script></script></head><body><br></body>", "<head><title>iframe</title><script>\n</script></head><body><br></body>", "<head><title>iframe</title><script>\n\n</script></head><body><br></body>"]
+  assert_in_array: 0-2 collapsible linefeeds should be inserted value "<head><title>iframe</title><script></script></head><body><br><div><br></div></body>" not in array ["<head><title>iframe</title><script></script></head><body><br></body>", "<head><title>iframe</title><script>\\n</script></head><body><br></body>", "<head><title>iframe</title><script>\\n\\n</script></head><body><br></body>"]
 [FAIL] insertParagraph in <script style="display:block;white-space:normal"> containing text should not split it
-  assert_in_array: 0-1 linefeed should be inserted value "<head><title>iframe</title><script>// ab</script><script style=\"display:block;white-space:normal\">// cd</script></head><body><br></body>" not in array ["<head><title>iframe</title><script>// ab// cd</script></head><body><br></body>", "<head><title>iframe</title><script>// ab\n// cd</script></head><body><br></body>"]
+  assert_in_array: 0-1 linefeed should be inserted value "<head><title>iframe</title><script>// ab</script><script style=\\"display:block;white-space:normal\\">// cd</script></head><body><br></body>" not in array ["<head><title>iframe</title><script>// ab// cd</script></head><body><br></body>", "<head><title>iframe</title><script>// ab\\n// cd</script></head><body><br></body>"]
 [FAIL] insertParagraph in empty <div style="white-space:normal"> in the <head> should split the <div>
-  assert_equals: The <div> should be split expected "<head><title>iframe</title><div style=\"white-space:normal\"><br></div><div style=\"white-space:normal\"><br></div></head><body><br></body>" but got "<head><title>iframe</title><div style=\"white-space:normal\"></div></head><body><br><div><br></div></body>"
+  assert_equals: The <div> should be split expected "<head><title>iframe</title><div style=\\"white-space:normal\\"><br></div><div style=\\"white-space:normal\\"><br></div></head><body><br></body>" but got "<head><title>iframe</title><div style=\\"white-space:normal\\"></div></head><body><br><div><br></div></body>"
 [PASS] insertParagraph in <div style="white-space:normal"> (containing only a <br>) in the <head> should split the <div> element
 [PASS] insertParagraph in <div style="white-space:normal"> (containing text) in the <head> should split the <div> element
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=on_white-space=pre-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=on_white-space=pre-expected.txt
index ed3ec583..ec5deb4f 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=on_white-space=pre-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=on_white-space=pre-expected.txt
@@ -1,18 +1,18 @@
 This is a testharness.js-based test.
 [FAIL] insertParagraph in empty <title style="display:block;white-space:pre"> should not split it
-  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>\n\n</title></head><body><br></body>" but got "<head><title></title></head><body><br><div><br></div></body>"
+  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>\\n\\n</title></head><body><br></body>" but got "<head><title></title></head><body><br><div><br></div></body>"
 [FAIL] insertParagraph in <title style="display:block;white-space:pre"> containing text should not split it
-  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>ab\ncd</title></head><body><br></body>" but got "<head><title>ab</title><title style=\"display:block;white-space:pre\">cd</title></head><body><br></body>"
+  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>ab\\ncd</title></head><body><br></body>" but got "<head><title>ab</title><title style=\\"display:block;white-space:pre\\">cd</title></head><body><br></body>"
 [FAIL] insertParagraph in empty <style style="display:block;white-space:pre"> should not split it
-  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><style>\n\n</style></head><body><br></body>" but got "<head><title>iframe</title><style></style></head><body><br><div><br></div></body>"
+  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><style>\\n\\n</style></head><body><br></body>" but got "<head><title>iframe</title><style></style></head><body><br><div><br></div></body>"
 [FAIL] insertParagraph in <style style="display:block;white-space:pre"> containing text should not split it
-  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><style>ab\ncd</style></head><body><br></body>" but got "<head><title>iframe</title><style>ab</style><style style=\"display:block;white-space:pre\">cd</style></head><body><br></body>"
+  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><style>ab\\ncd</style></head><body><br></body>" but got "<head><title>iframe</title><style>ab</style><style style=\\"display:block;white-space:pre\\">cd</style></head><body><br></body>"
 [FAIL] insertParagraph in empty <script style="display:block;white-space:pre"> should not split it
-  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><script>\n\n</script></head><body><br></body>" but got "<head><title>iframe</title><script></script></head><body><br><div><br></div></body>"
+  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><script>\\n\\n</script></head><body><br></body>" but got "<head><title>iframe</title><script></script></head><body><br><div><br></div></body>"
 [FAIL] insertParagraph in <script style="display:block;white-space:pre"> containing text should not split it
-  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><script>// ab\n// cd</script></head><body><br></body>" but got "<head><title>iframe</title><script>// ab</script><script style=\"display:block;white-space:pre\">// cd</script></head><body><br></body>"
+  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><script>// ab\\n// cd</script></head><body><br></body>" but got "<head><title>iframe</title><script>// ab</script><script style=\\"display:block;white-space:pre\\">// cd</script></head><body><br></body>"
 [FAIL] insertParagraph in empty <div style="white-space:pre"> in the <head> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title><div style=\"white-space:pre\"></div></head><body><br><div><br></div></body>" not in array ["<head><title>iframe</title><div style=\"white-space:pre\">\n</div><div style=\"white-space:pre\">\n</div></head><body><br></body>", "<head><title>iframe</title><div style=\"white-space:pre\"><br></div><div style=\"white-space:pre\"><br></div></head><body><br></body>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title><div style=\\"white-space:pre\\"></div></head><body><br><div><br></div></body>" not in array ["<head><title>iframe</title><div style=\\"white-space:pre\\">\\n</div><div style=\\"white-space:pre\\">\\n</div></head><body><br></body>", "<head><title>iframe</title><div style=\\"white-space:pre\\"><br></div><div style=\\"white-space:pre\\"><br></div></head><body><br></body>"]
 [PASS] insertParagraph in <div style="white-space:pre"> (containing only a <br>) in the <head> should split the <div> element
 [PASS] insertParagraph in <div style="white-space:pre"> (containing text) in the <head> should split the <div> element
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=on_white-space=pre-line-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=on_white-space=pre-line-expected.txt
index e77cbc4b..1b7c2fb 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=on_white-space=pre-line-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=on_white-space=pre-line-expected.txt
@@ -1,18 +1,18 @@
 This is a testharness.js-based test.
 [FAIL] insertParagraph in empty <title style="display:block;white-space:pre-line"> should not split it
-  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>\n\n</title></head><body><br></body>" but got "<head><title></title></head><body><br><div><br></div></body>"
+  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>\\n\\n</title></head><body><br></body>" but got "<head><title></title></head><body><br><div><br></div></body>"
 [FAIL] insertParagraph in <title style="display:block;white-space:pre-line"> containing text should not split it
-  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>ab\ncd</title></head><body><br></body>" but got "<head><title>ab</title><title style=\"display:block;white-space:pre-line\">cd</title></head><body><br></body>"
+  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>ab\\ncd</title></head><body><br></body>" but got "<head><title>ab</title><title style=\\"display:block;white-space:pre-line\\">cd</title></head><body><br></body>"
 [FAIL] insertParagraph in empty <style style="display:block;white-space:pre-line"> should not split it
-  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><style>\n\n</style></head><body><br></body>" but got "<head><title>iframe</title><style></style></head><body><br><div><br></div></body>"
+  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><style>\\n\\n</style></head><body><br></body>" but got "<head><title>iframe</title><style></style></head><body><br><div><br></div></body>"
 [FAIL] insertParagraph in <style style="display:block;white-space:pre-line"> containing text should not split it
-  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><style>ab\ncd</style></head><body><br></body>" but got "<head><title>iframe</title><style>ab</style><style style=\"display:block;white-space:pre-line\">cd</style></head><body><br></body>"
+  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><style>ab\\ncd</style></head><body><br></body>" but got "<head><title>iframe</title><style>ab</style><style style=\\"display:block;white-space:pre-line\\">cd</style></head><body><br></body>"
 [FAIL] insertParagraph in empty <script style="display:block;white-space:pre-line"> should not split it
-  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><script>\n\n</script></head><body><br></body>" but got "<head><title>iframe</title><script></script></head><body><br><div><br></div></body>"
+  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><script>\\n\\n</script></head><body><br></body>" but got "<head><title>iframe</title><script></script></head><body><br><div><br></div></body>"
 [FAIL] insertParagraph in <script style="display:block;white-space:pre-line"> containing text should not split it
-  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><script>// ab\n// cd</script></head><body><br></body>" but got "<head><title>iframe</title><script>// ab</script><script style=\"display:block;white-space:pre-line\">// cd</script></head><body><br></body>"
+  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><script>// ab\\n// cd</script></head><body><br></body>" but got "<head><title>iframe</title><script>// ab</script><script style=\\"display:block;white-space:pre-line\\">// cd</script></head><body><br></body>"
 [FAIL] insertParagraph in empty <div style="white-space:pre-line"> in the <head> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title><div style=\"white-space:pre-line\"></div></head><body><br><div><br></div></body>" not in array ["<head><title>iframe</title><div style=\"white-space:pre-line\">\n</div><div style=\"white-space:pre-line\">\n</div></head><body><br></body>", "<head><title>iframe</title><div style=\"white-space:pre-line\"><br></div><div style=\"white-space:pre-line\"><br></div></head><body><br></body>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title><div style=\\"white-space:pre-line\\"></div></head><body><br><div><br></div></body>" not in array ["<head><title>iframe</title><div style=\\"white-space:pre-line\\">\\n</div><div style=\\"white-space:pre-line\\">\\n</div></head><body><br></body>", "<head><title>iframe</title><div style=\\"white-space:pre-line\\"><br></div><div style=\\"white-space:pre-line\\"><br></div></head><body><br></body>"]
 [PASS] insertParagraph in <div style="white-space:pre-line"> (containing only a <br>) in the <head> should split the <div> element
 [PASS] insertParagraph in <div style="white-space:pre-line"> (containing text) in the <head> should split the <div> element
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=on_white-space=pre-wrap-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=on_white-space=pre-wrap-expected.txt
index fd602f9..37d44b8 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=on_white-space=pre-wrap-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-head.tentative_designMode=on_white-space=pre-wrap-expected.txt
@@ -1,18 +1,18 @@
 This is a testharness.js-based test.
 [FAIL] insertParagraph in empty <title style="display:block;white-space:pre-wrap"> should not split it
-  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>\n\n</title></head><body><br></body>" but got "<head><title></title></head><body><br><div><br></div></body>"
+  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>\\n\\n</title></head><body><br></body>" but got "<head><title></title></head><body><br><div><br></div></body>"
 [FAIL] insertParagraph in <title style="display:block;white-space:pre-wrap"> containing text should not split it
-  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>ab\ncd</title></head><body><br></body>" but got "<head><title>ab</title><title style=\"display:block;white-space:pre-wrap\">cd</title></head><body><br></body>"
+  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>ab\\ncd</title></head><body><br></body>" but got "<head><title>ab</title><title style=\\"display:block;white-space:pre-wrap\\">cd</title></head><body><br></body>"
 [FAIL] insertParagraph in empty <style style="display:block;white-space:pre-wrap"> should not split it
-  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><style>\n\n</style></head><body><br></body>" but got "<head><title>iframe</title><style></style></head><body><br><div><br></div></body>"
+  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><style>\\n\\n</style></head><body><br></body>" but got "<head><title>iframe</title><style></style></head><body><br><div><br></div></body>"
 [FAIL] insertParagraph in <style style="display:block;white-space:pre-wrap"> containing text should not split it
-  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><style>ab\ncd</style></head><body><br></body>" but got "<head><title>iframe</title><style>ab</style><style style=\"display:block;white-space:pre-wrap\">cd</style></head><body><br></body>"
+  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><style>ab\\ncd</style></head><body><br></body>" but got "<head><title>iframe</title><style>ab</style><style style=\\"display:block;white-space:pre-wrap\\">cd</style></head><body><br></body>"
 [FAIL] insertParagraph in empty <script style="display:block;white-space:pre-wrap"> should not split it
-  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><script>\n\n</script></head><body><br></body>" but got "<head><title>iframe</title><script></script></head><body><br><div><br></div></body>"
+  assert_equals: 2 preformatted linefeeds should be inserted expected "<head><title>iframe</title><script>\\n\\n</script></head><body><br></body>" but got "<head><title>iframe</title><script></script></head><body><br><div><br></div></body>"
 [FAIL] insertParagraph in <script style="display:block;white-space:pre-wrap"> containing text should not split it
-  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><script>// ab\n// cd</script></head><body><br></body>" but got "<head><title>iframe</title><script>// ab</script><script style=\"display:block;white-space:pre-wrap\">// cd</script></head><body><br></body>"
+  assert_equals: 1 preformatted linefeed should be inserted expected "<head><title>iframe</title><script>// ab\\n// cd</script></head><body><br></body>" but got "<head><title>iframe</title><script>// ab</script><script style=\\"display:block;white-space:pre-wrap\\">// cd</script></head><body><br></body>"
 [FAIL] insertParagraph in empty <div style="white-space:pre-wrap"> in the <head> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title><div style=\"white-space:pre-wrap\"></div></head><body><br><div><br></div></body>" not in array ["<head><title>iframe</title><div style=\"white-space:pre-wrap\">\n</div><div style=\"white-space:pre-wrap\">\n</div></head><body><br></body>", "<head><title>iframe</title><div style=\"white-space:pre-wrap\"><br></div><div style=\"white-space:pre-wrap\"><br></div></head><body><br></body>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title><div style=\\"white-space:pre-wrap\\"></div></head><body><br><div><br></div></body>" not in array ["<head><title>iframe</title><div style=\\"white-space:pre-wrap\\">\\n</div><div style=\\"white-space:pre-wrap\\">\\n</div></head><body><br></body>", "<head><title>iframe</title><div style=\\"white-space:pre-wrap\\"><br></div><div style=\\"white-space:pre-wrap\\"><br></div></head><body><br></body>"]
 [PASS] insertParagraph in <div style="white-space:pre-wrap"> (containing only a <br>) in the <head> should split the <div> element
 [PASS] insertParagraph in <div style="white-space:pre-wrap"> (containing text) in the <head> should split the <div> element
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=off_white-space=normal-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=off_white-space=normal-expected.txt
index 3a4c8200..daddb41 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=off_white-space=normal-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=off_white-space=normal-expected.txt
@@ -1,15 +1,15 @@
 This is a testharness.js-based test.
 [FAIL] insertParagraph in empty <div style="white-space:normal"> after <body> should split the <div>
-  assert_equals: The <div> should be split expected "<head><title>iframe</title></head><body><br></body><div style=\"white-space:normal\"><br></div><div style=\"white-space:normal\"><br></div>" but got "<head><title>iframe</title></head><body><br><div><br></div></body><div style=\"white-space:normal\"></div>"
+  assert_equals: The <div> should be split expected "<head><title>iframe</title></head><body><br></body><div style=\\"white-space:normal\\"><br></div><div style=\\"white-space:normal\\"><br></div>" but got "<head><title>iframe</title></head><body><br><div><br></div></body><div style=\\"white-space:normal\\"></div>"
 [PASS] insertParagraph in <div style="white-space:normal"> (containing only a <br>) after <body> should split the <div>
 [PASS] insertParagraph in <div style="white-space:normal"> (containing text) after <body> should not create another <div> element
 [FAIL] insertParagraph in empty <div style="white-space:normal"> before <body> should split the <div>
-  assert_equals: The <div> should be split expected "<head><title>iframe</title></head><div style=\"white-space:normal\"><br></div><div style=\"white-space:normal\"><br></div><body><br></body>" but got "<head><title>iframe</title></head><div style=\"white-space:normal\"></div><body><br><div><br></div></body>"
+  assert_equals: The <div> should be split expected "<head><title>iframe</title></head><div style=\\"white-space:normal\\"><br></div><div style=\\"white-space:normal\\"><br></div><body><br></body>" but got "<head><title>iframe</title></head><div style=\\"white-space:normal\\"></div><body><br><div><br></div></body>"
 [PASS] insertParagraph in <div style="white-space:normal"> (containing only a <br>) before <body> should split the <div>
 [FAIL] insertParagraph in <div style="white-space:normal"> (containing text) before <body> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\"white-space:normal\">abcd</div><body><br></body>" not in array ["<head><title>iframe</title></head><div style=\"white-space:normal\">ab</div><div style=\"white-space:normal\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:normal\">ab<br></div><div style=\"white-space:normal\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:normal\">ab</div><div style=\"white-space:normal\">cd<br></div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:normal\">ab<br></div><div style=\"white-space:normal\">cd<br></div><body><br></body>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\\"white-space:normal\\">abcd</div><body><br></body>" not in array ["<head><title>iframe</title></head><div style=\\"white-space:normal\\">ab</div><div style=\\"white-space:normal\\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:normal\\">ab<br></div><div style=\\"white-space:normal\\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:normal\\">ab</div><div style=\\"white-space:normal\\">cd<br></div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:normal\\">ab<br></div><div style=\\"white-space:normal\\">cd<br></div><body><br></body>"]
 [FAIL] insertParagraph in empty <div style="white-space:normal"> before <head> should split the <div>
-  assert_equals: The <div> should be split expected "<div style=\"white-space:normal\"><br></div><div style=\"white-space:normal\"><br></div><head><title>iframe</title></head><body><br></body>" but got "<div style=\"white-space:normal\"></div><head><title>iframe</title></head><body><br><div><br></div></body>"
+  assert_equals: The <div> should be split expected "<div style=\\"white-space:normal\\"><br></div><div style=\\"white-space:normal\\"><br></div><head><title>iframe</title></head><body><br></body>" but got "<div style=\\"white-space:normal\\"></div><head><title>iframe</title></head><body><br><div><br></div></body>"
 [PASS] insertParagraph in <div style="white-space:normal"> (containing only a <br>) before <head> should split the <div>
 [PASS] insertParagraph in <div style="white-space:normal"> (containing text) before <head> should split the <div>
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=off_white-space=pre-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=off_white-space=pre-expected.txt
index f48bdfff..d24a009 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=off_white-space=pre-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=off_white-space=pre-expected.txt
@@ -1,15 +1,15 @@
 This is a testharness.js-based test.
 [FAIL] insertParagraph in empty <div style="white-space:pre"> after <body> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><body><br><div><br></div></body><div style=\"white-space:pre\"></div>" not in array ["<head><title>iframe</title></head><body><br></body><div style=\"white-space:pre\">\n</div><div style=\"white-space:pre\">\n</div>", "<head><title>iframe</title></head><body><br></body><div style=\"white-space:pre\"><br></div><div style=\"white-space:pre\"><br></div>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><body><br><div><br></div></body><div style=\\"white-space:pre\\"></div>" not in array ["<head><title>iframe</title></head><body><br></body><div style=\\"white-space:pre\\">\\n</div><div style=\\"white-space:pre\\">\\n</div>", "<head><title>iframe</title></head><body><br></body><div style=\\"white-space:pre\\"><br></div><div style=\\"white-space:pre\\"><br></div>"]
 [PASS] insertParagraph in <div style="white-space:pre"> (containing only a <br>) after <body> should split the <div>
 [PASS] insertParagraph in <div style="white-space:pre"> (containing text) after <body> should not create another <div> element
 [FAIL] insertParagraph in empty <div style="white-space:pre"> before <body> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\"white-space:pre\"></div><body><br><div><br></div></body>" not in array ["<head><title>iframe</title></head><div style=\"white-space:pre\">\n</div><div style=\"white-space:pre\">\n</div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre\"><br></div><div style=\"white-space:pre\"><br></div><body><br></body>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\\"white-space:pre\\"></div><body><br><div><br></div></body>" not in array ["<head><title>iframe</title></head><div style=\\"white-space:pre\\">\\n</div><div style=\\"white-space:pre\\">\\n</div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre\\"><br></div><div style=\\"white-space:pre\\"><br></div><body><br></body>"]
 [PASS] insertParagraph in <div style="white-space:pre"> (containing only a <br>) before <body> should split the <div>
 [FAIL] insertParagraph in <div style="white-space:pre"> (containing text) before <body> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\"white-space:pre\">abcd</div><body><br></body>" not in array ["<head><title>iframe</title></head><div style=\"white-space:pre\">ab</div><div style=\"white-space:pre\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre\">ab<br></div><div style=\"white-space:pre\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre\">ab</div><div style=\"white-space:pre\">cd<br></div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre\">ab<br></div><div style=\"white-space:pre\">cd<br></div><body><br></body>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\\"white-space:pre\\">abcd</div><body><br></body>" not in array ["<head><title>iframe</title></head><div style=\\"white-space:pre\\">ab</div><div style=\\"white-space:pre\\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre\\">ab<br></div><div style=\\"white-space:pre\\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre\\">ab</div><div style=\\"white-space:pre\\">cd<br></div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre\\">ab<br></div><div style=\\"white-space:pre\\">cd<br></div><body><br></body>"]
 [FAIL] insertParagraph in empty <div style="white-space:pre"> before <head> should split the <div>
-  assert_in_array: The <div> should be split value "<div style=\"white-space:pre\"></div><head><title>iframe</title></head><body><br><div><br></div></body>" not in array ["<div style=\"white-space:pre\">\n</div><div style=\"white-space:pre\">\n</div><head><title>iframe</title></head><body><br></body>", "<div style=\"white-space:pre\"><br></div><div style=\"white-space:pre\"><br></div><head><title>iframe</title></head><body><br></body>"]
+  assert_in_array: The <div> should be split value "<div style=\\"white-space:pre\\"></div><head><title>iframe</title></head><body><br><div><br></div></body>" not in array ["<div style=\\"white-space:pre\\">\\n</div><div style=\\"white-space:pre\\">\\n</div><head><title>iframe</title></head><body><br></body>", "<div style=\\"white-space:pre\\"><br></div><div style=\\"white-space:pre\\"><br></div><head><title>iframe</title></head><body><br></body>"]
 [PASS] insertParagraph in <div style="white-space:pre"> (containing only a <br>) before <head> should split the <div>
 [PASS] insertParagraph in <div style="white-space:pre"> (containing text) before <head> should split the <div>
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=off_white-space=pre-line-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=off_white-space=pre-line-expected.txt
index 8fe60a221..aa7b096c 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=off_white-space=pre-line-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=off_white-space=pre-line-expected.txt
@@ -1,15 +1,15 @@
 This is a testharness.js-based test.
 [FAIL] insertParagraph in empty <div style="white-space:pre-line"> after <body> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><body><br><div><br></div></body><div style=\"white-space:pre-line\"></div>" not in array ["<head><title>iframe</title></head><body><br></body><div style=\"white-space:pre-line\">\n</div><div style=\"white-space:pre-line\">\n</div>", "<head><title>iframe</title></head><body><br></body><div style=\"white-space:pre-line\"><br></div><div style=\"white-space:pre-line\"><br></div>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><body><br><div><br></div></body><div style=\\"white-space:pre-line\\"></div>" not in array ["<head><title>iframe</title></head><body><br></body><div style=\\"white-space:pre-line\\">\\n</div><div style=\\"white-space:pre-line\\">\\n</div>", "<head><title>iframe</title></head><body><br></body><div style=\\"white-space:pre-line\\"><br></div><div style=\\"white-space:pre-line\\"><br></div>"]
 [PASS] insertParagraph in <div style="white-space:pre-line"> (containing only a <br>) after <body> should split the <div>
 [PASS] insertParagraph in <div style="white-space:pre-line"> (containing text) after <body> should not create another <div> element
 [FAIL] insertParagraph in empty <div style="white-space:pre-line"> before <body> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\"white-space:pre-line\"></div><body><br><div><br></div></body>" not in array ["<head><title>iframe</title></head><div style=\"white-space:pre-line\">\n</div><div style=\"white-space:pre-line\">\n</div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre-line\"><br></div><div style=\"white-space:pre-line\"><br></div><body><br></body>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\\"white-space:pre-line\\"></div><body><br><div><br></div></body>" not in array ["<head><title>iframe</title></head><div style=\\"white-space:pre-line\\">\\n</div><div style=\\"white-space:pre-line\\">\\n</div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre-line\\"><br></div><div style=\\"white-space:pre-line\\"><br></div><body><br></body>"]
 [PASS] insertParagraph in <div style="white-space:pre-line"> (containing only a <br>) before <body> should split the <div>
 [FAIL] insertParagraph in <div style="white-space:pre-line"> (containing text) before <body> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\"white-space:pre-line\">abcd</div><body><br></body>" not in array ["<head><title>iframe</title></head><div style=\"white-space:pre-line\">ab</div><div style=\"white-space:pre-line\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre-line\">ab<br></div><div style=\"white-space:pre-line\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre-line\">ab</div><div style=\"white-space:pre-line\">cd<br></div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre-line\">ab<br></div><div style=\"white-space:pre-line\">cd<br></div><body><br></body>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\\"white-space:pre-line\\">abcd</div><body><br></body>" not in array ["<head><title>iframe</title></head><div style=\\"white-space:pre-line\\">ab</div><div style=\\"white-space:pre-line\\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre-line\\">ab<br></div><div style=\\"white-space:pre-line\\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre-line\\">ab</div><div style=\\"white-space:pre-line\\">cd<br></div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre-line\\">ab<br></div><div style=\\"white-space:pre-line\\">cd<br></div><body><br></body>"]
 [FAIL] insertParagraph in empty <div style="white-space:pre-line"> before <head> should split the <div>
-  assert_in_array: The <div> should be split value "<div style=\"white-space:pre-line\"></div><head><title>iframe</title></head><body><br><div><br></div></body>" not in array ["<div style=\"white-space:pre-line\">\n</div><div style=\"white-space:pre-line\">\n</div><head><title>iframe</title></head><body><br></body>", "<div style=\"white-space:pre-line\"><br></div><div style=\"white-space:pre-line\"><br></div><head><title>iframe</title></head><body><br></body>"]
+  assert_in_array: The <div> should be split value "<div style=\\"white-space:pre-line\\"></div><head><title>iframe</title></head><body><br><div><br></div></body>" not in array ["<div style=\\"white-space:pre-line\\">\\n</div><div style=\\"white-space:pre-line\\">\\n</div><head><title>iframe</title></head><body><br></body>", "<div style=\\"white-space:pre-line\\"><br></div><div style=\\"white-space:pre-line\\"><br></div><head><title>iframe</title></head><body><br></body>"]
 [PASS] insertParagraph in <div style="white-space:pre-line"> (containing only a <br>) before <head> should split the <div>
 [PASS] insertParagraph in <div style="white-space:pre-line"> (containing text) before <head> should split the <div>
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=off_white-space=pre-wrap-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=off_white-space=pre-wrap-expected.txt
index 3856512a..a35d819 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=off_white-space=pre-wrap-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=off_white-space=pre-wrap-expected.txt
@@ -1,15 +1,15 @@
 This is a testharness.js-based test.
 [FAIL] insertParagraph in empty <div style="white-space:pre-wrap"> after <body> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><body><br><div><br></div></body><div style=\"white-space:pre-wrap\"></div>" not in array ["<head><title>iframe</title></head><body><br></body><div style=\"white-space:pre-wrap\">\n</div><div style=\"white-space:pre-wrap\">\n</div>", "<head><title>iframe</title></head><body><br></body><div style=\"white-space:pre-wrap\"><br></div><div style=\"white-space:pre-wrap\"><br></div>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><body><br><div><br></div></body><div style=\\"white-space:pre-wrap\\"></div>" not in array ["<head><title>iframe</title></head><body><br></body><div style=\\"white-space:pre-wrap\\">\\n</div><div style=\\"white-space:pre-wrap\\">\\n</div>", "<head><title>iframe</title></head><body><br></body><div style=\\"white-space:pre-wrap\\"><br></div><div style=\\"white-space:pre-wrap\\"><br></div>"]
 [PASS] insertParagraph in <div style="white-space:pre-wrap"> (containing only a <br>) after <body> should split the <div>
 [PASS] insertParagraph in <div style="white-space:pre-wrap"> (containing text) after <body> should not create another <div> element
 [FAIL] insertParagraph in empty <div style="white-space:pre-wrap"> before <body> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\"white-space:pre-wrap\"></div><body><br><div><br></div></body>" not in array ["<head><title>iframe</title></head><div style=\"white-space:pre-wrap\">\n</div><div style=\"white-space:pre-wrap\">\n</div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre-wrap\"><br></div><div style=\"white-space:pre-wrap\"><br></div><body><br></body>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\\"white-space:pre-wrap\\"></div><body><br><div><br></div></body>" not in array ["<head><title>iframe</title></head><div style=\\"white-space:pre-wrap\\">\\n</div><div style=\\"white-space:pre-wrap\\">\\n</div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre-wrap\\"><br></div><div style=\\"white-space:pre-wrap\\"><br></div><body><br></body>"]
 [PASS] insertParagraph in <div style="white-space:pre-wrap"> (containing only a <br>) before <body> should split the <div>
 [FAIL] insertParagraph in <div style="white-space:pre-wrap"> (containing text) before <body> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\"white-space:pre-wrap\">abcd</div><body><br></body>" not in array ["<head><title>iframe</title></head><div style=\"white-space:pre-wrap\">ab</div><div style=\"white-space:pre-wrap\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre-wrap\">ab<br></div><div style=\"white-space:pre-wrap\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre-wrap\">ab</div><div style=\"white-space:pre-wrap\">cd<br></div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre-wrap\">ab<br></div><div style=\"white-space:pre-wrap\">cd<br></div><body><br></body>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\\"white-space:pre-wrap\\">abcd</div><body><br></body>" not in array ["<head><title>iframe</title></head><div style=\\"white-space:pre-wrap\\">ab</div><div style=\\"white-space:pre-wrap\\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre-wrap\\">ab<br></div><div style=\\"white-space:pre-wrap\\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre-wrap\\">ab</div><div style=\\"white-space:pre-wrap\\">cd<br></div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre-wrap\\">ab<br></div><div style=\\"white-space:pre-wrap\\">cd<br></div><body><br></body>"]
 [FAIL] insertParagraph in empty <div style="white-space:pre-wrap"> before <head> should split the <div>
-  assert_in_array: The <div> should be split value "<div style=\"white-space:pre-wrap\"></div><head><title>iframe</title></head><body><br><div><br></div></body>" not in array ["<div style=\"white-space:pre-wrap\">\n</div><div style=\"white-space:pre-wrap\">\n</div><head><title>iframe</title></head><body><br></body>", "<div style=\"white-space:pre-wrap\"><br></div><div style=\"white-space:pre-wrap\"><br></div><head><title>iframe</title></head><body><br></body>"]
+  assert_in_array: The <div> should be split value "<div style=\\"white-space:pre-wrap\\"></div><head><title>iframe</title></head><body><br><div><br></div></body>" not in array ["<div style=\\"white-space:pre-wrap\\">\\n</div><div style=\\"white-space:pre-wrap\\">\\n</div><head><title>iframe</title></head><body><br></body>", "<div style=\\"white-space:pre-wrap\\"><br></div><div style=\\"white-space:pre-wrap\\"><br></div><head><title>iframe</title></head><body><br></body>"]
 [PASS] insertParagraph in <div style="white-space:pre-wrap"> (containing only a <br>) before <head> should split the <div>
 [PASS] insertParagraph in <div style="white-space:pre-wrap"> (containing text) before <head> should split the <div>
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=on_white-space=normal-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=on_white-space=normal-expected.txt
index 3a4c8200..daddb41 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=on_white-space=normal-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=on_white-space=normal-expected.txt
@@ -1,15 +1,15 @@
 This is a testharness.js-based test.
 [FAIL] insertParagraph in empty <div style="white-space:normal"> after <body> should split the <div>
-  assert_equals: The <div> should be split expected "<head><title>iframe</title></head><body><br></body><div style=\"white-space:normal\"><br></div><div style=\"white-space:normal\"><br></div>" but got "<head><title>iframe</title></head><body><br><div><br></div></body><div style=\"white-space:normal\"></div>"
+  assert_equals: The <div> should be split expected "<head><title>iframe</title></head><body><br></body><div style=\\"white-space:normal\\"><br></div><div style=\\"white-space:normal\\"><br></div>" but got "<head><title>iframe</title></head><body><br><div><br></div></body><div style=\\"white-space:normal\\"></div>"
 [PASS] insertParagraph in <div style="white-space:normal"> (containing only a <br>) after <body> should split the <div>
 [PASS] insertParagraph in <div style="white-space:normal"> (containing text) after <body> should not create another <div> element
 [FAIL] insertParagraph in empty <div style="white-space:normal"> before <body> should split the <div>
-  assert_equals: The <div> should be split expected "<head><title>iframe</title></head><div style=\"white-space:normal\"><br></div><div style=\"white-space:normal\"><br></div><body><br></body>" but got "<head><title>iframe</title></head><div style=\"white-space:normal\"></div><body><br><div><br></div></body>"
+  assert_equals: The <div> should be split expected "<head><title>iframe</title></head><div style=\\"white-space:normal\\"><br></div><div style=\\"white-space:normal\\"><br></div><body><br></body>" but got "<head><title>iframe</title></head><div style=\\"white-space:normal\\"></div><body><br><div><br></div></body>"
 [PASS] insertParagraph in <div style="white-space:normal"> (containing only a <br>) before <body> should split the <div>
 [FAIL] insertParagraph in <div style="white-space:normal"> (containing text) before <body> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\"white-space:normal\">abcd</div><body><br></body>" not in array ["<head><title>iframe</title></head><div style=\"white-space:normal\">ab</div><div style=\"white-space:normal\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:normal\">ab<br></div><div style=\"white-space:normal\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:normal\">ab</div><div style=\"white-space:normal\">cd<br></div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:normal\">ab<br></div><div style=\"white-space:normal\">cd<br></div><body><br></body>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\\"white-space:normal\\">abcd</div><body><br></body>" not in array ["<head><title>iframe</title></head><div style=\\"white-space:normal\\">ab</div><div style=\\"white-space:normal\\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:normal\\">ab<br></div><div style=\\"white-space:normal\\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:normal\\">ab</div><div style=\\"white-space:normal\\">cd<br></div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:normal\\">ab<br></div><div style=\\"white-space:normal\\">cd<br></div><body><br></body>"]
 [FAIL] insertParagraph in empty <div style="white-space:normal"> before <head> should split the <div>
-  assert_equals: The <div> should be split expected "<div style=\"white-space:normal\"><br></div><div style=\"white-space:normal\"><br></div><head><title>iframe</title></head><body><br></body>" but got "<div style=\"white-space:normal\"></div><head><title>iframe</title></head><body><br><div><br></div></body>"
+  assert_equals: The <div> should be split expected "<div style=\\"white-space:normal\\"><br></div><div style=\\"white-space:normal\\"><br></div><head><title>iframe</title></head><body><br></body>" but got "<div style=\\"white-space:normal\\"></div><head><title>iframe</title></head><body><br><div><br></div></body>"
 [PASS] insertParagraph in <div style="white-space:normal"> (containing only a <br>) before <head> should split the <div>
 [PASS] insertParagraph in <div style="white-space:normal"> (containing text) before <head> should split the <div>
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=on_white-space=pre-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=on_white-space=pre-expected.txt
index f48bdfff..d24a009 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=on_white-space=pre-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=on_white-space=pre-expected.txt
@@ -1,15 +1,15 @@
 This is a testharness.js-based test.
 [FAIL] insertParagraph in empty <div style="white-space:pre"> after <body> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><body><br><div><br></div></body><div style=\"white-space:pre\"></div>" not in array ["<head><title>iframe</title></head><body><br></body><div style=\"white-space:pre\">\n</div><div style=\"white-space:pre\">\n</div>", "<head><title>iframe</title></head><body><br></body><div style=\"white-space:pre\"><br></div><div style=\"white-space:pre\"><br></div>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><body><br><div><br></div></body><div style=\\"white-space:pre\\"></div>" not in array ["<head><title>iframe</title></head><body><br></body><div style=\\"white-space:pre\\">\\n</div><div style=\\"white-space:pre\\">\\n</div>", "<head><title>iframe</title></head><body><br></body><div style=\\"white-space:pre\\"><br></div><div style=\\"white-space:pre\\"><br></div>"]
 [PASS] insertParagraph in <div style="white-space:pre"> (containing only a <br>) after <body> should split the <div>
 [PASS] insertParagraph in <div style="white-space:pre"> (containing text) after <body> should not create another <div> element
 [FAIL] insertParagraph in empty <div style="white-space:pre"> before <body> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\"white-space:pre\"></div><body><br><div><br></div></body>" not in array ["<head><title>iframe</title></head><div style=\"white-space:pre\">\n</div><div style=\"white-space:pre\">\n</div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre\"><br></div><div style=\"white-space:pre\"><br></div><body><br></body>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\\"white-space:pre\\"></div><body><br><div><br></div></body>" not in array ["<head><title>iframe</title></head><div style=\\"white-space:pre\\">\\n</div><div style=\\"white-space:pre\\">\\n</div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre\\"><br></div><div style=\\"white-space:pre\\"><br></div><body><br></body>"]
 [PASS] insertParagraph in <div style="white-space:pre"> (containing only a <br>) before <body> should split the <div>
 [FAIL] insertParagraph in <div style="white-space:pre"> (containing text) before <body> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\"white-space:pre\">abcd</div><body><br></body>" not in array ["<head><title>iframe</title></head><div style=\"white-space:pre\">ab</div><div style=\"white-space:pre\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre\">ab<br></div><div style=\"white-space:pre\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre\">ab</div><div style=\"white-space:pre\">cd<br></div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre\">ab<br></div><div style=\"white-space:pre\">cd<br></div><body><br></body>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\\"white-space:pre\\">abcd</div><body><br></body>" not in array ["<head><title>iframe</title></head><div style=\\"white-space:pre\\">ab</div><div style=\\"white-space:pre\\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre\\">ab<br></div><div style=\\"white-space:pre\\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre\\">ab</div><div style=\\"white-space:pre\\">cd<br></div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre\\">ab<br></div><div style=\\"white-space:pre\\">cd<br></div><body><br></body>"]
 [FAIL] insertParagraph in empty <div style="white-space:pre"> before <head> should split the <div>
-  assert_in_array: The <div> should be split value "<div style=\"white-space:pre\"></div><head><title>iframe</title></head><body><br><div><br></div></body>" not in array ["<div style=\"white-space:pre\">\n</div><div style=\"white-space:pre\">\n</div><head><title>iframe</title></head><body><br></body>", "<div style=\"white-space:pre\"><br></div><div style=\"white-space:pre\"><br></div><head><title>iframe</title></head><body><br></body>"]
+  assert_in_array: The <div> should be split value "<div style=\\"white-space:pre\\"></div><head><title>iframe</title></head><body><br><div><br></div></body>" not in array ["<div style=\\"white-space:pre\\">\\n</div><div style=\\"white-space:pre\\">\\n</div><head><title>iframe</title></head><body><br></body>", "<div style=\\"white-space:pre\\"><br></div><div style=\\"white-space:pre\\"><br></div><head><title>iframe</title></head><body><br></body>"]
 [PASS] insertParagraph in <div style="white-space:pre"> (containing only a <br>) before <head> should split the <div>
 [PASS] insertParagraph in <div style="white-space:pre"> (containing text) before <head> should split the <div>
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=on_white-space=pre-line-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=on_white-space=pre-line-expected.txt
index 8fe60a221..aa7b096c 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=on_white-space=pre-line-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=on_white-space=pre-line-expected.txt
@@ -1,15 +1,15 @@
 This is a testharness.js-based test.
 [FAIL] insertParagraph in empty <div style="white-space:pre-line"> after <body> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><body><br><div><br></div></body><div style=\"white-space:pre-line\"></div>" not in array ["<head><title>iframe</title></head><body><br></body><div style=\"white-space:pre-line\">\n</div><div style=\"white-space:pre-line\">\n</div>", "<head><title>iframe</title></head><body><br></body><div style=\"white-space:pre-line\"><br></div><div style=\"white-space:pre-line\"><br></div>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><body><br><div><br></div></body><div style=\\"white-space:pre-line\\"></div>" not in array ["<head><title>iframe</title></head><body><br></body><div style=\\"white-space:pre-line\\">\\n</div><div style=\\"white-space:pre-line\\">\\n</div>", "<head><title>iframe</title></head><body><br></body><div style=\\"white-space:pre-line\\"><br></div><div style=\\"white-space:pre-line\\"><br></div>"]
 [PASS] insertParagraph in <div style="white-space:pre-line"> (containing only a <br>) after <body> should split the <div>
 [PASS] insertParagraph in <div style="white-space:pre-line"> (containing text) after <body> should not create another <div> element
 [FAIL] insertParagraph in empty <div style="white-space:pre-line"> before <body> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\"white-space:pre-line\"></div><body><br><div><br></div></body>" not in array ["<head><title>iframe</title></head><div style=\"white-space:pre-line\">\n</div><div style=\"white-space:pre-line\">\n</div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre-line\"><br></div><div style=\"white-space:pre-line\"><br></div><body><br></body>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\\"white-space:pre-line\\"></div><body><br><div><br></div></body>" not in array ["<head><title>iframe</title></head><div style=\\"white-space:pre-line\\">\\n</div><div style=\\"white-space:pre-line\\">\\n</div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre-line\\"><br></div><div style=\\"white-space:pre-line\\"><br></div><body><br></body>"]
 [PASS] insertParagraph in <div style="white-space:pre-line"> (containing only a <br>) before <body> should split the <div>
 [FAIL] insertParagraph in <div style="white-space:pre-line"> (containing text) before <body> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\"white-space:pre-line\">abcd</div><body><br></body>" not in array ["<head><title>iframe</title></head><div style=\"white-space:pre-line\">ab</div><div style=\"white-space:pre-line\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre-line\">ab<br></div><div style=\"white-space:pre-line\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre-line\">ab</div><div style=\"white-space:pre-line\">cd<br></div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre-line\">ab<br></div><div style=\"white-space:pre-line\">cd<br></div><body><br></body>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\\"white-space:pre-line\\">abcd</div><body><br></body>" not in array ["<head><title>iframe</title></head><div style=\\"white-space:pre-line\\">ab</div><div style=\\"white-space:pre-line\\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre-line\\">ab<br></div><div style=\\"white-space:pre-line\\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre-line\\">ab</div><div style=\\"white-space:pre-line\\">cd<br></div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre-line\\">ab<br></div><div style=\\"white-space:pre-line\\">cd<br></div><body><br></body>"]
 [FAIL] insertParagraph in empty <div style="white-space:pre-line"> before <head> should split the <div>
-  assert_in_array: The <div> should be split value "<div style=\"white-space:pre-line\"></div><head><title>iframe</title></head><body><br><div><br></div></body>" not in array ["<div style=\"white-space:pre-line\">\n</div><div style=\"white-space:pre-line\">\n</div><head><title>iframe</title></head><body><br></body>", "<div style=\"white-space:pre-line\"><br></div><div style=\"white-space:pre-line\"><br></div><head><title>iframe</title></head><body><br></body>"]
+  assert_in_array: The <div> should be split value "<div style=\\"white-space:pre-line\\"></div><head><title>iframe</title></head><body><br><div><br></div></body>" not in array ["<div style=\\"white-space:pre-line\\">\\n</div><div style=\\"white-space:pre-line\\">\\n</div><head><title>iframe</title></head><body><br></body>", "<div style=\\"white-space:pre-line\\"><br></div><div style=\\"white-space:pre-line\\"><br></div><head><title>iframe</title></head><body><br></body>"]
 [PASS] insertParagraph in <div style="white-space:pre-line"> (containing only a <br>) before <head> should split the <div>
 [PASS] insertParagraph in <div style="white-space:pre-line"> (containing text) before <head> should split the <div>
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=on_white-space=pre-wrap-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=on_white-space=pre-wrap-expected.txt
index 3856512a..a35d819 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=on_white-space=pre-wrap-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-child-of-html.tentative_designMode=on_white-space=pre-wrap-expected.txt
@@ -1,15 +1,15 @@
 This is a testharness.js-based test.
 [FAIL] insertParagraph in empty <div style="white-space:pre-wrap"> after <body> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><body><br><div><br></div></body><div style=\"white-space:pre-wrap\"></div>" not in array ["<head><title>iframe</title></head><body><br></body><div style=\"white-space:pre-wrap\">\n</div><div style=\"white-space:pre-wrap\">\n</div>", "<head><title>iframe</title></head><body><br></body><div style=\"white-space:pre-wrap\"><br></div><div style=\"white-space:pre-wrap\"><br></div>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><body><br><div><br></div></body><div style=\\"white-space:pre-wrap\\"></div>" not in array ["<head><title>iframe</title></head><body><br></body><div style=\\"white-space:pre-wrap\\">\\n</div><div style=\\"white-space:pre-wrap\\">\\n</div>", "<head><title>iframe</title></head><body><br></body><div style=\\"white-space:pre-wrap\\"><br></div><div style=\\"white-space:pre-wrap\\"><br></div>"]
 [PASS] insertParagraph in <div style="white-space:pre-wrap"> (containing only a <br>) after <body> should split the <div>
 [PASS] insertParagraph in <div style="white-space:pre-wrap"> (containing text) after <body> should not create another <div> element
 [FAIL] insertParagraph in empty <div style="white-space:pre-wrap"> before <body> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\"white-space:pre-wrap\"></div><body><br><div><br></div></body>" not in array ["<head><title>iframe</title></head><div style=\"white-space:pre-wrap\">\n</div><div style=\"white-space:pre-wrap\">\n</div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre-wrap\"><br></div><div style=\"white-space:pre-wrap\"><br></div><body><br></body>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\\"white-space:pre-wrap\\"></div><body><br><div><br></div></body>" not in array ["<head><title>iframe</title></head><div style=\\"white-space:pre-wrap\\">\\n</div><div style=\\"white-space:pre-wrap\\">\\n</div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre-wrap\\"><br></div><div style=\\"white-space:pre-wrap\\"><br></div><body><br></body>"]
 [PASS] insertParagraph in <div style="white-space:pre-wrap"> (containing only a <br>) before <body> should split the <div>
 [FAIL] insertParagraph in <div style="white-space:pre-wrap"> (containing text) before <body> should split the <div>
-  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\"white-space:pre-wrap\">abcd</div><body><br></body>" not in array ["<head><title>iframe</title></head><div style=\"white-space:pre-wrap\">ab</div><div style=\"white-space:pre-wrap\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre-wrap\">ab<br></div><div style=\"white-space:pre-wrap\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre-wrap\">ab</div><div style=\"white-space:pre-wrap\">cd<br></div><body><br></body>", "<head><title>iframe</title></head><div style=\"white-space:pre-wrap\">ab<br></div><div style=\"white-space:pre-wrap\">cd<br></div><body><br></body>"]
+  assert_in_array: The <div> should be split value "<head><title>iframe</title></head><div style=\\"white-space:pre-wrap\\">abcd</div><body><br></body>" not in array ["<head><title>iframe</title></head><div style=\\"white-space:pre-wrap\\">ab</div><div style=\\"white-space:pre-wrap\\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre-wrap\\">ab<br></div><div style=\\"white-space:pre-wrap\\">cd</div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre-wrap\\">ab</div><div style=\\"white-space:pre-wrap\\">cd<br></div><body><br></body>", "<head><title>iframe</title></head><div style=\\"white-space:pre-wrap\\">ab<br></div><div style=\\"white-space:pre-wrap\\">cd<br></div><body><br></body>"]
 [FAIL] insertParagraph in empty <div style="white-space:pre-wrap"> before <head> should split the <div>
-  assert_in_array: The <div> should be split value "<div style=\"white-space:pre-wrap\"></div><head><title>iframe</title></head><body><br><div><br></div></body>" not in array ["<div style=\"white-space:pre-wrap\">\n</div><div style=\"white-space:pre-wrap\">\n</div><head><title>iframe</title></head><body><br></body>", "<div style=\"white-space:pre-wrap\"><br></div><div style=\"white-space:pre-wrap\"><br></div><head><title>iframe</title></head><body><br></body>"]
+  assert_in_array: The <div> should be split value "<div style=\\"white-space:pre-wrap\\"></div><head><title>iframe</title></head><body><br><div><br></div></body>" not in array ["<div style=\\"white-space:pre-wrap\\">\\n</div><div style=\\"white-space:pre-wrap\\">\\n</div><head><title>iframe</title></head><body><br></body>", "<div style=\\"white-space:pre-wrap\\"><br></div><div style=\\"white-space:pre-wrap\\"><br></div><head><title>iframe</title></head><body><br></body>"]
 [PASS] insertParagraph in <div style="white-space:pre-wrap"> (containing only a <br>) before <head> should split the <div>
 [PASS] insertParagraph in <div style="white-space:pre-wrap"> (containing text) before <head> should split the <div>
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-non-splittable-element-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-non-splittable-element-expected.txt
index 864a71e..80b29f4 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-non-splittable-element-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-in-non-splittable-element-expected.txt
@@ -9,7 +9,7 @@
 [FAIL] insertParagraph in legend of <div><fieldset><legend>abc</legend></fieldset></div>
   assert_equals: expected "<div><fieldset><legend><br>abc</legend></fieldset></div>" but got "<div><fieldset><legend><br></legend><legend>abc</legend></fieldset></div>"
 [FAIL] insertParagraph in meter of <div><meter max="100" value="50">abc</meter></div>
-  assert_equals: expected "<div><br></div><div><meter max=\"100\" value=\"50\">abc</meter></div>" but got "<div><br><meter max=\"100\" value=\"50\">abc</meter></div>"
+  assert_equals: expected "<div><br></div><div><meter max=\\"100\\" value=\\"50\\">abc</meter></div>" but got "<div><br><meter max=\\"100\\" value=\\"50\\">abc</meter></div>"
 [FAIL] insertParagraph in optgroup of <div><select><optgroup><option>abc</option></optgroup></select></div>
   assert_equals: expected "<div><br></div><div><select><optgroup><option>abc</option></optgroup></select></div>" but got "<div><select><optgroup><option>abc</option></optgroup></select></div>"
 [PASS] insertParagraph in option of <div><select><option>abc</option></select></div>
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=nowrap_command=insertParagraph-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=nowrap_command=insertParagraph-expected.txt
index d9bedbe..d3c2cf3 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=nowrap_command=insertParagraph-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=nowrap_command=insertParagraph-expected.txt
@@ -104,11 +104,11 @@
 [PASS] <div contenteditable style="display:inline; white-space:nowrap"><div>[]abc</div></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline; white-space:nowrap"><div>a[]bc</div></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><div style="display:inline; white-space:nowrap">abc[]</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\"display:inline; white-space:nowrap\">abc</div><p><div style=\"display:inline; white-space:nowrap\"><br></div></p>" not in array ["<div style=\"display:inline; white-space:nowrap\">abc</div><div><div style=\"display:inline; white-space:nowrap\"><br></div></div>", "<div><div style=\"display:inline; white-space:nowrap\">abc</div></div><div><div style=\"display:inline; white-space:nowrap\"><br></div></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\\"display:inline; white-space:nowrap\\">abc</div><p><div style=\\"display:inline; white-space:nowrap\\"><br></div></p>" not in array ["<div style=\\"display:inline; white-space:nowrap\\">abc</div><div><div style=\\"display:inline; white-space:nowrap\\"><br></div></div>", "<div><div style=\\"display:inline; white-space:nowrap\\">abc</div></div><div><div style=\\"display:inline; white-space:nowrap\\"><br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline; white-space:nowrap">[]abc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\"display:inline; white-space:nowrap\"><br></div></p><div style=\"display:inline; white-space:nowrap\">abc</div>" not in array ["<div><div style=\"display:inline; white-space:nowrap\"><br></div></div><div style=\"display:inline; white-space:nowrap\">abc</div>", "<div><div style=\"display:inline; white-space:nowrap\"><br></div></div><div style=\"display:inline; white-space:nowrap\">abc<br></div>", "<div><div style=\"display:inline; white-space:nowrap\"><br></div></div><div><div style=\"display:inline; white-space:nowrap\">abc</div></div>", "<div><div style=\"display:inline; white-space:nowrap\"><br></div></div><div><div style=\"display:inline; white-space:nowrap\">abc<br></div></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\\"display:inline; white-space:nowrap\\"><br></div></p><div style=\\"display:inline; white-space:nowrap\\">abc</div>" not in array ["<div><div style=\\"display:inline; white-space:nowrap\\"><br></div></div><div style=\\"display:inline; white-space:nowrap\\">abc</div>", "<div><div style=\\"display:inline; white-space:nowrap\\"><br></div></div><div style=\\"display:inline; white-space:nowrap\\">abc<br></div>", "<div><div style=\\"display:inline; white-space:nowrap\\"><br></div></div><div><div style=\\"display:inline; white-space:nowrap\\">abc</div></div>", "<div><div style=\\"display:inline; white-space:nowrap\\"><br></div></div><div><div style=\\"display:inline; white-space:nowrap\\">abc<br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline; white-space:nowrap">a[]bc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\"display:inline; white-space:nowrap\">a</div><p><div style=\"display:inline; white-space:nowrap\">bc</div></p>" not in array ["<div style=\"display:inline; white-space:nowrap\">a</div><div><div style=\"display:inline; white-space:nowrap\">bc</div></div>", "<div style=\"display:inline; white-space:nowrap\">a</div><div><div style=\"display:inline; white-space:nowrap\">bc<br></div></div>", "<div><div style=\"display:inline; white-space:nowrap\">a</div></div><div><div style=\"display:inline; white-space:nowrap\">bc</div></div>", "<div><div style=\"display:inline; white-space:nowrap\">a</div></div><div><div style=\"display:inline; white-space:nowrap\">bc<br></div></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\\"display:inline; white-space:nowrap\\">a</div><p><div style=\\"display:inline; white-space:nowrap\\">bc</div></p>" not in array ["<div style=\\"display:inline; white-space:nowrap\\">a</div><div><div style=\\"display:inline; white-space:nowrap\\">bc</div></div>", "<div style=\\"display:inline; white-space:nowrap\\">a</div><div><div style=\\"display:inline; white-space:nowrap\\">bc<br></div></div>", "<div><div style=\\"display:inline; white-space:nowrap\\">a</div></div><div><div style=\\"display:inline; white-space:nowrap\\">bc</div></div>", "<div><div style=\\"display:inline; white-space:nowrap\\">a</div></div><div><div style=\\"display:inline; white-space:nowrap\\">bc<br></div></div>"]
 [PASS] <div contenteditable style="display:inline"><p style="white-space:nowrap">abc[]</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline"><p style="white-space:nowrap">[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline"><p style="white-space:nowrap">a[]bc</p></div> (defaultParagraphSeparator: p)
@@ -116,11 +116,11 @@
 [PASS] <div contenteditable style="display:inline; white-space:nowrap"><p>[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline; white-space:nowrap"><p>a[]bc</p></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><p style="display:inline; white-space:nowrap">abc[]</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\"display:inline; white-space:nowrap\">abc</p><p><p style=\"display:inline; white-space:nowrap\"><br></p></p>" not in array ["<p style=\"display:inline; white-space:nowrap\">abc</p><div><p style=\"display:inline; white-space:nowrap\"><br></p></div>", "<div><p style=\"display:inline; white-space:nowrap\">abc</p></div><div><p style=\"display:inline; white-space:nowrap\"><br></p></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\\"display:inline; white-space:nowrap\\">abc</p><p><p style=\\"display:inline; white-space:nowrap\\"><br></p></p>" not in array ["<p style=\\"display:inline; white-space:nowrap\\">abc</p><div><p style=\\"display:inline; white-space:nowrap\\"><br></p></div>", "<div><p style=\\"display:inline; white-space:nowrap\\">abc</p></div><div><p style=\\"display:inline; white-space:nowrap\\"><br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline; white-space:nowrap">[]abc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\"display:inline; white-space:nowrap\"><br></p></p><p style=\"display:inline; white-space:nowrap\">abc</p>" not in array ["<div><p style=\"display:inline; white-space:nowrap\"><br></p></div><p style=\"display:inline; white-space:nowrap\">abc</p>", "<div><p style=\"display:inline; white-space:nowrap\"><br></p></div><p style=\"display:inline; white-space:nowrap\">abc<br></p>", "<div><p style=\"display:inline; white-space:nowrap\"><br></p></div><div><p style=\"display:inline; white-space:nowrap\">abc</p></div>", "<div><p style=\"display:inline; white-space:nowrap\"><br></p></div><div><p style=\"display:inline; white-space:nowrap\">abc<br></p></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\\"display:inline; white-space:nowrap\\"><br></p></p><p style=\\"display:inline; white-space:nowrap\\">abc</p>" not in array ["<div><p style=\\"display:inline; white-space:nowrap\\"><br></p></div><p style=\\"display:inline; white-space:nowrap\\">abc</p>", "<div><p style=\\"display:inline; white-space:nowrap\\"><br></p></div><p style=\\"display:inline; white-space:nowrap\\">abc<br></p>", "<div><p style=\\"display:inline; white-space:nowrap\\"><br></p></div><div><p style=\\"display:inline; white-space:nowrap\\">abc</p></div>", "<div><p style=\\"display:inline; white-space:nowrap\\"><br></p></div><div><p style=\\"display:inline; white-space:nowrap\\">abc<br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline; white-space:nowrap">a[]bc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\"display:inline; white-space:nowrap\">a</p><p><p style=\"display:inline; white-space:nowrap\">bc</p></p>" not in array ["<p style=\"display:inline; white-space:nowrap\">a</p><div><p style=\"display:inline; white-space:nowrap\">bc</p></div>", "<p style=\"display:inline; white-space:nowrap\">a</p><div><p style=\"display:inline; white-space:nowrap\">bc<br></p></div>", "<div><p style=\"display:inline; white-space:nowrap\">a</p></div><div><p style=\"display:inline; white-space:nowrap\">bc</p></div>", "<div><p style=\"display:inline; white-space:nowrap\">a</p></div><div><p style=\"display:inline; white-space:nowrap\">bc<br></p></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\\"display:inline; white-space:nowrap\\">a</p><p><p style=\\"display:inline; white-space:nowrap\\">bc</p></p>" not in array ["<p style=\\"display:inline; white-space:nowrap\\">a</p><div><p style=\\"display:inline; white-space:nowrap\\">bc</p></div>", "<p style=\\"display:inline; white-space:nowrap\\">a</p><div><p style=\\"display:inline; white-space:nowrap\\">bc<br></p></div>", "<div><p style=\\"display:inline; white-space:nowrap\\">a</p></div><div><p style=\\"display:inline; white-space:nowrap\\">bc</p></div>", "<div><p style=\\"display:inline; white-space:nowrap\\">a</p></div><div><p style=\\"display:inline; white-space:nowrap\\">bc<br></p></div>"]
 [PASS] <div contenteditable style="white-space:nowrap; display:inline-block">abc[]</div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="white-space:nowrap; display:inline-block">[]abc</div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="white-space:nowrap; display:inline-block">a[]bc</div> (defaultParagraphSeparator: p)
@@ -133,11 +133,11 @@
 [PASS] <div contenteditable style="display:inline-block; white-space:nowrap"><div>[]abc</div></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block; white-space:nowrap"><div>a[]bc</div></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:nowrap">abc[]</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\"display:inline-block; white-space:nowrap\">abc</div><p><div style=\"display:inline-block; white-space:nowrap\"><br></div></p>" not in array ["<div style=\"display:inline-block; white-space:nowrap\">abc</div><div><div style=\"display:inline-block; white-space:nowrap\"><br></div></div>", "<div><div style=\"display:inline-block; white-space:nowrap\">abc</div></div><div><div style=\"display:inline-block; white-space:nowrap\"><br></div></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\\"display:inline-block; white-space:nowrap\\">abc</div><p><div style=\\"display:inline-block; white-space:nowrap\\"><br></div></p>" not in array ["<div style=\\"display:inline-block; white-space:nowrap\\">abc</div><div><div style=\\"display:inline-block; white-space:nowrap\\"><br></div></div>", "<div><div style=\\"display:inline-block; white-space:nowrap\\">abc</div></div><div><div style=\\"display:inline-block; white-space:nowrap\\"><br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:nowrap">[]abc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\"display:inline-block; white-space:nowrap\"><br></div></p><div style=\"display:inline-block; white-space:nowrap\">abc</div>" not in array ["<div><div style=\"display:inline-block; white-space:nowrap\"><br></div></div><div style=\"display:inline-block; white-space:nowrap\">abc</div>", "<div><div style=\"display:inline-block; white-space:nowrap\"><br></div></div><div style=\"display:inline-block; white-space:nowrap\">abc<br></div>", "<div><div style=\"display:inline-block; white-space:nowrap\"><br></div></div><div><div style=\"display:inline-block; white-space:nowrap\">abc</div></div>", "<div><div style=\"display:inline-block; white-space:nowrap\"><br></div></div><div><div style=\"display:inline-block; white-space:nowrap\">abc<br></div></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\\"display:inline-block; white-space:nowrap\\"><br></div></p><div style=\\"display:inline-block; white-space:nowrap\\">abc</div>" not in array ["<div><div style=\\"display:inline-block; white-space:nowrap\\"><br></div></div><div style=\\"display:inline-block; white-space:nowrap\\">abc</div>", "<div><div style=\\"display:inline-block; white-space:nowrap\\"><br></div></div><div style=\\"display:inline-block; white-space:nowrap\\">abc<br></div>", "<div><div style=\\"display:inline-block; white-space:nowrap\\"><br></div></div><div><div style=\\"display:inline-block; white-space:nowrap\\">abc</div></div>", "<div><div style=\\"display:inline-block; white-space:nowrap\\"><br></div></div><div><div style=\\"display:inline-block; white-space:nowrap\\">abc<br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:nowrap">a[]bc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\"display:inline-block; white-space:nowrap\">a</div><p><div style=\"display:inline-block; white-space:nowrap\">bc</div></p>" not in array ["<div style=\"display:inline-block; white-space:nowrap\">a</div><div><div style=\"display:inline-block; white-space:nowrap\">bc</div></div>", "<div style=\"display:inline-block; white-space:nowrap\">a</div><div><div style=\"display:inline-block; white-space:nowrap\">bc<br></div></div>", "<div><div style=\"display:inline-block; white-space:nowrap\">a</div></div><div><div style=\"display:inline-block; white-space:nowrap\">bc</div></div>", "<div><div style=\"display:inline-block; white-space:nowrap\">a</div></div><div><div style=\"display:inline-block; white-space:nowrap\">bc<br></div></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\\"display:inline-block; white-space:nowrap\\">a</div><p><div style=\\"display:inline-block; white-space:nowrap\\">bc</div></p>" not in array ["<div style=\\"display:inline-block; white-space:nowrap\\">a</div><div><div style=\\"display:inline-block; white-space:nowrap\\">bc</div></div>", "<div style=\\"display:inline-block; white-space:nowrap\\">a</div><div><div style=\\"display:inline-block; white-space:nowrap\\">bc<br></div></div>", "<div><div style=\\"display:inline-block; white-space:nowrap\\">a</div></div><div><div style=\\"display:inline-block; white-space:nowrap\\">bc</div></div>", "<div><div style=\\"display:inline-block; white-space:nowrap\\">a</div></div><div><div style=\\"display:inline-block; white-space:nowrap\\">bc<br></div></div>"]
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:nowrap">abc[]</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:nowrap">[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:nowrap">a[]bc</p></div> (defaultParagraphSeparator: p)
@@ -145,10 +145,10 @@
 [PASS] <div contenteditable style="display:inline-block; white-space:nowrap"><p>[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block; white-space:nowrap"><p>a[]bc</p></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:nowrap">abc[]</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\"display:inline-block; white-space:nowrap\">abc</p><p><p style=\"display:inline-block; white-space:nowrap\"><br></p></p>" not in array ["<p style=\"display:inline-block; white-space:nowrap\">abc</p><div><p style=\"display:inline-block; white-space:nowrap\"><br></p></div>", "<div><p style=\"display:inline-block; white-space:nowrap\">abc</p></div><div><p style=\"display:inline-block; white-space:nowrap\"><br></p></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\\"display:inline-block; white-space:nowrap\\">abc</p><p><p style=\\"display:inline-block; white-space:nowrap\\"><br></p></p>" not in array ["<p style=\\"display:inline-block; white-space:nowrap\\">abc</p><div><p style=\\"display:inline-block; white-space:nowrap\\"><br></p></div>", "<div><p style=\\"display:inline-block; white-space:nowrap\\">abc</p></div><div><p style=\\"display:inline-block; white-space:nowrap\\"><br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:nowrap">[]abc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\"display:inline-block; white-space:nowrap\"><br></p></p><p style=\"display:inline-block; white-space:nowrap\">abc</p>" not in array ["<div><p style=\"display:inline-block; white-space:nowrap\"><br></p></div><p style=\"display:inline-block; white-space:nowrap\">abc</p>", "<div><p style=\"display:inline-block; white-space:nowrap\"><br></p></div><p style=\"display:inline-block; white-space:nowrap\">abc<br></p>", "<div><p style=\"display:inline-block; white-space:nowrap\"><br></p></div><div><p style=\"display:inline-block; white-space:nowrap\">abc</p></div>", "<div><p style=\"display:inline-block; white-space:nowrap\"><br></p></div><div><p style=\"display:inline-block; white-space:nowrap\">abc<br></p></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\\"display:inline-block; white-space:nowrap\\"><br></p></p><p style=\\"display:inline-block; white-space:nowrap\\">abc</p>" not in array ["<div><p style=\\"display:inline-block; white-space:nowrap\\"><br></p></div><p style=\\"display:inline-block; white-space:nowrap\\">abc</p>", "<div><p style=\\"display:inline-block; white-space:nowrap\\"><br></p></div><p style=\\"display:inline-block; white-space:nowrap\\">abc<br></p>", "<div><p style=\\"display:inline-block; white-space:nowrap\\"><br></p></div><div><p style=\\"display:inline-block; white-space:nowrap\\">abc</p></div>", "<div><p style=\\"display:inline-block; white-space:nowrap\\"><br></p></div><div><p style=\\"display:inline-block; white-space:nowrap\\">abc<br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:nowrap">a[]bc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\"display:inline-block; white-space:nowrap\">a</p><p><p style=\"display:inline-block; white-space:nowrap\">bc</p></p>" not in array ["<p style=\"display:inline-block; white-space:nowrap\">a</p><div><p style=\"display:inline-block; white-space:nowrap\">bc</p></div>", "<p style=\"display:inline-block; white-space:nowrap\">a</p><div><p style=\"display:inline-block; white-space:nowrap\">bc<br></p></div>", "<div><p style=\"display:inline-block; white-space:nowrap\">a</p></div><div><p style=\"display:inline-block; white-space:nowrap\">bc</p></div>", "<div><p style=\"display:inline-block; white-space:nowrap\">a</p></div><div><p style=\"display:inline-block; white-space:nowrap\">bc<br></p></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\\"display:inline-block; white-space:nowrap\\">a</p><p><p style=\\"display:inline-block; white-space:nowrap\\">bc</p></p>" not in array ["<p style=\\"display:inline-block; white-space:nowrap\\">a</p><div><p style=\\"display:inline-block; white-space:nowrap\\">bc</p></div>", "<p style=\\"display:inline-block; white-space:nowrap\\">a</p><div><p style=\\"display:inline-block; white-space:nowrap\\">bc<br></p></div>", "<div><p style=\\"display:inline-block; white-space:nowrap\\">a</p></div><div><p style=\\"display:inline-block; white-space:nowrap\\">bc</p></div>", "<div><p style=\\"display:inline-block; white-space:nowrap\\">a</p></div><div><p style=\\"display:inline-block; white-space:nowrap\\">bc<br></p></div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=nowrap_command=insertText-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=nowrap_command=insertText-expected.txt
index d9bedbe..d3c2cf3 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=nowrap_command=insertText-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=nowrap_command=insertText-expected.txt
@@ -104,11 +104,11 @@
 [PASS] <div contenteditable style="display:inline; white-space:nowrap"><div>[]abc</div></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline; white-space:nowrap"><div>a[]bc</div></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><div style="display:inline; white-space:nowrap">abc[]</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\"display:inline; white-space:nowrap\">abc</div><p><div style=\"display:inline; white-space:nowrap\"><br></div></p>" not in array ["<div style=\"display:inline; white-space:nowrap\">abc</div><div><div style=\"display:inline; white-space:nowrap\"><br></div></div>", "<div><div style=\"display:inline; white-space:nowrap\">abc</div></div><div><div style=\"display:inline; white-space:nowrap\"><br></div></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\\"display:inline; white-space:nowrap\\">abc</div><p><div style=\\"display:inline; white-space:nowrap\\"><br></div></p>" not in array ["<div style=\\"display:inline; white-space:nowrap\\">abc</div><div><div style=\\"display:inline; white-space:nowrap\\"><br></div></div>", "<div><div style=\\"display:inline; white-space:nowrap\\">abc</div></div><div><div style=\\"display:inline; white-space:nowrap\\"><br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline; white-space:nowrap">[]abc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\"display:inline; white-space:nowrap\"><br></div></p><div style=\"display:inline; white-space:nowrap\">abc</div>" not in array ["<div><div style=\"display:inline; white-space:nowrap\"><br></div></div><div style=\"display:inline; white-space:nowrap\">abc</div>", "<div><div style=\"display:inline; white-space:nowrap\"><br></div></div><div style=\"display:inline; white-space:nowrap\">abc<br></div>", "<div><div style=\"display:inline; white-space:nowrap\"><br></div></div><div><div style=\"display:inline; white-space:nowrap\">abc</div></div>", "<div><div style=\"display:inline; white-space:nowrap\"><br></div></div><div><div style=\"display:inline; white-space:nowrap\">abc<br></div></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\\"display:inline; white-space:nowrap\\"><br></div></p><div style=\\"display:inline; white-space:nowrap\\">abc</div>" not in array ["<div><div style=\\"display:inline; white-space:nowrap\\"><br></div></div><div style=\\"display:inline; white-space:nowrap\\">abc</div>", "<div><div style=\\"display:inline; white-space:nowrap\\"><br></div></div><div style=\\"display:inline; white-space:nowrap\\">abc<br></div>", "<div><div style=\\"display:inline; white-space:nowrap\\"><br></div></div><div><div style=\\"display:inline; white-space:nowrap\\">abc</div></div>", "<div><div style=\\"display:inline; white-space:nowrap\\"><br></div></div><div><div style=\\"display:inline; white-space:nowrap\\">abc<br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline; white-space:nowrap">a[]bc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\"display:inline; white-space:nowrap\">a</div><p><div style=\"display:inline; white-space:nowrap\">bc</div></p>" not in array ["<div style=\"display:inline; white-space:nowrap\">a</div><div><div style=\"display:inline; white-space:nowrap\">bc</div></div>", "<div style=\"display:inline; white-space:nowrap\">a</div><div><div style=\"display:inline; white-space:nowrap\">bc<br></div></div>", "<div><div style=\"display:inline; white-space:nowrap\">a</div></div><div><div style=\"display:inline; white-space:nowrap\">bc</div></div>", "<div><div style=\"display:inline; white-space:nowrap\">a</div></div><div><div style=\"display:inline; white-space:nowrap\">bc<br></div></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\\"display:inline; white-space:nowrap\\">a</div><p><div style=\\"display:inline; white-space:nowrap\\">bc</div></p>" not in array ["<div style=\\"display:inline; white-space:nowrap\\">a</div><div><div style=\\"display:inline; white-space:nowrap\\">bc</div></div>", "<div style=\\"display:inline; white-space:nowrap\\">a</div><div><div style=\\"display:inline; white-space:nowrap\\">bc<br></div></div>", "<div><div style=\\"display:inline; white-space:nowrap\\">a</div></div><div><div style=\\"display:inline; white-space:nowrap\\">bc</div></div>", "<div><div style=\\"display:inline; white-space:nowrap\\">a</div></div><div><div style=\\"display:inline; white-space:nowrap\\">bc<br></div></div>"]
 [PASS] <div contenteditable style="display:inline"><p style="white-space:nowrap">abc[]</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline"><p style="white-space:nowrap">[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline"><p style="white-space:nowrap">a[]bc</p></div> (defaultParagraphSeparator: p)
@@ -116,11 +116,11 @@
 [PASS] <div contenteditable style="display:inline; white-space:nowrap"><p>[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline; white-space:nowrap"><p>a[]bc</p></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><p style="display:inline; white-space:nowrap">abc[]</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\"display:inline; white-space:nowrap\">abc</p><p><p style=\"display:inline; white-space:nowrap\"><br></p></p>" not in array ["<p style=\"display:inline; white-space:nowrap\">abc</p><div><p style=\"display:inline; white-space:nowrap\"><br></p></div>", "<div><p style=\"display:inline; white-space:nowrap\">abc</p></div><div><p style=\"display:inline; white-space:nowrap\"><br></p></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\\"display:inline; white-space:nowrap\\">abc</p><p><p style=\\"display:inline; white-space:nowrap\\"><br></p></p>" not in array ["<p style=\\"display:inline; white-space:nowrap\\">abc</p><div><p style=\\"display:inline; white-space:nowrap\\"><br></p></div>", "<div><p style=\\"display:inline; white-space:nowrap\\">abc</p></div><div><p style=\\"display:inline; white-space:nowrap\\"><br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline; white-space:nowrap">[]abc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\"display:inline; white-space:nowrap\"><br></p></p><p style=\"display:inline; white-space:nowrap\">abc</p>" not in array ["<div><p style=\"display:inline; white-space:nowrap\"><br></p></div><p style=\"display:inline; white-space:nowrap\">abc</p>", "<div><p style=\"display:inline; white-space:nowrap\"><br></p></div><p style=\"display:inline; white-space:nowrap\">abc<br></p>", "<div><p style=\"display:inline; white-space:nowrap\"><br></p></div><div><p style=\"display:inline; white-space:nowrap\">abc</p></div>", "<div><p style=\"display:inline; white-space:nowrap\"><br></p></div><div><p style=\"display:inline; white-space:nowrap\">abc<br></p></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\\"display:inline; white-space:nowrap\\"><br></p></p><p style=\\"display:inline; white-space:nowrap\\">abc</p>" not in array ["<div><p style=\\"display:inline; white-space:nowrap\\"><br></p></div><p style=\\"display:inline; white-space:nowrap\\">abc</p>", "<div><p style=\\"display:inline; white-space:nowrap\\"><br></p></div><p style=\\"display:inline; white-space:nowrap\\">abc<br></p>", "<div><p style=\\"display:inline; white-space:nowrap\\"><br></p></div><div><p style=\\"display:inline; white-space:nowrap\\">abc</p></div>", "<div><p style=\\"display:inline; white-space:nowrap\\"><br></p></div><div><p style=\\"display:inline; white-space:nowrap\\">abc<br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline; white-space:nowrap">a[]bc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\"display:inline; white-space:nowrap\">a</p><p><p style=\"display:inline; white-space:nowrap\">bc</p></p>" not in array ["<p style=\"display:inline; white-space:nowrap\">a</p><div><p style=\"display:inline; white-space:nowrap\">bc</p></div>", "<p style=\"display:inline; white-space:nowrap\">a</p><div><p style=\"display:inline; white-space:nowrap\">bc<br></p></div>", "<div><p style=\"display:inline; white-space:nowrap\">a</p></div><div><p style=\"display:inline; white-space:nowrap\">bc</p></div>", "<div><p style=\"display:inline; white-space:nowrap\">a</p></div><div><p style=\"display:inline; white-space:nowrap\">bc<br></p></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\\"display:inline; white-space:nowrap\\">a</p><p><p style=\\"display:inline; white-space:nowrap\\">bc</p></p>" not in array ["<p style=\\"display:inline; white-space:nowrap\\">a</p><div><p style=\\"display:inline; white-space:nowrap\\">bc</p></div>", "<p style=\\"display:inline; white-space:nowrap\\">a</p><div><p style=\\"display:inline; white-space:nowrap\\">bc<br></p></div>", "<div><p style=\\"display:inline; white-space:nowrap\\">a</p></div><div><p style=\\"display:inline; white-space:nowrap\\">bc</p></div>", "<div><p style=\\"display:inline; white-space:nowrap\\">a</p></div><div><p style=\\"display:inline; white-space:nowrap\\">bc<br></p></div>"]
 [PASS] <div contenteditable style="white-space:nowrap; display:inline-block">abc[]</div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="white-space:nowrap; display:inline-block">[]abc</div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="white-space:nowrap; display:inline-block">a[]bc</div> (defaultParagraphSeparator: p)
@@ -133,11 +133,11 @@
 [PASS] <div contenteditable style="display:inline-block; white-space:nowrap"><div>[]abc</div></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block; white-space:nowrap"><div>a[]bc</div></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:nowrap">abc[]</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\"display:inline-block; white-space:nowrap\">abc</div><p><div style=\"display:inline-block; white-space:nowrap\"><br></div></p>" not in array ["<div style=\"display:inline-block; white-space:nowrap\">abc</div><div><div style=\"display:inline-block; white-space:nowrap\"><br></div></div>", "<div><div style=\"display:inline-block; white-space:nowrap\">abc</div></div><div><div style=\"display:inline-block; white-space:nowrap\"><br></div></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\\"display:inline-block; white-space:nowrap\\">abc</div><p><div style=\\"display:inline-block; white-space:nowrap\\"><br></div></p>" not in array ["<div style=\\"display:inline-block; white-space:nowrap\\">abc</div><div><div style=\\"display:inline-block; white-space:nowrap\\"><br></div></div>", "<div><div style=\\"display:inline-block; white-space:nowrap\\">abc</div></div><div><div style=\\"display:inline-block; white-space:nowrap\\"><br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:nowrap">[]abc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\"display:inline-block; white-space:nowrap\"><br></div></p><div style=\"display:inline-block; white-space:nowrap\">abc</div>" not in array ["<div><div style=\"display:inline-block; white-space:nowrap\"><br></div></div><div style=\"display:inline-block; white-space:nowrap\">abc</div>", "<div><div style=\"display:inline-block; white-space:nowrap\"><br></div></div><div style=\"display:inline-block; white-space:nowrap\">abc<br></div>", "<div><div style=\"display:inline-block; white-space:nowrap\"><br></div></div><div><div style=\"display:inline-block; white-space:nowrap\">abc</div></div>", "<div><div style=\"display:inline-block; white-space:nowrap\"><br></div></div><div><div style=\"display:inline-block; white-space:nowrap\">abc<br></div></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\\"display:inline-block; white-space:nowrap\\"><br></div></p><div style=\\"display:inline-block; white-space:nowrap\\">abc</div>" not in array ["<div><div style=\\"display:inline-block; white-space:nowrap\\"><br></div></div><div style=\\"display:inline-block; white-space:nowrap\\">abc</div>", "<div><div style=\\"display:inline-block; white-space:nowrap\\"><br></div></div><div style=\\"display:inline-block; white-space:nowrap\\">abc<br></div>", "<div><div style=\\"display:inline-block; white-space:nowrap\\"><br></div></div><div><div style=\\"display:inline-block; white-space:nowrap\\">abc</div></div>", "<div><div style=\\"display:inline-block; white-space:nowrap\\"><br></div></div><div><div style=\\"display:inline-block; white-space:nowrap\\">abc<br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:nowrap">a[]bc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\"display:inline-block; white-space:nowrap\">a</div><p><div style=\"display:inline-block; white-space:nowrap\">bc</div></p>" not in array ["<div style=\"display:inline-block; white-space:nowrap\">a</div><div><div style=\"display:inline-block; white-space:nowrap\">bc</div></div>", "<div style=\"display:inline-block; white-space:nowrap\">a</div><div><div style=\"display:inline-block; white-space:nowrap\">bc<br></div></div>", "<div><div style=\"display:inline-block; white-space:nowrap\">a</div></div><div><div style=\"display:inline-block; white-space:nowrap\">bc</div></div>", "<div><div style=\"display:inline-block; white-space:nowrap\">a</div></div><div><div style=\"display:inline-block; white-space:nowrap\">bc<br></div></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\\"display:inline-block; white-space:nowrap\\">a</div><p><div style=\\"display:inline-block; white-space:nowrap\\">bc</div></p>" not in array ["<div style=\\"display:inline-block; white-space:nowrap\\">a</div><div><div style=\\"display:inline-block; white-space:nowrap\\">bc</div></div>", "<div style=\\"display:inline-block; white-space:nowrap\\">a</div><div><div style=\\"display:inline-block; white-space:nowrap\\">bc<br></div></div>", "<div><div style=\\"display:inline-block; white-space:nowrap\\">a</div></div><div><div style=\\"display:inline-block; white-space:nowrap\\">bc</div></div>", "<div><div style=\\"display:inline-block; white-space:nowrap\\">a</div></div><div><div style=\\"display:inline-block; white-space:nowrap\\">bc<br></div></div>"]
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:nowrap">abc[]</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:nowrap">[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:nowrap">a[]bc</p></div> (defaultParagraphSeparator: p)
@@ -145,10 +145,10 @@
 [PASS] <div contenteditable style="display:inline-block; white-space:nowrap"><p>[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block; white-space:nowrap"><p>a[]bc</p></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:nowrap">abc[]</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\"display:inline-block; white-space:nowrap\">abc</p><p><p style=\"display:inline-block; white-space:nowrap\"><br></p></p>" not in array ["<p style=\"display:inline-block; white-space:nowrap\">abc</p><div><p style=\"display:inline-block; white-space:nowrap\"><br></p></div>", "<div><p style=\"display:inline-block; white-space:nowrap\">abc</p></div><div><p style=\"display:inline-block; white-space:nowrap\"><br></p></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\\"display:inline-block; white-space:nowrap\\">abc</p><p><p style=\\"display:inline-block; white-space:nowrap\\"><br></p></p>" not in array ["<p style=\\"display:inline-block; white-space:nowrap\\">abc</p><div><p style=\\"display:inline-block; white-space:nowrap\\"><br></p></div>", "<div><p style=\\"display:inline-block; white-space:nowrap\\">abc</p></div><div><p style=\\"display:inline-block; white-space:nowrap\\"><br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:nowrap">[]abc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\"display:inline-block; white-space:nowrap\"><br></p></p><p style=\"display:inline-block; white-space:nowrap\">abc</p>" not in array ["<div><p style=\"display:inline-block; white-space:nowrap\"><br></p></div><p style=\"display:inline-block; white-space:nowrap\">abc</p>", "<div><p style=\"display:inline-block; white-space:nowrap\"><br></p></div><p style=\"display:inline-block; white-space:nowrap\">abc<br></p>", "<div><p style=\"display:inline-block; white-space:nowrap\"><br></p></div><div><p style=\"display:inline-block; white-space:nowrap\">abc</p></div>", "<div><p style=\"display:inline-block; white-space:nowrap\"><br></p></div><div><p style=\"display:inline-block; white-space:nowrap\">abc<br></p></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\\"display:inline-block; white-space:nowrap\\"><br></p></p><p style=\\"display:inline-block; white-space:nowrap\\">abc</p>" not in array ["<div><p style=\\"display:inline-block; white-space:nowrap\\"><br></p></div><p style=\\"display:inline-block; white-space:nowrap\\">abc</p>", "<div><p style=\\"display:inline-block; white-space:nowrap\\"><br></p></div><p style=\\"display:inline-block; white-space:nowrap\\">abc<br></p>", "<div><p style=\\"display:inline-block; white-space:nowrap\\"><br></p></div><div><p style=\\"display:inline-block; white-space:nowrap\\">abc</p></div>", "<div><p style=\\"display:inline-block; white-space:nowrap\\"><br></p></div><div><p style=\\"display:inline-block; white-space:nowrap\\">abc<br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:nowrap">a[]bc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\"display:inline-block; white-space:nowrap\">a</p><p><p style=\"display:inline-block; white-space:nowrap\">bc</p></p>" not in array ["<p style=\"display:inline-block; white-space:nowrap\">a</p><div><p style=\"display:inline-block; white-space:nowrap\">bc</p></div>", "<p style=\"display:inline-block; white-space:nowrap\">a</p><div><p style=\"display:inline-block; white-space:nowrap\">bc<br></p></div>", "<div><p style=\"display:inline-block; white-space:nowrap\">a</p></div><div><p style=\"display:inline-block; white-space:nowrap\">bc</p></div>", "<div><p style=\"display:inline-block; white-space:nowrap\">a</p></div><div><p style=\"display:inline-block; white-space:nowrap\">bc<br></p></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\\"display:inline-block; white-space:nowrap\\">a</p><p><p style=\\"display:inline-block; white-space:nowrap\\">bc</p></p>" not in array ["<p style=\\"display:inline-block; white-space:nowrap\\">a</p><div><p style=\\"display:inline-block; white-space:nowrap\\">bc</p></div>", "<p style=\\"display:inline-block; white-space:nowrap\\">a</p><div><p style=\\"display:inline-block; white-space:nowrap\\">bc<br></p></div>", "<div><p style=\\"display:inline-block; white-space:nowrap\\">a</p></div><div><p style=\\"display:inline-block; white-space:nowrap\\">bc</p></div>", "<div><p style=\\"display:inline-block; white-space:nowrap\\">a</p></div><div><p style=\\"display:inline-block; white-space:nowrap\\">bc<br></p></div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre-line_command=insertParagraph-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre-line_command=insertParagraph-expected.txt
index 928ac668..8af6e4c 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre-line_command=insertParagraph-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre-line_command=insertParagraph-expected.txt
@@ -104,11 +104,11 @@
 [PASS] <div contenteditable style="display:inline; white-space:pre-line"><div>[]abc</div></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline; white-space:pre-line"><div>a[]bc</div></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><div style="display:inline; white-space:pre-line">abc[]</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\"display:inline; white-space:pre-line\">abc</div><p><div style=\"display:inline; white-space:pre-line\"><br></div></p>" not in array ["<div style=\"display:inline; white-space:pre-line\">abc</div><div><div style=\"display:inline; white-space:pre-line\"><br></div></div>", "<div><div style=\"display:inline; white-space:pre-line\">abc</div></div><div><div style=\"display:inline; white-space:pre-line\"><br></div></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\\"display:inline; white-space:pre-line\\">abc</div><p><div style=\\"display:inline; white-space:pre-line\\"><br></div></p>" not in array ["<div style=\\"display:inline; white-space:pre-line\\">abc</div><div><div style=\\"display:inline; white-space:pre-line\\"><br></div></div>", "<div><div style=\\"display:inline; white-space:pre-line\\">abc</div></div><div><div style=\\"display:inline; white-space:pre-line\\"><br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline; white-space:pre-line">[]abc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\"display:inline; white-space:pre-line\"><br></div></p><div style=\"display:inline; white-space:pre-line\">abc</div>" not in array ["<div><div style=\"display:inline; white-space:pre-line\"><br></div></div><div style=\"display:inline; white-space:pre-line\">abc</div>", "<div><div style=\"display:inline; white-space:pre-line\"><br></div></div><div style=\"display:inline; white-space:pre-line\">abc<br></div>", "<div><div style=\"display:inline; white-space:pre-line\"><br></div></div><div><div style=\"display:inline; white-space:pre-line\">abc</div></div>", "<div><div style=\"display:inline; white-space:pre-line\"><br></div></div><div><div style=\"display:inline; white-space:pre-line\">abc<br></div></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\\"display:inline; white-space:pre-line\\"><br></div></p><div style=\\"display:inline; white-space:pre-line\\">abc</div>" not in array ["<div><div style=\\"display:inline; white-space:pre-line\\"><br></div></div><div style=\\"display:inline; white-space:pre-line\\">abc</div>", "<div><div style=\\"display:inline; white-space:pre-line\\"><br></div></div><div style=\\"display:inline; white-space:pre-line\\">abc<br></div>", "<div><div style=\\"display:inline; white-space:pre-line\\"><br></div></div><div><div style=\\"display:inline; white-space:pre-line\\">abc</div></div>", "<div><div style=\\"display:inline; white-space:pre-line\\"><br></div></div><div><div style=\\"display:inline; white-space:pre-line\\">abc<br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline; white-space:pre-line">a[]bc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\"display:inline; white-space:pre-line\">a</div><p><div style=\"display:inline; white-space:pre-line\">bc</div></p>" not in array ["<div style=\"display:inline; white-space:pre-line\">a</div><div><div style=\"display:inline; white-space:pre-line\">bc</div></div>", "<div style=\"display:inline; white-space:pre-line\">a</div><div><div style=\"display:inline; white-space:pre-line\">bc<br></div></div>", "<div><div style=\"display:inline; white-space:pre-line\">a</div></div><div><div style=\"display:inline; white-space:pre-line\">bc</div></div>", "<div><div style=\"display:inline; white-space:pre-line\">a</div></div><div><div style=\"display:inline; white-space:pre-line\">bc<br></div></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\\"display:inline; white-space:pre-line\\">a</div><p><div style=\\"display:inline; white-space:pre-line\\">bc</div></p>" not in array ["<div style=\\"display:inline; white-space:pre-line\\">a</div><div><div style=\\"display:inline; white-space:pre-line\\">bc</div></div>", "<div style=\\"display:inline; white-space:pre-line\\">a</div><div><div style=\\"display:inline; white-space:pre-line\\">bc<br></div></div>", "<div><div style=\\"display:inline; white-space:pre-line\\">a</div></div><div><div style=\\"display:inline; white-space:pre-line\\">bc</div></div>", "<div><div style=\\"display:inline; white-space:pre-line\\">a</div></div><div><div style=\\"display:inline; white-space:pre-line\\">bc<br></div></div>"]
 [PASS] <div contenteditable style="display:inline"><p style="white-space:pre-line">abc[]</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline"><p style="white-space:pre-line">[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline"><p style="white-space:pre-line">a[]bc</p></div> (defaultParagraphSeparator: p)
@@ -116,11 +116,11 @@
 [PASS] <div contenteditable style="display:inline; white-space:pre-line"><p>[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline; white-space:pre-line"><p>a[]bc</p></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><p style="display:inline; white-space:pre-line">abc[]</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\"display:inline; white-space:pre-line\">abc</p><p><p style=\"display:inline; white-space:pre-line\"><br></p></p>" not in array ["<p style=\"display:inline; white-space:pre-line\">abc</p><div><p style=\"display:inline; white-space:pre-line\"><br></p></div>", "<div><p style=\"display:inline; white-space:pre-line\">abc</p></div><div><p style=\"display:inline; white-space:pre-line\"><br></p></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\\"display:inline; white-space:pre-line\\">abc</p><p><p style=\\"display:inline; white-space:pre-line\\"><br></p></p>" not in array ["<p style=\\"display:inline; white-space:pre-line\\">abc</p><div><p style=\\"display:inline; white-space:pre-line\\"><br></p></div>", "<div><p style=\\"display:inline; white-space:pre-line\\">abc</p></div><div><p style=\\"display:inline; white-space:pre-line\\"><br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline; white-space:pre-line">[]abc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\"display:inline; white-space:pre-line\"><br></p></p><p style=\"display:inline; white-space:pre-line\">abc</p>" not in array ["<div><p style=\"display:inline; white-space:pre-line\"><br></p></div><p style=\"display:inline; white-space:pre-line\">abc</p>", "<div><p style=\"display:inline; white-space:pre-line\"><br></p></div><p style=\"display:inline; white-space:pre-line\">abc<br></p>", "<div><p style=\"display:inline; white-space:pre-line\"><br></p></div><div><p style=\"display:inline; white-space:pre-line\">abc</p></div>", "<div><p style=\"display:inline; white-space:pre-line\"><br></p></div><div><p style=\"display:inline; white-space:pre-line\">abc<br></p></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\\"display:inline; white-space:pre-line\\"><br></p></p><p style=\\"display:inline; white-space:pre-line\\">abc</p>" not in array ["<div><p style=\\"display:inline; white-space:pre-line\\"><br></p></div><p style=\\"display:inline; white-space:pre-line\\">abc</p>", "<div><p style=\\"display:inline; white-space:pre-line\\"><br></p></div><p style=\\"display:inline; white-space:pre-line\\">abc<br></p>", "<div><p style=\\"display:inline; white-space:pre-line\\"><br></p></div><div><p style=\\"display:inline; white-space:pre-line\\">abc</p></div>", "<div><p style=\\"display:inline; white-space:pre-line\\"><br></p></div><div><p style=\\"display:inline; white-space:pre-line\\">abc<br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline; white-space:pre-line">a[]bc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\"display:inline; white-space:pre-line\">a</p><p><p style=\"display:inline; white-space:pre-line\">bc</p></p>" not in array ["<p style=\"display:inline; white-space:pre-line\">a</p><div><p style=\"display:inline; white-space:pre-line\">bc</p></div>", "<p style=\"display:inline; white-space:pre-line\">a</p><div><p style=\"display:inline; white-space:pre-line\">bc<br></p></div>", "<div><p style=\"display:inline; white-space:pre-line\">a</p></div><div><p style=\"display:inline; white-space:pre-line\">bc</p></div>", "<div><p style=\"display:inline; white-space:pre-line\">a</p></div><div><p style=\"display:inline; white-space:pre-line\">bc<br></p></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\\"display:inline; white-space:pre-line\\">a</p><p><p style=\\"display:inline; white-space:pre-line\\">bc</p></p>" not in array ["<p style=\\"display:inline; white-space:pre-line\\">a</p><div><p style=\\"display:inline; white-space:pre-line\\">bc</p></div>", "<p style=\\"display:inline; white-space:pre-line\\">a</p><div><p style=\\"display:inline; white-space:pre-line\\">bc<br></p></div>", "<div><p style=\\"display:inline; white-space:pre-line\\">a</p></div><div><p style=\\"display:inline; white-space:pre-line\\">bc</p></div>", "<div><p style=\\"display:inline; white-space:pre-line\\">a</p></div><div><p style=\\"display:inline; white-space:pre-line\\">bc<br></p></div>"]
 [PASS] <div contenteditable style="white-space:pre-line; display:inline-block">abc[]</div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="white-space:pre-line; display:inline-block">[]abc</div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="white-space:pre-line; display:inline-block">a[]bc</div> (defaultParagraphSeparator: p)
@@ -133,11 +133,11 @@
 [PASS] <div contenteditable style="display:inline-block; white-space:pre-line"><div>[]abc</div></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block; white-space:pre-line"><div>a[]bc</div></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:pre-line">abc[]</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\"display:inline-block; white-space:pre-line\">abc</div><p><div style=\"display:inline-block; white-space:pre-line\"><br></div></p>" not in array ["<div style=\"display:inline-block; white-space:pre-line\">abc</div><div><div style=\"display:inline-block; white-space:pre-line\"><br></div></div>", "<div><div style=\"display:inline-block; white-space:pre-line\">abc</div></div><div><div style=\"display:inline-block; white-space:pre-line\"><br></div></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\\"display:inline-block; white-space:pre-line\\">abc</div><p><div style=\\"display:inline-block; white-space:pre-line\\"><br></div></p>" not in array ["<div style=\\"display:inline-block; white-space:pre-line\\">abc</div><div><div style=\\"display:inline-block; white-space:pre-line\\"><br></div></div>", "<div><div style=\\"display:inline-block; white-space:pre-line\\">abc</div></div><div><div style=\\"display:inline-block; white-space:pre-line\\"><br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:pre-line">[]abc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\"display:inline-block; white-space:pre-line\"><br></div></p><div style=\"display:inline-block; white-space:pre-line\">abc</div>" not in array ["<div><div style=\"display:inline-block; white-space:pre-line\"><br></div></div><div style=\"display:inline-block; white-space:pre-line\">abc</div>", "<div><div style=\"display:inline-block; white-space:pre-line\"><br></div></div><div style=\"display:inline-block; white-space:pre-line\">abc<br></div>", "<div><div style=\"display:inline-block; white-space:pre-line\"><br></div></div><div><div style=\"display:inline-block; white-space:pre-line\">abc</div></div>", "<div><div style=\"display:inline-block; white-space:pre-line\"><br></div></div><div><div style=\"display:inline-block; white-space:pre-line\">abc<br></div></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\\"display:inline-block; white-space:pre-line\\"><br></div></p><div style=\\"display:inline-block; white-space:pre-line\\">abc</div>" not in array ["<div><div style=\\"display:inline-block; white-space:pre-line\\"><br></div></div><div style=\\"display:inline-block; white-space:pre-line\\">abc</div>", "<div><div style=\\"display:inline-block; white-space:pre-line\\"><br></div></div><div style=\\"display:inline-block; white-space:pre-line\\">abc<br></div>", "<div><div style=\\"display:inline-block; white-space:pre-line\\"><br></div></div><div><div style=\\"display:inline-block; white-space:pre-line\\">abc</div></div>", "<div><div style=\\"display:inline-block; white-space:pre-line\\"><br></div></div><div><div style=\\"display:inline-block; white-space:pre-line\\">abc<br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:pre-line">a[]bc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\"display:inline-block; white-space:pre-line\">a</div><p><div style=\"display:inline-block; white-space:pre-line\">bc</div></p>" not in array ["<div style=\"display:inline-block; white-space:pre-line\">a</div><div><div style=\"display:inline-block; white-space:pre-line\">bc</div></div>", "<div style=\"display:inline-block; white-space:pre-line\">a</div><div><div style=\"display:inline-block; white-space:pre-line\">bc<br></div></div>", "<div><div style=\"display:inline-block; white-space:pre-line\">a</div></div><div><div style=\"display:inline-block; white-space:pre-line\">bc</div></div>", "<div><div style=\"display:inline-block; white-space:pre-line\">a</div></div><div><div style=\"display:inline-block; white-space:pre-line\">bc<br></div></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\\"display:inline-block; white-space:pre-line\\">a</div><p><div style=\\"display:inline-block; white-space:pre-line\\">bc</div></p>" not in array ["<div style=\\"display:inline-block; white-space:pre-line\\">a</div><div><div style=\\"display:inline-block; white-space:pre-line\\">bc</div></div>", "<div style=\\"display:inline-block; white-space:pre-line\\">a</div><div><div style=\\"display:inline-block; white-space:pre-line\\">bc<br></div></div>", "<div><div style=\\"display:inline-block; white-space:pre-line\\">a</div></div><div><div style=\\"display:inline-block; white-space:pre-line\\">bc</div></div>", "<div><div style=\\"display:inline-block; white-space:pre-line\\">a</div></div><div><div style=\\"display:inline-block; white-space:pre-line\\">bc<br></div></div>"]
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:pre-line">abc[]</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:pre-line">[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:pre-line">a[]bc</p></div> (defaultParagraphSeparator: p)
@@ -145,10 +145,10 @@
 [PASS] <div contenteditable style="display:inline-block; white-space:pre-line"><p>[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block; white-space:pre-line"><p>a[]bc</p></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:pre-line">abc[]</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\"display:inline-block; white-space:pre-line\">abc</p><p><p style=\"display:inline-block; white-space:pre-line\"><br></p></p>" not in array ["<p style=\"display:inline-block; white-space:pre-line\">abc</p><div><p style=\"display:inline-block; white-space:pre-line\"><br></p></div>", "<div><p style=\"display:inline-block; white-space:pre-line\">abc</p></div><div><p style=\"display:inline-block; white-space:pre-line\"><br></p></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\\"display:inline-block; white-space:pre-line\\">abc</p><p><p style=\\"display:inline-block; white-space:pre-line\\"><br></p></p>" not in array ["<p style=\\"display:inline-block; white-space:pre-line\\">abc</p><div><p style=\\"display:inline-block; white-space:pre-line\\"><br></p></div>", "<div><p style=\\"display:inline-block; white-space:pre-line\\">abc</p></div><div><p style=\\"display:inline-block; white-space:pre-line\\"><br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:pre-line">[]abc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\"display:inline-block; white-space:pre-line\"><br></p></p><p style=\"display:inline-block; white-space:pre-line\">abc</p>" not in array ["<div><p style=\"display:inline-block; white-space:pre-line\"><br></p></div><p style=\"display:inline-block; white-space:pre-line\">abc</p>", "<div><p style=\"display:inline-block; white-space:pre-line\"><br></p></div><p style=\"display:inline-block; white-space:pre-line\">abc<br></p>", "<div><p style=\"display:inline-block; white-space:pre-line\"><br></p></div><div><p style=\"display:inline-block; white-space:pre-line\">abc</p></div>", "<div><p style=\"display:inline-block; white-space:pre-line\"><br></p></div><div><p style=\"display:inline-block; white-space:pre-line\">abc<br></p></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\\"display:inline-block; white-space:pre-line\\"><br></p></p><p style=\\"display:inline-block; white-space:pre-line\\">abc</p>" not in array ["<div><p style=\\"display:inline-block; white-space:pre-line\\"><br></p></div><p style=\\"display:inline-block; white-space:pre-line\\">abc</p>", "<div><p style=\\"display:inline-block; white-space:pre-line\\"><br></p></div><p style=\\"display:inline-block; white-space:pre-line\\">abc<br></p>", "<div><p style=\\"display:inline-block; white-space:pre-line\\"><br></p></div><div><p style=\\"display:inline-block; white-space:pre-line\\">abc</p></div>", "<div><p style=\\"display:inline-block; white-space:pre-line\\"><br></p></div><div><p style=\\"display:inline-block; white-space:pre-line\\">abc<br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:pre-line">a[]bc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\"display:inline-block; white-space:pre-line\">a</p><p><p style=\"display:inline-block; white-space:pre-line\">bc</p></p>" not in array ["<p style=\"display:inline-block; white-space:pre-line\">a</p><div><p style=\"display:inline-block; white-space:pre-line\">bc</p></div>", "<p style=\"display:inline-block; white-space:pre-line\">a</p><div><p style=\"display:inline-block; white-space:pre-line\">bc<br></p></div>", "<div><p style=\"display:inline-block; white-space:pre-line\">a</p></div><div><p style=\"display:inline-block; white-space:pre-line\">bc</p></div>", "<div><p style=\"display:inline-block; white-space:pre-line\">a</p></div><div><p style=\"display:inline-block; white-space:pre-line\">bc<br></p></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\\"display:inline-block; white-space:pre-line\\">a</p><p><p style=\\"display:inline-block; white-space:pre-line\\">bc</p></p>" not in array ["<p style=\\"display:inline-block; white-space:pre-line\\">a</p><div><p style=\\"display:inline-block; white-space:pre-line\\">bc</p></div>", "<p style=\\"display:inline-block; white-space:pre-line\\">a</p><div><p style=\\"display:inline-block; white-space:pre-line\\">bc<br></p></div>", "<div><p style=\\"display:inline-block; white-space:pre-line\\">a</p></div><div><p style=\\"display:inline-block; white-space:pre-line\\">bc</p></div>", "<div><p style=\\"display:inline-block; white-space:pre-line\\">a</p></div><div><p style=\\"display:inline-block; white-space:pre-line\\">bc<br></p></div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre-line_command=insertText-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre-line_command=insertText-expected.txt
index 928ac668..8af6e4c 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre-line_command=insertText-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre-line_command=insertText-expected.txt
@@ -104,11 +104,11 @@
 [PASS] <div contenteditable style="display:inline; white-space:pre-line"><div>[]abc</div></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline; white-space:pre-line"><div>a[]bc</div></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><div style="display:inline; white-space:pre-line">abc[]</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\"display:inline; white-space:pre-line\">abc</div><p><div style=\"display:inline; white-space:pre-line\"><br></div></p>" not in array ["<div style=\"display:inline; white-space:pre-line\">abc</div><div><div style=\"display:inline; white-space:pre-line\"><br></div></div>", "<div><div style=\"display:inline; white-space:pre-line\">abc</div></div><div><div style=\"display:inline; white-space:pre-line\"><br></div></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\\"display:inline; white-space:pre-line\\">abc</div><p><div style=\\"display:inline; white-space:pre-line\\"><br></div></p>" not in array ["<div style=\\"display:inline; white-space:pre-line\\">abc</div><div><div style=\\"display:inline; white-space:pre-line\\"><br></div></div>", "<div><div style=\\"display:inline; white-space:pre-line\\">abc</div></div><div><div style=\\"display:inline; white-space:pre-line\\"><br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline; white-space:pre-line">[]abc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\"display:inline; white-space:pre-line\"><br></div></p><div style=\"display:inline; white-space:pre-line\">abc</div>" not in array ["<div><div style=\"display:inline; white-space:pre-line\"><br></div></div><div style=\"display:inline; white-space:pre-line\">abc</div>", "<div><div style=\"display:inline; white-space:pre-line\"><br></div></div><div style=\"display:inline; white-space:pre-line\">abc<br></div>", "<div><div style=\"display:inline; white-space:pre-line\"><br></div></div><div><div style=\"display:inline; white-space:pre-line\">abc</div></div>", "<div><div style=\"display:inline; white-space:pre-line\"><br></div></div><div><div style=\"display:inline; white-space:pre-line\">abc<br></div></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\\"display:inline; white-space:pre-line\\"><br></div></p><div style=\\"display:inline; white-space:pre-line\\">abc</div>" not in array ["<div><div style=\\"display:inline; white-space:pre-line\\"><br></div></div><div style=\\"display:inline; white-space:pre-line\\">abc</div>", "<div><div style=\\"display:inline; white-space:pre-line\\"><br></div></div><div style=\\"display:inline; white-space:pre-line\\">abc<br></div>", "<div><div style=\\"display:inline; white-space:pre-line\\"><br></div></div><div><div style=\\"display:inline; white-space:pre-line\\">abc</div></div>", "<div><div style=\\"display:inline; white-space:pre-line\\"><br></div></div><div><div style=\\"display:inline; white-space:pre-line\\">abc<br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline; white-space:pre-line">a[]bc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\"display:inline; white-space:pre-line\">a</div><p><div style=\"display:inline; white-space:pre-line\">bc</div></p>" not in array ["<div style=\"display:inline; white-space:pre-line\">a</div><div><div style=\"display:inline; white-space:pre-line\">bc</div></div>", "<div style=\"display:inline; white-space:pre-line\">a</div><div><div style=\"display:inline; white-space:pre-line\">bc<br></div></div>", "<div><div style=\"display:inline; white-space:pre-line\">a</div></div><div><div style=\"display:inline; white-space:pre-line\">bc</div></div>", "<div><div style=\"display:inline; white-space:pre-line\">a</div></div><div><div style=\"display:inline; white-space:pre-line\">bc<br></div></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\\"display:inline; white-space:pre-line\\">a</div><p><div style=\\"display:inline; white-space:pre-line\\">bc</div></p>" not in array ["<div style=\\"display:inline; white-space:pre-line\\">a</div><div><div style=\\"display:inline; white-space:pre-line\\">bc</div></div>", "<div style=\\"display:inline; white-space:pre-line\\">a</div><div><div style=\\"display:inline; white-space:pre-line\\">bc<br></div></div>", "<div><div style=\\"display:inline; white-space:pre-line\\">a</div></div><div><div style=\\"display:inline; white-space:pre-line\\">bc</div></div>", "<div><div style=\\"display:inline; white-space:pre-line\\">a</div></div><div><div style=\\"display:inline; white-space:pre-line\\">bc<br></div></div>"]
 [PASS] <div contenteditable style="display:inline"><p style="white-space:pre-line">abc[]</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline"><p style="white-space:pre-line">[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline"><p style="white-space:pre-line">a[]bc</p></div> (defaultParagraphSeparator: p)
@@ -116,11 +116,11 @@
 [PASS] <div contenteditable style="display:inline; white-space:pre-line"><p>[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline; white-space:pre-line"><p>a[]bc</p></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><p style="display:inline; white-space:pre-line">abc[]</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\"display:inline; white-space:pre-line\">abc</p><p><p style=\"display:inline; white-space:pre-line\"><br></p></p>" not in array ["<p style=\"display:inline; white-space:pre-line\">abc</p><div><p style=\"display:inline; white-space:pre-line\"><br></p></div>", "<div><p style=\"display:inline; white-space:pre-line\">abc</p></div><div><p style=\"display:inline; white-space:pre-line\"><br></p></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\\"display:inline; white-space:pre-line\\">abc</p><p><p style=\\"display:inline; white-space:pre-line\\"><br></p></p>" not in array ["<p style=\\"display:inline; white-space:pre-line\\">abc</p><div><p style=\\"display:inline; white-space:pre-line\\"><br></p></div>", "<div><p style=\\"display:inline; white-space:pre-line\\">abc</p></div><div><p style=\\"display:inline; white-space:pre-line\\"><br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline; white-space:pre-line">[]abc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\"display:inline; white-space:pre-line\"><br></p></p><p style=\"display:inline; white-space:pre-line\">abc</p>" not in array ["<div><p style=\"display:inline; white-space:pre-line\"><br></p></div><p style=\"display:inline; white-space:pre-line\">abc</p>", "<div><p style=\"display:inline; white-space:pre-line\"><br></p></div><p style=\"display:inline; white-space:pre-line\">abc<br></p>", "<div><p style=\"display:inline; white-space:pre-line\"><br></p></div><div><p style=\"display:inline; white-space:pre-line\">abc</p></div>", "<div><p style=\"display:inline; white-space:pre-line\"><br></p></div><div><p style=\"display:inline; white-space:pre-line\">abc<br></p></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\\"display:inline; white-space:pre-line\\"><br></p></p><p style=\\"display:inline; white-space:pre-line\\">abc</p>" not in array ["<div><p style=\\"display:inline; white-space:pre-line\\"><br></p></div><p style=\\"display:inline; white-space:pre-line\\">abc</p>", "<div><p style=\\"display:inline; white-space:pre-line\\"><br></p></div><p style=\\"display:inline; white-space:pre-line\\">abc<br></p>", "<div><p style=\\"display:inline; white-space:pre-line\\"><br></p></div><div><p style=\\"display:inline; white-space:pre-line\\">abc</p></div>", "<div><p style=\\"display:inline; white-space:pre-line\\"><br></p></div><div><p style=\\"display:inline; white-space:pre-line\\">abc<br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline; white-space:pre-line">a[]bc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\"display:inline; white-space:pre-line\">a</p><p><p style=\"display:inline; white-space:pre-line\">bc</p></p>" not in array ["<p style=\"display:inline; white-space:pre-line\">a</p><div><p style=\"display:inline; white-space:pre-line\">bc</p></div>", "<p style=\"display:inline; white-space:pre-line\">a</p><div><p style=\"display:inline; white-space:pre-line\">bc<br></p></div>", "<div><p style=\"display:inline; white-space:pre-line\">a</p></div><div><p style=\"display:inline; white-space:pre-line\">bc</p></div>", "<div><p style=\"display:inline; white-space:pre-line\">a</p></div><div><p style=\"display:inline; white-space:pre-line\">bc<br></p></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\\"display:inline; white-space:pre-line\\">a</p><p><p style=\\"display:inline; white-space:pre-line\\">bc</p></p>" not in array ["<p style=\\"display:inline; white-space:pre-line\\">a</p><div><p style=\\"display:inline; white-space:pre-line\\">bc</p></div>", "<p style=\\"display:inline; white-space:pre-line\\">a</p><div><p style=\\"display:inline; white-space:pre-line\\">bc<br></p></div>", "<div><p style=\\"display:inline; white-space:pre-line\\">a</p></div><div><p style=\\"display:inline; white-space:pre-line\\">bc</p></div>", "<div><p style=\\"display:inline; white-space:pre-line\\">a</p></div><div><p style=\\"display:inline; white-space:pre-line\\">bc<br></p></div>"]
 [PASS] <div contenteditable style="white-space:pre-line; display:inline-block">abc[]</div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="white-space:pre-line; display:inline-block">[]abc</div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="white-space:pre-line; display:inline-block">a[]bc</div> (defaultParagraphSeparator: p)
@@ -133,11 +133,11 @@
 [PASS] <div contenteditable style="display:inline-block; white-space:pre-line"><div>[]abc</div></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block; white-space:pre-line"><div>a[]bc</div></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:pre-line">abc[]</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\"display:inline-block; white-space:pre-line\">abc</div><p><div style=\"display:inline-block; white-space:pre-line\"><br></div></p>" not in array ["<div style=\"display:inline-block; white-space:pre-line\">abc</div><div><div style=\"display:inline-block; white-space:pre-line\"><br></div></div>", "<div><div style=\"display:inline-block; white-space:pre-line\">abc</div></div><div><div style=\"display:inline-block; white-space:pre-line\"><br></div></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\\"display:inline-block; white-space:pre-line\\">abc</div><p><div style=\\"display:inline-block; white-space:pre-line\\"><br></div></p>" not in array ["<div style=\\"display:inline-block; white-space:pre-line\\">abc</div><div><div style=\\"display:inline-block; white-space:pre-line\\"><br></div></div>", "<div><div style=\\"display:inline-block; white-space:pre-line\\">abc</div></div><div><div style=\\"display:inline-block; white-space:pre-line\\"><br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:pre-line">[]abc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\"display:inline-block; white-space:pre-line\"><br></div></p><div style=\"display:inline-block; white-space:pre-line\">abc</div>" not in array ["<div><div style=\"display:inline-block; white-space:pre-line\"><br></div></div><div style=\"display:inline-block; white-space:pre-line\">abc</div>", "<div><div style=\"display:inline-block; white-space:pre-line\"><br></div></div><div style=\"display:inline-block; white-space:pre-line\">abc<br></div>", "<div><div style=\"display:inline-block; white-space:pre-line\"><br></div></div><div><div style=\"display:inline-block; white-space:pre-line\">abc</div></div>", "<div><div style=\"display:inline-block; white-space:pre-line\"><br></div></div><div><div style=\"display:inline-block; white-space:pre-line\">abc<br></div></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\\"display:inline-block; white-space:pre-line\\"><br></div></p><div style=\\"display:inline-block; white-space:pre-line\\">abc</div>" not in array ["<div><div style=\\"display:inline-block; white-space:pre-line\\"><br></div></div><div style=\\"display:inline-block; white-space:pre-line\\">abc</div>", "<div><div style=\\"display:inline-block; white-space:pre-line\\"><br></div></div><div style=\\"display:inline-block; white-space:pre-line\\">abc<br></div>", "<div><div style=\\"display:inline-block; white-space:pre-line\\"><br></div></div><div><div style=\\"display:inline-block; white-space:pre-line\\">abc</div></div>", "<div><div style=\\"display:inline-block; white-space:pre-line\\"><br></div></div><div><div style=\\"display:inline-block; white-space:pre-line\\">abc<br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:pre-line">a[]bc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\"display:inline-block; white-space:pre-line\">a</div><p><div style=\"display:inline-block; white-space:pre-line\">bc</div></p>" not in array ["<div style=\"display:inline-block; white-space:pre-line\">a</div><div><div style=\"display:inline-block; white-space:pre-line\">bc</div></div>", "<div style=\"display:inline-block; white-space:pre-line\">a</div><div><div style=\"display:inline-block; white-space:pre-line\">bc<br></div></div>", "<div><div style=\"display:inline-block; white-space:pre-line\">a</div></div><div><div style=\"display:inline-block; white-space:pre-line\">bc</div></div>", "<div><div style=\"display:inline-block; white-space:pre-line\">a</div></div><div><div style=\"display:inline-block; white-space:pre-line\">bc<br></div></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\\"display:inline-block; white-space:pre-line\\">a</div><p><div style=\\"display:inline-block; white-space:pre-line\\">bc</div></p>" not in array ["<div style=\\"display:inline-block; white-space:pre-line\\">a</div><div><div style=\\"display:inline-block; white-space:pre-line\\">bc</div></div>", "<div style=\\"display:inline-block; white-space:pre-line\\">a</div><div><div style=\\"display:inline-block; white-space:pre-line\\">bc<br></div></div>", "<div><div style=\\"display:inline-block; white-space:pre-line\\">a</div></div><div><div style=\\"display:inline-block; white-space:pre-line\\">bc</div></div>", "<div><div style=\\"display:inline-block; white-space:pre-line\\">a</div></div><div><div style=\\"display:inline-block; white-space:pre-line\\">bc<br></div></div>"]
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:pre-line">abc[]</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:pre-line">[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:pre-line">a[]bc</p></div> (defaultParagraphSeparator: p)
@@ -145,10 +145,10 @@
 [PASS] <div contenteditable style="display:inline-block; white-space:pre-line"><p>[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block; white-space:pre-line"><p>a[]bc</p></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:pre-line">abc[]</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\"display:inline-block; white-space:pre-line\">abc</p><p><p style=\"display:inline-block; white-space:pre-line\"><br></p></p>" not in array ["<p style=\"display:inline-block; white-space:pre-line\">abc</p><div><p style=\"display:inline-block; white-space:pre-line\"><br></p></div>", "<div><p style=\"display:inline-block; white-space:pre-line\">abc</p></div><div><p style=\"display:inline-block; white-space:pre-line\"><br></p></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\\"display:inline-block; white-space:pre-line\\">abc</p><p><p style=\\"display:inline-block; white-space:pre-line\\"><br></p></p>" not in array ["<p style=\\"display:inline-block; white-space:pre-line\\">abc</p><div><p style=\\"display:inline-block; white-space:pre-line\\"><br></p></div>", "<div><p style=\\"display:inline-block; white-space:pre-line\\">abc</p></div><div><p style=\\"display:inline-block; white-space:pre-line\\"><br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:pre-line">[]abc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\"display:inline-block; white-space:pre-line\"><br></p></p><p style=\"display:inline-block; white-space:pre-line\">abc</p>" not in array ["<div><p style=\"display:inline-block; white-space:pre-line\"><br></p></div><p style=\"display:inline-block; white-space:pre-line\">abc</p>", "<div><p style=\"display:inline-block; white-space:pre-line\"><br></p></div><p style=\"display:inline-block; white-space:pre-line\">abc<br></p>", "<div><p style=\"display:inline-block; white-space:pre-line\"><br></p></div><div><p style=\"display:inline-block; white-space:pre-line\">abc</p></div>", "<div><p style=\"display:inline-block; white-space:pre-line\"><br></p></div><div><p style=\"display:inline-block; white-space:pre-line\">abc<br></p></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\\"display:inline-block; white-space:pre-line\\"><br></p></p><p style=\\"display:inline-block; white-space:pre-line\\">abc</p>" not in array ["<div><p style=\\"display:inline-block; white-space:pre-line\\"><br></p></div><p style=\\"display:inline-block; white-space:pre-line\\">abc</p>", "<div><p style=\\"display:inline-block; white-space:pre-line\\"><br></p></div><p style=\\"display:inline-block; white-space:pre-line\\">abc<br></p>", "<div><p style=\\"display:inline-block; white-space:pre-line\\"><br></p></div><div><p style=\\"display:inline-block; white-space:pre-line\\">abc</p></div>", "<div><p style=\\"display:inline-block; white-space:pre-line\\"><br></p></div><div><p style=\\"display:inline-block; white-space:pre-line\\">abc<br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:pre-line">a[]bc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\"display:inline-block; white-space:pre-line\">a</p><p><p style=\"display:inline-block; white-space:pre-line\">bc</p></p>" not in array ["<p style=\"display:inline-block; white-space:pre-line\">a</p><div><p style=\"display:inline-block; white-space:pre-line\">bc</p></div>", "<p style=\"display:inline-block; white-space:pre-line\">a</p><div><p style=\"display:inline-block; white-space:pre-line\">bc<br></p></div>", "<div><p style=\"display:inline-block; white-space:pre-line\">a</p></div><div><p style=\"display:inline-block; white-space:pre-line\">bc</p></div>", "<div><p style=\"display:inline-block; white-space:pre-line\">a</p></div><div><p style=\"display:inline-block; white-space:pre-line\">bc<br></p></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\\"display:inline-block; white-space:pre-line\\">a</p><p><p style=\\"display:inline-block; white-space:pre-line\\">bc</p></p>" not in array ["<p style=\\"display:inline-block; white-space:pre-line\\">a</p><div><p style=\\"display:inline-block; white-space:pre-line\\">bc</p></div>", "<p style=\\"display:inline-block; white-space:pre-line\\">a</p><div><p style=\\"display:inline-block; white-space:pre-line\\">bc<br></p></div>", "<div><p style=\\"display:inline-block; white-space:pre-line\\">a</p></div><div><p style=\\"display:inline-block; white-space:pre-line\\">bc</p></div>", "<div><p style=\\"display:inline-block; white-space:pre-line\\">a</p></div><div><p style=\\"display:inline-block; white-space:pre-line\\">bc<br></p></div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre-wrap_command=insertParagraph-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre-wrap_command=insertParagraph-expected.txt
index b8dee8a3..6834764 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre-wrap_command=insertParagraph-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre-wrap_command=insertParagraph-expected.txt
@@ -104,11 +104,11 @@
 [PASS] <div contenteditable style="display:inline; white-space:pre-wrap"><div>[]abc</div></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline; white-space:pre-wrap"><div>a[]bc</div></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><div style="display:inline; white-space:pre-wrap">abc[]</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\"display:inline; white-space:pre-wrap\">abc</div><p><div style=\"display:inline; white-space:pre-wrap\"><br></div></p>" not in array ["<div style=\"display:inline; white-space:pre-wrap\">abc</div><div><div style=\"display:inline; white-space:pre-wrap\"><br></div></div>", "<div><div style=\"display:inline; white-space:pre-wrap\">abc</div></div><div><div style=\"display:inline; white-space:pre-wrap\"><br></div></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\\"display:inline; white-space:pre-wrap\\">abc</div><p><div style=\\"display:inline; white-space:pre-wrap\\"><br></div></p>" not in array ["<div style=\\"display:inline; white-space:pre-wrap\\">abc</div><div><div style=\\"display:inline; white-space:pre-wrap\\"><br></div></div>", "<div><div style=\\"display:inline; white-space:pre-wrap\\">abc</div></div><div><div style=\\"display:inline; white-space:pre-wrap\\"><br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline; white-space:pre-wrap">[]abc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\"display:inline; white-space:pre-wrap\"><br></div></p><div style=\"display:inline; white-space:pre-wrap\">abc</div>" not in array ["<div><div style=\"display:inline; white-space:pre-wrap\"><br></div></div><div style=\"display:inline; white-space:pre-wrap\">abc</div>", "<div><div style=\"display:inline; white-space:pre-wrap\"><br></div></div><div style=\"display:inline; white-space:pre-wrap\">abc<br></div>", "<div><div style=\"display:inline; white-space:pre-wrap\"><br></div></div><div><div style=\"display:inline; white-space:pre-wrap\">abc</div></div>", "<div><div style=\"display:inline; white-space:pre-wrap\"><br></div></div><div><div style=\"display:inline; white-space:pre-wrap\">abc<br></div></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\\"display:inline; white-space:pre-wrap\\"><br></div></p><div style=\\"display:inline; white-space:pre-wrap\\">abc</div>" not in array ["<div><div style=\\"display:inline; white-space:pre-wrap\\"><br></div></div><div style=\\"display:inline; white-space:pre-wrap\\">abc</div>", "<div><div style=\\"display:inline; white-space:pre-wrap\\"><br></div></div><div style=\\"display:inline; white-space:pre-wrap\\">abc<br></div>", "<div><div style=\\"display:inline; white-space:pre-wrap\\"><br></div></div><div><div style=\\"display:inline; white-space:pre-wrap\\">abc</div></div>", "<div><div style=\\"display:inline; white-space:pre-wrap\\"><br></div></div><div><div style=\\"display:inline; white-space:pre-wrap\\">abc<br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline; white-space:pre-wrap">a[]bc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\"display:inline; white-space:pre-wrap\">a</div><p><div style=\"display:inline; white-space:pre-wrap\">bc</div></p>" not in array ["<div style=\"display:inline; white-space:pre-wrap\">a</div><div><div style=\"display:inline; white-space:pre-wrap\">bc</div></div>", "<div style=\"display:inline; white-space:pre-wrap\">a</div><div><div style=\"display:inline; white-space:pre-wrap\">bc<br></div></div>", "<div><div style=\"display:inline; white-space:pre-wrap\">a</div></div><div><div style=\"display:inline; white-space:pre-wrap\">bc</div></div>", "<div><div style=\"display:inline; white-space:pre-wrap\">a</div></div><div><div style=\"display:inline; white-space:pre-wrap\">bc<br></div></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\\"display:inline; white-space:pre-wrap\\">a</div><p><div style=\\"display:inline; white-space:pre-wrap\\">bc</div></p>" not in array ["<div style=\\"display:inline; white-space:pre-wrap\\">a</div><div><div style=\\"display:inline; white-space:pre-wrap\\">bc</div></div>", "<div style=\\"display:inline; white-space:pre-wrap\\">a</div><div><div style=\\"display:inline; white-space:pre-wrap\\">bc<br></div></div>", "<div><div style=\\"display:inline; white-space:pre-wrap\\">a</div></div><div><div style=\\"display:inline; white-space:pre-wrap\\">bc</div></div>", "<div><div style=\\"display:inline; white-space:pre-wrap\\">a</div></div><div><div style=\\"display:inline; white-space:pre-wrap\\">bc<br></div></div>"]
 [PASS] <div contenteditable style="display:inline"><p style="white-space:pre-wrap">abc[]</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline"><p style="white-space:pre-wrap">[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline"><p style="white-space:pre-wrap">a[]bc</p></div> (defaultParagraphSeparator: p)
@@ -116,11 +116,11 @@
 [PASS] <div contenteditable style="display:inline; white-space:pre-wrap"><p>[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline; white-space:pre-wrap"><p>a[]bc</p></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><p style="display:inline; white-space:pre-wrap">abc[]</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\"display:inline; white-space:pre-wrap\">abc</p><p><p style=\"display:inline; white-space:pre-wrap\"><br></p></p>" not in array ["<p style=\"display:inline; white-space:pre-wrap\">abc</p><div><p style=\"display:inline; white-space:pre-wrap\"><br></p></div>", "<div><p style=\"display:inline; white-space:pre-wrap\">abc</p></div><div><p style=\"display:inline; white-space:pre-wrap\"><br></p></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\\"display:inline; white-space:pre-wrap\\">abc</p><p><p style=\\"display:inline; white-space:pre-wrap\\"><br></p></p>" not in array ["<p style=\\"display:inline; white-space:pre-wrap\\">abc</p><div><p style=\\"display:inline; white-space:pre-wrap\\"><br></p></div>", "<div><p style=\\"display:inline; white-space:pre-wrap\\">abc</p></div><div><p style=\\"display:inline; white-space:pre-wrap\\"><br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline; white-space:pre-wrap">[]abc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\"display:inline; white-space:pre-wrap\"><br></p></p><p style=\"display:inline; white-space:pre-wrap\">abc</p>" not in array ["<div><p style=\"display:inline; white-space:pre-wrap\"><br></p></div><p style=\"display:inline; white-space:pre-wrap\">abc</p>", "<div><p style=\"display:inline; white-space:pre-wrap\"><br></p></div><p style=\"display:inline; white-space:pre-wrap\">abc<br></p>", "<div><p style=\"display:inline; white-space:pre-wrap\"><br></p></div><div><p style=\"display:inline; white-space:pre-wrap\">abc</p></div>", "<div><p style=\"display:inline; white-space:pre-wrap\"><br></p></div><div><p style=\"display:inline; white-space:pre-wrap\">abc<br></p></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\\"display:inline; white-space:pre-wrap\\"><br></p></p><p style=\\"display:inline; white-space:pre-wrap\\">abc</p>" not in array ["<div><p style=\\"display:inline; white-space:pre-wrap\\"><br></p></div><p style=\\"display:inline; white-space:pre-wrap\\">abc</p>", "<div><p style=\\"display:inline; white-space:pre-wrap\\"><br></p></div><p style=\\"display:inline; white-space:pre-wrap\\">abc<br></p>", "<div><p style=\\"display:inline; white-space:pre-wrap\\"><br></p></div><div><p style=\\"display:inline; white-space:pre-wrap\\">abc</p></div>", "<div><p style=\\"display:inline; white-space:pre-wrap\\"><br></p></div><div><p style=\\"display:inline; white-space:pre-wrap\\">abc<br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline; white-space:pre-wrap">a[]bc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\"display:inline; white-space:pre-wrap\">a</p><p><p style=\"display:inline; white-space:pre-wrap\">bc</p></p>" not in array ["<p style=\"display:inline; white-space:pre-wrap\">a</p><div><p style=\"display:inline; white-space:pre-wrap\">bc</p></div>", "<p style=\"display:inline; white-space:pre-wrap\">a</p><div><p style=\"display:inline; white-space:pre-wrap\">bc<br></p></div>", "<div><p style=\"display:inline; white-space:pre-wrap\">a</p></div><div><p style=\"display:inline; white-space:pre-wrap\">bc</p></div>", "<div><p style=\"display:inline; white-space:pre-wrap\">a</p></div><div><p style=\"display:inline; white-space:pre-wrap\">bc<br></p></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\\"display:inline; white-space:pre-wrap\\">a</p><p><p style=\\"display:inline; white-space:pre-wrap\\">bc</p></p>" not in array ["<p style=\\"display:inline; white-space:pre-wrap\\">a</p><div><p style=\\"display:inline; white-space:pre-wrap\\">bc</p></div>", "<p style=\\"display:inline; white-space:pre-wrap\\">a</p><div><p style=\\"display:inline; white-space:pre-wrap\\">bc<br></p></div>", "<div><p style=\\"display:inline; white-space:pre-wrap\\">a</p></div><div><p style=\\"display:inline; white-space:pre-wrap\\">bc</p></div>", "<div><p style=\\"display:inline; white-space:pre-wrap\\">a</p></div><div><p style=\\"display:inline; white-space:pre-wrap\\">bc<br></p></div>"]
 [PASS] <div contenteditable style="white-space:pre-wrap; display:inline-block">abc[]</div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="white-space:pre-wrap; display:inline-block">[]abc</div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="white-space:pre-wrap; display:inline-block">a[]bc</div> (defaultParagraphSeparator: p)
@@ -133,11 +133,11 @@
 [PASS] <div contenteditable style="display:inline-block; white-space:pre-wrap"><div>[]abc</div></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block; white-space:pre-wrap"><div>a[]bc</div></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:pre-wrap">abc[]</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\"display:inline-block; white-space:pre-wrap\">abc</div><p><div style=\"display:inline-block; white-space:pre-wrap\"><br></div></p>" not in array ["<div style=\"display:inline-block; white-space:pre-wrap\">abc</div><div><div style=\"display:inline-block; white-space:pre-wrap\"><br></div></div>", "<div><div style=\"display:inline-block; white-space:pre-wrap\">abc</div></div><div><div style=\"display:inline-block; white-space:pre-wrap\"><br></div></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\\"display:inline-block; white-space:pre-wrap\\">abc</div><p><div style=\\"display:inline-block; white-space:pre-wrap\\"><br></div></p>" not in array ["<div style=\\"display:inline-block; white-space:pre-wrap\\">abc</div><div><div style=\\"display:inline-block; white-space:pre-wrap\\"><br></div></div>", "<div><div style=\\"display:inline-block; white-space:pre-wrap\\">abc</div></div><div><div style=\\"display:inline-block; white-space:pre-wrap\\"><br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:pre-wrap">[]abc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\"display:inline-block; white-space:pre-wrap\"><br></div></p><div style=\"display:inline-block; white-space:pre-wrap\">abc</div>" not in array ["<div><div style=\"display:inline-block; white-space:pre-wrap\"><br></div></div><div style=\"display:inline-block; white-space:pre-wrap\">abc</div>", "<div><div style=\"display:inline-block; white-space:pre-wrap\"><br></div></div><div style=\"display:inline-block; white-space:pre-wrap\">abc<br></div>", "<div><div style=\"display:inline-block; white-space:pre-wrap\"><br></div></div><div><div style=\"display:inline-block; white-space:pre-wrap\">abc</div></div>", "<div><div style=\"display:inline-block; white-space:pre-wrap\"><br></div></div><div><div style=\"display:inline-block; white-space:pre-wrap\">abc<br></div></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\\"display:inline-block; white-space:pre-wrap\\"><br></div></p><div style=\\"display:inline-block; white-space:pre-wrap\\">abc</div>" not in array ["<div><div style=\\"display:inline-block; white-space:pre-wrap\\"><br></div></div><div style=\\"display:inline-block; white-space:pre-wrap\\">abc</div>", "<div><div style=\\"display:inline-block; white-space:pre-wrap\\"><br></div></div><div style=\\"display:inline-block; white-space:pre-wrap\\">abc<br></div>", "<div><div style=\\"display:inline-block; white-space:pre-wrap\\"><br></div></div><div><div style=\\"display:inline-block; white-space:pre-wrap\\">abc</div></div>", "<div><div style=\\"display:inline-block; white-space:pre-wrap\\"><br></div></div><div><div style=\\"display:inline-block; white-space:pre-wrap\\">abc<br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:pre-wrap">a[]bc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\"display:inline-block; white-space:pre-wrap\">a</div><p><div style=\"display:inline-block; white-space:pre-wrap\">bc</div></p>" not in array ["<div style=\"display:inline-block; white-space:pre-wrap\">a</div><div><div style=\"display:inline-block; white-space:pre-wrap\">bc</div></div>", "<div style=\"display:inline-block; white-space:pre-wrap\">a</div><div><div style=\"display:inline-block; white-space:pre-wrap\">bc<br></div></div>", "<div><div style=\"display:inline-block; white-space:pre-wrap\">a</div></div><div><div style=\"display:inline-block; white-space:pre-wrap\">bc</div></div>", "<div><div style=\"display:inline-block; white-space:pre-wrap\">a</div></div><div><div style=\"display:inline-block; white-space:pre-wrap\">bc<br></div></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\\"display:inline-block; white-space:pre-wrap\\">a</div><p><div style=\\"display:inline-block; white-space:pre-wrap\\">bc</div></p>" not in array ["<div style=\\"display:inline-block; white-space:pre-wrap\\">a</div><div><div style=\\"display:inline-block; white-space:pre-wrap\\">bc</div></div>", "<div style=\\"display:inline-block; white-space:pre-wrap\\">a</div><div><div style=\\"display:inline-block; white-space:pre-wrap\\">bc<br></div></div>", "<div><div style=\\"display:inline-block; white-space:pre-wrap\\">a</div></div><div><div style=\\"display:inline-block; white-space:pre-wrap\\">bc</div></div>", "<div><div style=\\"display:inline-block; white-space:pre-wrap\\">a</div></div><div><div style=\\"display:inline-block; white-space:pre-wrap\\">bc<br></div></div>"]
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:pre-wrap">abc[]</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:pre-wrap">[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:pre-wrap">a[]bc</p></div> (defaultParagraphSeparator: p)
@@ -145,10 +145,10 @@
 [PASS] <div contenteditable style="display:inline-block; white-space:pre-wrap"><p>[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block; white-space:pre-wrap"><p>a[]bc</p></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:pre-wrap">abc[]</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\"display:inline-block; white-space:pre-wrap\">abc</p><p><p style=\"display:inline-block; white-space:pre-wrap\"><br></p></p>" not in array ["<p style=\"display:inline-block; white-space:pre-wrap\">abc</p><div><p style=\"display:inline-block; white-space:pre-wrap\"><br></p></div>", "<div><p style=\"display:inline-block; white-space:pre-wrap\">abc</p></div><div><p style=\"display:inline-block; white-space:pre-wrap\"><br></p></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\\"display:inline-block; white-space:pre-wrap\\">abc</p><p><p style=\\"display:inline-block; white-space:pre-wrap\\"><br></p></p>" not in array ["<p style=\\"display:inline-block; white-space:pre-wrap\\">abc</p><div><p style=\\"display:inline-block; white-space:pre-wrap\\"><br></p></div>", "<div><p style=\\"display:inline-block; white-space:pre-wrap\\">abc</p></div><div><p style=\\"display:inline-block; white-space:pre-wrap\\"><br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:pre-wrap">[]abc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\"display:inline-block; white-space:pre-wrap\"><br></p></p><p style=\"display:inline-block; white-space:pre-wrap\">abc</p>" not in array ["<div><p style=\"display:inline-block; white-space:pre-wrap\"><br></p></div><p style=\"display:inline-block; white-space:pre-wrap\">abc</p>", "<div><p style=\"display:inline-block; white-space:pre-wrap\"><br></p></div><p style=\"display:inline-block; white-space:pre-wrap\">abc<br></p>", "<div><p style=\"display:inline-block; white-space:pre-wrap\"><br></p></div><div><p style=\"display:inline-block; white-space:pre-wrap\">abc</p></div>", "<div><p style=\"display:inline-block; white-space:pre-wrap\"><br></p></div><div><p style=\"display:inline-block; white-space:pre-wrap\">abc<br></p></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\\"display:inline-block; white-space:pre-wrap\\"><br></p></p><p style=\\"display:inline-block; white-space:pre-wrap\\">abc</p>" not in array ["<div><p style=\\"display:inline-block; white-space:pre-wrap\\"><br></p></div><p style=\\"display:inline-block; white-space:pre-wrap\\">abc</p>", "<div><p style=\\"display:inline-block; white-space:pre-wrap\\"><br></p></div><p style=\\"display:inline-block; white-space:pre-wrap\\">abc<br></p>", "<div><p style=\\"display:inline-block; white-space:pre-wrap\\"><br></p></div><div><p style=\\"display:inline-block; white-space:pre-wrap\\">abc</p></div>", "<div><p style=\\"display:inline-block; white-space:pre-wrap\\"><br></p></div><div><p style=\\"display:inline-block; white-space:pre-wrap\\">abc<br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:pre-wrap">a[]bc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\"display:inline-block; white-space:pre-wrap\">a</p><p><p style=\"display:inline-block; white-space:pre-wrap\">bc</p></p>" not in array ["<p style=\"display:inline-block; white-space:pre-wrap\">a</p><div><p style=\"display:inline-block; white-space:pre-wrap\">bc</p></div>", "<p style=\"display:inline-block; white-space:pre-wrap\">a</p><div><p style=\"display:inline-block; white-space:pre-wrap\">bc<br></p></div>", "<div><p style=\"display:inline-block; white-space:pre-wrap\">a</p></div><div><p style=\"display:inline-block; white-space:pre-wrap\">bc</p></div>", "<div><p style=\"display:inline-block; white-space:pre-wrap\">a</p></div><div><p style=\"display:inline-block; white-space:pre-wrap\">bc<br></p></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\\"display:inline-block; white-space:pre-wrap\\">a</p><p><p style=\\"display:inline-block; white-space:pre-wrap\\">bc</p></p>" not in array ["<p style=\\"display:inline-block; white-space:pre-wrap\\">a</p><div><p style=\\"display:inline-block; white-space:pre-wrap\\">bc</p></div>", "<p style=\\"display:inline-block; white-space:pre-wrap\\">a</p><div><p style=\\"display:inline-block; white-space:pre-wrap\\">bc<br></p></div>", "<div><p style=\\"display:inline-block; white-space:pre-wrap\\">a</p></div><div><p style=\\"display:inline-block; white-space:pre-wrap\\">bc</p></div>", "<div><p style=\\"display:inline-block; white-space:pre-wrap\\">a</p></div><div><p style=\\"display:inline-block; white-space:pre-wrap\\">bc<br></p></div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre-wrap_command=insertText-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre-wrap_command=insertText-expected.txt
index b8dee8a3..6834764 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre-wrap_command=insertText-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre-wrap_command=insertText-expected.txt
@@ -104,11 +104,11 @@
 [PASS] <div contenteditable style="display:inline; white-space:pre-wrap"><div>[]abc</div></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline; white-space:pre-wrap"><div>a[]bc</div></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><div style="display:inline; white-space:pre-wrap">abc[]</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\"display:inline; white-space:pre-wrap\">abc</div><p><div style=\"display:inline; white-space:pre-wrap\"><br></div></p>" not in array ["<div style=\"display:inline; white-space:pre-wrap\">abc</div><div><div style=\"display:inline; white-space:pre-wrap\"><br></div></div>", "<div><div style=\"display:inline; white-space:pre-wrap\">abc</div></div><div><div style=\"display:inline; white-space:pre-wrap\"><br></div></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\\"display:inline; white-space:pre-wrap\\">abc</div><p><div style=\\"display:inline; white-space:pre-wrap\\"><br></div></p>" not in array ["<div style=\\"display:inline; white-space:pre-wrap\\">abc</div><div><div style=\\"display:inline; white-space:pre-wrap\\"><br></div></div>", "<div><div style=\\"display:inline; white-space:pre-wrap\\">abc</div></div><div><div style=\\"display:inline; white-space:pre-wrap\\"><br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline; white-space:pre-wrap">[]abc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\"display:inline; white-space:pre-wrap\"><br></div></p><div style=\"display:inline; white-space:pre-wrap\">abc</div>" not in array ["<div><div style=\"display:inline; white-space:pre-wrap\"><br></div></div><div style=\"display:inline; white-space:pre-wrap\">abc</div>", "<div><div style=\"display:inline; white-space:pre-wrap\"><br></div></div><div style=\"display:inline; white-space:pre-wrap\">abc<br></div>", "<div><div style=\"display:inline; white-space:pre-wrap\"><br></div></div><div><div style=\"display:inline; white-space:pre-wrap\">abc</div></div>", "<div><div style=\"display:inline; white-space:pre-wrap\"><br></div></div><div><div style=\"display:inline; white-space:pre-wrap\">abc<br></div></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\\"display:inline; white-space:pre-wrap\\"><br></div></p><div style=\\"display:inline; white-space:pre-wrap\\">abc</div>" not in array ["<div><div style=\\"display:inline; white-space:pre-wrap\\"><br></div></div><div style=\\"display:inline; white-space:pre-wrap\\">abc</div>", "<div><div style=\\"display:inline; white-space:pre-wrap\\"><br></div></div><div style=\\"display:inline; white-space:pre-wrap\\">abc<br></div>", "<div><div style=\\"display:inline; white-space:pre-wrap\\"><br></div></div><div><div style=\\"display:inline; white-space:pre-wrap\\">abc</div></div>", "<div><div style=\\"display:inline; white-space:pre-wrap\\"><br></div></div><div><div style=\\"display:inline; white-space:pre-wrap\\">abc<br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline; white-space:pre-wrap">a[]bc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\"display:inline; white-space:pre-wrap\">a</div><p><div style=\"display:inline; white-space:pre-wrap\">bc</div></p>" not in array ["<div style=\"display:inline; white-space:pre-wrap\">a</div><div><div style=\"display:inline; white-space:pre-wrap\">bc</div></div>", "<div style=\"display:inline; white-space:pre-wrap\">a</div><div><div style=\"display:inline; white-space:pre-wrap\">bc<br></div></div>", "<div><div style=\"display:inline; white-space:pre-wrap\">a</div></div><div><div style=\"display:inline; white-space:pre-wrap\">bc</div></div>", "<div><div style=\"display:inline; white-space:pre-wrap\">a</div></div><div><div style=\"display:inline; white-space:pre-wrap\">bc<br></div></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\\"display:inline; white-space:pre-wrap\\">a</div><p><div style=\\"display:inline; white-space:pre-wrap\\">bc</div></p>" not in array ["<div style=\\"display:inline; white-space:pre-wrap\\">a</div><div><div style=\\"display:inline; white-space:pre-wrap\\">bc</div></div>", "<div style=\\"display:inline; white-space:pre-wrap\\">a</div><div><div style=\\"display:inline; white-space:pre-wrap\\">bc<br></div></div>", "<div><div style=\\"display:inline; white-space:pre-wrap\\">a</div></div><div><div style=\\"display:inline; white-space:pre-wrap\\">bc</div></div>", "<div><div style=\\"display:inline; white-space:pre-wrap\\">a</div></div><div><div style=\\"display:inline; white-space:pre-wrap\\">bc<br></div></div>"]
 [PASS] <div contenteditable style="display:inline"><p style="white-space:pre-wrap">abc[]</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline"><p style="white-space:pre-wrap">[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline"><p style="white-space:pre-wrap">a[]bc</p></div> (defaultParagraphSeparator: p)
@@ -116,11 +116,11 @@
 [PASS] <div contenteditable style="display:inline; white-space:pre-wrap"><p>[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline; white-space:pre-wrap"><p>a[]bc</p></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><p style="display:inline; white-space:pre-wrap">abc[]</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\"display:inline; white-space:pre-wrap\">abc</p><p><p style=\"display:inline; white-space:pre-wrap\"><br></p></p>" not in array ["<p style=\"display:inline; white-space:pre-wrap\">abc</p><div><p style=\"display:inline; white-space:pre-wrap\"><br></p></div>", "<div><p style=\"display:inline; white-space:pre-wrap\">abc</p></div><div><p style=\"display:inline; white-space:pre-wrap\"><br></p></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\\"display:inline; white-space:pre-wrap\\">abc</p><p><p style=\\"display:inline; white-space:pre-wrap\\"><br></p></p>" not in array ["<p style=\\"display:inline; white-space:pre-wrap\\">abc</p><div><p style=\\"display:inline; white-space:pre-wrap\\"><br></p></div>", "<div><p style=\\"display:inline; white-space:pre-wrap\\">abc</p></div><div><p style=\\"display:inline; white-space:pre-wrap\\"><br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline; white-space:pre-wrap">[]abc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\"display:inline; white-space:pre-wrap\"><br></p></p><p style=\"display:inline; white-space:pre-wrap\">abc</p>" not in array ["<div><p style=\"display:inline; white-space:pre-wrap\"><br></p></div><p style=\"display:inline; white-space:pre-wrap\">abc</p>", "<div><p style=\"display:inline; white-space:pre-wrap\"><br></p></div><p style=\"display:inline; white-space:pre-wrap\">abc<br></p>", "<div><p style=\"display:inline; white-space:pre-wrap\"><br></p></div><div><p style=\"display:inline; white-space:pre-wrap\">abc</p></div>", "<div><p style=\"display:inline; white-space:pre-wrap\"><br></p></div><div><p style=\"display:inline; white-space:pre-wrap\">abc<br></p></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\\"display:inline; white-space:pre-wrap\\"><br></p></p><p style=\\"display:inline; white-space:pre-wrap\\">abc</p>" not in array ["<div><p style=\\"display:inline; white-space:pre-wrap\\"><br></p></div><p style=\\"display:inline; white-space:pre-wrap\\">abc</p>", "<div><p style=\\"display:inline; white-space:pre-wrap\\"><br></p></div><p style=\\"display:inline; white-space:pre-wrap\\">abc<br></p>", "<div><p style=\\"display:inline; white-space:pre-wrap\\"><br></p></div><div><p style=\\"display:inline; white-space:pre-wrap\\">abc</p></div>", "<div><p style=\\"display:inline; white-space:pre-wrap\\"><br></p></div><div><p style=\\"display:inline; white-space:pre-wrap\\">abc<br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline; white-space:pre-wrap">a[]bc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\"display:inline; white-space:pre-wrap\">a</p><p><p style=\"display:inline; white-space:pre-wrap\">bc</p></p>" not in array ["<p style=\"display:inline; white-space:pre-wrap\">a</p><div><p style=\"display:inline; white-space:pre-wrap\">bc</p></div>", "<p style=\"display:inline; white-space:pre-wrap\">a</p><div><p style=\"display:inline; white-space:pre-wrap\">bc<br></p></div>", "<div><p style=\"display:inline; white-space:pre-wrap\">a</p></div><div><p style=\"display:inline; white-space:pre-wrap\">bc</p></div>", "<div><p style=\"display:inline; white-space:pre-wrap\">a</p></div><div><p style=\"display:inline; white-space:pre-wrap\">bc<br></p></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\\"display:inline; white-space:pre-wrap\\">a</p><p><p style=\\"display:inline; white-space:pre-wrap\\">bc</p></p>" not in array ["<p style=\\"display:inline; white-space:pre-wrap\\">a</p><div><p style=\\"display:inline; white-space:pre-wrap\\">bc</p></div>", "<p style=\\"display:inline; white-space:pre-wrap\\">a</p><div><p style=\\"display:inline; white-space:pre-wrap\\">bc<br></p></div>", "<div><p style=\\"display:inline; white-space:pre-wrap\\">a</p></div><div><p style=\\"display:inline; white-space:pre-wrap\\">bc</p></div>", "<div><p style=\\"display:inline; white-space:pre-wrap\\">a</p></div><div><p style=\\"display:inline; white-space:pre-wrap\\">bc<br></p></div>"]
 [PASS] <div contenteditable style="white-space:pre-wrap; display:inline-block">abc[]</div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="white-space:pre-wrap; display:inline-block">[]abc</div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="white-space:pre-wrap; display:inline-block">a[]bc</div> (defaultParagraphSeparator: p)
@@ -133,11 +133,11 @@
 [PASS] <div contenteditable style="display:inline-block; white-space:pre-wrap"><div>[]abc</div></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block; white-space:pre-wrap"><div>a[]bc</div></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:pre-wrap">abc[]</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\"display:inline-block; white-space:pre-wrap\">abc</div><p><div style=\"display:inline-block; white-space:pre-wrap\"><br></div></p>" not in array ["<div style=\"display:inline-block; white-space:pre-wrap\">abc</div><div><div style=\"display:inline-block; white-space:pre-wrap\"><br></div></div>", "<div><div style=\"display:inline-block; white-space:pre-wrap\">abc</div></div><div><div style=\"display:inline-block; white-space:pre-wrap\"><br></div></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\\"display:inline-block; white-space:pre-wrap\\">abc</div><p><div style=\\"display:inline-block; white-space:pre-wrap\\"><br></div></p>" not in array ["<div style=\\"display:inline-block; white-space:pre-wrap\\">abc</div><div><div style=\\"display:inline-block; white-space:pre-wrap\\"><br></div></div>", "<div><div style=\\"display:inline-block; white-space:pre-wrap\\">abc</div></div><div><div style=\\"display:inline-block; white-space:pre-wrap\\"><br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:pre-wrap">[]abc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\"display:inline-block; white-space:pre-wrap\"><br></div></p><div style=\"display:inline-block; white-space:pre-wrap\">abc</div>" not in array ["<div><div style=\"display:inline-block; white-space:pre-wrap\"><br></div></div><div style=\"display:inline-block; white-space:pre-wrap\">abc</div>", "<div><div style=\"display:inline-block; white-space:pre-wrap\"><br></div></div><div style=\"display:inline-block; white-space:pre-wrap\">abc<br></div>", "<div><div style=\"display:inline-block; white-space:pre-wrap\"><br></div></div><div><div style=\"display:inline-block; white-space:pre-wrap\">abc</div></div>", "<div><div style=\"display:inline-block; white-space:pre-wrap\"><br></div></div><div><div style=\"display:inline-block; white-space:pre-wrap\">abc<br></div></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\\"display:inline-block; white-space:pre-wrap\\"><br></div></p><div style=\\"display:inline-block; white-space:pre-wrap\\">abc</div>" not in array ["<div><div style=\\"display:inline-block; white-space:pre-wrap\\"><br></div></div><div style=\\"display:inline-block; white-space:pre-wrap\\">abc</div>", "<div><div style=\\"display:inline-block; white-space:pre-wrap\\"><br></div></div><div style=\\"display:inline-block; white-space:pre-wrap\\">abc<br></div>", "<div><div style=\\"display:inline-block; white-space:pre-wrap\\"><br></div></div><div><div style=\\"display:inline-block; white-space:pre-wrap\\">abc</div></div>", "<div><div style=\\"display:inline-block; white-space:pre-wrap\\"><br></div></div><div><div style=\\"display:inline-block; white-space:pre-wrap\\">abc<br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:pre-wrap">a[]bc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\"display:inline-block; white-space:pre-wrap\">a</div><p><div style=\"display:inline-block; white-space:pre-wrap\">bc</div></p>" not in array ["<div style=\"display:inline-block; white-space:pre-wrap\">a</div><div><div style=\"display:inline-block; white-space:pre-wrap\">bc</div></div>", "<div style=\"display:inline-block; white-space:pre-wrap\">a</div><div><div style=\"display:inline-block; white-space:pre-wrap\">bc<br></div></div>", "<div><div style=\"display:inline-block; white-space:pre-wrap\">a</div></div><div><div style=\"display:inline-block; white-space:pre-wrap\">bc</div></div>", "<div><div style=\"display:inline-block; white-space:pre-wrap\">a</div></div><div><div style=\"display:inline-block; white-space:pre-wrap\">bc<br></div></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\\"display:inline-block; white-space:pre-wrap\\">a</div><p><div style=\\"display:inline-block; white-space:pre-wrap\\">bc</div></p>" not in array ["<div style=\\"display:inline-block; white-space:pre-wrap\\">a</div><div><div style=\\"display:inline-block; white-space:pre-wrap\\">bc</div></div>", "<div style=\\"display:inline-block; white-space:pre-wrap\\">a</div><div><div style=\\"display:inline-block; white-space:pre-wrap\\">bc<br></div></div>", "<div><div style=\\"display:inline-block; white-space:pre-wrap\\">a</div></div><div><div style=\\"display:inline-block; white-space:pre-wrap\\">bc</div></div>", "<div><div style=\\"display:inline-block; white-space:pre-wrap\\">a</div></div><div><div style=\\"display:inline-block; white-space:pre-wrap\\">bc<br></div></div>"]
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:pre-wrap">abc[]</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:pre-wrap">[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:pre-wrap">a[]bc</p></div> (defaultParagraphSeparator: p)
@@ -145,10 +145,10 @@
 [PASS] <div contenteditable style="display:inline-block; white-space:pre-wrap"><p>[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block; white-space:pre-wrap"><p>a[]bc</p></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:pre-wrap">abc[]</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\"display:inline-block; white-space:pre-wrap\">abc</p><p><p style=\"display:inline-block; white-space:pre-wrap\"><br></p></p>" not in array ["<p style=\"display:inline-block; white-space:pre-wrap\">abc</p><div><p style=\"display:inline-block; white-space:pre-wrap\"><br></p></div>", "<div><p style=\"display:inline-block; white-space:pre-wrap\">abc</p></div><div><p style=\"display:inline-block; white-space:pre-wrap\"><br></p></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\\"display:inline-block; white-space:pre-wrap\\">abc</p><p><p style=\\"display:inline-block; white-space:pre-wrap\\"><br></p></p>" not in array ["<p style=\\"display:inline-block; white-space:pre-wrap\\">abc</p><div><p style=\\"display:inline-block; white-space:pre-wrap\\"><br></p></div>", "<div><p style=\\"display:inline-block; white-space:pre-wrap\\">abc</p></div><div><p style=\\"display:inline-block; white-space:pre-wrap\\"><br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:pre-wrap">[]abc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\"display:inline-block; white-space:pre-wrap\"><br></p></p><p style=\"display:inline-block; white-space:pre-wrap\">abc</p>" not in array ["<div><p style=\"display:inline-block; white-space:pre-wrap\"><br></p></div><p style=\"display:inline-block; white-space:pre-wrap\">abc</p>", "<div><p style=\"display:inline-block; white-space:pre-wrap\"><br></p></div><p style=\"display:inline-block; white-space:pre-wrap\">abc<br></p>", "<div><p style=\"display:inline-block; white-space:pre-wrap\"><br></p></div><div><p style=\"display:inline-block; white-space:pre-wrap\">abc</p></div>", "<div><p style=\"display:inline-block; white-space:pre-wrap\"><br></p></div><div><p style=\"display:inline-block; white-space:pre-wrap\">abc<br></p></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\\"display:inline-block; white-space:pre-wrap\\"><br></p></p><p style=\\"display:inline-block; white-space:pre-wrap\\">abc</p>" not in array ["<div><p style=\\"display:inline-block; white-space:pre-wrap\\"><br></p></div><p style=\\"display:inline-block; white-space:pre-wrap\\">abc</p>", "<div><p style=\\"display:inline-block; white-space:pre-wrap\\"><br></p></div><p style=\\"display:inline-block; white-space:pre-wrap\\">abc<br></p>", "<div><p style=\\"display:inline-block; white-space:pre-wrap\\"><br></p></div><div><p style=\\"display:inline-block; white-space:pre-wrap\\">abc</p></div>", "<div><p style=\\"display:inline-block; white-space:pre-wrap\\"><br></p></div><div><p style=\\"display:inline-block; white-space:pre-wrap\\">abc<br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:pre-wrap">a[]bc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\"display:inline-block; white-space:pre-wrap\">a</p><p><p style=\"display:inline-block; white-space:pre-wrap\">bc</p></p>" not in array ["<p style=\"display:inline-block; white-space:pre-wrap\">a</p><div><p style=\"display:inline-block; white-space:pre-wrap\">bc</p></div>", "<p style=\"display:inline-block; white-space:pre-wrap\">a</p><div><p style=\"display:inline-block; white-space:pre-wrap\">bc<br></p></div>", "<div><p style=\"display:inline-block; white-space:pre-wrap\">a</p></div><div><p style=\"display:inline-block; white-space:pre-wrap\">bc</p></div>", "<div><p style=\"display:inline-block; white-space:pre-wrap\">a</p></div><div><p style=\"display:inline-block; white-space:pre-wrap\">bc<br></p></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\\"display:inline-block; white-space:pre-wrap\\">a</p><p><p style=\\"display:inline-block; white-space:pre-wrap\\">bc</p></p>" not in array ["<p style=\\"display:inline-block; white-space:pre-wrap\\">a</p><div><p style=\\"display:inline-block; white-space:pre-wrap\\">bc</p></div>", "<p style=\\"display:inline-block; white-space:pre-wrap\\">a</p><div><p style=\\"display:inline-block; white-space:pre-wrap\\">bc<br></p></div>", "<div><p style=\\"display:inline-block; white-space:pre-wrap\\">a</p></div><div><p style=\\"display:inline-block; white-space:pre-wrap\\">bc</p></div>", "<div><p style=\\"display:inline-block; white-space:pre-wrap\\">a</p></div><div><p style=\\"display:inline-block; white-space:pre-wrap\\">bc<br></p></div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre_command=insertParagraph-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre_command=insertParagraph-expected.txt
index c20f6012..f092b5f 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre_command=insertParagraph-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre_command=insertParagraph-expected.txt
@@ -104,11 +104,11 @@
 [PASS] <div contenteditable style="display:inline; white-space:pre"><div>[]abc</div></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline; white-space:pre"><div>a[]bc</div></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><div style="display:inline; white-space:pre">abc[]</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\"display:inline; white-space:pre\">abc</div><p><div style=\"display:inline; white-space:pre\"><br></div></p>" not in array ["<div style=\"display:inline; white-space:pre\">abc</div><div><div style=\"display:inline; white-space:pre\"><br></div></div>", "<div><div style=\"display:inline; white-space:pre\">abc</div></div><div><div style=\"display:inline; white-space:pre\"><br></div></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\\"display:inline; white-space:pre\\">abc</div><p><div style=\\"display:inline; white-space:pre\\"><br></div></p>" not in array ["<div style=\\"display:inline; white-space:pre\\">abc</div><div><div style=\\"display:inline; white-space:pre\\"><br></div></div>", "<div><div style=\\"display:inline; white-space:pre\\">abc</div></div><div><div style=\\"display:inline; white-space:pre\\"><br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline; white-space:pre">[]abc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\"display:inline; white-space:pre\"><br></div></p><div style=\"display:inline; white-space:pre\">abc</div>" not in array ["<div><div style=\"display:inline; white-space:pre\"><br></div></div><div style=\"display:inline; white-space:pre\">abc</div>", "<div><div style=\"display:inline; white-space:pre\"><br></div></div><div style=\"display:inline; white-space:pre\">abc<br></div>", "<div><div style=\"display:inline; white-space:pre\"><br></div></div><div><div style=\"display:inline; white-space:pre\">abc</div></div>", "<div><div style=\"display:inline; white-space:pre\"><br></div></div><div><div style=\"display:inline; white-space:pre\">abc<br></div></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\\"display:inline; white-space:pre\\"><br></div></p><div style=\\"display:inline; white-space:pre\\">abc</div>" not in array ["<div><div style=\\"display:inline; white-space:pre\\"><br></div></div><div style=\\"display:inline; white-space:pre\\">abc</div>", "<div><div style=\\"display:inline; white-space:pre\\"><br></div></div><div style=\\"display:inline; white-space:pre\\">abc<br></div>", "<div><div style=\\"display:inline; white-space:pre\\"><br></div></div><div><div style=\\"display:inline; white-space:pre\\">abc</div></div>", "<div><div style=\\"display:inline; white-space:pre\\"><br></div></div><div><div style=\\"display:inline; white-space:pre\\">abc<br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline; white-space:pre">a[]bc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\"display:inline; white-space:pre\">a</div><p><div style=\"display:inline; white-space:pre\">bc</div></p>" not in array ["<div style=\"display:inline; white-space:pre\">a</div><div><div style=\"display:inline; white-space:pre\">bc</div></div>", "<div style=\"display:inline; white-space:pre\">a</div><div><div style=\"display:inline; white-space:pre\">bc<br></div></div>", "<div><div style=\"display:inline; white-space:pre\">a</div></div><div><div style=\"display:inline; white-space:pre\">bc</div></div>", "<div><div style=\"display:inline; white-space:pre\">a</div></div><div><div style=\"display:inline; white-space:pre\">bc<br></div></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\\"display:inline; white-space:pre\\">a</div><p><div style=\\"display:inline; white-space:pre\\">bc</div></p>" not in array ["<div style=\\"display:inline; white-space:pre\\">a</div><div><div style=\\"display:inline; white-space:pre\\">bc</div></div>", "<div style=\\"display:inline; white-space:pre\\">a</div><div><div style=\\"display:inline; white-space:pre\\">bc<br></div></div>", "<div><div style=\\"display:inline; white-space:pre\\">a</div></div><div><div style=\\"display:inline; white-space:pre\\">bc</div></div>", "<div><div style=\\"display:inline; white-space:pre\\">a</div></div><div><div style=\\"display:inline; white-space:pre\\">bc<br></div></div>"]
 [PASS] <div contenteditable style="display:inline"><p style="white-space:pre">abc[]</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline"><p style="white-space:pre">[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline"><p style="white-space:pre">a[]bc</p></div> (defaultParagraphSeparator: p)
@@ -116,11 +116,11 @@
 [PASS] <div contenteditable style="display:inline; white-space:pre"><p>[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline; white-space:pre"><p>a[]bc</p></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><p style="display:inline; white-space:pre">abc[]</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\"display:inline; white-space:pre\">abc</p><p><p style=\"display:inline; white-space:pre\"><br></p></p>" not in array ["<p style=\"display:inline; white-space:pre\">abc</p><div><p style=\"display:inline; white-space:pre\"><br></p></div>", "<div><p style=\"display:inline; white-space:pre\">abc</p></div><div><p style=\"display:inline; white-space:pre\"><br></p></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\\"display:inline; white-space:pre\\">abc</p><p><p style=\\"display:inline; white-space:pre\\"><br></p></p>" not in array ["<p style=\\"display:inline; white-space:pre\\">abc</p><div><p style=\\"display:inline; white-space:pre\\"><br></p></div>", "<div><p style=\\"display:inline; white-space:pre\\">abc</p></div><div><p style=\\"display:inline; white-space:pre\\"><br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline; white-space:pre">[]abc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\"display:inline; white-space:pre\"><br></p></p><p style=\"display:inline; white-space:pre\">abc</p>" not in array ["<div><p style=\"display:inline; white-space:pre\"><br></p></div><p style=\"display:inline; white-space:pre\">abc</p>", "<div><p style=\"display:inline; white-space:pre\"><br></p></div><p style=\"display:inline; white-space:pre\">abc<br></p>", "<div><p style=\"display:inline; white-space:pre\"><br></p></div><div><p style=\"display:inline; white-space:pre\">abc</p></div>", "<div><p style=\"display:inline; white-space:pre\"><br></p></div><div><p style=\"display:inline; white-space:pre\">abc<br></p></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\\"display:inline; white-space:pre\\"><br></p></p><p style=\\"display:inline; white-space:pre\\">abc</p>" not in array ["<div><p style=\\"display:inline; white-space:pre\\"><br></p></div><p style=\\"display:inline; white-space:pre\\">abc</p>", "<div><p style=\\"display:inline; white-space:pre\\"><br></p></div><p style=\\"display:inline; white-space:pre\\">abc<br></p>", "<div><p style=\\"display:inline; white-space:pre\\"><br></p></div><div><p style=\\"display:inline; white-space:pre\\">abc</p></div>", "<div><p style=\\"display:inline; white-space:pre\\"><br></p></div><div><p style=\\"display:inline; white-space:pre\\">abc<br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline; white-space:pre">a[]bc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\"display:inline; white-space:pre\">a</p><p><p style=\"display:inline; white-space:pre\">bc</p></p>" not in array ["<p style=\"display:inline; white-space:pre\">a</p><div><p style=\"display:inline; white-space:pre\">bc</p></div>", "<p style=\"display:inline; white-space:pre\">a</p><div><p style=\"display:inline; white-space:pre\">bc<br></p></div>", "<div><p style=\"display:inline; white-space:pre\">a</p></div><div><p style=\"display:inline; white-space:pre\">bc</p></div>", "<div><p style=\"display:inline; white-space:pre\">a</p></div><div><p style=\"display:inline; white-space:pre\">bc<br></p></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\\"display:inline; white-space:pre\\">a</p><p><p style=\\"display:inline; white-space:pre\\">bc</p></p>" not in array ["<p style=\\"display:inline; white-space:pre\\">a</p><div><p style=\\"display:inline; white-space:pre\\">bc</p></div>", "<p style=\\"display:inline; white-space:pre\\">a</p><div><p style=\\"display:inline; white-space:pre\\">bc<br></p></div>", "<div><p style=\\"display:inline; white-space:pre\\">a</p></div><div><p style=\\"display:inline; white-space:pre\\">bc</p></div>", "<div><p style=\\"display:inline; white-space:pre\\">a</p></div><div><p style=\\"display:inline; white-space:pre\\">bc<br></p></div>"]
 [PASS] <div contenteditable style="white-space:pre; display:inline-block">abc[]</div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="white-space:pre; display:inline-block">[]abc</div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="white-space:pre; display:inline-block">a[]bc</div> (defaultParagraphSeparator: p)
@@ -133,11 +133,11 @@
 [PASS] <div contenteditable style="display:inline-block; white-space:pre"><div>[]abc</div></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block; white-space:pre"><div>a[]bc</div></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:pre">abc[]</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\"display:inline-block; white-space:pre\">abc</div><p><div style=\"display:inline-block; white-space:pre\"><br></div></p>" not in array ["<div style=\"display:inline-block; white-space:pre\">abc</div><div><div style=\"display:inline-block; white-space:pre\"><br></div></div>", "<div><div style=\"display:inline-block; white-space:pre\">abc</div></div><div><div style=\"display:inline-block; white-space:pre\"><br></div></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\\"display:inline-block; white-space:pre\\">abc</div><p><div style=\\"display:inline-block; white-space:pre\\"><br></div></p>" not in array ["<div style=\\"display:inline-block; white-space:pre\\">abc</div><div><div style=\\"display:inline-block; white-space:pre\\"><br></div></div>", "<div><div style=\\"display:inline-block; white-space:pre\\">abc</div></div><div><div style=\\"display:inline-block; white-space:pre\\"><br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:pre">[]abc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\"display:inline-block; white-space:pre\"><br></div></p><div style=\"display:inline-block; white-space:pre\">abc</div>" not in array ["<div><div style=\"display:inline-block; white-space:pre\"><br></div></div><div style=\"display:inline-block; white-space:pre\">abc</div>", "<div><div style=\"display:inline-block; white-space:pre\"><br></div></div><div style=\"display:inline-block; white-space:pre\">abc<br></div>", "<div><div style=\"display:inline-block; white-space:pre\"><br></div></div><div><div style=\"display:inline-block; white-space:pre\">abc</div></div>", "<div><div style=\"display:inline-block; white-space:pre\"><br></div></div><div><div style=\"display:inline-block; white-space:pre\">abc<br></div></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\\"display:inline-block; white-space:pre\\"><br></div></p><div style=\\"display:inline-block; white-space:pre\\">abc</div>" not in array ["<div><div style=\\"display:inline-block; white-space:pre\\"><br></div></div><div style=\\"display:inline-block; white-space:pre\\">abc</div>", "<div><div style=\\"display:inline-block; white-space:pre\\"><br></div></div><div style=\\"display:inline-block; white-space:pre\\">abc<br></div>", "<div><div style=\\"display:inline-block; white-space:pre\\"><br></div></div><div><div style=\\"display:inline-block; white-space:pre\\">abc</div></div>", "<div><div style=\\"display:inline-block; white-space:pre\\"><br></div></div><div><div style=\\"display:inline-block; white-space:pre\\">abc<br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:pre">a[]bc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\"display:inline-block; white-space:pre\">a</div><p><div style=\"display:inline-block; white-space:pre\">bc</div></p>" not in array ["<div style=\"display:inline-block; white-space:pre\">a</div><div><div style=\"display:inline-block; white-space:pre\">bc</div></div>", "<div style=\"display:inline-block; white-space:pre\">a</div><div><div style=\"display:inline-block; white-space:pre\">bc<br></div></div>", "<div><div style=\"display:inline-block; white-space:pre\">a</div></div><div><div style=\"display:inline-block; white-space:pre\">bc</div></div>", "<div><div style=\"display:inline-block; white-space:pre\">a</div></div><div><div style=\"display:inline-block; white-space:pre\">bc<br></div></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\\"display:inline-block; white-space:pre\\">a</div><p><div style=\\"display:inline-block; white-space:pre\\">bc</div></p>" not in array ["<div style=\\"display:inline-block; white-space:pre\\">a</div><div><div style=\\"display:inline-block; white-space:pre\\">bc</div></div>", "<div style=\\"display:inline-block; white-space:pre\\">a</div><div><div style=\\"display:inline-block; white-space:pre\\">bc<br></div></div>", "<div><div style=\\"display:inline-block; white-space:pre\\">a</div></div><div><div style=\\"display:inline-block; white-space:pre\\">bc</div></div>", "<div><div style=\\"display:inline-block; white-space:pre\\">a</div></div><div><div style=\\"display:inline-block; white-space:pre\\">bc<br></div></div>"]
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:pre">abc[]</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:pre">[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:pre">a[]bc</p></div> (defaultParagraphSeparator: p)
@@ -145,10 +145,10 @@
 [PASS] <div contenteditable style="display:inline-block; white-space:pre"><p>[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block; white-space:pre"><p>a[]bc</p></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:pre">abc[]</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\"display:inline-block; white-space:pre\">abc</p><p><p style=\"display:inline-block; white-space:pre\"><br></p></p>" not in array ["<p style=\"display:inline-block; white-space:pre\">abc</p><div><p style=\"display:inline-block; white-space:pre\"><br></p></div>", "<div><p style=\"display:inline-block; white-space:pre\">abc</p></div><div><p style=\"display:inline-block; white-space:pre\"><br></p></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\\"display:inline-block; white-space:pre\\">abc</p><p><p style=\\"display:inline-block; white-space:pre\\"><br></p></p>" not in array ["<p style=\\"display:inline-block; white-space:pre\\">abc</p><div><p style=\\"display:inline-block; white-space:pre\\"><br></p></div>", "<div><p style=\\"display:inline-block; white-space:pre\\">abc</p></div><div><p style=\\"display:inline-block; white-space:pre\\"><br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:pre">[]abc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\"display:inline-block; white-space:pre\"><br></p></p><p style=\"display:inline-block; white-space:pre\">abc</p>" not in array ["<div><p style=\"display:inline-block; white-space:pre\"><br></p></div><p style=\"display:inline-block; white-space:pre\">abc</p>", "<div><p style=\"display:inline-block; white-space:pre\"><br></p></div><p style=\"display:inline-block; white-space:pre\">abc<br></p>", "<div><p style=\"display:inline-block; white-space:pre\"><br></p></div><div><p style=\"display:inline-block; white-space:pre\">abc</p></div>", "<div><p style=\"display:inline-block; white-space:pre\"><br></p></div><div><p style=\"display:inline-block; white-space:pre\">abc<br></p></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\\"display:inline-block; white-space:pre\\"><br></p></p><p style=\\"display:inline-block; white-space:pre\\">abc</p>" not in array ["<div><p style=\\"display:inline-block; white-space:pre\\"><br></p></div><p style=\\"display:inline-block; white-space:pre\\">abc</p>", "<div><p style=\\"display:inline-block; white-space:pre\\"><br></p></div><p style=\\"display:inline-block; white-space:pre\\">abc<br></p>", "<div><p style=\\"display:inline-block; white-space:pre\\"><br></p></div><div><p style=\\"display:inline-block; white-space:pre\\">abc</p></div>", "<div><p style=\\"display:inline-block; white-space:pre\\"><br></p></div><div><p style=\\"display:inline-block; white-space:pre\\">abc<br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:pre">a[]bc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\"display:inline-block; white-space:pre\">a</p><p><p style=\"display:inline-block; white-space:pre\">bc</p></p>" not in array ["<p style=\"display:inline-block; white-space:pre\">a</p><div><p style=\"display:inline-block; white-space:pre\">bc</p></div>", "<p style=\"display:inline-block; white-space:pre\">a</p><div><p style=\"display:inline-block; white-space:pre\">bc<br></p></div>", "<div><p style=\"display:inline-block; white-space:pre\">a</p></div><div><p style=\"display:inline-block; white-space:pre\">bc</p></div>", "<div><p style=\"display:inline-block; white-space:pre\">a</p></div><div><p style=\"display:inline-block; white-space:pre\">bc<br></p></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\\"display:inline-block; white-space:pre\\">a</p><p><p style=\\"display:inline-block; white-space:pre\\">bc</p></p>" not in array ["<p style=\\"display:inline-block; white-space:pre\\">a</p><div><p style=\\"display:inline-block; white-space:pre\\">bc</p></div>", "<p style=\\"display:inline-block; white-space:pre\\">a</p><div><p style=\\"display:inline-block; white-space:pre\\">bc<br></p></div>", "<div><p style=\\"display:inline-block; white-space:pre\\">a</p></div><div><p style=\\"display:inline-block; white-space:pre\\">bc</p></div>", "<div><p style=\\"display:inline-block; white-space:pre\\">a</p></div><div><p style=\\"display:inline-block; white-space:pre\\">bc<br></p></div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre_command=insertText-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre_command=insertText-expected.txt
index c20f6012..f092b5f 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre_command=insertText-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/insertparagraph-with-white-space-style.tentative_white-space=pre_command=insertText-expected.txt
@@ -104,11 +104,11 @@
 [PASS] <div contenteditable style="display:inline; white-space:pre"><div>[]abc</div></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline; white-space:pre"><div>a[]bc</div></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><div style="display:inline; white-space:pre">abc[]</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\"display:inline; white-space:pre\">abc</div><p><div style=\"display:inline; white-space:pre\"><br></div></p>" not in array ["<div style=\"display:inline; white-space:pre\">abc</div><div><div style=\"display:inline; white-space:pre\"><br></div></div>", "<div><div style=\"display:inline; white-space:pre\">abc</div></div><div><div style=\"display:inline; white-space:pre\"><br></div></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\\"display:inline; white-space:pre\\">abc</div><p><div style=\\"display:inline; white-space:pre\\"><br></div></p>" not in array ["<div style=\\"display:inline; white-space:pre\\">abc</div><div><div style=\\"display:inline; white-space:pre\\"><br></div></div>", "<div><div style=\\"display:inline; white-space:pre\\">abc</div></div><div><div style=\\"display:inline; white-space:pre\\"><br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline; white-space:pre">[]abc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\"display:inline; white-space:pre\"><br></div></p><div style=\"display:inline; white-space:pre\">abc</div>" not in array ["<div><div style=\"display:inline; white-space:pre\"><br></div></div><div style=\"display:inline; white-space:pre\">abc</div>", "<div><div style=\"display:inline; white-space:pre\"><br></div></div><div style=\"display:inline; white-space:pre\">abc<br></div>", "<div><div style=\"display:inline; white-space:pre\"><br></div></div><div><div style=\"display:inline; white-space:pre\">abc</div></div>", "<div><div style=\"display:inline; white-space:pre\"><br></div></div><div><div style=\"display:inline; white-space:pre\">abc<br></div></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\\"display:inline; white-space:pre\\"><br></div></p><div style=\\"display:inline; white-space:pre\\">abc</div>" not in array ["<div><div style=\\"display:inline; white-space:pre\\"><br></div></div><div style=\\"display:inline; white-space:pre\\">abc</div>", "<div><div style=\\"display:inline; white-space:pre\\"><br></div></div><div style=\\"display:inline; white-space:pre\\">abc<br></div>", "<div><div style=\\"display:inline; white-space:pre\\"><br></div></div><div><div style=\\"display:inline; white-space:pre\\">abc</div></div>", "<div><div style=\\"display:inline; white-space:pre\\"><br></div></div><div><div style=\\"display:inline; white-space:pre\\">abc<br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline; white-space:pre">a[]bc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\"display:inline; white-space:pre\">a</div><p><div style=\"display:inline; white-space:pre\">bc</div></p>" not in array ["<div style=\"display:inline; white-space:pre\">a</div><div><div style=\"display:inline; white-space:pre\">bc</div></div>", "<div style=\"display:inline; white-space:pre\">a</div><div><div style=\"display:inline; white-space:pre\">bc<br></div></div>", "<div><div style=\"display:inline; white-space:pre\">a</div></div><div><div style=\"display:inline; white-space:pre\">bc</div></div>", "<div><div style=\"display:inline; white-space:pre\">a</div></div><div><div style=\"display:inline; white-space:pre\">bc<br></div></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\\"display:inline; white-space:pre\\">a</div><p><div style=\\"display:inline; white-space:pre\\">bc</div></p>" not in array ["<div style=\\"display:inline; white-space:pre\\">a</div><div><div style=\\"display:inline; white-space:pre\\">bc</div></div>", "<div style=\\"display:inline; white-space:pre\\">a</div><div><div style=\\"display:inline; white-space:pre\\">bc<br></div></div>", "<div><div style=\\"display:inline; white-space:pre\\">a</div></div><div><div style=\\"display:inline; white-space:pre\\">bc</div></div>", "<div><div style=\\"display:inline; white-space:pre\\">a</div></div><div><div style=\\"display:inline; white-space:pre\\">bc<br></div></div>"]
 [PASS] <div contenteditable style="display:inline"><p style="white-space:pre">abc[]</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline"><p style="white-space:pre">[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline"><p style="white-space:pre">a[]bc</p></div> (defaultParagraphSeparator: p)
@@ -116,11 +116,11 @@
 [PASS] <div contenteditable style="display:inline; white-space:pre"><p>[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline; white-space:pre"><p>a[]bc</p></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><p style="display:inline; white-space:pre">abc[]</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\"display:inline; white-space:pre\">abc</p><p><p style=\"display:inline; white-space:pre\"><br></p></p>" not in array ["<p style=\"display:inline; white-space:pre\">abc</p><div><p style=\"display:inline; white-space:pre\"><br></p></div>", "<div><p style=\"display:inline; white-space:pre\">abc</p></div><div><p style=\"display:inline; white-space:pre\"><br></p></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\\"display:inline; white-space:pre\\">abc</p><p><p style=\\"display:inline; white-space:pre\\"><br></p></p>" not in array ["<p style=\\"display:inline; white-space:pre\\">abc</p><div><p style=\\"display:inline; white-space:pre\\"><br></p></div>", "<div><p style=\\"display:inline; white-space:pre\\">abc</p></div><div><p style=\\"display:inline; white-space:pre\\"><br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline; white-space:pre">[]abc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\"display:inline; white-space:pre\"><br></p></p><p style=\"display:inline; white-space:pre\">abc</p>" not in array ["<div><p style=\"display:inline; white-space:pre\"><br></p></div><p style=\"display:inline; white-space:pre\">abc</p>", "<div><p style=\"display:inline; white-space:pre\"><br></p></div><p style=\"display:inline; white-space:pre\">abc<br></p>", "<div><p style=\"display:inline; white-space:pre\"><br></p></div><div><p style=\"display:inline; white-space:pre\">abc</p></div>", "<div><p style=\"display:inline; white-space:pre\"><br></p></div><div><p style=\"display:inline; white-space:pre\">abc<br></p></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\\"display:inline; white-space:pre\\"><br></p></p><p style=\\"display:inline; white-space:pre\\">abc</p>" not in array ["<div><p style=\\"display:inline; white-space:pre\\"><br></p></div><p style=\\"display:inline; white-space:pre\\">abc</p>", "<div><p style=\\"display:inline; white-space:pre\\"><br></p></div><p style=\\"display:inline; white-space:pre\\">abc<br></p>", "<div><p style=\\"display:inline; white-space:pre\\"><br></p></div><div><p style=\\"display:inline; white-space:pre\\">abc</p></div>", "<div><p style=\\"display:inline; white-space:pre\\"><br></p></div><div><p style=\\"display:inline; white-space:pre\\">abc<br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline; white-space:pre">a[]bc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\"display:inline; white-space:pre\">a</p><p><p style=\"display:inline; white-space:pre\">bc</p></p>" not in array ["<p style=\"display:inline; white-space:pre\">a</p><div><p style=\"display:inline; white-space:pre\">bc</p></div>", "<p style=\"display:inline; white-space:pre\">a</p><div><p style=\"display:inline; white-space:pre\">bc<br></p></div>", "<div><p style=\"display:inline; white-space:pre\">a</p></div><div><p style=\"display:inline; white-space:pre\">bc</p></div>", "<div><p style=\"display:inline; white-space:pre\">a</p></div><div><p style=\"display:inline; white-space:pre\">bc<br></p></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\\"display:inline; white-space:pre\\">a</p><p><p style=\\"display:inline; white-space:pre\\">bc</p></p>" not in array ["<p style=\\"display:inline; white-space:pre\\">a</p><div><p style=\\"display:inline; white-space:pre\\">bc</p></div>", "<p style=\\"display:inline; white-space:pre\\">a</p><div><p style=\\"display:inline; white-space:pre\\">bc<br></p></div>", "<div><p style=\\"display:inline; white-space:pre\\">a</p></div><div><p style=\\"display:inline; white-space:pre\\">bc</p></div>", "<div><p style=\\"display:inline; white-space:pre\\">a</p></div><div><p style=\\"display:inline; white-space:pre\\">bc<br></p></div>"]
 [PASS] <div contenteditable style="white-space:pre; display:inline-block">abc[]</div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="white-space:pre; display:inline-block">[]abc</div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="white-space:pre; display:inline-block">a[]bc</div> (defaultParagraphSeparator: p)
@@ -133,11 +133,11 @@
 [PASS] <div contenteditable style="display:inline-block; white-space:pre"><div>[]abc</div></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block; white-space:pre"><div>a[]bc</div></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:pre">abc[]</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\"display:inline-block; white-space:pre\">abc</div><p><div style=\"display:inline-block; white-space:pre\"><br></div></p>" not in array ["<div style=\"display:inline-block; white-space:pre\">abc</div><div><div style=\"display:inline-block; white-space:pre\"><br></div></div>", "<div><div style=\"display:inline-block; white-space:pre\">abc</div></div><div><div style=\"display:inline-block; white-space:pre\"><br></div></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<div style=\\"display:inline-block; white-space:pre\\">abc</div><p><div style=\\"display:inline-block; white-space:pre\\"><br></div></p>" not in array ["<div style=\\"display:inline-block; white-space:pre\\">abc</div><div><div style=\\"display:inline-block; white-space:pre\\"><br></div></div>", "<div><div style=\\"display:inline-block; white-space:pre\\">abc</div></div><div><div style=\\"display:inline-block; white-space:pre\\"><br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:pre">[]abc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\"display:inline-block; white-space:pre\"><br></div></p><div style=\"display:inline-block; white-space:pre\">abc</div>" not in array ["<div><div style=\"display:inline-block; white-space:pre\"><br></div></div><div style=\"display:inline-block; white-space:pre\">abc</div>", "<div><div style=\"display:inline-block; white-space:pre\"><br></div></div><div style=\"display:inline-block; white-space:pre\">abc<br></div>", "<div><div style=\"display:inline-block; white-space:pre\"><br></div></div><div><div style=\"display:inline-block; white-space:pre\">abc</div></div>", "<div><div style=\"display:inline-block; white-space:pre\"><br></div></div><div><div style=\"display:inline-block; white-space:pre\">abc<br></div></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><div style=\\"display:inline-block; white-space:pre\\"><br></div></p><div style=\\"display:inline-block; white-space:pre\\">abc</div>" not in array ["<div><div style=\\"display:inline-block; white-space:pre\\"><br></div></div><div style=\\"display:inline-block; white-space:pre\\">abc</div>", "<div><div style=\\"display:inline-block; white-space:pre\\"><br></div></div><div style=\\"display:inline-block; white-space:pre\\">abc<br></div>", "<div><div style=\\"display:inline-block; white-space:pre\\"><br></div></div><div><div style=\\"display:inline-block; white-space:pre\\">abc</div></div>", "<div><div style=\\"display:inline-block; white-space:pre\\"><br></div></div><div><div style=\\"display:inline-block; white-space:pre\\">abc<br></div></div>"]
 [FAIL] <div contenteditable><div style="display:inline-block; white-space:pre">a[]bc</div></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\"display:inline-block; white-space:pre\">a</div><p><div style=\"display:inline-block; white-space:pre\">bc</div></p>" not in array ["<div style=\"display:inline-block; white-space:pre\">a</div><div><div style=\"display:inline-block; white-space:pre\">bc</div></div>", "<div style=\"display:inline-block; white-space:pre\">a</div><div><div style=\"display:inline-block; white-space:pre\">bc<br></div></div>", "<div><div style=\"display:inline-block; white-space:pre\">a</div></div><div><div style=\"display:inline-block; white-space:pre\">bc</div></div>", "<div><div style=\"display:inline-block; white-space:pre\">a</div></div><div><div style=\"display:inline-block; white-space:pre\">bc<br></div></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<div style=\\"display:inline-block; white-space:pre\\">a</div><p><div style=\\"display:inline-block; white-space:pre\\">bc</div></p>" not in array ["<div style=\\"display:inline-block; white-space:pre\\">a</div><div><div style=\\"display:inline-block; white-space:pre\\">bc</div></div>", "<div style=\\"display:inline-block; white-space:pre\\">a</div><div><div style=\\"display:inline-block; white-space:pre\\">bc<br></div></div>", "<div><div style=\\"display:inline-block; white-space:pre\\">a</div></div><div><div style=\\"display:inline-block; white-space:pre\\">bc</div></div>", "<div><div style=\\"display:inline-block; white-space:pre\\">a</div></div><div><div style=\\"display:inline-block; white-space:pre\\">bc<br></div></div>"]
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:pre">abc[]</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:pre">[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block"><p style="white-space:pre">a[]bc</p></div> (defaultParagraphSeparator: p)
@@ -145,10 +145,10 @@
 [PASS] <div contenteditable style="display:inline-block; white-space:pre"><p>[]abc</p></div> (defaultParagraphSeparator: p)
 [PASS] <div contenteditable style="display:inline-block; white-space:pre"><p>a[]bc</p></div> (defaultParagraphSeparator: p)
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:pre">abc[]</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\"display:inline-block; white-space:pre\">abc</p><p><p style=\"display:inline-block; white-space:pre\"><br></p></p>" not in array ["<p style=\"display:inline-block; white-space:pre\">abc</p><div><p style=\"display:inline-block; white-space:pre\"><br></p></div>", "<div><p style=\"display:inline-block; white-space:pre\">abc</p></div><div><p style=\"display:inline-block; white-space:pre\"><br></p></div>"]
+  assert_in_array: New paragraph should be inserted at end of the paragraph which is wrapped by a new <div> value "<p style=\\"display:inline-block; white-space:pre\\">abc</p><p><p style=\\"display:inline-block; white-space:pre\\"><br></p></p>" not in array ["<p style=\\"display:inline-block; white-space:pre\\">abc</p><div><p style=\\"display:inline-block; white-space:pre\\"><br></p></div>", "<div><p style=\\"display:inline-block; white-space:pre\\">abc</p></div><div><p style=\\"display:inline-block; white-space:pre\\"><br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:pre">[]abc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\"display:inline-block; white-space:pre\"><br></p></p><p style=\"display:inline-block; white-space:pre\">abc</p>" not in array ["<div><p style=\"display:inline-block; white-space:pre\"><br></p></div><p style=\"display:inline-block; white-space:pre\">abc</p>", "<div><p style=\"display:inline-block; white-space:pre\"><br></p></div><p style=\"display:inline-block; white-space:pre\">abc<br></p>", "<div><p style=\"display:inline-block; white-space:pre\"><br></p></div><div><p style=\"display:inline-block; white-space:pre\">abc</p></div>", "<div><p style=\"display:inline-block; white-space:pre\"><br></p></div><div><p style=\"display:inline-block; white-space:pre\">abc<br></p></div>"]
+  assert_in_array: New paragraph should be inserted at start of the paragraph which is wrapped by a new <div> value "<p><p style=\\"display:inline-block; white-space:pre\\"><br></p></p><p style=\\"display:inline-block; white-space:pre\\">abc</p>" not in array ["<div><p style=\\"display:inline-block; white-space:pre\\"><br></p></div><p style=\\"display:inline-block; white-space:pre\\">abc</p>", "<div><p style=\\"display:inline-block; white-space:pre\\"><br></p></div><p style=\\"display:inline-block; white-space:pre\\">abc<br></p>", "<div><p style=\\"display:inline-block; white-space:pre\\"><br></p></div><div><p style=\\"display:inline-block; white-space:pre\\">abc</p></div>", "<div><p style=\\"display:inline-block; white-space:pre\\"><br></p></div><div><p style=\\"display:inline-block; white-space:pre\\">abc<br></p></div>"]
 [FAIL] <div contenteditable><p style="display:inline-block; white-space:pre">a[]bc</p></div> (defaultParagraphSeparator: p)
-  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\"display:inline-block; white-space:pre\">a</p><p><p style=\"display:inline-block; white-space:pre\">bc</p></p>" not in array ["<p style=\"display:inline-block; white-space:pre\">a</p><div><p style=\"display:inline-block; white-space:pre\">bc</p></div>", "<p style=\"display:inline-block; white-space:pre\">a</p><div><p style=\"display:inline-block; white-space:pre\">bc<br></p></div>", "<div><p style=\"display:inline-block; white-space:pre\">a</p></div><div><p style=\"display:inline-block; white-space:pre\">bc</p></div>", "<div><p style=\"display:inline-block; white-space:pre\">a</p></div><div><p style=\"display:inline-block; white-space:pre\">bc<br></p></div>"]
+  assert_in_array: The paragraph should be split and the latter one should be wrapped by a new <div> value "<p style=\\"display:inline-block; white-space:pre\\">a</p><p><p style=\\"display:inline-block; white-space:pre\\">bc</p></p>" not in array ["<p style=\\"display:inline-block; white-space:pre\\">a</p><div><p style=\\"display:inline-block; white-space:pre\\">bc</p></div>", "<p style=\\"display:inline-block; white-space:pre\\">a</p><div><p style=\\"display:inline-block; white-space:pre\\">bc<br></p></div>", "<div><p style=\\"display:inline-block; white-space:pre\\">a</p></div><div><p style=\\"display:inline-block; white-space:pre\\">bc</p></div>", "<div><p style=\\"display:inline-block; white-space:pre\\">a</p></div><div><p style=\\"display:inline-block; white-space:pre\\">bc<br></p></div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=normal_right-white-space=nowrap-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=normal_right-white-space=nowrap-expected.txt
index a4a9d15..770d21d 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=normal_right-white-space=nowrap-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=normal_right-white-space=nowrap-expected.txt
@@ -1,69 +1,69 @@
 This is a testharness.js-based test.
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:nowrap">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:nowrap">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:nowrap">[]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="nowrap">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:nowrap">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:nowrap">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:nowrap">[]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="nowrap">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:nowrap"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:nowrap\"><b style=\"white-space:nowrap\">def</b></span></div><div style=\"white-space:nowrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:nowrap"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:nowrap\"><b style=\"white-space:nowrap\">def</b></span></div><div style=\"white-space:nowrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:nowrap\\"><b style=\\"white-space:nowrap\\">def</b></span></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:nowrap"><b>[]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:nowrap\\"><b style=\\"white-space:nowrap\\">def</b></span></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="nowrap"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:nowrap\"><b style=\"white-space:nowrap\">def</b></span></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  class=\"nowrap\" style=\"white-space:nowrap\"><b class=\"nowrap\" style=\"white-space:nowrap\">def</b></span></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:nowrap\" class=\"nowrap\"><b style=\"white-space:nowrap\" class=\"nowrap\">def</b></span></div><div class=\"nowrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:nowrap\\"><b style=\\"white-space:nowrap\\">def</b></span></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></span></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></span></div><div class=\\"nowrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:nowrap"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b><span style=\"white-space:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div style=\"white-space:nowrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:nowrap"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b><span style=\"white-space:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div style=\"white-space:nowrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b><span style=\\"white-space:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:nowrap"><b>[]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b><span style=\\"white-space:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="nowrap"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div class=\"nowrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b><span style=\"white-space:nowrap\">ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:normal\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b><span class=\"nowrap\" style=\"white-space:nowrap\">ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b><span style=\"white-space:nowrap\" class=\"nowrap\">ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b>ghi</span></div><div class=\"nowrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b><span style=\\"white-space:nowrap\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b><span class=\\"nowrap\\" style=\\"white-space:nowrap\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b><span style=\\"white-space:nowrap\\" class=\\"nowrap\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b>ghi</span></div><div class=\\"nowrap\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:nowrap"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:nowrap"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:nowrap"><b>[]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="nowrap"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:nowrap"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:nowrap"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:nowrap"><b>[]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="nowrap"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:nowrap"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:nowrap"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:nowrap"><div>[]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="nowrap"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:nowrap">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:nowrap">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:nowrap">[]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="nowrap">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:nowrap"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:nowrap"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:nowrap"><div>[]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="nowrap"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:nowrap">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:nowrap">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:nowrap">[]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="nowrap">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:nowrap"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:nowrap"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:nowrap"><div>[]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="nowrap"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=normal_right-white-space=pre-line-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=normal_right-white-space=pre-line-expected.txt
index 565a1c0..2c44048 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=normal_right-white-space=pre-line-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=normal_right-white-space=pre-line-expected.txt
@@ -1,118 +1,118 @@
 This is a testharness.js-based test.
 Found 57 tests; 0 PASS, 57 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-line">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-line">[]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-line">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-line">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-line">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-line">[]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-line"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-line"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-line\"><b style=\"white-space:pre-line\">def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-line"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-line\"><b style=\"white-space:pre-line\">def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-line\\"><b style=\\"white-space:pre-line\\">def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-line"><b>[]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-line\\"><b style=\\"white-space:pre-line\\">def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-line\"><b style=\"white-space:pre-line\">def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  class=\"preLine\" style=\"white-space:pre-line\"><b class=\"preLine\" style=\"white-space:pre-line\">def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-line\" class=\"preLine\"><b style=\"white-space:pre-line\" class=\"preLine\">def</b></span></div><div class=\"preLine\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-line"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div class=\"preLine\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b><span class=\"preLine\" style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b><span style=\"white-space:pre-line\" class=\"preLine\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-line\\"><b style=\\"white-space:pre-line\\">def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  class=\\"preLine\\" style=\\"white-space:pre-line\\"><b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-line\\" class=\\"preLine\\"><b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-line"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div class=\\"preLine\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b><span class=\\"preLine\\" style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b><span style=\\"white-space:pre-line\\" class=\\"preLine\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-line"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-line"><b>[]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div class=\"preLine\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b><span class=\"preLine\" style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b><span style=\"white-space:pre-line\" class=\"preLine\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-line"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div class=\\"preLine\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b><span class=\\"preLine\\" style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b><span style=\\"white-space:pre-line\\" class=\\"preLine\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-line"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-line"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-line"><b>[]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-line"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-line"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-line"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-line"><b>[]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-line"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-line"><div>[]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-line">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-line">[]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div></div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-line"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi\njkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi\njkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi\njkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi\njkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-line"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-line"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-line"><div>[]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-line">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-line">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-line">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-line">[]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-line"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-line"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-line"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-line"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-line"><div>[]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="preLine"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=normal_right-white-space=pre-wrap-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=normal_right-white-space=pre-wrap-expected.txt
index 874798e..93361f3 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=normal_right-white-space=pre-wrap-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=normal_right-white-space=pre-wrap-expected.txt
@@ -1,118 +1,118 @@
 This is a testharness.js-based test.
 Found 57 tests; 0 PASS, 57 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-wrap">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-wrap">[]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-wrap">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-wrap">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-wrap">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-wrap">[]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-wrap"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-wrap"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  class=\"preWrap\" style=\"white-space:pre-wrap\"><b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-wrap\" class=\"preWrap\"><b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-wrap"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div class=\"preWrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-wrap"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div class=\"preWrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-wrap"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-wrap"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-wrap"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-wrap"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-wrap"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-wrap"><div>[]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-wrap">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-wrap">[]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-wrap"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-wrap"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-wrap"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-wrap"><div>[]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-wrap">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-wrap">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-wrap">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-wrap">[]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-wrap"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-wrap"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div style="white-space:pre-wrap"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc</div>\n<div style="white-space:pre-wrap"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc</div>\\n<div style="white-space:pre-wrap"><div>[]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc</div><div class="preWrap"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=nowrap_right-white-space=normal-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=nowrap_right-white-space=normal-expected.txt
index 73b1693..72871f24 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=nowrap_right-white-space=normal-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=nowrap_right-white-space=normal-expected.txt
@@ -1,69 +1,69 @@
 This is a testharness.js-based test.
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:normal">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:normal">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:normal">[]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div>"]
 [FAIL] delete at <div class="nowrap">abc</div><div style="white-space:normal">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:normal\">def</span></div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:normal">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:normal">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:normal">[]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="nowrap">abc</div><div style="white-space:normal">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:normal"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:normal"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:normal"><b>[]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
 [FAIL] delete at <div class="nowrap">abc</div><div style="white-space:normal"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span  class=\"null\" style=\"white-space:normal\"><b class=\"null\" style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span  style=\"white-space:normal\" class=\"null\"><b style=\"white-space:normal\" class=\"null\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span  class=\\"null\\" style=\\"white-space:normal\\"><b class=\\"null\\" style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span  style=\\"white-space:normal\\" class=\\"null\\"><b style=\\"white-space:normal\\" class=\\"null\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:normal"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:normal"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:normal"><b>[]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
 [FAIL] delete at <div class="nowrap">abc</div><div style="white-space:normal"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"nowrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b><span class=\"null\" style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"nowrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b><span style=\"white-space:normal\" class=\"null\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"nowrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b><span class=\\"null\\" style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b><span style=\\"white-space:normal\\" class=\\"null\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:normal"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:normal"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:normal"><b>[]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="nowrap">abc</div><div style="white-space:normal"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:normal"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:normal"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:normal"><b>[]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="nowrap">abc</div><div style="white-space:normal"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:normal"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:normal"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:normal"><div>[]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="nowrap">abc</div><div style="white-space:normal"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:normal">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:normal">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:normal">[]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
 [FAIL] delete at <div class="nowrap">abc</div><div style="white-space:normal">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:normal"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:normal"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:normal"><div>[]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div class="nowrap">abc</div><div style="white-space:normal"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:normal">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:normal">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:normal">[]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div class="nowrap">abc</div><div style="white-space:normal">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:normal"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:normal"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:normal"><div>[]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div class="nowrap">abc</div><div style="white-space:normal"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=nowrap_right-white-space=pre-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=nowrap_right-white-space=pre-expected.txt
index 38bfcfb..c3e8d8cb 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=nowrap_right-white-space=pre-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=nowrap_right-white-space=pre-expected.txt
@@ -1,156 +1,156 @@
 This is a testharness.js-based test.
 Found 76 tests; 0 PASS, 76 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:pre">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:pre">[]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div>"]
 [FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:pre">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi</div>"]
-[FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:pre">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi</div>"]
+[FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:pre">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:pre">[]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:pre"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\"><b>ghi</b></div>"]
-[FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:pre"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>"]
+[FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:pre"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:pre"><b>[]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span  class=\"pre\" style=\"white-space:pre\"><b class=\"pre\" style=\"white-space:pre\">def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span  style=\"white-space:pre\" class=\"pre\"><b style=\"white-space:pre\" class=\"pre\">def</b></span></div><div class=\"pre\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span  class=\\"pre\\" style=\\"white-space:pre\\"><b class=\\"pre\\" style=\\"white-space:pre\\">def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span  style=\\"white-space:pre\\" class=\\"pre\\"><b style=\\"white-space:pre\\" class=\\"pre\\">def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>"]
 [FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span  class=\"pre\" style=\"white-space:pre\"><b class=\"pre\" style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span  style=\"white-space:pre\" class=\"pre\"><b style=\"white-space:pre\" class=\"pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:pre"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div class=\"pre\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>"]
-[FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span  class=\\"pre\\" style=\\"white-space:pre\\"><b class=\\"pre\\" style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span  style=\\"white-space:pre\\" class=\\"pre\\"><b style=\\"white-space:pre\\" class=\\"pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:pre"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div class=\\"pre\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>"]
+[FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:pre"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:pre"><b>[]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div class=\"pre\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div class=\\"pre\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>"]
 [FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:pre"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
-[FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:pre"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
+[FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:pre"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:pre"><b>[]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:pre"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
-[FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:pre"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
+[FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:pre"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:pre"><b>[]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:pre"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:pre"><div>[]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:pre">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:pre">[]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\"><div>ghi</div></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div></div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div></div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>"]
 [FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:pre"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\">ghi\njkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi\njkl</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi\njkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi\njkl</div>"]
-[FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:pre"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>"]
+[FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:pre"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:pre"><div>[]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi<br>jkl</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi<br>jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:pre">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:pre">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:pre">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:pre">[]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:pre"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:pre"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div style="white-space:pre"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc</div>\n<div style="white-space:pre"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc</div>\\n<div style="white-space:pre"><div>[]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc</div><div class="pre"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div class="nowrap">abc</div><div style="white-space:pre"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre-line_right-white-space=normal-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre-line_right-white-space=normal-expected.txt
index aab2baf..25eb534 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre-line_right-white-space=normal-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre-line_right-white-space=normal-expected.txt
@@ -1,69 +1,69 @@
 This is a testharness.js-based test.
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:normal">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:normal">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:normal">[]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div>"]
 [FAIL] delete at <div class="preLine">abc</div><div style="white-space:normal">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:normal\">def</span></div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\">def</span></div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:normal">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:normal">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:normal">[]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="preLine">abc</div><div style="white-space:normal">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:normal"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:normal"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:normal"><b>[]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
 [FAIL] delete at <div class="preLine">abc</div><div style="white-space:normal"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preLine\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span  class=\"null\" style=\"white-space:normal\"><b class=\"null\" style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preLine\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span  style=\"white-space:normal\" class=\"null\"><b style=\"white-space:normal\" class=\"null\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span  class=\\"null\\" style=\\"white-space:normal\\"><b class=\\"null\\" style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span  style=\\"white-space:normal\\" class=\\"null\\"><b style=\\"white-space:normal\\" class=\\"null\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:normal"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:normal"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:normal"><b>[]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
 [FAIL] delete at <div class="preLine">abc</div><div style="white-space:normal"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preLine\">abc<b class=\"null\" style=\"white-space:normal\">def</b><span class=\"null\" style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preLine\">abc<b style=\"white-space:normal\" class=\"null\">def</b><span style=\"white-space:normal\" class=\"null\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preLine\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b><span class=\\"null\\" style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b><span style=\\"white-space:normal\\" class=\\"null\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:normal"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:normal"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:normal"><b>[]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="preLine">abc</div><div style="white-space:normal"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:normal"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:normal"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:normal"><b>[]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="preLine">abc</div><div style="white-space:normal"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:normal"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:normal"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:normal"><div>[]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="preLine">abc</div><div style="white-space:normal"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:normal">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:normal">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:normal">[]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
 [FAIL] delete at <div class="preLine">abc</div><div style="white-space:normal">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:normal"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:normal"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:normal"><div>[]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div class="preLine">abc</div><div style="white-space:normal"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:normal">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:normal">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:normal">[]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div class="preLine">abc</div><div style="white-space:normal">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:normal"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:normal"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:normal"><div>[]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div class="preLine">abc</div><div style="white-space:normal"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre-line_right-white-space=pre-wrap-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre-line_right-white-space=pre-wrap-expected.txt
index 74da83d..1f837b9 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre-line_right-white-space=pre-wrap-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre-line_right-white-space=pre-wrap-expected.txt
@@ -1,156 +1,156 @@
 This is a testharness.js-based test.
 Found 76 tests; 0 PASS, 76 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:pre-wrap">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:pre-wrap">[]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div>"]
 [FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:pre-wrap">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:pre-wrap">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:pre-wrap">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:pre-wrap">[]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:pre-wrap"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:pre-wrap"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span  class=\"preWrap\" style=\"white-space:pre-wrap\"><b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span  style=\"white-space:pre-wrap\" class=\"preWrap\"><b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span  class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span  style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span  class=\"preWrap\" style=\"white-space:pre-wrap\"><b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span  style=\"white-space:pre-wrap\" class=\"preWrap\"><b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:pre-wrap"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div class=\"preWrap\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>"]
-[FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span  class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span  style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>"]
+[FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:pre-wrap"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div class=\"preWrap\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>"]
 [FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:pre-wrap"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:pre-wrap"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:pre-wrap"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:pre-wrap"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:pre-wrap"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:pre-wrap"><div>[]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:pre-wrap">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:pre-wrap">[]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>"]
 [FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:pre-wrap"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>"]
-[FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:pre-wrap"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>"]
+[FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:pre-wrap"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:pre-wrap"><div>[]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:pre-wrap">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:pre-wrap">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:pre-wrap">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:pre-wrap">[]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:pre-wrap"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:pre-wrap"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div style="white-space:pre-wrap"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc</div>\n<div style="white-space:pre-wrap"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc</div>\\n<div style="white-space:pre-wrap"><div>[]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc</div><div class="preWrap"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div class="preLine">abc</div><div style="white-space:pre-wrap"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre-wrap_right-white-space=normal-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre-wrap_right-white-space=normal-expected.txt
index ad689c1..e76c146 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre-wrap_right-white-space=normal-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre-wrap_right-white-space=normal-expected.txt
@@ -1,69 +1,69 @@
 This is a testharness.js-based test.
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:normal">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:normal">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:normal">[]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:normal">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:normal\">def</span></div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\">def</span></div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:normal">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:normal">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:normal">[]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:normal">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:normal"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:normal"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:normal"><b>[]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:normal"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  class=\"null\" style=\"white-space:normal\"><b class=\"null\" style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  style=\"white-space:normal\" class=\"null\"><b style=\"white-space:normal\" class=\"null\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  class=\\"null\\" style=\\"white-space:normal\\"><b class=\\"null\\" style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  style=\\"white-space:normal\\" class=\\"null\\"><b style=\\"white-space:normal\\" class=\\"null\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:normal"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:normal"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:normal"><b>[]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:normal"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preWrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b><span class=\"null\" style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preWrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b><span style=\"white-space:normal\" class=\"null\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preWrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b><span class=\\"null\\" style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b><span style=\\"white-space:normal\\" class=\\"null\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:normal"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:normal"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:normal"><b>[]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:normal"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:normal"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:normal"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:normal"><b>[]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:normal"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:normal"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:normal"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:normal"><div>[]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:normal"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:normal">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:normal">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:normal">[]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:normal">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:normal"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:normal"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:normal"><div>[]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:normal"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:normal">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:normal">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:normal">[]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:normal">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:normal"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:normal"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:normal"><div>[]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:normal"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre-wrap_right-white-space=pre-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre-wrap_right-white-space=pre-expected.txt
index 76581cd..4e4ce46 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre-wrap_right-white-space=pre-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre-wrap_right-white-space=pre-expected.txt
@@ -1,156 +1,156 @@
 This is a testharness.js-based test.
 Found 76 tests; 0 PASS, 76 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre">[]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi</div>"]
-[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi</div>"]
+[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre">[]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\"><b>ghi</b></div>"]
-[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>"]
+[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre"><b>[]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  class=\"pre\" style=\"white-space:pre\"><b class=\"pre\" style=\"white-space:pre\">def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre\" class=\"pre\"><b style=\"white-space:pre\" class=\"pre\">def</b></span></div><div class=\"pre\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  class=\\"pre\\" style=\\"white-space:pre\\"><b class=\\"pre\\" style=\\"white-space:pre\\">def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre\\" class=\\"pre\\"><b style=\\"white-space:pre\\" class=\\"pre\\">def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  class=\"pre\" style=\"white-space:pre\"><b class=\"pre\" style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  style=\"white-space:pre\" class=\"pre\"><b style=\"white-space:pre\" class=\"pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div class=\"pre\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>"]
-[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  class=\\"pre\\" style=\\"white-space:pre\\"><b class=\\"pre\\" style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  style=\\"white-space:pre\\" class=\\"pre\\"><b style=\\"white-space:pre\\" class=\\"pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div class=\\"pre\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>"]
+[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre"><b>[]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div class=\"pre\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div class=\\"pre\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
-[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
+[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre"><b>[]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
-[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
+[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre"><b>[]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre"><div>[]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre">[]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div></div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi\njkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi\njkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi\njkl</div>"]
-[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>"]
+[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre"><div>[]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi<br>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi<br>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre">[]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre"><div>[]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="pre"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre-wrap_right-white-space=pre-line-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre-wrap_right-white-space=pre-line-expected.txt
index 6f3e7a8..139012c 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre-wrap_right-white-space=pre-line-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre-wrap_right-white-space=pre-line-expected.txt
@@ -1,156 +1,156 @@
 This is a testharness.js-based test.
 Found 76 tests; 0 PASS, 76 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre-line">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre-line">[]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre-line">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi</div>"]
-[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre-line">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi</div>"]
+[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre-line">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre-line">[]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre-line"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\"><b>ghi</b></div>"]
-[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre-line"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>"]
+[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre-line\"><b style=\"white-space:pre-line\">def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre-line"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre-line\"><b style=\"white-space:pre-line\">def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre-line\\"><b style=\\"white-space:pre-line\\">def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre-line"><b>[]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre-line\\"><b style=\\"white-space:pre-line\\">def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre-line\"><b style=\"white-space:pre-line\">def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  class=\"preLine\" style=\"white-space:pre-line\"><b class=\"preLine\" style=\"white-space:pre-line\">def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre-line\" class=\"preLine\"><b style=\"white-space:pre-line\" class=\"preLine\">def</b></span></div><div class=\"preLine\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre-line\\"><b style=\\"white-space:pre-line\\">def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  class=\\"preLine\\" style=\\"white-space:pre-line\\"><b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre-line\\" class=\\"preLine\\"><b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  style=\"white-space:pre-line\"><b style=\"white-space:pre-line\">def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  class=\"preLine\" style=\"white-space:pre-line\"><b class=\"preLine\" style=\"white-space:pre-line\">def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  style=\"white-space:pre-line\" class=\"preLine\"><b style=\"white-space:pre-line\" class=\"preLine\">def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre-line"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div class=\"preLine\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b><span class=\"preLine\" style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b><span style=\"white-space:pre-line\" class=\"preLine\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>"]
-[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b><span class=\"preLine\" style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b><span style=\"white-space:pre-line\" class=\"preLine\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  style=\\"white-space:pre-line\\"><b style=\\"white-space:pre-line\\">def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  class=\\"preLine\\" style=\\"white-space:pre-line\\"><b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  style=\\"white-space:pre-line\\" class=\\"preLine\\"><b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre-line"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div class=\\"preLine\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b><span class=\\"preLine\\" style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b><span style=\\"white-space:pre-line\\" class=\\"preLine\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>"]
+[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b><span class=\\"preLine\\" style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b><span style=\\"white-space:pre-line\\" class=\\"preLine\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre-line"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre-line"><b>[]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div class=\"preLine\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b><span class=\"preLine\" style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b><span style=\"white-space:pre-line\" class=\"preLine\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div class=\\"preLine\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b><span class=\\"preLine\\" style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b><span style=\\"white-space:pre-line\\" class=\\"preLine\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b><span class=\"preLine\" style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b><span style=\"white-space:pre-line\" class=\"preLine\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre-line"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
-[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b><span class=\\"preLine\\" style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b><span style=\\"white-space:pre-line\\" class=\\"preLine\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre-line"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
+[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre-line"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre-line"><b>[]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre-line"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
-[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre-line"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
+[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre-line"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre-line"><b>[]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre-line"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre-line"><div>[]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre-line">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre-line">[]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div></div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre-line"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi\njkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi\njkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi\njkl</div>"]
-[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre-line"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>"]
+[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre-line"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre-line"><div>[]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre-line">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre-line">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre-line">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre-line">[]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre-line"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre-line"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div style="white-space:pre-line"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\n<div style="white-space:pre-line"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc</div>\\n<div style="white-space:pre-line"><div>[]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc</div><div class="preLine"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div class="preWrap">abc</div><div style="white-space:pre-line"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre_right-white-space=nowrap-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre_right-white-space=nowrap-expected.txt
index fc82e92..5510240 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre_right-white-space=nowrap-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre_right-white-space=nowrap-expected.txt
@@ -1,91 +1,91 @@
 This is a testharness.js-based test.
 [FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:nowrap">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:nowrap">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:nowrap">[]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div class="nowrap">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div>"]
 [FAIL] delete at <div class="pre">abc</div><div style="white-space:nowrap">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:nowrap\">def</span></div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:nowrap">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:nowrap">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:nowrap">[]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div class="nowrap">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] delete at <div class="pre">abc</div><div style="white-space:nowrap">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:nowrap"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:nowrap\"><b style=\"white-space:nowrap\">def</b></span></div><div style=\"white-space:nowrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:nowrap"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:nowrap\"><b style=\"white-space:nowrap\">def</b></span></div><div style=\"white-space:nowrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:nowrap\\"><b style=\\"white-space:nowrap\\">def</b></span></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:nowrap"><b>[]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:nowrap\\"><b style=\\"white-space:nowrap\\">def</b></span></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div class="nowrap"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:nowrap\"><b style=\"white-space:nowrap\">def</b></span></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  class=\"nowrap\" style=\"white-space:nowrap\"><b class=\"nowrap\" style=\"white-space:nowrap\">def</b></span></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:nowrap\" class=\"nowrap\"><b style=\"white-space:nowrap\" class=\"nowrap\">def</b></span></div><div class=\"nowrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:nowrap\\"><b style=\\"white-space:nowrap\\">def</b></span></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></span></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></span></div><div class=\\"nowrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div class="pre">abc</div><div style="white-space:nowrap"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span  style=\"white-space:nowrap\"><b style=\"white-space:nowrap\">def</b></span></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span  class=\"nowrap\" style=\"white-space:nowrap\"><b class=\"nowrap\" style=\"white-space:nowrap\">def</b></span></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span  style=\"white-space:nowrap\" class=\"nowrap\"><b style=\"white-space:nowrap\" class=\"nowrap\">def</b></span></div><div style=\"white-space:nowrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span  style=\\"white-space:nowrap\\"><b style=\\"white-space:nowrap\\">def</b></span></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span  class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></span></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span  style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></span></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:nowrap"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b><span style=\"white-space:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div style=\"white-space:nowrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:nowrap"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b><span style=\"white-space:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div style=\"white-space:nowrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b><span style=\\"white-space:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:nowrap"><b>[]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b><span style=\\"white-space:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div class="nowrap"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div class=\"nowrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b><span style=\"white-space:nowrap\">ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b><span class=\"nowrap\" style=\"white-space:nowrap\">ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b><span style=\"white-space:nowrap\" class=\"nowrap\">ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b>ghi</span></div><div class=\"nowrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b><span style=\\"white-space:nowrap\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b><span class=\\"nowrap\\" style=\\"white-space:nowrap\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b><span style=\\"white-space:nowrap\\" class=\\"nowrap\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b>ghi</span></div><div class=\\"nowrap\\">jkl</div>"]
 [FAIL] delete at <div class="pre">abc</div><div style="white-space:nowrap"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:nowrap\">def</b><span style=\"white-space:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div class=\"pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b><span class=\"nowrap\" style=\"white-space:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div class=\"pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b><span style=\"white-space:nowrap\" class=\"nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b>ghi</span></div><div style=\"white-space:nowrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\">def</b><span style=\\"white-space:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div class=\\"pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b><span class=\\"nowrap\\" style=\\"white-space:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b><span style=\\"white-space:nowrap\\" class=\\"nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:nowrap"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:nowrap"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:nowrap"><b>[]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div class="nowrap"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] delete at <div class="pre">abc</div><div style="white-space:nowrap"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:nowrap"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:nowrap"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:nowrap"><b>[]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div class="nowrap"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] delete at <div class="pre">abc</div><div style="white-space:nowrap"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:nowrap"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:nowrap"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:nowrap"><div>[]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div class="nowrap"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] delete at <div class="pre">abc</div><div style="white-space:nowrap"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:nowrap">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:nowrap">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:nowrap">[]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div class="nowrap">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>"]
 [FAIL] delete at <div class="pre">abc</div><div style="white-space:nowrap">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:nowrap"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:nowrap"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:nowrap"><div>[]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div class="nowrap"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div class="pre">abc</div><div style="white-space:nowrap"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:nowrap">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:nowrap">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:nowrap">[]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div class="nowrap">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div class="pre">abc</div><div style="white-space:nowrap">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:nowrap"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:nowrap"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:nowrap"><div>[]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div class="nowrap"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div class="pre">abc</div><div style="white-space:nowrap"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre_right-white-space=pre-wrap-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre_right-white-space=pre-wrap-expected.txt
index feab26ed..4442992a 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre_right-white-space=pre-wrap-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=backspace_left-white-space=pre_right-white-space=pre-wrap-expected.txt
@@ -1,156 +1,156 @@
 This is a testharness.js-based test.
 Found 76 tests; 0 PASS, 76 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:pre-wrap">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:pre-wrap">[]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div>"]
 [FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap">[]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:pre-wrap">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap">[]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:pre-wrap">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap">[]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:pre-wrap">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:pre-wrap">[]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap">[]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:pre-wrap"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap"><b>[]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap"><b>[]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:pre-wrap"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  class=\"preWrap\" style=\"white-space:pre-wrap\"><b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:pre-wrap\" class=\"preWrap\"><b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap"><b>[]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span  class=\"preWrap\" style=\"white-space:pre-wrap\"><b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span  style=\"white-space:pre-wrap\" class=\"preWrap\"><b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:pre-wrap"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>"]
-[FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap"><b>[]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span  class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span  style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>"]
+[FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap"><b>[]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:pre-wrap"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>"]
 [FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap"><b>[]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:pre-wrap"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap"><b>[]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap"><b>[]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:pre-wrap"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap"><b>[]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:pre-wrap"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap"><b>[]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap"><b>[]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:pre-wrap"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:pre-wrap"><b>[]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap"><b>[]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:pre-wrap"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:pre-wrap"><div>[]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap"><div>[]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:pre-wrap">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:pre-wrap">[]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>"]
 [FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap">[]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:pre-wrap"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>"]
-[FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap"><div>[]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:pre-wrap"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>"]
+[FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap"><div>[]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:pre-wrap"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:pre-wrap"><div>[]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap"><div>[]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:pre-wrap">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap">[]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:pre-wrap">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap">[]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:pre-wrap">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:pre-wrap">[]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap">[]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:pre-wrap"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap"><div>[]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:pre-wrap"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap"><div>[]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div style="white-space:pre-wrap"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc</div>\n<div style="white-space:pre-wrap"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc</div>\\n<div style="white-space:pre-wrap"><div>[]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre">abc</div><div class="preWrap"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div class="pre">abc</div><div style="white-space:pre-wrap"><div>[]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=normal_right-white-space=nowrap-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=normal_right-white-space=nowrap-expected.txt
index 7a54dfe..cab042f 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=normal_right-white-space=nowrap-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=normal_right-white-space=nowrap-expected.txt
@@ -1,69 +1,69 @@
 This is a testharness.js-based test.
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:nowrap">def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:nowrap">def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:nowrap">def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="nowrap">def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:nowrap">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:nowrap">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:nowrap">def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="nowrap">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:nowrap"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:nowrap\"><b style=\"white-space:nowrap\">def</b></span></div><div style=\"white-space:nowrap\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:nowrap"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:nowrap\"><b style=\"white-space:nowrap\">def</b></span></div><div style=\"white-space:nowrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:nowrap\\"><b style=\\"white-space:nowrap\\">def</b></span></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:nowrap"><b>def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:nowrap\\"><b style=\\"white-space:nowrap\\">def</b></span></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="nowrap"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:nowrap\"><b style=\"white-space:nowrap\">def</b></span></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  class=\"nowrap\" style=\"white-space:nowrap\"><b class=\"nowrap\" style=\"white-space:nowrap\">def</b></span></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:nowrap\" class=\"nowrap\"><b style=\"white-space:nowrap\" class=\"nowrap\">def</b></span></div><div class=\"nowrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:nowrap\\"><b style=\\"white-space:nowrap\\">def</b></span></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></span></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></span></div><div class=\\"nowrap\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:nowrap"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b><span style=\"white-space:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div style=\"white-space:nowrap\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:nowrap"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b><span style=\"white-space:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div style=\"white-space:nowrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b><span style=\\"white-space:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:nowrap"><b>def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b><span style=\\"white-space:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="nowrap"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div class=\"nowrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b><span style=\"white-space:nowrap\">ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:normal\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b><span class=\"nowrap\" style=\"white-space:nowrap\">ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b><span style=\"white-space:nowrap\" class=\"nowrap\">ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b>ghi</span></div><div class=\"nowrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b><span style=\\"white-space:nowrap\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b><span class=\\"nowrap\\" style=\\"white-space:nowrap\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b><span style=\\"white-space:nowrap\\" class=\\"nowrap\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b>ghi</span></div><div class=\\"nowrap\\">jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:nowrap"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:nowrap"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:nowrap"><b>def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="nowrap"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:nowrap"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:nowrap"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:nowrap"><b>def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="nowrap"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:nowrap"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:nowrap"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:nowrap"><div>def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="nowrap"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:nowrap">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:nowrap">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:nowrap">def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="nowrap">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:nowrap"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:nowrap"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:nowrap"><div>def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="nowrap"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:nowrap">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:nowrap">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:nowrap">def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="nowrap">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:nowrap"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:nowrap"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:nowrap"><div>def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="nowrap"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=normal_right-white-space=pre-line-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=normal_right-white-space=pre-line-expected.txt
index ffdd6a06..15f5e98 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=normal_right-white-space=pre-line-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=normal_right-white-space=pre-line-expected.txt
@@ -1,118 +1,118 @@
 This is a testharness.js-based test.
 Found 57 tests; 0 PASS, 57 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line">def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-line">def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-line">def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine">def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-line">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-line">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-line">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-line">def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-line"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-line"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-line\"><b style=\"white-space:pre-line\">def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-line"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-line\"><b style=\"white-space:pre-line\">def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-line\\"><b style=\\"white-space:pre-line\\">def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-line"><b>def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-line\\"><b style=\\"white-space:pre-line\\">def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-line\"><b style=\"white-space:pre-line\">def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  class=\"preLine\" style=\"white-space:pre-line\"><b class=\"preLine\" style=\"white-space:pre-line\">def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-line\" class=\"preLine\"><b style=\"white-space:pre-line\" class=\"preLine\">def</b></span></div><div class=\"preLine\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-line"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div class=\"preLine\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b><span class=\"preLine\" style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b><span style=\"white-space:pre-line\" class=\"preLine\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-line\\"><b style=\\"white-space:pre-line\\">def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  class=\\"preLine\\" style=\\"white-space:pre-line\\"><b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-line\\" class=\\"preLine\\"><b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-line"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div class=\\"preLine\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b><span class=\\"preLine\\" style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b><span style=\\"white-space:pre-line\\" class=\\"preLine\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-line"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-line"><b>def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div class=\"preLine\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b><span class=\"preLine\" style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b><span style=\"white-space:pre-line\" class=\"preLine\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-line"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div class=\\"preLine\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b><span class=\\"preLine\\" style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b><span style=\\"white-space:pre-line\\" class=\\"preLine\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-line"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-line"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-line"><b>def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-line"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-line"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-line"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-line"><b>def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-line"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-line"><div>def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-line">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-line">def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div></div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div></div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-line"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi\njkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi\njkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi\njkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi\njkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-line"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-line"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-line"><div>def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-line">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-line">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-line">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-line">def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-line"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-line"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-line"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-line"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-line"><div>def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preLine"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=normal_right-white-space=pre-wrap-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=normal_right-white-space=pre-wrap-expected.txt
index 6e4690c0..ff2cbd8 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=normal_right-white-space=pre-wrap-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=normal_right-white-space=pre-wrap-expected.txt
@@ -1,118 +1,118 @@
 This is a testharness.js-based test.
 Found 57 tests; 0 PASS, 57 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap">def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-wrap">def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-wrap">def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap">def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-wrap">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-wrap">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-wrap">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-wrap">def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-wrap"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-wrap"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  class=\"preWrap\" style=\"white-space:pre-wrap\"><b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-wrap\" class=\"preWrap\"><b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-wrap"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div class=\"preWrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-wrap"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div class=\"preWrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-wrap"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-wrap"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-wrap"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-wrap"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-wrap"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-wrap"><div>def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-wrap">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-wrap">def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-wrap"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-wrap"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-wrap"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-wrap"><div>def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-wrap">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-wrap">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-wrap">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-wrap">def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-wrap"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-wrap"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div style="white-space:pre-wrap"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\n<div style="white-space:pre-wrap"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:normal">abc[]</div>\\n<div style="white-space:pre-wrap"><div>def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:normal">abc[]</div><div class="preWrap"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=nowrap_right-white-space=normal-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=nowrap_right-white-space=normal-expected.txt
index eb27c80..fb9b6df9 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=nowrap_right-white-space=normal-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=nowrap_right-white-space=normal-expected.txt
@@ -1,69 +1,69 @@
 This is a testharness.js-based test.
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:normal">def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:normal">def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:normal">def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div>"]
 [FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:normal">def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:normal\">def</span></div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:normal">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:normal">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:normal">def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:normal">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:normal"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:normal"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:normal"><b>def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:normal"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span  class=\"null\" style=\"white-space:normal\"><b class=\"null\" style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span  style=\"white-space:normal\" class=\"null\"><b style=\"white-space:normal\" class=\"null\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span  class=\\"null\\" style=\\"white-space:normal\\"><b class=\\"null\\" style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span  style=\\"white-space:normal\\" class=\\"null\\"><b style=\\"white-space:normal\\" class=\\"null\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:normal"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:normal"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:normal"><b>def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
 [FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:normal"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"nowrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b><span class=\"null\" style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"nowrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b><span style=\"white-space:normal\" class=\"null\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"nowrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b><span class=\\"null\\" style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b><span style=\\"white-space:normal\\" class=\\"null\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:normal"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:normal"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:normal"><b>def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:normal"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:normal"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:normal"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:normal"><b>def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:normal"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:normal"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:normal"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:normal"><div>def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:normal"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:normal">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:normal">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:normal">def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
 [FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:normal">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:normal"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:normal"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:normal"><div>def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
 [FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:normal"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:normal">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:normal">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:normal">def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:normal">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:normal"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:normal"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:normal"><div>def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:normal"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=nowrap_right-white-space=pre-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=nowrap_right-white-space=pre-expected.txt
index 12e217e..1bf52b7 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=nowrap_right-white-space=pre-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=nowrap_right-white-space=pre-expected.txt
@@ -1,156 +1,156 @@
 This is a testharness.js-based test.
 Found 76 tests; 0 PASS, 76 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre">def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:pre">def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:pre">def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre">def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div>"]
 [FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre">def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:pre">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi</div>"]
-[FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:pre">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:pre">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:pre">def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:pre"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:pre"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:pre"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:pre"><b>def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span  class=\"pre\" style=\"white-space:pre\"><b class=\"pre\" style=\"white-space:pre\">def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span  style=\"white-space:pre\" class=\"pre\"><b style=\"white-space:pre\" class=\"pre\">def</b></span></div><div class=\"pre\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span  class=\\"pre\\" style=\\"white-space:pre\\"><b class=\\"pre\\" style=\\"white-space:pre\\">def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span  style=\\"white-space:pre\\" class=\\"pre\\"><b style=\\"white-space:pre\\" class=\\"pre\\">def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span  class=\"pre\" style=\"white-space:pre\"><b class=\"pre\" style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span  style=\"white-space:pre\" class=\"pre\"><b style=\"white-space:pre\" class=\"pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:pre"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div class=\"pre\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>"]
-[FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span  class=\\"pre\\" style=\\"white-space:pre\\"><b class=\\"pre\\" style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span  style=\\"white-space:pre\\" class=\\"pre\\"><b style=\\"white-space:pre\\" class=\\"pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:pre"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div class=\\"pre\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>"]
+[FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:pre"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:pre"><b>def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div class=\"pre\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div class=\\"pre\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>"]
 [FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:pre"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
-[FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:pre"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:pre"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:pre"><b>def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:pre"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
-[FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:pre"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:pre"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:pre"><b>def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:pre"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:pre"><div>def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:pre">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:pre">def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\"><div>ghi</div></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div></div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div></div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>"]
 [FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:pre"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\">ghi\njkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi\njkl</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi\njkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi\njkl</div>"]
-[FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:pre"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>"]
+[FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:pre"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:pre"><div>def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi<br>jkl</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi<br>jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>"]
 [FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:pre">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:pre">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:pre">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:pre">def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:pre"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:pre"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div style="white-space:pre"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\n<div style="white-space:pre"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div>\\n<div style="white-space:pre"><div>def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:nowrap">abc[]</div><div class="pre"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div class="nowrap">abc[]</div><div style="white-space:pre"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre-line_right-white-space=normal-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre-line_right-white-space=normal-expected.txt
index f6b9d24..473947d 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre-line_right-white-space=normal-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre-line_right-white-space=normal-expected.txt
@@ -1,69 +1,69 @@
 This is a testharness.js-based test.
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:normal">def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:normal">def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:normal">def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div>"]
 [FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:normal">def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:normal\">def</span></div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\">def</span></div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:normal">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:normal">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:normal">def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:normal">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:normal"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:normal"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:normal"><b>def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:normal"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preLine\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span  class=\"null\" style=\"white-space:normal\"><b class=\"null\" style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preLine\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span  style=\"white-space:normal\" class=\"null\"><b style=\"white-space:normal\" class=\"null\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span  class=\\"null\\" style=\\"white-space:normal\\"><b class=\\"null\\" style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span  style=\\"white-space:normal\\" class=\\"null\\"><b style=\\"white-space:normal\\" class=\\"null\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:normal"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:normal"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:normal"><b>def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
 [FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:normal"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preLine\">abc<b class=\"null\" style=\"white-space:normal\">def</b><span class=\"null\" style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preLine\">abc<b style=\"white-space:normal\" class=\"null\">def</b><span style=\"white-space:normal\" class=\"null\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preLine\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b><span class=\\"null\\" style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b><span style=\\"white-space:normal\\" class=\\"null\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:normal"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:normal"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:normal"><b>def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:normal"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:normal"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:normal"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:normal"><b>def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:normal"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:normal"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:normal"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:normal"><div>def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:normal"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:normal">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:normal">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:normal">def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
 [FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:normal">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:normal"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:normal"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:normal"><div>def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
 [FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:normal"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:normal">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:normal">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:normal">def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:normal">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:normal"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:normal"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:normal"><div>def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:normal"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre-line_right-white-space=pre-wrap-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre-line_right-white-space=pre-wrap-expected.txt
index 3dbefeb..b8fff5d9 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre-line_right-white-space=pre-wrap-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre-line_right-white-space=pre-wrap-expected.txt
@@ -1,156 +1,156 @@
 This is a testharness.js-based test.
 Found 76 tests; 0 PASS, 76 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap">def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:pre-wrap">def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:pre-wrap">def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap">def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div>"]
 [FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap">def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:pre-wrap">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:pre-wrap">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:pre-wrap">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:pre-wrap">def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:pre-wrap"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:pre-wrap"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span  class=\"preWrap\" style=\"white-space:pre-wrap\"><b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span  style=\"white-space:pre-wrap\" class=\"preWrap\"><b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span  class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span  style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span  class=\"preWrap\" style=\"white-space:pre-wrap\"><b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span  style=\"white-space:pre-wrap\" class=\"preWrap\"><b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:pre-wrap"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div class=\"preWrap\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>"]
-[FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span  class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span  style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>"]
+[FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:pre-wrap"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div class=\"preWrap\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>"]
 [FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:pre-wrap"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:pre-wrap"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:pre-wrap"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:pre-wrap"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:pre-wrap"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:pre-wrap"><div>def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:pre-wrap">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:pre-wrap">def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>"]
 [FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:pre-wrap"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>"]
-[FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:pre-wrap"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>"]
+[FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:pre-wrap"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:pre-wrap"><div>def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>"]
 [FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:pre-wrap">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:pre-wrap">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:pre-wrap">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:pre-wrap">def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:pre-wrap"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:pre-wrap"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div style="white-space:pre-wrap"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\n<div style="white-space:pre-wrap"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div>\\n<div style="white-space:pre-wrap"><div>def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-line">abc[]</div><div class="preWrap"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div class="preLine">abc[]</div><div style="white-space:pre-wrap"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre-wrap_right-white-space=normal-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre-wrap_right-white-space=normal-expected.txt
index 00e2baa..9ddfb481 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre-wrap_right-white-space=normal-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre-wrap_right-white-space=normal-expected.txt
@@ -1,69 +1,69 @@
 This is a testharness.js-based test.
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:normal">def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:normal">def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:normal">def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:normal">def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:normal\">def</span></div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\">def</span></div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:normal">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:normal">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:normal">def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:normal">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:normal"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:normal"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:normal"><b>def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:normal"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  class=\"null\" style=\"white-space:normal\"><b class=\"null\" style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  style=\"white-space:normal\" class=\"null\"><b style=\"white-space:normal\" class=\"null\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  class=\\"null\\" style=\\"white-space:normal\\"><b class=\\"null\\" style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  style=\\"white-space:normal\\" class=\\"null\\"><b style=\\"white-space:normal\\" class=\\"null\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:normal"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:normal"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:normal"><b>def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:normal"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preWrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b><span class=\"null\" style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preWrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b><span style=\"white-space:normal\" class=\"null\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preWrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b><span class=\\"null\\" style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b><span style=\\"white-space:normal\\" class=\\"null\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:normal"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:normal"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:normal"><b>def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:normal"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:normal"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:normal"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:normal"><b>def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:normal"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:normal"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:normal"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:normal"><div>def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:normal"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:normal">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:normal">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:normal">def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:normal">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:normal"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:normal"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:normal"><div>def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:normal"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:normal">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:normal">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:normal">def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:normal">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:normal"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:normal"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:normal"><div>def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:normal"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre-wrap_right-white-space=pre-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre-wrap_right-white-space=pre-expected.txt
index 4978049c..40fc953b 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre-wrap_right-white-space=pre-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre-wrap_right-white-space=pre-expected.txt
@@ -1,156 +1,156 @@
 This is a testharness.js-based test.
 Found 76 tests; 0 PASS, 76 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre">def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre">def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre">def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre">def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre">def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi</div>"]
-[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre">def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre"><b>def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  class=\"pre\" style=\"white-space:pre\"><b class=\"pre\" style=\"white-space:pre\">def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre\" class=\"pre\"><b style=\"white-space:pre\" class=\"pre\">def</b></span></div><div class=\"pre\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  class=\\"pre\\" style=\\"white-space:pre\\"><b class=\\"pre\\" style=\\"white-space:pre\\">def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre\\" class=\\"pre\\"><b style=\\"white-space:pre\\" class=\\"pre\\">def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  class=\"pre\" style=\"white-space:pre\"><b class=\"pre\" style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  style=\"white-space:pre\" class=\"pre\"><b style=\"white-space:pre\" class=\"pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div class=\"pre\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>"]
-[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  class=\\"pre\\" style=\\"white-space:pre\\"><b class=\\"pre\\" style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  style=\\"white-space:pre\\" class=\\"pre\\"><b style=\\"white-space:pre\\" class=\\"pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div class=\\"pre\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>"]
+[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre"><b>def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div class=\"pre\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div class=\\"pre\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
-[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre"><b>def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
-[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre"><b>def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre"><div>def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre">def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div></div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi\njkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi\njkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi\njkl</div>"]
-[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>"]
+[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre"><div>def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi<br>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi<br>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre">def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre"><div>def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="pre"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre-wrap_right-white-space=pre-line-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre-wrap_right-white-space=pre-line-expected.txt
index 26cdec8..01885e82 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre-wrap_right-white-space=pre-line-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre-wrap_right-white-space=pre-line-expected.txt
@@ -1,156 +1,156 @@
 This is a testharness.js-based test.
 Found 76 tests; 0 PASS, 76 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line">def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre-line">def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre-line">def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine">def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line">def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre-line">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi</div>"]
-[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre-line">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi</div>"]
+[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre-line">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre-line">def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre-line"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre-line"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre-line\"><b style=\"white-space:pre-line\">def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre-line"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre-line\"><b style=\"white-space:pre-line\">def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre-line\\"><b style=\\"white-space:pre-line\\">def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre-line"><b>def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre-line\\"><b style=\\"white-space:pre-line\\">def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre-line\"><b style=\"white-space:pre-line\">def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  class=\"preLine\" style=\"white-space:pre-line\"><b class=\"preLine\" style=\"white-space:pre-line\">def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre-line\" class=\"preLine\"><b style=\"white-space:pre-line\" class=\"preLine\">def</b></span></div><div class=\"preLine\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre-line\\"><b style=\\"white-space:pre-line\\">def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  class=\\"preLine\\" style=\\"white-space:pre-line\\"><b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre-line\\" class=\\"preLine\\"><b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  style=\"white-space:pre-line\"><b style=\"white-space:pre-line\">def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  class=\"preLine\" style=\"white-space:pre-line\"><b class=\"preLine\" style=\"white-space:pre-line\">def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  style=\"white-space:pre-line\" class=\"preLine\"><b style=\"white-space:pre-line\" class=\"preLine\">def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre-line"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div class=\"preLine\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b><span class=\"preLine\" style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b><span style=\"white-space:pre-line\" class=\"preLine\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>"]
-[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b><span class=\"preLine\" style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b><span style=\"white-space:pre-line\" class=\"preLine\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  style=\\"white-space:pre-line\\"><b style=\\"white-space:pre-line\\">def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  class=\\"preLine\\" style=\\"white-space:pre-line\\"><b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  style=\\"white-space:pre-line\\" class=\\"preLine\\"><b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre-line"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div class=\\"preLine\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b><span class=\\"preLine\\" style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b><span style=\\"white-space:pre-line\\" class=\\"preLine\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>"]
+[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b><span class=\\"preLine\\" style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b><span style=\\"white-space:pre-line\\" class=\\"preLine\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre-line"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre-line"><b>def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div class=\"preLine\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b><span class=\"preLine\" style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b><span style=\"white-space:pre-line\" class=\"preLine\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div class=\\"preLine\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b><span class=\\"preLine\\" style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b><span style=\\"white-space:pre-line\\" class=\\"preLine\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b><span class=\"preLine\" style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b><span style=\"white-space:pre-line\" class=\"preLine\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre-line"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
-[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b><span class=\\"preLine\\" style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b><span style=\\"white-space:pre-line\\" class=\\"preLine\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre-line"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
+[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre-line"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre-line"><b>def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre-line"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
-[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre-line"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
+[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre-line"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre-line"><b>def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre-line"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre-line"><div>def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre-line">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre-line">def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div></div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre-line"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi\njkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi\njkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi\njkl</div>"]
-[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre-line"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>"]
+[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre-line"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre-line"><div>def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre-line">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre-line">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre-line">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre-line">def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre-line"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre-line"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div style="white-space:pre-line"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\n<div style="white-space:pre-line"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div>\\n<div style="white-space:pre-line"><div>def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre-wrap">abc[]</div><div class="preLine"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div class="preWrap">abc[]</div><div style="white-space:pre-line"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre_right-white-space=nowrap-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre_right-white-space=nowrap-expected.txt
index ae9059c..f3e8d86 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre_right-white-space=nowrap-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre_right-white-space=nowrap-expected.txt
@@ -1,91 +1,91 @@
 This is a testharness.js-based test.
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:nowrap">def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:nowrap">def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:nowrap">def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="nowrap">def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div>"]
 [FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:nowrap">def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:nowrap\">def</span></div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:nowrap">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:nowrap">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:nowrap">def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="nowrap">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:nowrap">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:nowrap"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:nowrap\"><b style=\"white-space:nowrap\">def</b></span></div><div style=\"white-space:nowrap\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:nowrap"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:nowrap\"><b style=\"white-space:nowrap\">def</b></span></div><div style=\"white-space:nowrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:nowrap\\"><b style=\\"white-space:nowrap\\">def</b></span></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:nowrap"><b>def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:nowrap\\"><b style=\\"white-space:nowrap\\">def</b></span></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="nowrap"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:nowrap\"><b style=\"white-space:nowrap\">def</b></span></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  class=\"nowrap\" style=\"white-space:nowrap\"><b class=\"nowrap\" style=\"white-space:nowrap\">def</b></span></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:nowrap\" class=\"nowrap\"><b style=\"white-space:nowrap\" class=\"nowrap\">def</b></span></div><div class=\"nowrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:nowrap\\"><b style=\\"white-space:nowrap\\">def</b></span></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></span></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></span></div><div class=\\"nowrap\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:nowrap"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span  style=\"white-space:nowrap\"><b style=\"white-space:nowrap\">def</b></span></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span  class=\"nowrap\" style=\"white-space:nowrap\"><b class=\"nowrap\" style=\"white-space:nowrap\">def</b></span></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span  style=\"white-space:nowrap\" class=\"nowrap\"><b style=\"white-space:nowrap\" class=\"nowrap\">def</b></span></div><div style=\"white-space:nowrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span  style=\\"white-space:nowrap\\"><b style=\\"white-space:nowrap\\">def</b></span></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span  class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></span></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span  style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></span></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:nowrap"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b><span style=\"white-space:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div style=\"white-space:nowrap\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:nowrap"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b><span style=\"white-space:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div style=\"white-space:nowrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b><span style=\\"white-space:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:nowrap"><b>def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b><span style=\\"white-space:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="nowrap"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div class=\"nowrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b><span style=\"white-space:nowrap\">ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b><span class=\"nowrap\" style=\"white-space:nowrap\">ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b><span style=\"white-space:nowrap\" class=\"nowrap\">ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b>ghi</span></div><div class=\"nowrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b><span style=\\"white-space:nowrap\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b><span class=\\"nowrap\\" style=\\"white-space:nowrap\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b><span style=\\"white-space:nowrap\\" class=\\"nowrap\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b>ghi</span></div><div class=\\"nowrap\\">jkl</div>"]
 [FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:nowrap"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:nowrap\">def</b><span style=\"white-space:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div class=\"pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b><span class=\"nowrap\" style=\"white-space:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div class=\"pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b><span style=\"white-space:nowrap\" class=\"nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b>ghi</span></div><div style=\"white-space:nowrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\">def</b><span style=\\"white-space:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div class=\\"pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b><span class=\\"nowrap\\" style=\\"white-space:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b><span style=\\"white-space:nowrap\\" class=\\"nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:nowrap"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:nowrap"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:nowrap"><b>def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="nowrap"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:nowrap"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:nowrap"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:nowrap"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:nowrap"><b>def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="nowrap"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:nowrap"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:nowrap"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:nowrap"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:nowrap"><div>def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="nowrap"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:nowrap"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:nowrap">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:nowrap">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:nowrap">def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="nowrap">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>"]
 [FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:nowrap">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:nowrap"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:nowrap"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:nowrap"><div>def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="nowrap"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>"]
 [FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:nowrap"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:nowrap">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:nowrap">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:nowrap">def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="nowrap">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:nowrap">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:nowrap"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:nowrap"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:nowrap"><div>def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="nowrap"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:nowrap"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre_right-white-space=pre-wrap-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre_right-white-space=pre-wrap-expected.txt
index 8e02825..d61d969 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre_right-white-space=pre-wrap-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=forwarddelete_left-white-space=pre_right-white-space=pre-wrap-expected.txt
@@ -1,156 +1,156 @@
 This is a testharness.js-based test.
 Found 76 tests; 0 PASS, 76 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap">def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:pre-wrap">def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:pre-wrap">def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap">def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div>"]
 [FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap">def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:pre-wrap">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap">def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:pre-wrap">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap">def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:pre-wrap">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:pre-wrap">def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap">def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:pre-wrap"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap"><b>def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap"><b>def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:pre-wrap"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  class=\"preWrap\" style=\"white-space:pre-wrap\"><b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:pre-wrap\" class=\"preWrap\"><b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>"]
 [FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap"><b>def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span  class=\"preWrap\" style=\"white-space:pre-wrap\"><b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span  style=\"white-space:pre-wrap\" class=\"preWrap\"><b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:pre-wrap"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>"]
-[FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap"><b>def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span  class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span  style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>"]
+[FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap"><b>def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:pre-wrap"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>"]
 [FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap"><b>def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:pre-wrap"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap"><b>def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap"><b>def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:pre-wrap"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap"><b>def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:pre-wrap"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap"><b>def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap"><b>def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:pre-wrap"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:pre-wrap"><b>def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap"><b>def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:pre-wrap"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:pre-wrap"><div>def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap"><div>def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:pre-wrap">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:pre-wrap">def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>"]
 [FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap">def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:pre-wrap"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>"]
-[FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap"><div>def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:pre-wrap"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>"]
+[FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap"><div>def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:pre-wrap"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:pre-wrap"><div>def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>"]
 [FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap"><div>def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:pre-wrap">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap">def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:pre-wrap">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap">def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:pre-wrap">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:pre-wrap">def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap">def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:pre-wrap"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap"><div>def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:pre-wrap"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap"><div>def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div style="white-space:pre-wrap"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\n<div style="white-space:pre-wrap"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] forwarddelete at <div style="white-space:pre">abc[]</div>\\n<div style="white-space:pre-wrap"><div>def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div style="white-space:pre">abc[]</div><div class="preWrap"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] forwarddelete at <div class="pre">abc[]</div><div style="white-space:pre-wrap"><div>def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=normal_right-white-space=nowrap-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=normal_right-white-space=nowrap-expected.txt
index c2702df..f29543d 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=normal_right-white-space=nowrap-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=normal_right-white-space=nowrap-expected.txt
@@ -1,69 +1,69 @@
 This is a testharness.js-based test.
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:nowrap">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:nowrap">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:nowrap">]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="nowrap">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:nowrap">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:nowrap">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:nowrap">]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="nowrap">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:nowrap"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:nowrap\"><b style=\"white-space:nowrap\">def</b></span></div><div style=\"white-space:nowrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:nowrap"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:nowrap\"><b style=\"white-space:nowrap\">def</b></span></div><div style=\"white-space:nowrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:nowrap\\"><b style=\\"white-space:nowrap\\">def</b></span></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:nowrap"><b>]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:nowrap\\"><b style=\\"white-space:nowrap\\">def</b></span></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="nowrap"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:nowrap\"><b style=\"white-space:nowrap\">def</b></span></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  class=\"nowrap\" style=\"white-space:nowrap\"><b class=\"nowrap\" style=\"white-space:nowrap\">def</b></span></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:nowrap\" class=\"nowrap\"><b style=\"white-space:nowrap\" class=\"nowrap\">def</b></span></div><div class=\"nowrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:nowrap\\"><b style=\\"white-space:nowrap\\">def</b></span></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></span></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></span></div><div class=\\"nowrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:nowrap"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b><span style=\"white-space:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div style=\"white-space:nowrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:nowrap"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b><span style=\"white-space:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div style=\"white-space:nowrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b><span style=\\"white-space:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:nowrap"><b>]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b><span style=\\"white-space:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="nowrap"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div class=\"nowrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b><span style=\"white-space:nowrap\">ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:normal\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b><span class=\"nowrap\" style=\"white-space:nowrap\">ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b><span style=\"white-space:nowrap\" class=\"nowrap\">ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b>ghi</span></div><div class=\"nowrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b><span style=\\"white-space:nowrap\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b><span class=\\"nowrap\\" style=\\"white-space:nowrap\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b><span style=\\"white-space:nowrap\\" class=\\"nowrap\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b>ghi</span></div><div class=\\"nowrap\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:nowrap"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:nowrap"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:nowrap"><b>]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="nowrap"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:nowrap"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:nowrap"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:nowrap"><b>]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="nowrap"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:nowrap"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:nowrap"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:nowrap"><div>]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="nowrap"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:nowrap">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:nowrap">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:nowrap">]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="nowrap">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:nowrap"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:nowrap"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:nowrap"><div>]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="nowrap"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:nowrap">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:nowrap">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:nowrap">]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="nowrap">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:nowrap"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:nowrap"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:nowrap"><div>]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="nowrap"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=normal_right-white-space=pre-line-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=normal_right-white-space=pre-line-expected.txt
index 2d0dc1de..e371bb0 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=normal_right-white-space=pre-line-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=normal_right-white-space=pre-line-expected.txt
@@ -1,118 +1,118 @@
 This is a testharness.js-based test.
 Found 57 tests; 0 PASS, 57 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-line">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-line">]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-line">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-line">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-line">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-line">]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-line"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-line"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-line\"><b style=\"white-space:pre-line\">def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-line"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-line\"><b style=\"white-space:pre-line\">def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-line\\"><b style=\\"white-space:pre-line\\">def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-line"><b>]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-line\\"><b style=\\"white-space:pre-line\\">def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-line\"><b style=\"white-space:pre-line\">def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  class=\"preLine\" style=\"white-space:pre-line\"><b class=\"preLine\" style=\"white-space:pre-line\">def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-line\" class=\"preLine\"><b style=\"white-space:pre-line\" class=\"preLine\">def</b></span></div><div class=\"preLine\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-line"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div class=\"preLine\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b><span class=\"preLine\" style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b><span style=\"white-space:pre-line\" class=\"preLine\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-line\\"><b style=\\"white-space:pre-line\\">def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  class=\\"preLine\\" style=\\"white-space:pre-line\\"><b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-line\\" class=\\"preLine\\"><b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-line"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div class=\\"preLine\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b><span class=\\"preLine\\" style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b><span style=\\"white-space:pre-line\\" class=\\"preLine\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-line"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-line"><b>]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div class=\"preLine\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b><span class=\"preLine\" style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b><span style=\"white-space:pre-line\" class=\"preLine\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-line"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div class=\\"preLine\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b><span class=\\"preLine\\" style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b><span style=\\"white-space:pre-line\\" class=\\"preLine\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-line"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-line"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-line"><b>]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-line"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-line"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-line"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-line"><b>]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-line"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-line"><div>]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-line">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-line">]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div></div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-line"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi\njkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi\njkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi\njkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi\njkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-line"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-line"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-line"><div>]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-line">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-line">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-line">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-line">]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-line"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-line"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-line"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-line"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-line"><div>]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="preLine"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=normal_right-white-space=pre-wrap-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=normal_right-white-space=pre-wrap-expected.txt
index fc4de2e3..0a1740f 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=normal_right-white-space=pre-wrap-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=normal_right-white-space=pre-wrap-expected.txt
@@ -1,118 +1,118 @@
 This is a testharness.js-based test.
 Found 57 tests; 0 PASS, 57 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-wrap">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-wrap">]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-wrap">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-wrap">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-wrap">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-wrap">]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-wrap"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-wrap"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  class=\"preWrap\" style=\"white-space:pre-wrap\"><b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:normal\">abc<span  style=\"white-space:pre-wrap\" class=\"preWrap\"><b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-wrap"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div class=\"preWrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:normal\\">abc<span  style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-wrap"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div class=\"preWrap\">jkl</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-wrap"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-wrap"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-wrap"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-wrap"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-wrap"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-wrap"><div>]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-wrap">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-wrap">]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-wrap"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-wrap"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-wrap"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-wrap"><div>]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-wrap">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-wrap">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-wrap">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-wrap">]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-wrap"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-wrap"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div style="white-space:pre-wrap"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:normal">abc[</div>\n<div style="white-space:pre-wrap"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:normal">abc[</div>\\n<div style="white-space:pre-wrap"><div>]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:normal">abc[</div><div class="preWrap"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:normal\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:normal\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:normal\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:normal\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=nowrap_right-white-space=normal-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=nowrap_right-white-space=normal-expected.txt
index 17aaf76..6eadd8d 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=nowrap_right-white-space=normal-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=nowrap_right-white-space=normal-expected.txt
@@ -1,69 +1,69 @@
 This is a testharness.js-based test.
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:normal">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:normal">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:normal">]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div>"]
 [FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:normal">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:normal\">def</span></div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:normal">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:normal">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:normal">]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:normal">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:normal"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:normal"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:normal"><b>]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
 [FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:normal"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span  class=\"null\" style=\"white-space:normal\"><b class=\"null\" style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span  style=\"white-space:normal\" class=\"null\"><b style=\"white-space:normal\" class=\"null\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span  class=\\"null\\" style=\\"white-space:normal\\"><b class=\\"null\\" style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span  style=\\"white-space:normal\\" class=\\"null\\"><b style=\\"white-space:normal\\" class=\\"null\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:normal"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:normal"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:normal"><b>]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
 [FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:normal"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"nowrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b><span class=\"null\" style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"nowrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b><span style=\"white-space:normal\" class=\"null\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"nowrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b><span class=\\"null\\" style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b><span style=\\"white-space:normal\\" class=\\"null\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:normal"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:normal"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:normal"><b>]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:normal"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:normal"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:normal"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:normal"><b>]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:normal"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:normal"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:normal"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:normal"><div>]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:normal"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:normal">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:normal">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:normal">]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
 [FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:normal">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:normal"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:normal"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:normal"><div>]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:normal"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:normal">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:normal">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:normal">]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:normal">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:normal"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:normal"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:normal"><div>]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:normal"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>", "<div class=\"nowrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=nowrap_right-white-space=pre-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=nowrap_right-white-space=pre-expected.txt
index 8faf65a7..7104aa7 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=nowrap_right-white-space=pre-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=nowrap_right-white-space=pre-expected.txt
@@ -1,156 +1,156 @@
 This is a testharness.js-based test.
 Found 76 tests; 0 PASS, 76 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:pre">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:pre">]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div>"]
 [FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:pre">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi</div>"]
-[FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:pre">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi</div>"]
+[FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:pre">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:pre">]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:pre"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\"><b>ghi</b></div>"]
-[FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:pre"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>"]
+[FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:pre"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:pre"><b>]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span  class=\"pre\" style=\"white-space:pre\"><b class=\"pre\" style=\"white-space:pre\">def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:nowrap\">abc<span  style=\"white-space:pre\" class=\"pre\"><b style=\"white-space:pre\" class=\"pre\">def</b></span></div><div class=\"pre\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span  class=\\"pre\\" style=\\"white-space:pre\\"><b class=\\"pre\\" style=\\"white-space:pre\\">def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:nowrap\\">abc<span  style=\\"white-space:pre\\" class=\\"pre\\"><b style=\\"white-space:pre\\" class=\\"pre\\">def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>"]
 [FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span  class=\"pre\" style=\"white-space:pre\"><b class=\"pre\" style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"nowrap\">abc<span  style=\"white-space:pre\" class=\"pre\"><b style=\"white-space:pre\" class=\"pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:pre"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div class=\"pre\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>"]
-[FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span  class=\\"pre\\" style=\\"white-space:pre\\"><b class=\\"pre\\" style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"nowrap\\">abc<span  style=\\"white-space:pre\\" class=\\"pre\\"><b style=\\"white-space:pre\\" class=\\"pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:pre"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div class=\\"pre\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>"]
+[FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:pre"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:pre"><b>]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div class=\"pre\">jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div class=\\"pre\\">jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>"]
 [FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:pre"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
-[FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:pre"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
+[FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:pre"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:pre"><b>]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:pre"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
-[FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:pre"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
+[FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:pre"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:pre"><b>]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"nowrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:pre"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:pre"><div>]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:pre">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:pre">]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\"><div>ghi</div></div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div></div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div></div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>"]
 [FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:pre"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\">ghi\njkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi\njkl</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi\njkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi\njkl</div>"]
-[FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:pre"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>"]
+[FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:pre"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:pre"><div>]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi<br>jkl</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi<br>jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:pre">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:pre">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:pre">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:pre">]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:pre"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:pre"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div style="white-space:pre"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:nowrap">abc[</div>\n<div style="white-space:pre"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:nowrap">abc[</div>\\n<div style="white-space:pre"><div>]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:nowrap">abc[</div><div class="pre"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div class="nowrap">abc[</div><div style="white-space:pre"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"nowrap\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div class=\"nowrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"nowrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"nowrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"nowrap\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"nowrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"nowrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre-line_right-white-space=normal-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre-line_right-white-space=normal-expected.txt
index e0c273b9..e93598c 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre-line_right-white-space=normal-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre-line_right-white-space=normal-expected.txt
@@ -1,69 +1,69 @@
 This is a testharness.js-based test.
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:normal">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:normal">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:normal">]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div>"]
 [FAIL] delete at <div class="preLine">abc[</div><div style="white-space:normal">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:normal\">def</span></div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\">def</span></div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:normal">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:normal">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:normal">]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="preLine">abc[</div><div style="white-space:normal">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:normal"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:normal"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:normal"><b>]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
 [FAIL] delete at <div class="preLine">abc[</div><div style="white-space:normal"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preLine\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span  class=\"null\" style=\"white-space:normal\"><b class=\"null\" style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preLine\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span  style=\"white-space:normal\" class=\"null\"><b style=\"white-space:normal\" class=\"null\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span  class=\\"null\\" style=\\"white-space:normal\\"><b class=\\"null\\" style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span  style=\\"white-space:normal\\" class=\\"null\\"><b style=\\"white-space:normal\\" class=\\"null\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:normal"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:normal"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:normal"><b>]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
 [FAIL] delete at <div class="preLine">abc[</div><div style="white-space:normal"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preLine\">abc<b class=\"null\" style=\"white-space:normal\">def</b><span class=\"null\" style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preLine\">abc<b style=\"white-space:normal\" class=\"null\">def</b><span style=\"white-space:normal\" class=\"null\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preLine\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b><span class=\\"null\\" style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b><span style=\\"white-space:normal\\" class=\\"null\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:normal"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:normal"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:normal"><b>]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="preLine">abc[</div><div style="white-space:normal"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:normal"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:normal"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:normal"><b>]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="preLine">abc[</div><div style="white-space:normal"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:normal"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:normal"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:normal"><div>]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="preLine">abc[</div><div style="white-space:normal"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:normal">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:normal">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:normal">]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
 [FAIL] delete at <div class="preLine">abc[</div><div style="white-space:normal">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:normal"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:normal"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:normal"><div>]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div class="preLine">abc[</div><div style="white-space:normal"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:normal">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:normal">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:normal">]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div class="preLine">abc[</div><div style="white-space:normal">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:normal"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:normal"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:normal"><div>]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div class="preLine">abc[</div><div style="white-space:normal"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>", "<div class=\"preLine\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre-line_right-white-space=pre-wrap-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre-line_right-white-space=pre-wrap-expected.txt
index 045af2b..d3d623e 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre-line_right-white-space=pre-wrap-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre-line_right-white-space=pre-wrap-expected.txt
@@ -1,156 +1,156 @@
 This is a testharness.js-based test.
 Found 76 tests; 0 PASS, 76 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:pre-wrap">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:pre-wrap">]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div>"]
 [FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:pre-wrap">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:pre-wrap">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:pre-wrap">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:pre-wrap">]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:pre-wrap"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:pre-wrap"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span  class=\"preWrap\" style=\"white-space:pre-wrap\"><b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre-line\">abc<span  style=\"white-space:pre-wrap\" class=\"preWrap\"><b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span  class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-line\\">abc<span  style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span  class=\"preWrap\" style=\"white-space:pre-wrap\"><b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"preLine\">abc<span  style=\"white-space:pre-wrap\" class=\"preWrap\"><b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:pre-wrap"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div class=\"preWrap\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>"]
-[FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span  class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"preLine\\">abc<span  style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>"]
+[FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:pre-wrap"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div class=\"preWrap\">jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>"]
 [FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b><span style=\"white-space-collapse:preserve\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:pre-wrap"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b><span style=\\"white-space-collapse:preserve\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:pre-wrap"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:pre-wrap"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:pre-wrap"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<b style=\"white-space-collapse:preserve\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<b style=\\"white-space-collapse:preserve\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:pre-wrap"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:pre-wrap"><div>]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:pre-wrap">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:pre-wrap">]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>"]
 [FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:pre-wrap"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>"]
-[FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:pre-wrap"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>"]
+[FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:pre-wrap"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:pre-wrap"><div>]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:pre-wrap">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:pre-wrap">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:pre-wrap">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:pre-wrap">]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:pre-wrap"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:pre-wrap"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div style="white-space:pre-wrap"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-line">abc[</div>\n<div style="white-space:pre-wrap"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-line">abc[</div>\\n<div style="white-space:pre-wrap"><div>]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-line">abc[</div><div class="preWrap"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-line\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-line\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-line\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-line\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div class="preLine">abc[</div><div style="white-space:pre-wrap"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preLine\">abc<span style=\"white-space-collapse:preserve\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"preLine\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"preLine\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preLine\\">abc<span style=\\"white-space-collapse:preserve\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"preLine\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"preLine\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre-wrap_right-white-space=normal-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre-wrap_right-white-space=normal-expected.txt
index f8f90f60..9e10704 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre-wrap_right-white-space=normal-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre-wrap_right-white-space=normal-expected.txt
@@ -1,69 +1,69 @@
 This is a testharness.js-based test.
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:normal">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:normal">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:normal">]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:normal">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:normal\">def</span></div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\">def</span></div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:normal">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:normal">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:normal">]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:normal">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:normal"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:normal"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:normal"><b>]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:normal"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  style=\"white-space:normal\"><b style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  class=\"null\" style=\"white-space:normal\"><b class=\"null\" style=\"white-space:normal\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  style=\"white-space:normal\" class=\"null\"><b style=\"white-space:normal\" class=\"null\">def</b></span></div><div style=\"white-space:normal\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  style=\\"white-space:normal\\"><b style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  class=\\"null\\" style=\\"white-space:normal\\"><b class=\\"null\\" style=\\"white-space:normal\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  style=\\"white-space:normal\\" class=\\"null\\"><b style=\\"white-space:normal\\" class=\\"null\\">def</b></span></div><div style=\\"white-space:normal\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:normal"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:normal"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:normal"><b>]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:normal"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:normal\">jkl</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:normal\">def</b><span style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preWrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b><span class=\"null\" style=\"white-space:normal\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preWrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b><span style=\"white-space:normal\" class=\"null\">ghi</span></div><div style=\"white-space:normal\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b>ghi</span></div><div style=\"white-space:normal\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\">def</b><span style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preWrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b><span class=\\"null\\" style=\\"white-space:normal\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b><span style=\\"white-space:normal\\" class=\\"null\\">ghi</span></div><div style=\\"white-space:normal\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b>ghi</span></div><div style=\\"white-space:normal\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:normal"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:normal"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:normal"><b>]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:normal"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:normal"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:normal"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:normal"><b>]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:normal"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"null\" style=\"white-space:normal\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:normal\" class=\"null\">def</b></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\"><b>def</b></span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"null\\" style=\\"white-space:normal\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:normal\\" class=\\"null\\">def</b></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\"><b>def</b></span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:normal"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:normal"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:normal"><div>]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:normal"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:normal">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:normal">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:normal">]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:normal">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:normal"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:normal"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:normal"><div>]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:normal"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:normal">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:normal">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:normal">]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:normal">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:normal"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:normal"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:normal"><div>]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:normal"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span class=\"null\" style=\"white-space:normal\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:normal\" class=\"null\">def</span></div><div style=\"white-space:normal\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"null\\" style=\\"white-space:normal\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:normal\\" class=\\"null\\">def</span></div><div style=\\"white-space:normal\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre-wrap_right-white-space=pre-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre-wrap_right-white-space=pre-expected.txt
index ed14c3e..4c2025a8 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre-wrap_right-white-space=pre-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre-wrap_right-white-space=pre-expected.txt
@@ -1,156 +1,156 @@
 This is a testharness.js-based test.
 Found 76 tests; 0 PASS, 76 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre">]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi</div>"]
-[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi</div>"]
+[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre">]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\"><b>ghi</b></div>"]
-[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>"]
+[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre"><b>]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"pre\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  class=\"pre\" style=\"white-space:pre\"><b class=\"pre\" style=\"white-space:pre\">def</b></span></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre\" class=\"pre\"><b style=\"white-space:pre\" class=\"pre\">def</b></span></div><div class=\"pre\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  class=\\"pre\\" style=\\"white-space:pre\\"><b class=\\"pre\\" style=\\"white-space:pre\\">def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre\\" class=\\"pre\\"><b style=\\"white-space:pre\\" class=\\"pre\\">def</b></span></div><div class=\\"pre\\"><b>ghi</b></div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  style=\"white-space:pre\"><b style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  class=\"pre\" style=\"white-space:pre\"><b class=\"pre\" style=\"white-space:pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  style=\"white-space:pre\" class=\"pre\"><b style=\"white-space:pre\" class=\"pre\">def</b></span></div><div style=\"white-space:pre\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div class=\"pre\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>"]
-[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  style=\\"white-space:pre\\"><b style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  class=\\"pre\\" style=\\"white-space:pre\\"><b class=\\"pre\\" style=\\"white-space:pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  style=\\"white-space:pre\\" class=\\"pre\\"><b style=\\"white-space:pre\\" class=\\"pre\\">def</b></span></div><div style=\\"white-space:pre\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div class=\\"pre\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>"]
+[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre"><b>]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div class=\"pre\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div class=\"pre\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div class=\"pre\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div class=\\"pre\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div class=\\"pre\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div class=\\"pre\\">jkl</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b><span style=\"text-wrap:nowrap\">ghi</span></div><div style=\"white-space:pre\">jkl</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b><span style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b><span class=\"pre\" style=\"white-space:pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b><span style=\"white-space:pre\" class=\"pre\">ghi</span></div><div style=\"white-space:pre\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b>ghi</span></div><div style=\"white-space:pre\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
-[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b><span style=\\"text-wrap:nowrap\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b><span style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b><span class=\\"pre\\" style=\\"white-space:pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b><span style=\\"white-space:pre\\" class=\\"pre\\">ghi</span></div><div style=\\"white-space:pre\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
+[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre"><b>]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
-[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
+[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre"><b>]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"text-wrap:nowrap\">def</b></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"pre\" style=\"white-space:pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre\" class=\"pre\">def</b></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\"><b>def</b></span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"text-wrap:nowrap\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"pre\\" style=\\"white-space:pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre\\" class=\\"pre\\">def</b></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\"><b>def</b></span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre"><div>]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre">]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div></div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div></div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi\njkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi\njkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi\njkl</div>"]
-[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi\njkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi\\njkl</div>"]
+[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi\\njkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre"><div>]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi<br>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\">ghi<br>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl\nmno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl\\nmno</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre">]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre"><div>]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="pre"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div class=\"pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div class=\\"pre\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"text-wrap:nowrap\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span class=\"pre\" style=\"white-space:pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre\" class=\"pre\">def</span></div><div style=\"white-space:pre\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"text-wrap:nowrap\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"pre\\" style=\\"white-space:pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre\\" class=\\"pre\\">def</span></div><div style=\\"white-space:pre\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre-wrap_right-white-space=pre-line-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre-wrap_right-white-space=pre-line-expected.txt
index e4c02e1..2d410bdc 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre-wrap_right-white-space=pre-line-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre-wrap_right-white-space=pre-line-expected.txt
@@ -1,156 +1,156 @@
 This is a testharness.js-based test.
 Found 76 tests; 0 PASS, 76 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre-line">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre-line">]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre-line">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi</div>"]
-[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre-line">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi</div>"]
+[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre-line">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre-line">]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre-line"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\"><b>ghi</b></div>"]
-[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre-line"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>"]
+[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre-line\"><b style=\"white-space:pre-line\">def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre-line"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre-line\"><b style=\"white-space:pre-line\">def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre-line\\"><b style=\\"white-space:pre-line\\">def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre-line"><b>]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre-line\\"><b style=\\"white-space:pre-line\\">def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre-line\"><b style=\"white-space:pre-line\">def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  class=\"preLine\" style=\"white-space:pre-line\"><b class=\"preLine\" style=\"white-space:pre-line\">def</b></span></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\"><b>ghi</b></div>", "<div style=\"white-space:pre-wrap\">abc<span  style=\"white-space:pre-line\" class=\"preLine\"><b style=\"white-space:pre-line\" class=\"preLine\">def</b></span></div><div class=\"preLine\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre-line\\"><b style=\\"white-space:pre-line\\">def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  class=\\"preLine\\" style=\\"white-space:pre-line\\"><b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\"><b>ghi</b></div>", "<div style=\\"white-space:pre-wrap\\">abc<span  style=\\"white-space:pre-line\\" class=\\"preLine\\"><b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></span></div><div class=\\"preLine\\"><b>ghi</b></div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  style=\"white-space:pre-line\"><b style=\"white-space:pre-line\">def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  class=\"preLine\" style=\"white-space:pre-line\"><b class=\"preLine\" style=\"white-space:pre-line\">def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div style=\"white-space:pre-line\"><b>ghi</b></div>", "<div class=\"preWrap\">abc<span  style=\"white-space:pre-line\" class=\"preLine\"><b style=\"white-space:pre-line\" class=\"preLine\">def</b></span></div><div style=\"white-space:pre-line\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre-line"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div class=\"preLine\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b><span class=\"preLine\" style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b><span style=\"white-space:pre-line\" class=\"preLine\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>"]
-[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b><span class=\"preLine\" style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b><span style=\"white-space:pre-line\" class=\"preLine\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  style=\\"white-space:pre-line\\"><b style=\\"white-space:pre-line\\">def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  class=\\"preLine\\" style=\\"white-space:pre-line\\"><b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>", "<div class=\\"preWrap\\">abc<span  style=\\"white-space:pre-line\\" class=\\"preLine\\"><b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></span></div><div style=\\"white-space:pre-line\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre-line"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div class=\\"preLine\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b><span class=\\"preLine\\" style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b><span style=\\"white-space:pre-line\\" class=\\"preLine\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>"]
+[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b><span class=\\"preLine\\" style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b><span style=\\"white-space:pre-line\\" class=\\"preLine\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre-line"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre-line"><b>]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div class=\"preLine\">jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b><span class=\"preLine\" style=\"white-space:pre-line\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b><span style=\"white-space:pre-line\" class=\"preLine\">ghi</span></div><div class=\"preLine\">jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b>ghi</span></div><div class=\"preLine\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div class=\\"preLine\\">jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b><span class=\\"preLine\\" style=\\"white-space:pre-line\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b><span style=\\"white-space:pre-line\\" class=\\"preLine\\">ghi</span></div><div class=\\"preLine\\">jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b>ghi</span></div><div class=\\"preLine\\">jkl</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b><span style=\"white-space-collapse:preserve-breaks\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b><span style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b><span class=\"preLine\" style=\"white-space:pre-line\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b><span style=\"white-space:pre-line\" class=\"preLine\">ghi</span></div><div style=\"white-space:pre-line\">jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b>ghi</span></div><div style=\"white-space:pre-line\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre-line"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
-[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b><span style=\\"white-space-collapse:preserve-breaks\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b><span style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b><span class=\\"preLine\\" style=\\"white-space:pre-line\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b><span style=\\"white-space:pre-line\\" class=\\"preLine\\">ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-line\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre-line"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
+[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre-line"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre-line"><b>]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre-line"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
-[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre-line"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
+[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre-line"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre-line"><b>]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<b style=\"white-space-collapse:preserve-breaks\">def</b></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div class=\"preWrap\">abc<b style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b class=\"preLine\" style=\"white-space:pre-line\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<b style=\"white-space:pre-line\" class=\"preLine\">def</b></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\"><b>def</b></span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<b style=\\"white-space-collapse:preserve-breaks\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b class=\\"preLine\\" style=\\"white-space:pre-line\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<b style=\\"white-space:pre-line\\" class=\\"preLine\\">def</b></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\"><b>def</b></span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre-line"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre-line"><div>]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre-line">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre-line">]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div></div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div></div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div></div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre-line"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi\njkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi\njkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi\njkl</div>"]
-[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\">ghi\njkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre-line"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi\\njkl</div>"]
+[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\">ghi\\njkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre-line"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre-line"><div>]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre-line">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl\nmno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre-line">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl\\nmno</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre-line">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre-line">]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre-line"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre-line"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div style="white-space:pre-line"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\n<div style="white-space:pre-line"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre-wrap">abc[</div>\\n<div style="white-space:pre-line"><div>]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre-wrap">abc[</div><div class="preLine"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre-wrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div class=\"preLine\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre-wrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div class=\\"preLine\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div class="preWrap">abc[</div><div style="white-space:pre-line"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"preWrap\">abc<span style=\"white-space-collapse:preserve-breaks\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>" not in array ["<div class=\"preWrap\">abc<span style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span class=\"preLine\" style=\"white-space:pre-line\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>", "<div class=\"preWrap\">abc<span style=\"white-space:pre-line\" class=\"preLine\">def</span></div><div style=\"white-space:pre-line\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"preWrap\\">abc<span style=\\"white-space-collapse:preserve-breaks\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span class=\\"preLine\\" style=\\"white-space:pre-line\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>", "<div class=\\"preWrap\\">abc<span style=\\"white-space:pre-line\\" class=\\"preLine\\">def</span></div><div style=\\"white-space:pre-line\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre_right-white-space=nowrap-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre_right-white-space=nowrap-expected.txt
index c201dda5..131bc3c3 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre_right-white-space=nowrap-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre_right-white-space=nowrap-expected.txt
@@ -1,91 +1,91 @@
 This is a testharness.js-based test.
 [FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:nowrap">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:nowrap">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:nowrap">]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div class="nowrap">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div>"]
 [FAIL] delete at <div class="pre">abc[</div><div style="white-space:nowrap">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:nowrap\">def</span></div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:nowrap">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:nowrap">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:nowrap">]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div class="nowrap">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] delete at <div class="pre">abc[</div><div style="white-space:nowrap">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:nowrap"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:nowrap\"><b style=\"white-space:nowrap\">def</b></span></div><div style=\"white-space:nowrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:nowrap"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:nowrap\"><b style=\"white-space:nowrap\">def</b></span></div><div style=\"white-space:nowrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:nowrap\\"><b style=\\"white-space:nowrap\\">def</b></span></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:nowrap"><b>]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:nowrap\\"><b style=\\"white-space:nowrap\\">def</b></span></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div class="nowrap"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:nowrap\"><b style=\"white-space:nowrap\">def</b></span></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  class=\"nowrap\" style=\"white-space:nowrap\"><b class=\"nowrap\" style=\"white-space:nowrap\">def</b></span></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div class=\"nowrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:nowrap\" class=\"nowrap\"><b style=\"white-space:nowrap\" class=\"nowrap\">def</b></span></div><div class=\"nowrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:nowrap\\"><b style=\\"white-space:nowrap\\">def</b></span></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></span></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div class=\\"nowrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></span></div><div class=\\"nowrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div class="pre">abc[</div><div style="white-space:nowrap"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span  style=\"white-space:nowrap\"><b style=\"white-space:nowrap\">def</b></span></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span  class=\"nowrap\" style=\"white-space:nowrap\"><b class=\"nowrap\" style=\"white-space:nowrap\">def</b></span></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div style=\"white-space:nowrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span  style=\"white-space:nowrap\" class=\"nowrap\"><b style=\"white-space:nowrap\" class=\"nowrap\">def</b></span></div><div style=\"white-space:nowrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span  style=\\"white-space:nowrap\\"><b style=\\"white-space:nowrap\\">def</b></span></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span  class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></span></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span  style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></span></div><div style=\\"white-space:nowrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:nowrap"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b><span style=\"white-space:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div style=\"white-space:nowrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:nowrap"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b><span style=\"white-space:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div style=\"white-space:nowrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b><span style=\\"white-space:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:nowrap"><b>]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b><span style=\\"white-space:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div class="nowrap"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div class=\"nowrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b><span style=\"white-space:nowrap\">ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b><span class=\"nowrap\" style=\"white-space:nowrap\">ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b><span style=\"white-space:nowrap\" class=\"nowrap\">ghi</span></div><div class=\"nowrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b>ghi</span></div><div class=\"nowrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b><span style=\\"white-space:nowrap\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b><span class=\\"nowrap\\" style=\\"white-space:nowrap\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b><span style=\\"white-space:nowrap\\" class=\\"nowrap\\">ghi</span></div><div class=\\"nowrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b>ghi</span></div><div class=\\"nowrap\\">jkl</div>"]
 [FAIL] delete at <div class="pre">abc[</div><div style="white-space:nowrap"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"white-space-collapse:collapse\">def</b><span style=\"white-space-collapse:collapse\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:nowrap\">def</b><span style=\"white-space:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div class=\"pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b><span class=\"nowrap\" style=\"white-space:nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b>ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div class=\"pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b><span style=\"white-space:nowrap\" class=\"nowrap\">ghi</span></div><div style=\"white-space:nowrap\">jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b>ghi</span></div><div style=\"white-space:nowrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b><span style=\\"white-space-collapse:collapse\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\">def</b><span style=\\"white-space:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div class=\\"pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b><span class=\\"nowrap\\" style=\\"white-space:nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b><span style=\\"white-space:nowrap\\" class=\\"nowrap\\">ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:nowrap\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:nowrap"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:nowrap"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:nowrap"><b>]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div class="nowrap"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] delete at <div class="pre">abc[</div><div style="white-space:nowrap"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:nowrap"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:nowrap"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:nowrap"><b>]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div class="nowrap"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b></span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b></span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] delete at <div class="pre">abc[</div><div style="white-space:nowrap"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"white-space-collapse:collapse\">def</b></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<b class=\"nowrap\" style=\"white-space:nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<b style=\"white-space:nowrap\" class=\"nowrap\">def</b></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\"><b>def</b></span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"white-space-collapse:collapse\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<b class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</b></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\"><b>def</b></span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:nowrap"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:nowrap"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:nowrap"><div>]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div class="nowrap"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div class=\"nowrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div class=\\"nowrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\">ghi</div>"]
 [FAIL] delete at <div class="pre">abc[</div><div style="white-space:nowrap"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:nowrap">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:nowrap">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:nowrap">]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div class="nowrap">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div></div>"]
 [FAIL] delete at <div class="pre">abc[</div><div style="white-space:nowrap">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:nowrap"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:nowrap"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:nowrap"><div>]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div class="nowrap"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div class="pre">abc[</div><div style="white-space:nowrap"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div style=\"white-space:nowrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div style=\\"white-space:nowrap\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:nowrap">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:nowrap">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:nowrap">]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div class="nowrap">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div class="pre">abc[</div><div style="white-space:nowrap">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:nowrap"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:nowrap"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:nowrap"><div>]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div class="nowrap"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div class=\"nowrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div class=\\"nowrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div class="pre">abc[</div><div style="white-space:nowrap"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"white-space-collapse:collapse\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>", "<div class=\"pre\">abc<span class=\"nowrap\" style=\"white-space:nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:nowrap\" class=\"nowrap\">def</span></div><div style=\"white-space:nowrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"white-space-collapse:collapse\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>", "<div class=\\"pre\\">abc<span class=\\"nowrap\\" style=\\"white-space:nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:nowrap\\" class=\\"nowrap\\">def</span></div><div style=\\"white-space:nowrap\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre_right-white-space=pre-wrap-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre_right-white-space=pre-wrap-expected.txt
index a2f0a34..9d01112 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre_right-white-space=pre-wrap-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/join-different-white-space-style-paragraphs_method=select-boundary_left-white-space=pre_right-white-space=pre-wrap-expected.txt
@@ -1,156 +1,156 @@
 This is a testharness.js-based test.
 Found 76 tests; 0 PASS, 76 FAIL, 0 TIMEOUT, 0 NOTRUN.
 [FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:pre-wrap">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:pre-wrap">]def</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div>"]
 [FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap">]def</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:pre-wrap">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap">]def\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:pre-wrap">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap">]def\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:pre-wrap">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:pre-wrap">]def<br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap">]def<br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:pre-wrap"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap"><b>]def\nghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap"><b>]def\\nghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:pre-wrap"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def<br>ghi</b></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  class=\"preWrap\" style=\"white-space:pre-wrap\"><b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\"><b>ghi</b></div>", "<div style=\"white-space:pre\">abc<span  style=\"white-space:pre-wrap\" class=\"preWrap\"><b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></span></div><div class=\"preWrap\"><b>ghi</b></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\"><b>ghi</b></div>", "<div style=\\"white-space:pre\\">abc<span  style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></span></div><div class=\\"preWrap\\"><b>ghi</b></div>"]
 [FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap"><b>]def<br>ghi</b></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span  style=\"white-space:pre-wrap\"><b style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span  class=\"preWrap\" style=\"white-space:pre-wrap\"><b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>", "<div class=\"pre\">abc<span  style=\"white-space:pre-wrap\" class=\"preWrap\"><b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></span></div><div style=\"white-space:pre-wrap\"><b>ghi</b></div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:pre-wrap"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>"]
-[FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap"><b>]def</b>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span  style=\\"white-space:pre-wrap\\"><b style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span  class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>", "<div class=\\"pre\\">abc<span  style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></span></div><div style=\\"white-space:pre-wrap\\"><b>ghi</b></div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>"]
+[FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap"><b>]def</b>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:pre-wrap"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def</b>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div class=\"preWrap\">jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div class=\"preWrap\">jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div class=\\"preWrap\\">jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div class=\\"preWrap\\">jkl</div>"]
 [FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap"><b>]def</b>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b><span style=\"text-wrap:wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b><span style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b><span class=\"preWrap\" style=\"white-space:pre-wrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b><span style=\"white-space:pre-wrap\" class=\"preWrap\">ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b>ghi</span></div><div style=\"white-space:pre-wrap\">jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:pre-wrap"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap"><b>]def</b>\nghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b><span style=\\"text-wrap:wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b><span style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b><span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b><span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b>ghi</span></div><div style=\\"white-space:pre-wrap\\">jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap"><b>]def</b>\\nghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:pre-wrap"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def</b><br>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap"><b>]def</b><br>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:pre-wrap"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
-[FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap"><b>]def\n</b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
+[FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap"><b>]def\\n</b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:pre-wrap"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:pre-wrap"><b>]def<br></b>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap"><b>]def<br></b>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<b style=\"text-wrap:wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"pre\">abc<b style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b class=\"preWrap\" style=\"white-space:pre-wrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<b style=\"white-space:pre-wrap\" class=\"preWrap\">def</b></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\"><b>def</b></span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<b style=\\"text-wrap:wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<b style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</b></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\"><b>def</b></span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:pre-wrap"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:pre-wrap"><div>]def</div>ghi</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\">ghi</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi</div>"]
 [FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap"><div>]def</div>ghi</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:pre-wrap">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:pre-wrap">]def<div>ghi</div></div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div></div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div></div>"]
 [FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap">]def<div>ghi</div></div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div></div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:pre-wrap"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi\njkl</div>"]
-[FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap"><div>]def</div>ghi\njkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi\njkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div></div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:pre-wrap"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi\\njkl</div>"]
+[FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap"><div>]def</div>ghi\\njkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi\\njkl</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:pre-wrap"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:pre-wrap"><div>]def</div>ghi<br>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\">ghi<br>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\">ghi<br>jkl</div>"]
 [FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap"><div>]def</div>ghi<br>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\">ghi<br>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:pre-wrap">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl\nmno</div>"]
-[FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap">]def<div>ghi</div>jkl\nmno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl\nmno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\">ghi<br>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:pre-wrap">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl\\nmno</div>"]
+[FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap">]def<div>ghi</div>jkl\\nmno</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl\\nmno</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:pre-wrap">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:pre-wrap">]def<div>ghi</div>jkl<br>mno</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl<br>mno</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl<br>mno</div>"]
 [FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap">]def<div>ghi</div>jkl<br>mno</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl<br>mno</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:pre-wrap"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap"><div>]def\nghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl<br>mno</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:pre-wrap"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap"><div>]def\\nghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div style="white-space:pre-wrap"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
-[FAIL] delete at <div style="white-space:pre">abc[</div>\n<div style="white-space:pre-wrap"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
+[FAIL] delete at <div style="white-space:pre">abc[</div>\\n<div style="white-space:pre-wrap"><div>]def<br>ghi</div>jkl</div>
+  assert_in_array: white-space should be preserved by <span> elements (testing with a line break between paragraphs) value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div style="white-space:pre">abc[</div><div class="preWrap"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\"white-space:pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>" not in array ["<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>", "<div style=\"white-space:pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div class=\"preWrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div style=\\"white-space:pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>" not in array ["<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>", "<div style=\\"white-space:pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div class=\\"preWrap\\"><div>ghi</div>jkl</div>"]
 [FAIL] delete at <div class="pre">abc[</div><div style="white-space:pre-wrap"><div>]def<br>ghi</div>jkl</div>
-  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\"pre\">abc<span style=\"text-wrap:wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>" not in array ["<div class=\"pre\">abc<span style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"pre\">abc<span class=\"preWrap\" style=\"white-space:pre-wrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>", "<div class=\"pre\">abc<span style=\"white-space:pre-wrap\" class=\"preWrap\">def</span></div><div style=\"white-space:pre-wrap\"><div>ghi</div>jkl</div>"]
+  assert_in_array: white-space should be preserved by <span> elements with class or style attribute value "<div class=\\"pre\\">abc<span style=\\"text-wrap:wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>" not in array ["<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"pre\\">abc<span class=\\"preWrap\\" style=\\"white-space:pre-wrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>", "<div class=\\"pre\\">abc<span style=\\"white-space:pre-wrap\\" class=\\"preWrap\\">def</span></div><div style=\\"white-space:pre-wrap\\"><div>ghi</div>jkl</div>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-after-joining-paragraphs_action=Backspace-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-after-joining-paragraphs_action=Backspace-expected.txt
index ca28dfe9..a7001622 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-after-joining-paragraphs_action=Backspace-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-after-joining-paragraphs_action=Backspace-expected.txt
@@ -9,18 +9,18 @@
 [PASS] Backspace in "<a href="about:blank" style="color:rgb(0, 0, 255)">foo<br></a><p><span style="color:rgb(255, 0, 0)">[]bar</span></p>"
 [PASS] Backspace in "<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo</b></a></p><p><span style="color:rgb(255, 0, 0)">[]bar</span></p>"
 [FAIL] Backspace in "<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo</b></a><br></p><p><span style="color:rgb(255, 0, 0)">[]bar</span></p>"
-  assert_equals: expected "<p><a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a><b>XY</b><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" but got "<p><a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a>XY<span style=\"color:rgb(255, 0, 0)\">bar</span></p>"
+  assert_equals: expected "<p><a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a><b>XY</b><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" but got "<p><a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a>XY<span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>"
 [FAIL] Backspace in "<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo</b><br></a></p><p><span style="color:rgb(255, 0, 0)">[]bar</span></p>"
-  assert_equals: expected "<p><a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a><b>XY</b><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" but got "<p><a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a>XY<span style=\"color:rgb(255, 0, 0)\">bar</span></p>"
+  assert_equals: expected "<p><a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a><b>XY</b><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" but got "<p><a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a>XY<span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>"
 [PASS] Backspace in "<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo</b></a></p><span style="color:rgb(255, 0, 0)">[]bar</span>"
 [FAIL] Backspace in "<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo</b></a><br></p><span style="color:rgb(255, 0, 0)">[]bar</span>"
-  assert_equals: expected "<p><a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a><b>XY</b><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" but got "<p><a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a>XY<span style=\"color:rgb(255, 0, 0)\">bar</span></p>"
+  assert_equals: expected "<p><a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a><b>XY</b><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" but got "<p><a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a>XY<span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>"
 [FAIL] Backspace in "<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo</b><br></a></p><span style="color:rgb(255, 0, 0)">[]bar</span>"
-  assert_equals: expected "<p><a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a><b>XY</b><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" but got "<p><a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a>XY<span style=\"color:rgb(255, 0, 0)\">bar</span></p>"
+  assert_equals: expected "<p><a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a><b>XY</b><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" but got "<p><a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a>XY<span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>"
 [FAIL] Backspace in "<a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo</b></a><br><p><span style="color:rgb(255, 0, 0)">[]bar</span></p>"
-  assert_equals: expected "<a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a><b>XY</b><span style=\"color:rgb(255, 0, 0)\">bar</span>" but got "<a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a>XY<span style=\"color:rgb(255, 0, 0)\">bar</span>"
+  assert_equals: expected "<a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a><b>XY</b><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" but got "<a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a>XY<span style=\\"color:rgb(255, 0, 0)\\">bar</span>"
 [FAIL] Backspace in "<a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo</b><br></a><p><span style="color:rgb(255, 0, 0)">[]bar</span></p>"
-  assert_equals: expected "<a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a><b>XY</b><span style=\"color:rgb(255, 0, 0)\">bar</span>" but got "<a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a>XY<span style=\"color:rgb(255, 0, 0)\">bar</span>"
+  assert_equals: expected "<a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a><b>XY</b><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" but got "<a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a>XY<span style=\\"color:rgb(255, 0, 0)\\">bar</span>"
 [PASS] Backspace in "<p><b><a href="about:blank" style="color:rgb(0, 0, 255)">foo</a></b></p><p><span style="color:rgb(255, 0, 0)">[]bar</span></p>"
 [PASS] Backspace in "<p><b><a href="about:blank" style="color:rgb(0, 0, 255)">foo</a></b><br></p><p><span style="color:rgb(255, 0, 0)">[]bar</span></p>"
 [PASS] Backspace in "<p><b><a href="about:blank" style="color:rgb(0, 0, 255)">foo<br></a></b></p><p><span style="color:rgb(255, 0, 0)">[]bar</span></p>"
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-after-joining-paragraphs_action=Delete-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-after-joining-paragraphs_action=Delete-expected.txt
index c3c9e5e..b85bc1c7 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-after-joining-paragraphs_action=Delete-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-after-joining-paragraphs_action=Delete-expected.txt
@@ -9,18 +9,18 @@
 [PASS] Delete in "<a href="about:blank" style="color:rgb(0, 0, 255)">foo[]<br></a><p><span style="color:rgb(255, 0, 0)">bar</span></p>"
 [PASS] Delete in "<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo[]</b></a></p><p><span style="color:rgb(255, 0, 0)">bar</span></p>"
 [FAIL] Delete in "<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo[]</b></a><br></p><p><span style="color:rgb(255, 0, 0)">bar</span></p>"
-  assert_equals: expected "<p><a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a><b>XY</b><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" but got "<p><a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a>XY<span style=\"color:rgb(255, 0, 0)\">bar</span></p>"
+  assert_equals: expected "<p><a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a><b>XY</b><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" but got "<p><a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a>XY<span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>"
 [FAIL] Delete in "<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo[]</b><br></a></p><p><span style="color:rgb(255, 0, 0)">bar</span></p>"
-  assert_equals: expected "<p><a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a><b>XY</b><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" but got "<p><a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a>XY<span style=\"color:rgb(255, 0, 0)\">bar</span></p>"
+  assert_equals: expected "<p><a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a><b>XY</b><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" but got "<p><a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a>XY<span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>"
 [PASS] Delete in "<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo[]</b></a></p><span style="color:rgb(255, 0, 0)">bar</span>"
 [FAIL] Delete in "<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo[]</b></a><br></p><span style="color:rgb(255, 0, 0)">bar</span>"
-  assert_equals: expected "<p><a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a><b>XY</b><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" but got "<p><a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a>XY<span style=\"color:rgb(255, 0, 0)\">bar</span></p>"
+  assert_equals: expected "<p><a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a><b>XY</b><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" but got "<p><a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a>XY<span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>"
 [FAIL] Delete in "<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo[]</b><br></a></p><span style="color:rgb(255, 0, 0)">bar</span>"
-  assert_equals: expected "<p><a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a><b>XY</b><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" but got "<p><a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a>XY<span style=\"color:rgb(255, 0, 0)\">bar</span></p>"
+  assert_equals: expected "<p><a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a><b>XY</b><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" but got "<p><a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a>XY<span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>"
 [FAIL] Delete in "<a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo[]</b></a><br><p><span style="color:rgb(255, 0, 0)">bar</span></p>"
-  assert_equals: expected "<a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a><b>XY</b><span style=\"color:rgb(255, 0, 0)\">bar</span>" but got "<a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a>XY<span style=\"color:rgb(255, 0, 0)\">bar</span>"
+  assert_equals: expected "<a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a><b>XY</b><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" but got "<a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a>XY<span style=\\"color:rgb(255, 0, 0)\\">bar</span>"
 [FAIL] Delete in "<a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo[]</b><br></a><p><span style="color:rgb(255, 0, 0)">bar</span></p>"
-  assert_equals: expected "<a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a><b>XY</b><span style=\"color:rgb(255, 0, 0)\">bar</span>" but got "<a href=\"about:blank\" style=\"color:rgb(0, 0, 255)\"><b>foo</b></a>XY<span style=\"color:rgb(255, 0, 0)\">bar</span>"
+  assert_equals: expected "<a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a><b>XY</b><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" but got "<a href=\\"about:blank\\" style=\\"color:rgb(0, 0, 255)\\"><b>foo</b></a>XY<span style=\\"color:rgb(255, 0, 0)\\">bar</span>"
 [PASS] Delete in "<p><b><a href="about:blank" style="color:rgb(0, 0, 255)">foo[]</a></b></p><p><span style="color:rgb(255, 0, 0)">bar</span></p>"
 [PASS] Delete in "<p><b><a href="about:blank" style="color:rgb(0, 0, 255)">foo[]</a></b><br></p><p><span style="color:rgb(255, 0, 0)">bar</span></p>"
 [PASS] Delete in "<p><b><a href="about:blank" style="color:rgb(0, 0, 255)">foo[]<br></a></b></p><p><span style="color:rgb(255, 0, 0)">bar</span></p>"
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-collapsed-selection.tentative_target=DesignMode-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-collapsed-selection.tentative_target=DesignMode-expected.txt
index bbe92b66..5442104 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-collapsed-selection.tentative_target=DesignMode-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-collapsed-selection.tentative_target=DesignMode-expected.txt
@@ -1,7 +1,7 @@
 This is a testharness.js-based test.
 [PASS] Testing inserting content around link element
 [FAIL] Replacing text in a link with "XY" in <p>[abc]</p>
-  assert_in_array: value "<p>XY</p>" not in array ["<p><a href=\"about:blank\">XY</a></p>", "<p><a href=\"about:blank\">XY</a><br></p>"]
+  assert_in_array: value "<p>XY</p>" not in array ["<p><a href=\\"about:blank\\">XY</a></p>", "<p><a href=\\"about:blank\\">XY</a><br></p>"]
 [PASS] Inserting "XY" after making a link (following Selection.collapseToEnd) in <p>[abc]</p>
 [PASS] Inserting "XY" after making a link (following ArrowRight key press) in <p>[abc]</p>
 [PASS] Inserting "XY" after making a link (following End key press) in <p>[abc]</p>
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-collapsed-selection.tentative_target=DesignMode_child=b-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-collapsed-selection.tentative_target=DesignMode_child=b-expected.txt
index ad8b7e5..d5653ac 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-collapsed-selection.tentative_target=DesignMode_child=b-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-collapsed-selection.tentative_target=DesignMode_child=b-expected.txt
@@ -3,57 +3,57 @@
 [PASS] Inserting "XY" after setting caret position to middle of a link containing <b> (Selection.collapse) in <p><a href="about:blank"><b>[]abc</b></a></p>
 [PASS] Inserting "XY" after setting caret position to middle of a link containing <b> (Selection.addRange) in <p><a href="about:blank"><b>[]abc</b></a></p>
 [FAIL] Inserting "XY" after setting caret position to start of a link containing <b> (Selection.collapse) in <p><a href="about:blank"><b>ab[]c</b></a></p>
-  assert_in_array: value "<p>XY<a href=\"about:blank\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\"about:blank\">abc</a></b></p>", "<p><b>XY<a href=\"about:blank\">abc</a>undefined<br></p>"]
+  assert_in_array: value "<p>XY<a href=\\"about:blank\\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\\"about:blank\\">abc</a></b></p>", "<p><b>XY<a href=\\"about:blank\\">abc</a>undefined<br></p>"]
 [FAIL] Inserting "XY" after setting caret position to start of a link containing <b> (Selection.addRange) in <p><a href="about:blank"><b>ab[]c</b></a></p>
-  assert_in_array: value "<p>XY<a href=\"about:blank\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\"about:blank\">abc</a></b></p>", "<p><b>XY<a href=\"about:blank\">abc</a>undefined<br></p>"]
+  assert_in_array: value "<p>XY<a href=\\"about:blank\\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\\"about:blank\\">abc</a></b></p>", "<p><b>XY<a href=\\"about:blank\\">abc</a>undefined<br></p>"]
 [FAIL] Inserting "XY" after setting caret position to end of a link containing <b> (Selection.collapse) in <p><a href="about:blank"><b>ab[]c</b></a></p>
-  assert_in_array: value "<p><a href=\"about:blank\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\"about:blank\">abc</a>XY</b></p>", "<p><b><a href=\"about:blank\">abc</a>XYundefined<br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\\"about:blank\\">abc</a>XY</b></p>", "<p><b><a href=\\"about:blank\\">abc</a>XYundefined<br></p>"]
 [FAIL] Inserting "XY" after setting caret position to end of a link containing <b> (Selection.addRange) in <p><a href="about:blank"><b>ab[]c</b></a></p>
-  assert_in_array: value "<p><a href=\"about:blank\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\"about:blank\">abc</a>XY</b></p>", "<p><b><a href=\"about:blank\">abc</a>XYundefined<br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\\"about:blank\\">abc</a>XY</b></p>", "<p><b><a href=\\"about:blank\\">abc</a>XYundefined<br></p>"]
 [PASS] Inserting "XY" after modifying caret position to middle of a link containing <b> in <p><a href="about:blank"><b>[]abc</b></a></p>
 [FAIL] Inserting "XY" after modifying caret position to start of a link containing <b> in <p><a href="about:blank"><b>ab[]c</b></a></p>
-  assert_in_array: value "<p>XY<a href=\"about:blank\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\"about:blank\">abc</a></b></p>", "<p><b>XY<a href=\"about:blank\">abc</a></b><br></p>"]
+  assert_in_array: value "<p>XY<a href=\\"about:blank\\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\\"about:blank\\">abc</a></b></p>", "<p><b>XY<a href=\\"about:blank\\">abc</a></b><br></p>"]
 [FAIL] Inserting "XY" after modifying caret position to end of a link containing <b> in <p><a href="about:blank"><b>ab[]c</b></a></p>
-  assert_in_array: value "<p><a href=\"about:blank\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\"about:blank\">abc</a>XY</b></p>", "<p><b><a href=\"about:blank\">abc</a>XY</b><br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\\"about:blank\\">abc</a>XY</b></p>", "<p><b><a href=\\"about:blank\\">abc</a>XY</b><br></p>"]
 [FAIL] Inserting "XY" after deleting following character of a link containing <b> (Backspace) in <p><a href="about:blank"><b>abc</b></a>d[]</p>
-  assert_in_array: value "<p><a href=\"about:blank\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\"about:blank\">abc</a>XY</b></p>", "<p><b><a href=\"about:blank\">abc</a>XY</b><br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\\"about:blank\\">abc</a>XY</b></p>", "<p><b><a href=\\"about:blank\\">abc</a>XY</b><br></p>"]
 [FAIL] Inserting "XY" after deleting following character of a link containing <b> (execCommand("delete")) in <p><a href="about:blank"><b>abc</b></a>d[]</p>
-  assert_in_array: value "<p><a href=\"about:blank\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\"about:blank\">abc</a>XY</b></p>", "<p><b><a href=\"about:blank\">abc</a>XY</b><br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\\"about:blank\\">abc</a>XY</b></p>", "<p><b><a href=\\"about:blank\\">abc</a>XY</b><br></p>"]
 [FAIL] Inserting "XY" after deleting a previous character of a link containing <b> (Delete) in <p>[]z<a href="about:blank"><b>abc</b></a></p>
-  assert_in_array: value "<p>XY<a href=\"about:blank\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\"about:blank\">abc</a></b></p>", "<p><b>XY<a href=\"about:blank\">abc</a></b><br></p>"]
+  assert_in_array: value "<p>XY<a href=\\"about:blank\\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\\"about:blank\\">abc</a></b></p>", "<p><b>XY<a href=\\"about:blank\\">abc</a></b><br></p>"]
 [FAIL] Inserting "XY" after deleting a previous character of a link containing <b> (execCommand("forwarddelete")) in <p>[]z<a href="about:blank"><b>abc</b></a></p>
-  assert_in_array: value "<p>XY<a href=\"about:blank\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\"about:blank\">abc</a></b></p>", "<p><b>XY<a href=\"about:blank\">abc</a></b><br></p>"]
+  assert_in_array: value "<p>XY<a href=\\"about:blank\\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\\"about:blank\\">abc</a></b></p>", "<p><b>XY<a href=\\"about:blank\\">abc</a></b><br></p>"]
 [FAIL] Inserting "XY" after deleting last character of a link containing <b> (Backspace) in <p><a href="about:blank"><b>abcd[]</b></a></p>
-  assert_in_array: value "<p><a href=\"about:blank\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\"about:blank\">abc</a>XY</b></p>", "<p></b><a href=\"about:blank\">abc</a>XY</b><br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\\"about:blank\\">abc</a>XY</b></p>", "<p></b><a href=\\"about:blank\\">abc</a>XY</b><br></p>"]
 [FAIL] Inserting "XY" after deleting last character of a link containing <b> (execCommand("delete")) in <p><a href="about:blank"><b>abcd[]</b></a></p>
-  assert_in_array: value "<p><a href=\"about:blank\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\"about:blank\">abc</a>XY</b></p>", "<p></b><a href=\"about:blank\">abc</a>XY</b><br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\\"about:blank\\">abc</a>XY</b></p>", "<p></b><a href=\\"about:blank\\">abc</a>XY</b><br></p>"]
 [FAIL] Inserting "XY" after deleting last character of a link containing <b> (Delete) in <p><a href="about:blank"><b>abc[]d</b></a></p>
-  assert_in_array: value "<p><a href=\"about:blank\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\"about:blank\">abc</a>XY</b></p>", "<p><b><a href=\"about:blank\">abc</a>XY</b><br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\\"about:blank\\">abc</a>XY</b></p>", "<p><b><a href=\\"about:blank\\">abc</a>XY</b><br></p>"]
 [FAIL] Inserting "XY" after deleting last character of a link containing <b> (execCommand("forwarddelete")) in <p><a href="about:blank"><b>abc[]d</b></a></p>
-  assert_in_array: value "<p><a href=\"about:blank\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\"about:blank\">abc</a>XY</b></p>", "<p><b><a href=\"about:blank\">abc</a>XY</b><br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\\"about:blank\\">abc</a>XY</b></p>", "<p><b><a href=\\"about:blank\\">abc</a>XY</b><br></p>"]
 [FAIL] Inserting "XY" after deleting first character of a link containing <b> (Backspace) in <p><a href="about:blank"><b>z[]abc</b></a></p>
-  assert_in_array: value "<p>XY<a href=\"about:blank\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\"about:blank\">abc</a></b></p>", "<p><b>XY<a href=\"about:blank\">abc</a></b><br></p>"]
+  assert_in_array: value "<p>XY<a href=\\"about:blank\\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\\"about:blank\\">abc</a></b></p>", "<p><b>XY<a href=\\"about:blank\\">abc</a></b><br></p>"]
 [FAIL] Inserting "XY" after deleting first character of a link containing <b> (execCommand("delete")) in <p><a href="about:blank"><b>z[]abc</b></a></p>
-  assert_in_array: value "<p>XY<a href=\"about:blank\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\"about:blank\">abc</a></b></p>", "<p><b>XY<a href=\"about:blank\">abc</a></b><br></p>"]
+  assert_in_array: value "<p>XY<a href=\\"about:blank\\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\\"about:blank\\">abc</a></b></p>", "<p><b>XY<a href=\\"about:blank\\">abc</a></b><br></p>"]
 [FAIL] Inserting "XY" after deleting first character of a link containing <b> (Delete) in <p><a href="about:blank"><b>[]zabc</b></a></p>
-  assert_in_array: value "<p>XY<a href=\"about:blank\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\"about:blank\">abc</a></b></p>", "<p><b>XY<a href=\"about:blank\">abc</a></b><br></p>"]
+  assert_in_array: value "<p>XY<a href=\\"about:blank\\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\\"about:blank\\">abc</a></b></p>", "<p><b>XY<a href=\\"about:blank\\">abc</a></b><br></p>"]
 [FAIL] Inserting "XY" after deleting first character of a link containing <b> (execCommand("forwarddelete")) in <p><a href="about:blank"><b>[]zabc</b></a></p>
-  assert_in_array: value "<p>XY<a href=\"about:blank\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\"about:blank\">abc</a></b></p>", "<p><b>XY<a href=\"about:blank\">abc</a></b><br></p>"]
+  assert_in_array: value "<p>XY<a href=\\"about:blank\\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\\"about:blank\\">abc</a></b></p>", "<p><b>XY<a href=\\"about:blank\\">abc</a></b><br></p>"]
 [FAIL] Inserting "XY" at start of a link which has a class for bold text in <p><a href="about:blank" class="bold"><b>[]abc</b></a></p>
-  assert_in_array: value "<p>XY<a href=\"about:blank\" class=\"bold\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\"about:blank\" class=\"bold\">abc</a></b></p>", "<p><b>XY<a href=\"about:blank\" class=\"bold\">abc</a></b><br></p>"]
+  assert_in_array: value "<p>XY<a href=\\"about:blank\\" class=\\"bold\\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\\"about:blank\\" class=\\"bold\\">abc</a></b></p>", "<p><b>XY<a href=\\"about:blank\\" class=\\"bold\\">abc</a></b><br></p>"]
 [FAIL] Inserting "XY" at end of a link which has a class for bold text in <p><a href="about:blank" class="bold"><b>abc[]</b></a></p>
-  assert_in_array: value "<p><a href=\"about:blank\" class=\"bold\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\"about:blank\" class=\"bold\">abc</a>XY</b></p>", "<p><b><a href=\"about:blank\" class=\"bold\">abc</a>XY</b><br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\" class=\\"bold\\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\\"about:blank\\" class=\\"bold\\">abc</a>XY</b></p>", "<p><b><a href=\\"about:blank\\" class=\\"bold\\">abc</a>XY</b><br></p>"]
 [FAIL] Inserting "XY" at start of a link which has inline style for bold text in <p><a href="about:blank" style="font-weight: bold"><b>[]abc</b></a></p>
-  assert_in_array: value "<p>XY<a href=\"about:blank\" style=\"font-weight: bold\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\"about:blank\" style=\"font-weight: bold\">abc</a></b></p>", "<p><b>XY<a href=\"about:blank\" style=\"font-weight: bold\">abc</a></b><br></p>"]
+  assert_in_array: value "<p>XY<a href=\\"about:blank\\" style=\\"font-weight: bold\\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\\"about:blank\\" style=\\"font-weight: bold\\">abc</a></b></p>", "<p><b>XY<a href=\\"about:blank\\" style=\\"font-weight: bold\\">abc</a></b><br></p>"]
 [FAIL] Inserting "XY" at end of a link which has inline style for bold text in <p><a href="about:blank" style="font-weight: bold"><b>abc[]</b></a></p>
-  assert_in_array: value "<p><a href=\"about:blank\" style=\"font-weight: bold\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\"about:blank\" style=\"font-weight: bold\">abc</a>XY</b></p>", "<p><b><a href=\"about:blank\" style=\"font-weight: bold\">abc</a>XY</b><br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\" style=\\"font-weight: bold\\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\\"about:blank\\" style=\\"font-weight: bold\\">abc</a>XY</b></p>", "<p><b><a href=\\"about:blank\\" style=\\"font-weight: bold\\">abc</a>XY</b><br></p>"]
 [FAIL] Inserting "XY" at start of a link which has a class for bold text (in CSS mode) in <p><a href="about:blank" class="bold"><b>[]abc</b></a></p>
-  assert_in_array: value "<p>XY<a href=\"about:blank\" class=\"bold\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\"about:blank\" class=\"bold\">abc</a></b></p>", "<p><b>XY<a href=\"about:blank\" class=\"bold\">abc</a></b><br></p>"]
+  assert_in_array: value "<p>XY<a href=\\"about:blank\\" class=\\"bold\\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\\"about:blank\\" class=\\"bold\\">abc</a></b></p>", "<p><b>XY<a href=\\"about:blank\\" class=\\"bold\\">abc</a></b><br></p>"]
 [FAIL] Inserting "XY" at end of a link which has a class for bold text (in CSS mode) in <p><a href="about:blank" class="bold"><b>abc[]</b></a></p>
-  assert_in_array: value "<p><a href=\"about:blank\" class=\"bold\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\"about:blank\" class=\"bold\">abc</a>XY</b></p>", "<p><b><a href=\"about:blank\" class=\"bold\">abc</a>XY</b><br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\" class=\\"bold\\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\\"about:blank\\" class=\\"bold\\">abc</a>XY</b></p>", "<p><b><a href=\\"about:blank\\" class=\\"bold\\">abc</a>XY</b><br></p>"]
 [FAIL] Inserting "XY" at start of a link which has inline style for bold text (in CSS mode) in <p><a href="about:blank" style="font-weight: bold"><b>[]abc</b></a></p>
-  assert_in_array: value "<p>XY<a href=\"about:blank\" style=\"font-weight: bold\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\"about:blank\" style=\"font-weight: bold\">abc</a></b></p>", "<p><b>XY<a href=\"about:blank\" style=\"font-weight: bold\">abc</a></b><br></p>"]
+  assert_in_array: value "<p>XY<a href=\\"about:blank\\" style=\\"font-weight: bold\\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\\"about:blank\\" style=\\"font-weight: bold\\">abc</a></b></p>", "<p><b>XY<a href=\\"about:blank\\" style=\\"font-weight: bold\\">abc</a></b><br></p>"]
 [FAIL] Inserting "XY" at end of a link which has inline style for bold text (in CSS mode) in <p><a href="about:blank" style="font-weight: bold"><b>abc[]</b></a></p>
-  assert_in_array: value "<p><a href=\"about:blank\" style=\"font-weight: bold\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\"about:blank\" style=\"font-weight: bold\">abc</a>XY</b></p>", "<p><b><a href=\"about:blank\" style=\"font-weight: bold\">abc</a>XY</b><br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\" style=\\"font-weight: bold\\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\\"about:blank\\" style=\\"font-weight: bold\\">abc</a>XY</b></p>", "<p><b><a href=\\"about:blank\\" style=\\"font-weight: bold\\">abc</a>XY</b><br></p>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-collapsed-selection.tentative_target=DesignMode_parent=b-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-collapsed-selection.tentative_target=DesignMode_parent=b-expected.txt
index fc28545..0245e50 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-collapsed-selection.tentative_target=DesignMode_parent=b-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-collapsed-selection.tentative_target=DesignMode_parent=b-expected.txt
@@ -1,7 +1,7 @@
 This is a testharness.js-based test.
 [PASS] Testing inserting content around link element
 [FAIL] Replacing text in a link in <b> with "XY" in <p><b>[abc]</b></p>
-  assert_in_array: value "<p><b>XY</b></p>" not in array ["<p><b><a href=\"about:blank\">XY</b></a></p>", "<p><b><a href=\"about:blank\">XY</b></a><br></p>"]
+  assert_in_array: value "<p><b>XY</b></p>" not in array ["<p><b><a href=\\"about:blank\\">XY</b></a></p>", "<p><b><a href=\\"about:blank\\">XY</b></a><br></p>"]
 [PASS] Inserting "XY" after making a link in <b> (following Selection.collapseToEnd) in <p><b>[abc]</b></p>
 [PASS] Inserting "XY" after making a link in <b> (following ArrowRight key press) in <p><b>[abc]</b></p>
 [PASS] Inserting "XY" after making a link in <b> (following End key press) in <p><b>[abc]</b></p>
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-collapsed-selection.tentative_target=DesignMode_parent=b_child=i-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-collapsed-selection.tentative_target=DesignMode_parent=b_child=i-expected.txt
index 7b9312f5..f79f9e39 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-collapsed-selection.tentative_target=DesignMode_parent=b_child=i-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-collapsed-selection.tentative_target=DesignMode_parent=b_child=i-expected.txt
@@ -3,57 +3,57 @@
 [PASS] Inserting "XY" after setting caret position to middle of a link in <b> and containing <i> (Selection.collapse) in <p><b><a href="about:blank"><i>[]abc</i></a></b></p>
 [PASS] Inserting "XY" after setting caret position to middle of a link in <b> and containing <i> (Selection.addRange) in <p><b><a href="about:blank"><i>[]abc</i></a></b></p>
 [FAIL] Inserting "XY" after setting caret position to start of a link in <b> and containing <i> (Selection.collapse) in <p><b><a href="about:blank"><i>ab[]c</i></a></b></p>
-  assert_in_array: value "<p><b>XY<a href=\"about:blank\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\"about:blank\">abc</a></i></b></p>", "<p><b><i>XY<a href=\"about:blank\">abc</a>undefined<br></p>"]
+  assert_in_array: value "<p><b>XY<a href=\\"about:blank\\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b></p>", "<p><b><i>XY<a href=\\"about:blank\\">abc</a>undefined<br></p>"]
 [FAIL] Inserting "XY" after setting caret position to start of a link in <b> and containing <i> (Selection.addRange) in <p><b><a href="about:blank"><i>ab[]c</i></a></b></p>
-  assert_in_array: value "<p><b>XY<a href=\"about:blank\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\"about:blank\">abc</a></i></b></p>", "<p><b><i>XY<a href=\"about:blank\">abc</a>undefined<br></p>"]
+  assert_in_array: value "<p><b>XY<a href=\\"about:blank\\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b></p>", "<p><b><i>XY<a href=\\"about:blank\\">abc</a>undefined<br></p>"]
 [FAIL] Inserting "XY" after setting caret position to end of a link in <b> and containing <i> (Selection.collapse) in <p><b><a href="about:blank"><i>ab[]c</i></a></b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\"about:blank\">abc</a>XY</i></b></p>", "<p><b><i><a href=\"about:blank\">abc</a>XYundefined<br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\\"about:blank\\">abc</a>XY</i></b></p>", "<p><b><i><a href=\\"about:blank\\">abc</a>XYundefined<br></p>"]
 [FAIL] Inserting "XY" after setting caret position to end of a link in <b> and containing <i> (Selection.addRange) in <p><b><a href="about:blank"><i>ab[]c</i></a></b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\"about:blank\">abc</a>XY</i></b></p>", "<p><b><i><a href=\"about:blank\">abc</a>XYundefined<br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\\"about:blank\\">abc</a>XY</i></b></p>", "<p><b><i><a href=\\"about:blank\\">abc</a>XYundefined<br></p>"]
 [PASS] Inserting "XY" after modifying caret position to middle of a link in <b> and containing <i> in <p><b><a href="about:blank"><i>[]abc</i></a></b></p>
 [FAIL] Inserting "XY" after modifying caret position to start of a link in <b> and containing <i> in <p><b><a href="about:blank"><i>ab[]c</i></a></b></p>
-  assert_in_array: value "<p><b>XY<a href=\"about:blank\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\"about:blank\">abc</a></i></b></p>", "<p><b><i>XY<a href=\"about:blank\">abc</a></i></b><br></p>"]
+  assert_in_array: value "<p><b>XY<a href=\\"about:blank\\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b></p>", "<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b><br></p>"]
 [FAIL] Inserting "XY" after modifying caret position to end of a link in <b> and containing <i> in <p><b><a href="about:blank"><i>ab[]c</i></a></b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\"about:blank\">abc</a>XY</i></b></p>", "<p><b><i><a href=\"about:blank\">abc</a>XY</i></b><br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\\"about:blank\\">abc</a>XY</i></b></p>", "<p><b><i><a href=\\"about:blank\\">abc</a>XY</i></b><br></p>"]
 [FAIL] Inserting "XY" after deleting following character of a link in <b> and containing <i> (Backspace) in <p><b><a href="about:blank"><i>abc</i></a>d[]</b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\"about:blank\">abc</a>XY</i></b></p>", "<p><b><i><a href=\"about:blank\">abc</a>XY</i></b><br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\\"about:blank\\">abc</a>XY</i></b></p>", "<p><b><i><a href=\\"about:blank\\">abc</a>XY</i></b><br></p>"]
 [FAIL] Inserting "XY" after deleting following character of a link in <b> and containing <i> (execCommand("delete")) in <p><b><a href="about:blank"><i>abc</i></a>d[]</b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\"about:blank\">abc</a>XY</i></b></p>", "<p><b><i><a href=\"about:blank\">abc</a>XY</i></b><br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\\"about:blank\\">abc</a>XY</i></b></p>", "<p><b><i><a href=\\"about:blank\\">abc</a>XY</i></b><br></p>"]
 [FAIL] Inserting "XY" after deleting a previous character of a link in <b> and containing <i> (Delete) in <p><b>[]z<a href="about:blank"><i>abc</i></a></b></p>
-  assert_in_array: value "<p><b>XY<a href=\"about:blank\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\"about:blank\">abc</a></i></b></p>", "<p><b><i>XY<a href=\"about:blank\">abc</a></i></b><br></p>"]
+  assert_in_array: value "<p><b>XY<a href=\\"about:blank\\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b></p>", "<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b><br></p>"]
 [FAIL] Inserting "XY" after deleting a previous character of a link in <b> and containing <i> (execCommand("forwarddelete")) in <p><b>[]z<a href="about:blank"><i>abc</i></a></b></p>
-  assert_in_array: value "<p><b>XY<a href=\"about:blank\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\"about:blank\">abc</a></i></b></p>", "<p><b><i>XY<a href=\"about:blank\">abc</a></i></b><br></p>"]
+  assert_in_array: value "<p><b>XY<a href=\\"about:blank\\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b></p>", "<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b><br></p>"]
 [FAIL] Inserting "XY" after deleting last character of a link in <b> and containing <i> (Backspace) in <p><b><a href="about:blank"><i>abcd[]</i></a></b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\"about:blank\">abc</a>XY</i></b></p>", "<p></i></b><a href=\"about:blank\">abc</a>XY</i></b><br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\\"about:blank\\">abc</a>XY</i></b></p>", "<p></i></b><a href=\\"about:blank\\">abc</a>XY</i></b><br></p>"]
 [FAIL] Inserting "XY" after deleting last character of a link in <b> and containing <i> (execCommand("delete")) in <p><b><a href="about:blank"><i>abcd[]</i></a></b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\"about:blank\">abc</a>XY</i></b></p>", "<p></i></b><a href=\"about:blank\">abc</a>XY</i></b><br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\\"about:blank\\">abc</a>XY</i></b></p>", "<p></i></b><a href=\\"about:blank\\">abc</a>XY</i></b><br></p>"]
 [FAIL] Inserting "XY" after deleting last character of a link in <b> and containing <i> (Delete) in <p><b><a href="about:blank"><i>abc[]d</i></a></b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\"about:blank\">abc</a>XY</i></b></p>", "<p><b><i><a href=\"about:blank\">abc</a>XY</i></b><br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\\"about:blank\\">abc</a>XY</i></b></p>", "<p><b><i><a href=\\"about:blank\\">abc</a>XY</i></b><br></p>"]
 [FAIL] Inserting "XY" after deleting last character of a link in <b> and containing <i> (execCommand("forwarddelete")) in <p><b><a href="about:blank"><i>abc[]d</i></a></b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\"about:blank\">abc</a>XY</i></b></p>", "<p><b><i><a href=\"about:blank\">abc</a>XY</i></b><br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\\"about:blank\\">abc</a>XY</i></b></p>", "<p><b><i><a href=\\"about:blank\\">abc</a>XY</i></b><br></p>"]
 [FAIL] Inserting "XY" after deleting first character of a link in <b> and containing <i> (Backspace) in <p><b><a href="about:blank"><i>z[]abc</i></a></b></p>
-  assert_in_array: value "<p><b>XY<a href=\"about:blank\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\"about:blank\">abc</a></i></b></p>", "<p><b><i>XY<a href=\"about:blank\">abc</a></i></b><br></p>"]
+  assert_in_array: value "<p><b>XY<a href=\\"about:blank\\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b></p>", "<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b><br></p>"]
 [FAIL] Inserting "XY" after deleting first character of a link in <b> and containing <i> (execCommand("delete")) in <p><b><a href="about:blank"><i>z[]abc</i></a></b></p>
-  assert_in_array: value "<p><b>XY<a href=\"about:blank\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\"about:blank\">abc</a></i></b></p>", "<p><b><i>XY<a href=\"about:blank\">abc</a></i></b><br></p>"]
+  assert_in_array: value "<p><b>XY<a href=\\"about:blank\\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b></p>", "<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b><br></p>"]
 [FAIL] Inserting "XY" after deleting first character of a link in <b> and containing <i> (Delete) in <p><b><a href="about:blank"><i>[]zabc</i></a></b></p>
-  assert_in_array: value "<p><b>XY<a href=\"about:blank\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\"about:blank\">abc</a></i></b></p>", "<p><b><i>XY<a href=\"about:blank\">abc</a></i></b><br></p>"]
+  assert_in_array: value "<p><b>XY<a href=\\"about:blank\\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b></p>", "<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b><br></p>"]
 [FAIL] Inserting "XY" after deleting first character of a link in <b> and containing <i> (execCommand("forwarddelete")) in <p><b><a href="about:blank"><i>[]zabc</i></a></b></p>
-  assert_in_array: value "<p><b>XY<a href=\"about:blank\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\"about:blank\">abc</a></i></b></p>", "<p><b><i>XY<a href=\"about:blank\">abc</a></i></b><br></p>"]
+  assert_in_array: value "<p><b>XY<a href=\\"about:blank\\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b></p>", "<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b><br></p>"]
 [FAIL] Inserting "XY" at start of a link which has a class for bold text in <p><b><a href="about:blank" class="bold"><i>[]abc</i></a></b></p>
-  assert_in_array: value "<p><b>XY<a href=\"about:blank\" class=\"bold\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\"about:blank\" class=\"bold\">abc</a></i></b></p>", "<p><b><i>XY<a href=\"about:blank\" class=\"bold\">abc</a></i></b><br></p>"]
+  assert_in_array: value "<p><b>XY<a href=\\"about:blank\\" class=\\"bold\\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\\"about:blank\\" class=\\"bold\\">abc</a></i></b></p>", "<p><b><i>XY<a href=\\"about:blank\\" class=\\"bold\\">abc</a></i></b><br></p>"]
 [FAIL] Inserting "XY" at end of a link which has a class for bold text in <p><b><a href="about:blank" class="bold"><i>abc[]</i></a></b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\" class=\"bold\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\"about:blank\" class=\"bold\">abc</a>XY</i></b></p>", "<p><b><i><a href=\"about:blank\" class=\"bold\">abc</a>XY</i></b><br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\" class=\\"bold\\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\\"about:blank\\" class=\\"bold\\">abc</a>XY</i></b></p>", "<p><b><i><a href=\\"about:blank\\" class=\\"bold\\">abc</a>XY</i></b><br></p>"]
 [FAIL] Inserting "XY" at start of a link which has inline style for bold text in <p><b><a href="about:blank" style="font-weight: bold"><i>[]abc</i></a></b></p>
-  assert_in_array: value "<p><b>XY<a href=\"about:blank\" style=\"font-weight: bold\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\"about:blank\" style=\"font-weight: bold\">abc</a></i></b></p>", "<p><b><i>XY<a href=\"about:blank\" style=\"font-weight: bold\">abc</a></i></b><br></p>"]
+  assert_in_array: value "<p><b>XY<a href=\\"about:blank\\" style=\\"font-weight: bold\\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\\"about:blank\\" style=\\"font-weight: bold\\">abc</a></i></b></p>", "<p><b><i>XY<a href=\\"about:blank\\" style=\\"font-weight: bold\\">abc</a></i></b><br></p>"]
 [FAIL] Inserting "XY" at end of a link which has inline style for bold text in <p><b><a href="about:blank" style="font-weight: bold"><i>abc[]</i></a></b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\" style=\"font-weight: bold\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\"about:blank\" style=\"font-weight: bold\">abc</a>XY</i></b></p>", "<p><b><i><a href=\"about:blank\" style=\"font-weight: bold\">abc</a>XY</i></b><br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\" style=\\"font-weight: bold\\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\\"about:blank\\" style=\\"font-weight: bold\\">abc</a>XY</i></b></p>", "<p><b><i><a href=\\"about:blank\\" style=\\"font-weight: bold\\">abc</a>XY</i></b><br></p>"]
 [FAIL] Inserting "XY" at start of a link which has a class for bold text (in CSS mode) in <p><b><a href="about:blank" class="bold"><i>[]abc</i></a></b></p>
-  assert_in_array: value "<p><b>XY<a href=\"about:blank\" class=\"bold\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\"about:blank\" class=\"bold\">abc</a></i></b></p>", "<p><b><i>XY<a href=\"about:blank\" class=\"bold\">abc</a></i></b><br></p>"]
+  assert_in_array: value "<p><b>XY<a href=\\"about:blank\\" class=\\"bold\\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\\"about:blank\\" class=\\"bold\\">abc</a></i></b></p>", "<p><b><i>XY<a href=\\"about:blank\\" class=\\"bold\\">abc</a></i></b><br></p>"]
 [FAIL] Inserting "XY" at end of a link which has a class for bold text (in CSS mode) in <p><b><a href="about:blank" class="bold"><i>abc[]</i></a></b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\" class=\"bold\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\"about:blank\" class=\"bold\">abc</a>XY</i></b></p>", "<p><b><i><a href=\"about:blank\" class=\"bold\">abc</a>XY</i></b><br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\" class=\\"bold\\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\\"about:blank\\" class=\\"bold\\">abc</a>XY</i></b></p>", "<p><b><i><a href=\\"about:blank\\" class=\\"bold\\">abc</a>XY</i></b><br></p>"]
 [FAIL] Inserting "XY" at start of a link which has inline style for bold text (in CSS mode) in <p><b><a href="about:blank" style="font-weight: bold"><i>[]abc</i></a></b></p>
-  assert_in_array: value "<p><b>XY<a href=\"about:blank\" style=\"font-weight: bold\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\"about:blank\" style=\"font-weight: bold\">abc</a></i></b></p>", "<p><b><i>XY<a href=\"about:blank\" style=\"font-weight: bold\">abc</a></i></b><br></p>"]
+  assert_in_array: value "<p><b>XY<a href=\\"about:blank\\" style=\\"font-weight: bold\\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\\"about:blank\\" style=\\"font-weight: bold\\">abc</a></i></b></p>", "<p><b><i>XY<a href=\\"about:blank\\" style=\\"font-weight: bold\\">abc</a></i></b><br></p>"]
 [FAIL] Inserting "XY" at end of a link which has inline style for bold text (in CSS mode) in <p><b><a href="about:blank" style="font-weight: bold"><i>abc[]</i></a></b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\" style=\"font-weight: bold\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\"about:blank\" style=\"font-weight: bold\">abc</a>XY</i></b></p>", "<p><b><i><a href=\"about:blank\" style=\"font-weight: bold\">abc</a>XY</i></b><br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\" style=\\"font-weight: bold\\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\\"about:blank\\" style=\\"font-weight: bold\\">abc</a>XY</i></b></p>", "<p><b><i><a href=\\"about:blank\\" style=\\"font-weight: bold\\">abc</a>XY</i></b><br></p>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-non-collapsed-selection.tentative_target=DesignMode-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-non-collapsed-selection.tentative_target=DesignMode-expected.txt
index 1f08ed4..433bbf6 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-non-collapsed-selection.tentative_target=DesignMode-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-non-collapsed-selection.tentative_target=DesignMode-expected.txt
@@ -2,7 +2,7 @@
 [PASS] Testing inserting content at non-collapsed selection around link element
 [PASS] Inserting "XY" after deleting first character of a link (Direct typing) in <p><a href="about:blank">[z]abc</a></p>
 [FAIL] Inserting "XY" after deleting last character in a non-collapsed range of a link (Direct typing) in <p><a href="about:blank">abc[d]</a></p>
-  assert_in_array: value "<p><a href=\"about:blank\">abcX</a>Y</p>" not in array ["<p><a href=\"about:blank\">abcXY</a></p>", "<p><a href=\"about:blank\">abcXY</a><br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\">abcX</a>Y</p>" not in array ["<p><a href=\\"about:blank\\">abcXY</a></p>", "<p><a href=\\"about:blank\\">abcXY</a><br></p>"]
 [PASS] Inserting "XY" after deleting text after middle of a link (Direct typing) in <p><a href="about:blank">ab[cd</a>de]f</p>
 [PASS] Inserting "XY" after deleting text before middle of a link (Direct typing) in <p>a[bc<a href="about:blank">de]f</a></p>
 [PASS] Inserting "XY" after deleting text between 2 same links (Direct typing) in <p><a href="about:blank">a[bc</a><a href="about:blank">de]f</a></p>
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-non-collapsed-selection.tentative_target=DesignMode_child=b-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-non-collapsed-selection.tentative_target=DesignMode_child=b-expected.txt
index bdd0056..4a4212ae 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-non-collapsed-selection.tentative_target=DesignMode_child=b-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-non-collapsed-selection.tentative_target=DesignMode_child=b-expected.txt
@@ -2,37 +2,37 @@
 [PASS] Testing inserting content at non-collapsed selection around link element
 [PASS] Inserting "XY" after deleting first character of a link containing <b> (Direct typing) in <p><a href="about:blank"><b>[z]abc</b></a></p>
 [FAIL] Inserting "XY" after deleting last character in a non-collapsed range of a link containing <b> (Direct typing) in <p><a href="about:blank"><b>abc[d]</b></a></p>
-  assert_in_array: value "<p><a href=\"about:blank\"><b>abcX</b></a>Y</p>" not in array ["<p><a href=\"about:blank\"><b>abcXY</b></a></p>", "<p><a href=\"about:blank\"><b>abcXY</b></a><br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\"><b>abcX</b></a>Y</p>" not in array ["<p><a href=\\"about:blank\\"><b>abcXY</b></a></p>", "<p><a href=\\"about:blank\\"><b>abcXY</b></a><br></p>"]
 [FAIL] Inserting "XY" after deleting text after middle of a link containing <b> (Direct typing) in <p><a href="about:blank"><b>ab[cd</b></a>de]f</p>
-  assert_in_array: value "<p><a href=\"about:blank\"><b>ab</b></a><b>XY</b>f</p>" not in array ["<p><b><a href=\"about:blank\">ab</a>XY</b>f</p>", "<p><b><a href=\"about:blank\">ab</a>XY</b>f<br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\"><b>ab</b></a><b>XY</b>f</p>" not in array ["<p><b><a href=\\"about:blank\\">ab</a>XY</b>f</p>", "<p><b><a href=\\"about:blank\\">ab</a>XY</b>f<br></p>"]
 [PASS] Inserting "XY" after deleting text before middle of a link containing <b> (Direct typing) in <p>a[bc<a href="about:blank"><b>de]f</b></a></p>
 [FAIL] Inserting "XY" after deleting first character of a link containing <b> (Backspace) in <p><a href="about:blank"><b>[z]abc</b></a></p>
-  assert_in_array: value "<p>XY<a href=\"about:blank\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\"about:blank\">abc</a></b></p>", "<p><b>XY<a href=\"about:blank\">abc</a></b><br></p>"]
+  assert_in_array: value "<p>XY<a href=\\"about:blank\\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\\"about:blank\\">abc</a></b></p>", "<p><b>XY<a href=\\"about:blank\\">abc</a></b><br></p>"]
 [FAIL] Inserting "XY" after deleting last character in a non-collapsed range of a link containing <b> (Backspace) in <p><a href="about:blank"><b>abc[d]</b></a></p>
-  assert_in_array: value "<p><a href=\"about:blank\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\"about:blank\">abc</a>XY</b></p>", "<p><b><a href=\"about:blank\">abc</a>XY</b><br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\\"about:blank\\">abc</a>XY</b></p>", "<p><b><a href=\\"about:blank\\">abc</a>XY</b><br></p>"]
 [FAIL] Inserting "XY" after deleting text after middle of a link containing <b> (Backspace) in <p><a href="about:blank"><b>ab[cd</b></a>de]f</p>
-  assert_in_array: value "<p><a href=\"about:blank\"><b>ab</b></a><b>XY</b>f</p>" not in array ["<p><b><a href=\"about:blank\">ab</a>XY</b>f</p>", "<p><b><a href=\"about:blank\">ab</a>XY</b>f<br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\"><b>ab</b></a><b>XY</b>f</p>" not in array ["<p><b><a href=\\"about:blank\\">ab</a>XY</b>f</p>", "<p><b><a href=\\"about:blank\\">ab</a>XY</b>f<br></p>"]
 [PASS] Inserting "XY" after deleting text before middle of a link containing <b> (Backspace) in <p>a[bc<a href="about:blank"><b>de]f</b></a></p>
 [FAIL] Inserting "XY" after deleting first character of a link containing <b> (Delete) in <p><a href="about:blank"><b>[z]abc</b></a></p>
-  assert_in_array: value "<p>XY<a href=\"about:blank\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\"about:blank\">abc</a></b></p>", "<p><b>XY<a href=\"about:blank\">abc</a></b><br></p>"]
+  assert_in_array: value "<p>XY<a href=\\"about:blank\\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\\"about:blank\\">abc</a></b></p>", "<p><b>XY<a href=\\"about:blank\\">abc</a></b><br></p>"]
 [FAIL] Inserting "XY" after deleting last character in a non-collapsed range of a link containing <b> (Delete) in <p><a href="about:blank"><b>abc[d]</b></a></p>
-  assert_in_array: value "<p><a href=\"about:blank\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\"about:blank\">abc</a>XY</b></p>", "<p><b><a href=\"about:blank\">abc</a>XY</b><br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\\"about:blank\\">abc</a>XY</b></p>", "<p><b><a href=\\"about:blank\\">abc</a>XY</b><br></p>"]
 [FAIL] Inserting "XY" after deleting text after middle of a link containing <b> (Delete) in <p><a href="about:blank"><b>ab[cd</b></a>de]f</p>
-  assert_in_array: value "<p><a href=\"about:blank\"><b>ab</b></a><b>XY</b>f</p>" not in array ["<p><b><a href=\"about:blank\">ab</a>XY</b>f</p>", "<p><b><a href=\"about:blank\">ab</a>XY</b>f<br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\"><b>ab</b></a><b>XY</b>f</p>" not in array ["<p><b><a href=\\"about:blank\\">ab</a>XY</b>f</p>", "<p><b><a href=\\"about:blank\\">ab</a>XY</b>f<br></p>"]
 [PASS] Inserting "XY" after deleting text before middle of a link containing <b> (Delete) in <p>a[bc<a href="about:blank"><b>de]f</b></a></p>
 [FAIL] Inserting "XY" after deleting first character of a link containing <b> (execCommand("delete")) in <p><a href="about:blank"><b>[z]abc</b></a></p>
-  assert_in_array: value "<p>XY<a href=\"about:blank\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\"about:blank\">abc</a></b></p>", "<p><b>XY<a href=\"about:blank\">abc</a></b><br></p>"]
+  assert_in_array: value "<p>XY<a href=\\"about:blank\\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\\"about:blank\\">abc</a></b></p>", "<p><b>XY<a href=\\"about:blank\\">abc</a></b><br></p>"]
 [FAIL] Inserting "XY" after deleting last character in a non-collapsed range of a link containing <b> (execCommand("delete")) in <p><a href="about:blank"><b>abc[d]</b></a></p>
-  assert_in_array: value "<p><a href=\"about:blank\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\"about:blank\">abc</a>XY</b></p>", "<p><b><a href=\"about:blank\">abc</a>XY</b><br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\\"about:blank\\">abc</a>XY</b></p>", "<p><b><a href=\\"about:blank\\">abc</a>XY</b><br></p>"]
 [FAIL] Inserting "XY" after deleting text after middle of a link containing <b> (execCommand("delete")) in <p><a href="about:blank"><b>ab[cd</b></a>de]f</p>
-  assert_in_array: value "<p><a href=\"about:blank\"><b>ab</b></a><b>XY</b>f</p>" not in array ["<p><b><a href=\"about:blank\">ab</a>XY</b>f</p>", "<p><b><a href=\"about:blank\">ab</a>XY</b>f<br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\"><b>ab</b></a><b>XY</b>f</p>" not in array ["<p><b><a href=\\"about:blank\\">ab</a>XY</b>f</p>", "<p><b><a href=\\"about:blank\\">ab</a>XY</b>f<br></p>"]
 [PASS] Inserting "XY" after deleting text before middle of a link containing <b> (execCommand("delete")) in <p>a[bc<a href="about:blank"><b>de]f</b></a></p>
 [FAIL] Inserting "XY" after deleting first character of a link containing <b> (execCommand("forwarddelete")) in <p><a href="about:blank"><b>[z]abc</b></a></p>
-  assert_in_array: value "<p>XY<a href=\"about:blank\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\"about:blank\">abc</a></b></p>", "<p><b>XY<a href=\"about:blank\">abc</a></b><br></p>"]
+  assert_in_array: value "<p>XY<a href=\\"about:blank\\"><b>abc</b></a></p>" not in array ["<p><b>XY<a href=\\"about:blank\\">abc</a></b></p>", "<p><b>XY<a href=\\"about:blank\\">abc</a></b><br></p>"]
 [FAIL] Inserting "XY" after deleting last character in a non-collapsed range of a link containing <b> (execCommand("forwarddelete")) in <p><a href="about:blank"><b>abc[d]</b></a></p>
-  assert_in_array: value "<p><a href=\"about:blank\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\"about:blank\">abc</a>XY</b></p>", "<p><b><a href=\"about:blank\">abc</a>XY</b><br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\"><b>abc</b></a>XY</p>" not in array ["<p><b><a href=\\"about:blank\\">abc</a>XY</b></p>", "<p><b><a href=\\"about:blank\\">abc</a>XY</b><br></p>"]
 [FAIL] Inserting "XY" after deleting text after middle of a link containing <b> (execCommand("forwarddelete")) in <p><a href="about:blank"><b>ab[cd</b></a>de]f</p>
-  assert_in_array: value "<p><a href=\"about:blank\"><b>ab</b></a><b>XY</b>f</p>" not in array ["<p><b><a href=\"about:blank\">ab</a>XY</b>f</p>", "<p><b><a href=\"about:blank\">ab</a>XY</b>f<br></p>"]
+  assert_in_array: value "<p><a href=\\"about:blank\\"><b>ab</b></a><b>XY</b>f</p>" not in array ["<p><b><a href=\\"about:blank\\">ab</a>XY</b>f</p>", "<p><b><a href=\\"about:blank\\">ab</a>XY</b>f<br></p>"]
 [PASS] Inserting "XY" after deleting text before middle of a link containing <b> (execCommand("forwarddelete")) in <p>a[bc<a href="about:blank"><b>de]f</b></a></p>
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-non-collapsed-selection.tentative_target=DesignMode_parent=b-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-non-collapsed-selection.tentative_target=DesignMode_parent=b-expected.txt
index 94114e4..2fd44fa 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-non-collapsed-selection.tentative_target=DesignMode_parent=b-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-non-collapsed-selection.tentative_target=DesignMode_parent=b-expected.txt
@@ -2,7 +2,7 @@
 [PASS] Testing inserting content at non-collapsed selection around link element
 [PASS] Inserting "XY" after deleting first character of a link in <b> (Direct typing) in <p><b><a href="about:blank">[z]abc</a></b></p>
 [FAIL] Inserting "XY" after deleting last character in a non-collapsed range of a link in <b> (Direct typing) in <p><b><a href="about:blank">abc[d]</a></b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\">abcX</a>Y</b></p>" not in array ["<p><b><a href=\"about:blank\">abcXY</a></b></p>", "<p><b><a href=\"about:blank\">abcXY</a></b><br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\">abcX</a>Y</b></p>" not in array ["<p><b><a href=\\"about:blank\\">abcXY</a></b></p>", "<p><b><a href=\\"about:blank\\">abcXY</a></b><br></p>"]
 [PASS] Inserting "XY" after deleting text after middle of a link in <b> (Direct typing) in <p><b><a href="about:blank">ab[cd</a>de]f</b></p>
 [PASS] Inserting "XY" after deleting text before middle of a link in <b> (Direct typing) in <p><b>a[bc<a href="about:blank">de]f</a></b></p>
 [PASS] Inserting "XY" after deleting first character of a link in <b> (Backspace) in <p><b><a href="about:blank">[z]abc</a></b></p>
diff --git a/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-non-collapsed-selection.tentative_target=DesignMode_parent=b_child=i-expected.txt b/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-non-collapsed-selection.tentative_target=DesignMode_parent=b_child=i-expected.txt
index c688ae4..cf6c34a 100644
--- a/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-non-collapsed-selection.tentative_target=DesignMode_parent=b_child=i-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/other/typing-around-link-element-at-non-collapsed-selection.tentative_target=DesignMode_parent=b_child=i-expected.txt
@@ -2,37 +2,37 @@
 [PASS] Testing inserting content at non-collapsed selection around link element
 [PASS] Inserting "XY" after deleting first character of a link in <b> and containing <i> (Direct typing) in <p><b><a href="about:blank"><i>[z]abc</i></a></b></p>
 [FAIL] Inserting "XY" after deleting last character in a non-collapsed range of a link in <b> and containing <i> (Direct typing) in <p><b><a href="about:blank"><i>abc[d]</i></a></b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\"><i>abcX</i></a>Y</b></p>" not in array ["<p><b><a href=\"about:blank\"><i>abcXY</i></a></b></p>", "<p><b><a href=\"about:blank\"><i>abcXY</i></a></b><br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\"><i>abcX</i></a>Y</b></p>" not in array ["<p><b><a href=\\"about:blank\\"><i>abcXY</i></a></b></p>", "<p><b><a href=\\"about:blank\\"><i>abcXY</i></a></b><br></p>"]
 [FAIL] Inserting "XY" after deleting text after middle of a link in <b> and containing <i> (Direct typing) in <p><b><a href="about:blank"><i>ab[cd</i></a>de]f</b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\"><i>ab</i></a><i>XY</i>f</b></p>" not in array ["<p><b><i><a href=\"about:blank\">ab</a>XY</i>f</b></p>", "<p><b><i><a href=\"about:blank\">ab</a>XY</i>f</b><br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\"><i>ab</i></a><i>XY</i>f</b></p>" not in array ["<p><b><i><a href=\\"about:blank\\">ab</a>XY</i>f</b></p>", "<p><b><i><a href=\\"about:blank\\">ab</a>XY</i>f</b><br></p>"]
 [PASS] Inserting "XY" after deleting text before middle of a link in <b> and containing <i> (Direct typing) in <p><b>a[bc<a href="about:blank"><i>de]f</i></a></b></p>
 [FAIL] Inserting "XY" after deleting first character of a link in <b> and containing <i> (Backspace) in <p><b><a href="about:blank"><i>[z]abc</i></a></b></p>
-  assert_in_array: value "<p><b>XY<a href=\"about:blank\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\"about:blank\">abc</a></i></b></p>", "<p><b><i>XY<a href=\"about:blank\">abc</a></i></b><br></p>"]
+  assert_in_array: value "<p><b>XY<a href=\\"about:blank\\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b></p>", "<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b><br></p>"]
 [FAIL] Inserting "XY" after deleting last character in a non-collapsed range of a link in <b> and containing <i> (Backspace) in <p><b><a href="about:blank"><i>abc[d]</i></a></b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\"about:blank\">abc</a>XY</i></b></p>", "<p><b><i><a href=\"about:blank\">abc</a>XY</i></b><br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\\"about:blank\\">abc</a>XY</i></b></p>", "<p><b><i><a href=\\"about:blank\\">abc</a>XY</i></b><br></p>"]
 [FAIL] Inserting "XY" after deleting text after middle of a link in <b> and containing <i> (Backspace) in <p><b><a href="about:blank"><i>ab[cd</i></a>de]f</b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\"><i>ab</i></a><i>XY</i>f</b></p>" not in array ["<p><b><i><a href=\"about:blank\">ab</a>XY</i>f</b></p>", "<p><b><i><a href=\"about:blank\">ab</a>XY</i>f</b><br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\"><i>ab</i></a><i>XY</i>f</b></p>" not in array ["<p><b><i><a href=\\"about:blank\\">ab</a>XY</i>f</b></p>", "<p><b><i><a href=\\"about:blank\\">ab</a>XY</i>f</b><br></p>"]
 [PASS] Inserting "XY" after deleting text before middle of a link in <b> and containing <i> (Backspace) in <p><b>a[bc<a href="about:blank"><i>de]f</i></a></b></p>
 [FAIL] Inserting "XY" after deleting first character of a link in <b> and containing <i> (Delete) in <p><b><a href="about:blank"><i>[z]abc</i></a></b></p>
-  assert_in_array: value "<p><b>XY<a href=\"about:blank\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\"about:blank\">abc</a></i></b></p>", "<p><b><i>XY<a href=\"about:blank\">abc</a></i></b><br></p>"]
+  assert_in_array: value "<p><b>XY<a href=\\"about:blank\\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b></p>", "<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b><br></p>"]
 [FAIL] Inserting "XY" after deleting last character in a non-collapsed range of a link in <b> and containing <i> (Delete) in <p><b><a href="about:blank"><i>abc[d]</i></a></b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\"about:blank\">abc</a>XY</i></b></p>", "<p><b><i><a href=\"about:blank\">abc</a>XY</i></b><br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\\"about:blank\\">abc</a>XY</i></b></p>", "<p><b><i><a href=\\"about:blank\\">abc</a>XY</i></b><br></p>"]
 [FAIL] Inserting "XY" after deleting text after middle of a link in <b> and containing <i> (Delete) in <p><b><a href="about:blank"><i>ab[cd</i></a>de]f</b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\"><i>ab</i></a><i>XY</i>f</b></p>" not in array ["<p><b><i><a href=\"about:blank\">ab</a>XY</i>f</b></p>", "<p><b><i><a href=\"about:blank\">ab</a>XY</i>f</b><br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\"><i>ab</i></a><i>XY</i>f</b></p>" not in array ["<p><b><i><a href=\\"about:blank\\">ab</a>XY</i>f</b></p>", "<p><b><i><a href=\\"about:blank\\">ab</a>XY</i>f</b><br></p>"]
 [PASS] Inserting "XY" after deleting text before middle of a link in <b> and containing <i> (Delete) in <p><b>a[bc<a href="about:blank"><i>de]f</i></a></b></p>
 [FAIL] Inserting "XY" after deleting first character of a link in <b> and containing <i> (execCommand("delete")) in <p><b><a href="about:blank"><i>[z]abc</i></a></b></p>
-  assert_in_array: value "<p><b>XY<a href=\"about:blank\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\"about:blank\">abc</a></i></b></p>", "<p><b><i>XY<a href=\"about:blank\">abc</a></i></b><br></p>"]
+  assert_in_array: value "<p><b>XY<a href=\\"about:blank\\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b></p>", "<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b><br></p>"]
 [FAIL] Inserting "XY" after deleting last character in a non-collapsed range of a link in <b> and containing <i> (execCommand("delete")) in <p><b><a href="about:blank"><i>abc[d]</i></a></b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\"about:blank\">abc</a>XY</i></b></p>", "<p><b><i><a href=\"about:blank\">abc</a>XY</i></b><br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\\"about:blank\\">abc</a>XY</i></b></p>", "<p><b><i><a href=\\"about:blank\\">abc</a>XY</i></b><br></p>"]
 [FAIL] Inserting "XY" after deleting text after middle of a link in <b> and containing <i> (execCommand("delete")) in <p><b><a href="about:blank"><i>ab[cd</i></a>de]f</b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\"><i>ab</i></a><i>XY</i>f</b></p>" not in array ["<p><b><i><a href=\"about:blank\">ab</a>XY</i>f</b></p>", "<p><b><i><a href=\"about:blank\">ab</a>XY</i>f</b><br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\"><i>ab</i></a><i>XY</i>f</b></p>" not in array ["<p><b><i><a href=\\"about:blank\\">ab</a>XY</i>f</b></p>", "<p><b><i><a href=\\"about:blank\\">ab</a>XY</i>f</b><br></p>"]
 [PASS] Inserting "XY" after deleting text before middle of a link in <b> and containing <i> (execCommand("delete")) in <p><b>a[bc<a href="about:blank"><i>de]f</i></a></b></p>
 [FAIL] Inserting "XY" after deleting first character of a link in <b> and containing <i> (execCommand("forwarddelete")) in <p><b><a href="about:blank"><i>[z]abc</i></a></b></p>
-  assert_in_array: value "<p><b>XY<a href=\"about:blank\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\"about:blank\">abc</a></i></b></p>", "<p><b><i>XY<a href=\"about:blank\">abc</a></i></b><br></p>"]
+  assert_in_array: value "<p><b>XY<a href=\\"about:blank\\"><i>abc</i></a></b></p>" not in array ["<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b></p>", "<p><b><i>XY<a href=\\"about:blank\\">abc</a></i></b><br></p>"]
 [FAIL] Inserting "XY" after deleting last character in a non-collapsed range of a link in <b> and containing <i> (execCommand("forwarddelete")) in <p><b><a href="about:blank"><i>abc[d]</i></a></b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\"about:blank\">abc</a>XY</i></b></p>", "<p><b><i><a href=\"about:blank\">abc</a>XY</i></b><br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\"><i>abc</i></a>XY</b></p>" not in array ["<p><b><i><a href=\\"about:blank\\">abc</a>XY</i></b></p>", "<p><b><i><a href=\\"about:blank\\">abc</a>XY</i></b><br></p>"]
 [FAIL] Inserting "XY" after deleting text after middle of a link in <b> and containing <i> (execCommand("forwarddelete")) in <p><b><a href="about:blank"><i>ab[cd</i></a>de]f</b></p>
-  assert_in_array: value "<p><b><a href=\"about:blank\"><i>ab</i></a><i>XY</i>f</b></p>" not in array ["<p><b><i><a href=\"about:blank\">ab</a>XY</i>f</b></p>", "<p><b><i><a href=\"about:blank\">ab</a>XY</i>f</b><br></p>"]
+  assert_in_array: value "<p><b><a href=\\"about:blank\\"><i>ab</i></a><i>XY</i>f</b></p>" not in array ["<p><b><i><a href=\\"about:blank\\">ab</a>XY</i>f</b></p>", "<p><b><i><a href=\\"about:blank\\">ab</a>XY</i>f</b><br></p>"]
 [PASS] Inserting "XY" after deleting text before middle of a link in <b> and containing <i> (execCommand("forwarddelete")) in <p><b>a[bc<a href="about:blank"><i>de]f</i></a></b></p>
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/backcolor-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/backcolor-expected.txt
index 1210f039..9b0553d 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/backcolor-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/backcolor-expected.txt
@@ -77,7 +77,7 @@
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>": execCommand("backcolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"background-color:rgb(0, 255, 255)\">foo</span></p><p> <span style=\"background-color:rgb(0, 255, 255)\"><span>bar</span></span> </p><p><span style=\"background-color:rgb(0, 255, 255)\">baz</span></p>" but got "<p><span style=\"background-color:rgb(0, 255, 255)\">foo</span></p><p> <span style=\"background-color:rgb(0, 255, 255)\"><span>bar</span> </span></p><p><span style=\"background-color:rgb(0, 255, 255)\">baz</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"background-color:rgb(0, 255, 255)\\">foo</span></p><p> <span style=\\"background-color:rgb(0, 255, 255)\\"><span>bar</span></span> </p><p><span style=\\"background-color:rgb(0, 255, 255)\\">baz</span></p>" but got "<p><span style=\\"background-color:rgb(0, 255, 255)\\">foo</span></p><p> <span style=\\"background-color:rgb(0, 255, 255)\\"><span>bar</span> </span></p><p><span style=\\"background-color:rgb(0, 255, 255)\\">baz</span></p>"
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandValue("stylewithcss") before
@@ -94,7 +94,7 @@
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>": execCommand("backcolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"background-color:rgb(0, 255, 255)\">foo</span></p><p> <span style=\"background-color:rgb(0, 255, 255)\"><span>bar</span></span> </p><p><span style=\"background-color:rgb(0, 255, 255)\">baz</span></p>" but got "<p><span style=\"background-color:rgb(0, 255, 255)\">foo</span></p><p> <span style=\"background-color:rgb(0, 255, 255)\"><span>bar</span> </span></p><p><span style=\"background-color:rgb(0, 255, 255)\">baz</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"background-color:rgb(0, 255, 255)\\">foo</span></p><p> <span style=\\"background-color:rgb(0, 255, 255)\\"><span>bar</span></span> </p><p><span style=\\"background-color:rgb(0, 255, 255)\\">baz</span></p>" but got "<p><span style=\\"background-color:rgb(0, 255, 255)\\">foo</span></p><p> <span style=\\"background-color:rgb(0, 255, 255)\\"><span>bar</span> </span></p><p><span style=\\"background-color:rgb(0, 255, 255)\\">baz</span></p>"
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandValue("stylewithcss") before
@@ -499,295 +499,295 @@
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandState("backcolor") after
 [FAIL] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandValue("backcolor") after
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgba(0, 0, 0, 0)"
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: rgb(0, 255, 255)\">foo[bar]baz</p>": execCommand("backcolor", false, "#00FFFF") return value
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: rgb(0, 255, 255)\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["backcolor","#00FFFF"]] "<p style=\"background-color: rgb(0, 255, 255)\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"background-color:rgb(0, 255, 255)\">foobarbaz</p>" but got "<p style=\"\"><span style=\"background-color:rgb(0, 255, 255)\">foobarbaz</span></p>"
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: rgb(0, 255, 255)\">foo[bar]baz</p>" queryCommandIndeterm("backcolor") before
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: rgb(0, 255, 255)\">foo[bar]baz</p>" queryCommandState("backcolor") before
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: rgb(0, 255, 255)\">foo[bar]baz</p>" queryCommandValue("backcolor") before
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: rgb(0, 255, 255)\">foo[bar]baz</p>" queryCommandIndeterm("backcolor") after
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: rgb(0, 255, 255)\">foo[bar]baz</p>" queryCommandState("backcolor") after
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: rgb(0, 255, 255)\">foo[bar]baz</p>" queryCommandValue("backcolor") after
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: #00ffff\">foo[bar]baz</p>": execCommand("backcolor", false, "#00FFFF") return value
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: #00ffff\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["backcolor","#00FFFF"]] "<p style=\"background-color: #00ffff\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"background-color:rgb(0, 255, 255)\">foobarbaz</p>" but got "<p style=\"\"><span style=\"background-color:rgb(0, 255, 255)\">foobarbaz</span></p>"
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: #00ffff\">foo[bar]baz</p>" queryCommandIndeterm("backcolor") before
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: #00ffff\">foo[bar]baz</p>" queryCommandState("backcolor") before
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: #00ffff\">foo[bar]baz</p>" queryCommandValue("backcolor") before
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: #00ffff\">foo[bar]baz</p>" queryCommandIndeterm("backcolor") after
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: #00ffff\">foo[bar]baz</p>" queryCommandState("backcolor") after
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: #00ffff\">foo[bar]baz</p>" queryCommandValue("backcolor") after
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo[bar]baz</p>": execCommand("backcolor", false, "#00FFFF") return value
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["backcolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"background-color:rgb(0, 255, 255)\">foobarbaz</p>" but got "<p style=\"\"><span style=\"background-color:rgb(0, 255, 255)\">foo</span><span style=\"background-color:rgb(0, 255, 255)\">bar</span><span style=\"background-color:rgb(0, 255, 255)\">baz</span></p>"
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" queryCommandIndeterm("backcolor") before
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" queryCommandState("backcolor") before
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" queryCommandValue("backcolor") before
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" queryCommandIndeterm("backcolor") after
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" queryCommandState("backcolor") after
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" queryCommandValue("backcolor") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}": execCommand("backcolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"background-color:rgb(0, 255, 255)\">foo</p><p><span style=\"background-color:rgb(0, 255, 255)\">bar</span></p>" but got "<p style=\"\"><span style=\"background-color:rgb(0, 255, 255)\">foo</span></p><p><span style=\"background-color:rgb(0, 255, 255)\">bar</span></p>"
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandValue("stylewithcss") after
-[FAIL] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandIndeterm("backcolor") before
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: rgb(0, 255, 255)\\">foo[bar]baz</p>": execCommand("backcolor", false, "#00FFFF") return value
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: rgb(0, 255, 255)\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["backcolor","#00FFFF"]] "<p style=\\"background-color: rgb(0, 255, 255)\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"background-color:rgb(0, 255, 255)\\">foobarbaz</p>" but got "<p style=\\"\\"><span style=\\"background-color:rgb(0, 255, 255)\\">foobarbaz</span></p>"
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: rgb(0, 255, 255)\\">foo[bar]baz</p>" queryCommandIndeterm("backcolor") before
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: rgb(0, 255, 255)\\">foo[bar]baz</p>" queryCommandState("backcolor") before
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: rgb(0, 255, 255)\\">foo[bar]baz</p>" queryCommandValue("backcolor") before
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: rgb(0, 255, 255)\\">foo[bar]baz</p>" queryCommandIndeterm("backcolor") after
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: rgb(0, 255, 255)\\">foo[bar]baz</p>" queryCommandState("backcolor") after
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: rgb(0, 255, 255)\\">foo[bar]baz</p>" queryCommandValue("backcolor") after
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: #00ffff\\">foo[bar]baz</p>": execCommand("backcolor", false, "#00FFFF") return value
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: #00ffff\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["backcolor","#00FFFF"]] "<p style=\\"background-color: #00ffff\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"background-color:rgb(0, 255, 255)\\">foobarbaz</p>" but got "<p style=\\"\\"><span style=\\"background-color:rgb(0, 255, 255)\\">foobarbaz</span></p>"
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: #00ffff\\">foo[bar]baz</p>" queryCommandIndeterm("backcolor") before
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: #00ffff\\">foo[bar]baz</p>" queryCommandState("backcolor") before
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: #00ffff\\">foo[bar]baz</p>" queryCommandValue("backcolor") before
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: #00ffff\\">foo[bar]baz</p>" queryCommandIndeterm("backcolor") after
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: #00ffff\\">foo[bar]baz</p>" queryCommandState("backcolor") after
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: #00ffff\\">foo[bar]baz</p>" queryCommandValue("backcolor") after
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>": execCommand("backcolor", false, "#00FFFF") return value
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["backcolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"background-color:rgb(0, 255, 255)\\">foobarbaz</p>" but got "<p style=\\"\\"><span style=\\"background-color:rgb(0, 255, 255)\\">foo</span><span style=\\"background-color:rgb(0, 255, 255)\\">bar</span><span style=\\"background-color:rgb(0, 255, 255)\\">baz</span></p>"
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" queryCommandIndeterm("backcolor") before
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" queryCommandState("backcolor") before
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" queryCommandValue("backcolor") before
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" queryCommandIndeterm("backcolor") after
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" queryCommandState("backcolor") after
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" queryCommandValue("backcolor") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}": execCommand("backcolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"background-color:rgb(0, 255, 255)\\">foo</p><p><span style=\\"background-color:rgb(0, 255, 255)\\">bar</span></p>" but got "<p style=\\"\\"><span style=\\"background-color:rgb(0, 255, 255)\\">foo</span></p><p><span style=\\"background-color:rgb(0, 255, 255)\\">bar</span></p>"
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandValue("stylewithcss") after
+[FAIL] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandIndeterm("backcolor") before
   assert_equals: Wrong result returned expected true but got false
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandState("backcolor") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandValue("backcolor") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandIndeterm("backcolor") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandState("backcolor") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandValue("backcolor") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}": execCommand("backcolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"background-color:rgb(0, 255, 255)\">foo</p><p><span style=\"background-color:rgb(0, 255, 255)\">bar</span></p>" but got "<p style=\"\"><span style=\"background-color:rgb(0, 255, 255)\">foo</span></p><p><span style=\"background-color:rgb(0, 255, 255)\">bar</span></p>"
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandValue("stylewithcss") after
-[FAIL] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandIndeterm("backcolor") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandState("backcolor") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandValue("backcolor") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandIndeterm("backcolor") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandState("backcolor") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandValue("backcolor") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}": execCommand("backcolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"background-color:rgb(0, 255, 255)\\">foo</p><p><span style=\\"background-color:rgb(0, 255, 255)\\">bar</span></p>" but got "<p style=\\"\\"><span style=\\"background-color:rgb(0, 255, 255)\\">foo</span></p><p><span style=\\"background-color:rgb(0, 255, 255)\\">bar</span></p>"
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandValue("stylewithcss") after
+[FAIL] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandIndeterm("backcolor") before
   assert_equals: Wrong result returned expected true but got false
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandState("backcolor") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandValue("backcolor") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandIndeterm("backcolor") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandState("backcolor") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandValue("backcolor") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("backcolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"background-color:rgb(0, 255, 255)\">foobarbaz</span>" but got "<span style=\"background-color:rgb(0, 255, 255)\">foo</span><span style=\"background-color:rgb(0, 255, 255)\">bar</span><span style=\"background-color:rgb(0, 255, 255)\">baz</span>"
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("backcolor") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("backcolor") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("backcolor") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("backcolor") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("backcolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"background-color:rgb(0, 255, 255)\">foobarbaz</span>" but got "<span style=\"background-color:rgb(0, 255, 255)\">foo</span><span style=\"background-color:rgb(0, 255, 255)\">bar</span><span style=\"background-color:rgb(0, 255, 255)\">baz</span>"
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("backcolor") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("backcolor") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("backcolor") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("backcolor") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("backcolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("backcolor") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("backcolor") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("backcolor") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("backcolor") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("backcolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("backcolor") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("backcolor") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("backcolor") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("backcolor") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("backcolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("backcolor") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("backcolor") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("backcolor") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("backcolor") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("backcolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("backcolor") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("backcolor") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("backcolor") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("backcolor") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("backcolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("backcolor") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("backcolor") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("backcolor") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("backcolor") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("backcolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("backcolor") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("backcolor") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("backcolor") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("backcolor") after
-[PASS] [["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</span>": execCommand("backcolor", false, "#00FFFF") return value
-[PASS] [["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</span>" checks for modifications to non-editable content
-[FAIL] [["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"background-color:rgb(0, 255, 255)\">foo<span style=\"background-color:rgb(210, 180, 140)\">b</span>arbaz</span>" but got "<span style=\"background-color:rgb(0, 255, 255)\">foo</span><span style=\"background-color:rgb(210, 180, 140)\">b</span><span style=\"background-color:rgb(0, 255, 255)\">ar</span><span style=\"background-color:rgb(0, 255, 255)\">baz</span>"
-[PASS] [["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</span>" queryCommandIndeterm("backcolor") before
-[PASS] [["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</span>" queryCommandState("backcolor") before
-[PASS] [["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</span>" queryCommandValue("backcolor") before
-[PASS] [["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</span>" queryCommandIndeterm("backcolor") after
-[PASS] [["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</span>" queryCommandState("backcolor") after
-[PASS] [["backcolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</span>" queryCommandValue("backcolor") after
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</p>": execCommand("backcolor", false, "#00FFFF") return value
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</p>" checks for modifications to non-editable content
-[FAIL] [["backcolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"background-color:rgb(0, 255, 255)\">foo<span style=\"background-color:rgb(210, 180, 140)\">b</span>arbaz</p>" but got "<p style=\"\"><span style=\"background-color:rgb(0, 255, 255)\">foo</span><span style=\"background-color:rgb(210, 180, 140)\">b</span><span style=\"background-color:rgb(0, 255, 255)\">ar</span><span style=\"background-color:rgb(0, 255, 255)\">baz</span></p>"
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</p>" queryCommandIndeterm("backcolor") before
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</p>" queryCommandState("backcolor") before
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</p>" queryCommandValue("backcolor") before
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</p>" queryCommandIndeterm("backcolor") after
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</p>" queryCommandState("backcolor") after
-[PASS] [["backcolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</p>" queryCommandValue("backcolor") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>": execCommand("backcolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"background-color:rgb(0, 255, 255)\"><p style=\"background-color:rgb(210, 180, 140)\">b<span style=\"background-color:rgb(0, 255, 255)\">ar</span></p></div>" but got "<div style=\"\"><p style=\"\"><span style=\"background-color:rgb(210, 180, 140)\">b</span><span style=\"background-color:rgb(0, 255, 255)\">ar</span></p></div>"
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandIndeterm("backcolor") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandState("backcolor") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandValue("backcolor") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandIndeterm("backcolor") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandState("backcolor") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandValue("backcolor") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>": execCommand("backcolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"background-color:rgb(0, 255, 255)\"><p style=\"background-color:rgb(210, 180, 140)\">b<span style=\"background-color:rgb(0, 255, 255)\">ar</span></p></div>" but got "<div style=\"\"><p style=\"\"><span style=\"background-color:rgb(210, 180, 140)\">b</span><span style=\"background-color:rgb(0, 255, 255)\">ar</span></p></div>"
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandIndeterm("backcolor") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandState("backcolor") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandValue("backcolor") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandIndeterm("backcolor") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandState("backcolor") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandValue("backcolor") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>": execCommand("backcolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"display:block; background-color:rgb(0, 255, 255)\"><span style=\"display:block; background-color:rgb(210, 180, 140)\">b<span style=\"background-color:rgb(0, 255, 255)\">ar</span></span></span>" but got "<span style=\"display:block\"><span style=\"display:block\"><span style=\"background-color:rgb(210, 180, 140)\">b</span><span style=\"background-color:rgb(0, 255, 255)\">ar</span></span></span>"
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandIndeterm("backcolor") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandState("backcolor") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandValue("backcolor") before
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandIndeterm("backcolor") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandState("backcolor") after
-[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandValue("backcolor") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>": execCommand("backcolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"display:block; background-color:rgb(0, 255, 255)\"><span style=\"display:block; background-color:rgb(210, 180, 140)\">b<span style=\"background-color:rgb(0, 255, 255)\">ar</span></span></span>" but got "<span style=\"display:block\"><span style=\"display:block\"><span style=\"background-color:rgb(210, 180, 140)\">b</span><span style=\"background-color:rgb(0, 255, 255)\">ar</span></span></span>"
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandIndeterm("backcolor") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandState("backcolor") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandValue("backcolor") before
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandIndeterm("backcolor") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandState("backcolor") after
-[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandValue("backcolor") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandState("backcolor") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandValue("backcolor") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandIndeterm("backcolor") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandState("backcolor") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandValue("backcolor") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("backcolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"background-color:rgb(0, 255, 255)\\">foobarbaz</span>" but got "<span style=\\"background-color:rgb(0, 255, 255)\\">foo</span><span style=\\"background-color:rgb(0, 255, 255)\\">bar</span><span style=\\"background-color:rgb(0, 255, 255)\\">baz</span>"
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("backcolor") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("backcolor") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("backcolor") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("backcolor") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("backcolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"background-color:rgb(0, 255, 255)\\">foobarbaz</span>" but got "<span style=\\"background-color:rgb(0, 255, 255)\\">foo</span><span style=\\"background-color:rgb(0, 255, 255)\\">bar</span><span style=\\"background-color:rgb(0, 255, 255)\\">baz</span>"
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("backcolor") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("backcolor") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("backcolor") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("backcolor") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("backcolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("backcolor") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("backcolor") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("backcolor") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("backcolor") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("backcolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("backcolor") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("backcolor") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("backcolor") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("backcolor") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("backcolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("backcolor") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("backcolor") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("backcolor") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("backcolor") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("backcolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("backcolor") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("backcolor") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("backcolor") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("backcolor") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("backcolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("backcolor") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("backcolor") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("backcolor") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("backcolor") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("backcolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("backcolor") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("backcolor") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("backcolor") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("backcolor") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("backcolor") after
+[PASS] [["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</span>": execCommand("backcolor", false, "#00FFFF") return value
+[PASS] [["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</span>" checks for modifications to non-editable content
+[FAIL] [["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"background-color:rgb(0, 255, 255)\\">foo<span style=\\"background-color:rgb(210, 180, 140)\\">b</span>arbaz</span>" but got "<span style=\\"background-color:rgb(0, 255, 255)\\">foo</span><span style=\\"background-color:rgb(210, 180, 140)\\">b</span><span style=\\"background-color:rgb(0, 255, 255)\\">ar</span><span style=\\"background-color:rgb(0, 255, 255)\\">baz</span>"
+[PASS] [["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</span>" queryCommandIndeterm("backcolor") before
+[PASS] [["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</span>" queryCommandState("backcolor") before
+[PASS] [["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</span>" queryCommandValue("backcolor") before
+[PASS] [["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</span>" queryCommandIndeterm("backcolor") after
+[PASS] [["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</span>" queryCommandState("backcolor") after
+[PASS] [["backcolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</span>" queryCommandValue("backcolor") after
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</p>": execCommand("backcolor", false, "#00FFFF") return value
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</p>" checks for modifications to non-editable content
+[FAIL] [["backcolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"background-color:rgb(0, 255, 255)\\">foo<span style=\\"background-color:rgb(210, 180, 140)\\">b</span>arbaz</p>" but got "<p style=\\"\\"><span style=\\"background-color:rgb(0, 255, 255)\\">foo</span><span style=\\"background-color:rgb(210, 180, 140)\\">b</span><span style=\\"background-color:rgb(0, 255, 255)\\">ar</span><span style=\\"background-color:rgb(0, 255, 255)\\">baz</span></p>"
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</p>" queryCommandIndeterm("backcolor") before
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</p>" queryCommandState("backcolor") before
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</p>" queryCommandValue("backcolor") before
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</p>" queryCommandIndeterm("backcolor") after
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</p>" queryCommandState("backcolor") after
+[PASS] [["backcolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</p>" queryCommandValue("backcolor") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>": execCommand("backcolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"background-color:rgb(0, 255, 255)\\"><p style=\\"background-color:rgb(210, 180, 140)\\">b<span style=\\"background-color:rgb(0, 255, 255)\\">ar</span></p></div>" but got "<div style=\\"\\"><p style=\\"\\"><span style=\\"background-color:rgb(210, 180, 140)\\">b</span><span style=\\"background-color:rgb(0, 255, 255)\\">ar</span></p></div>"
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandIndeterm("backcolor") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandState("backcolor") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandValue("backcolor") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandIndeterm("backcolor") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandState("backcolor") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandValue("backcolor") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>": execCommand("backcolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"background-color:rgb(0, 255, 255)\\"><p style=\\"background-color:rgb(210, 180, 140)\\">b<span style=\\"background-color:rgb(0, 255, 255)\\">ar</span></p></div>" but got "<div style=\\"\\"><p style=\\"\\"><span style=\\"background-color:rgb(210, 180, 140)\\">b</span><span style=\\"background-color:rgb(0, 255, 255)\\">ar</span></p></div>"
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandIndeterm("backcolor") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandState("backcolor") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandValue("backcolor") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandIndeterm("backcolor") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandState("backcolor") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandValue("backcolor") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>": execCommand("backcolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"display:block; background-color:rgb(0, 255, 255)\\"><span style=\\"display:block; background-color:rgb(210, 180, 140)\\">b<span style=\\"background-color:rgb(0, 255, 255)\\">ar</span></span></span>" but got "<span style=\\"display:block\\"><span style=\\"display:block\\"><span style=\\"background-color:rgb(210, 180, 140)\\">b</span><span style=\\"background-color:rgb(0, 255, 255)\\">ar</span></span></span>"
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandIndeterm("backcolor") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandState("backcolor") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandValue("backcolor") before
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandIndeterm("backcolor") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandState("backcolor") after
+[PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandValue("backcolor") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>": execCommand("backcolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"display:block; background-color:rgb(0, 255, 255)\\"><span style=\\"display:block; background-color:rgb(210, 180, 140)\\">b<span style=\\"background-color:rgb(0, 255, 255)\\">ar</span></span></span>" but got "<span style=\\"display:block\\"><span style=\\"display:block\\"><span style=\\"background-color:rgb(210, 180, 140)\\">b</span><span style=\\"background-color:rgb(0, 255, 255)\\">ar</span></span></span>"
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandIndeterm("backcolor") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandState("backcolor") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandValue("backcolor") before
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandIndeterm("backcolor") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandState("backcolor") after
+[PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandValue("backcolor") after
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz": execCommand("backcolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["backcolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\"background-color:rgb(0, 255, 255)\">o</span><span style=\"background-color:rgb(210, 180, 140)\"><span style=\"background-color:rgb(0, 255, 255)\">b</span>ar</span>baz" but got "fo<span style=\"background-color:rgb(0, 255, 255)\">ob</span><span style=\"background-color:rgb(210, 180, 140)\">ar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\\"background-color:rgb(0, 255, 255)\\">o</span><span style=\\"background-color:rgb(210, 180, 140)\\"><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>ar</span>baz" but got "fo<span style=\\"background-color:rgb(0, 255, 255)\\">ob</span><span style=\\"background-color:rgb(210, 180, 140)\\">ar</span>baz"
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz" queryCommandValue("stylewithcss") before
@@ -805,7 +805,7 @@
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz": execCommand("backcolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["backcolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\"background-color:rgb(0, 255, 255)\">o</span><span style=\"background-color:rgb(210, 180, 140)\"><span style=\"background-color:rgb(0, 255, 255)\">b</span>ar</span>baz" but got "fo<span style=\"background-color:rgb(0, 255, 255)\">ob</span><span style=\"background-color:rgb(210, 180, 140)\">ar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\\"background-color:rgb(0, 255, 255)\\">o</span><span style=\\"background-color:rgb(210, 180, 140)\\"><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>ar</span>baz" but got "fo<span style=\\"background-color:rgb(0, 255, 255)\\">ob</span><span style=\\"background-color:rgb(210, 180, 140)\\">ar</span>baz"
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz" queryCommandValue("stylewithcss") before
@@ -823,7 +823,7 @@
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az": execCommand("backcolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"background-color:rgb(210, 180, 140)\">ba<span style=\"background-color:rgb(0, 255, 255)\">r</span></span><span style=\"background-color:rgb(0, 255, 255)\">b</span>az" but got "foo<span style=\"background-color:rgb(210, 180, 140)\">ba</span><span style=\"background-color:rgb(0, 255, 255)\">rb</span>az"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"background-color:rgb(210, 180, 140)\\">ba<span style=\\"background-color:rgb(0, 255, 255)\\">r</span></span><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>az" but got "foo<span style=\\"background-color:rgb(210, 180, 140)\\">ba</span><span style=\\"background-color:rgb(0, 255, 255)\\">rb</span>az"
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az" queryCommandValue("stylewithcss") before
@@ -841,7 +841,7 @@
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az": execCommand("backcolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"background-color:rgb(210, 180, 140)\">ba<span style=\"background-color:rgb(0, 255, 255)\">r</span></span><span style=\"background-color:rgb(0, 255, 255)\">b</span>az" but got "foo<span style=\"background-color:rgb(210, 180, 140)\">ba</span><span style=\"background-color:rgb(0, 255, 255)\">rb</span>az"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"background-color:rgb(210, 180, 140)\\">ba<span style=\\"background-color:rgb(0, 255, 255)\\">r</span></span><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>az" but got "foo<span style=\\"background-color:rgb(210, 180, 140)\\">ba</span><span style=\\"background-color:rgb(0, 255, 255)\\">rb</span>az"
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az" queryCommandValue("stylewithcss") before
@@ -869,7 +869,7 @@
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz": execCommand("backcolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["backcolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"background-color:rgb(210, 180, 140)\"><span style=\"background-color:rgb(0, 255, 255)\">b</span>ar</span>baz" but got "foo<span style=\"background-color:rgb(0, 255, 255)\">b</span><span style=\"background-color:rgb(210, 180, 140)\">ar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"background-color:rgb(210, 180, 140)\\"><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>ar</span>baz" but got "foo<span style=\\"background-color:rgb(0, 255, 255)\\">b</span><span style=\\"background-color:rgb(210, 180, 140)\\">ar</span>baz"
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz" queryCommandValue("stylewithcss") before
@@ -886,7 +886,7 @@
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz": execCommand("backcolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["backcolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"background-color:rgb(210, 180, 140)\"><span style=\"background-color:rgb(0, 255, 255)\">b</span>ar</span>baz" but got "foo<span style=\"background-color:rgb(0, 255, 255)\">b</span><span style=\"background-color:rgb(210, 180, 140)\">ar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"background-color:rgb(210, 180, 140)\\"><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>ar</span>baz" but got "foo<span style=\\"background-color:rgb(0, 255, 255)\\">b</span><span style=\\"background-color:rgb(210, 180, 140)\\">ar</span>baz"
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz" queryCommandValue("stylewithcss") before
@@ -903,7 +903,7 @@
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz": execCommand("backcolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"background-color:rgb(210, 180, 140)\">ba<span style=\"background-color:rgb(0, 255, 255)\">r</span></span>baz" but got "foo<span style=\"background-color:rgb(210, 180, 140)\">ba</span><span style=\"background-color:rgb(0, 255, 255)\">r</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"background-color:rgb(210, 180, 140)\\">ba<span style=\\"background-color:rgb(0, 255, 255)\\">r</span></span>baz" but got "foo<span style=\\"background-color:rgb(210, 180, 140)\\">ba</span><span style=\\"background-color:rgb(0, 255, 255)\\">r</span>baz"
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz" queryCommandValue("stylewithcss") before
@@ -920,7 +920,7 @@
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz": execCommand("backcolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"background-color:rgb(210, 180, 140)\">ba<span style=\"background-color:rgb(0, 255, 255)\">r</span></span>baz" but got "foo<span style=\"background-color:rgb(210, 180, 140)\">ba</span><span style=\"background-color:rgb(0, 255, 255)\">r</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"background-color:rgb(210, 180, 140)\\">ba<span style=\\"background-color:rgb(0, 255, 255)\\">r</span></span>baz" but got "foo<span style=\\"background-color:rgb(210, 180, 140)\\">ba</span><span style=\\"background-color:rgb(0, 255, 255)\\">r</span>baz"
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz" queryCommandValue("stylewithcss") before
@@ -964,7 +964,7 @@
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>": execCommand("backcolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"background-color:rgb(210, 180, 140)\">fo<span style=\"background-color:rgb(0, 255, 255)\">o</span></span><span style=\"background-color:rgb(255, 255, 0)\"><span style=\"background-color:rgb(0, 255, 255)\">b</span>ar</span>" but got "<span style=\"background-color:rgb(210, 180, 140)\">fo</span><span style=\"background-color:rgb(0, 255, 255)\">ob</span><span style=\"background-color:rgb(255, 255, 0)\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"background-color:rgb(210, 180, 140)\\">fo<span style=\\"background-color:rgb(0, 255, 255)\\">o</span></span><span style=\\"background-color:rgb(255, 255, 0)\\"><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>ar</span>" but got "<span style=\\"background-color:rgb(210, 180, 140)\\">fo</span><span style=\\"background-color:rgb(0, 255, 255)\\">ob</span><span style=\\"background-color:rgb(255, 255, 0)\\">ar</span>"
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -982,7 +982,7 @@
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>": execCommand("backcolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"background-color:rgb(210, 180, 140)\">fo<span style=\"background-color:rgb(0, 255, 255)\">o</span></span><span style=\"background-color:rgb(255, 255, 0)\"><span style=\"background-color:rgb(0, 255, 255)\">b</span>ar</span>" but got "<span style=\"background-color:rgb(210, 180, 140)\">fo</span><span style=\"background-color:rgb(0, 255, 255)\">ob</span><span style=\"background-color:rgb(255, 255, 0)\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"background-color:rgb(210, 180, 140)\\">fo<span style=\\"background-color:rgb(0, 255, 255)\\">o</span></span><span style=\\"background-color:rgb(255, 255, 0)\\"><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>ar</span>" but got "<span style=\\"background-color:rgb(210, 180, 140)\\">fo</span><span style=\\"background-color:rgb(0, 255, 255)\\">ob</span><span style=\\"background-color:rgb(255, 255, 0)\\">ar</span>"
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1000,7 +1000,7 @@
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>": execCommand("backcolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"background-color:rgb(210, 180, 140)\">fo<span style=\"background-color:rgb(0, 255, 255)\">o</span></span><span style=\"background-color:rgb(210, 180, 140)\"><span style=\"background-color:rgb(0, 255, 255)\">b</span>ar</span>" but got "<span style=\"background-color:rgb(210, 180, 140)\">fo</span><span style=\"background-color:rgb(0, 255, 255)\">ob</span><span style=\"background-color:rgb(210, 180, 140)\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"background-color:rgb(210, 180, 140)\\">fo<span style=\\"background-color:rgb(0, 255, 255)\\">o</span></span><span style=\\"background-color:rgb(210, 180, 140)\\"><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>ar</span>" but got "<span style=\\"background-color:rgb(210, 180, 140)\\">fo</span><span style=\\"background-color:rgb(0, 255, 255)\\">ob</span><span style=\\"background-color:rgb(210, 180, 140)\\">ar</span>"
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1017,7 +1017,7 @@
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>": execCommand("backcolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"background-color:rgb(210, 180, 140)\">fo<span style=\"background-color:rgb(0, 255, 255)\">o</span></span><span style=\"background-color:rgb(210, 180, 140)\"><span style=\"background-color:rgb(0, 255, 255)\">b</span>ar</span>" but got "<span style=\"background-color:rgb(210, 180, 140)\">fo</span><span style=\"background-color:rgb(0, 255, 255)\">ob</span><span style=\"background-color:rgb(210, 180, 140)\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"background-color:rgb(210, 180, 140)\\">fo<span style=\\"background-color:rgb(0, 255, 255)\\">o</span></span><span style=\\"background-color:rgb(210, 180, 140)\\"><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>ar</span>" but got "<span style=\\"background-color:rgb(210, 180, 140)\\">fo</span><span style=\\"background-color:rgb(0, 255, 255)\\">ob</span><span style=\\"background-color:rgb(210, 180, 140)\\">ar</span>"
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1034,7 +1034,7 @@
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>": execCommand("backcolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"background-color:rgb(210, 180, 140)\">fo<span style=\"background-color:rgb(0, 255, 255)\">o</span><span style=\"background-color:rgba(0, 0, 0, 0)\"><span style=\"background-color:rgb(0, 255, 255)\">b</span>ar</span></span>" but got "<span style=\"background-color:rgb(210, 180, 140)\">fo</span><span style=\"background-color:rgb(0, 255, 255)\">ob</span><span style=\"background-color:rgba(0, 0, 0, 0)\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"background-color:rgb(210, 180, 140)\\">fo<span style=\\"background-color:rgb(0, 255, 255)\\">o</span><span style=\\"background-color:rgba(0, 0, 0, 0)\\"><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>ar</span></span>" but got "<span style=\\"background-color:rgb(210, 180, 140)\\">fo</span><span style=\\"background-color:rgb(0, 255, 255)\\">ob</span><span style=\\"background-color:rgba(0, 0, 0, 0)\\">ar</span>"
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>" queryCommandValue("stylewithcss") before
@@ -1051,7 +1051,7 @@
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>": execCommand("backcolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"background-color:rgb(210, 180, 140)\">fo<span style=\"background-color:rgb(0, 255, 255)\">o</span><span style=\"background-color:rgba(0, 0, 0, 0)\"><span style=\"background-color:rgb(0, 255, 255)\">b</span>ar</span></span>" but got "<span style=\"background-color:rgb(210, 180, 140)\">fo</span><span style=\"background-color:rgb(0, 255, 255)\">ob</span><span style=\"background-color:rgba(0, 0, 0, 0)\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"background-color:rgb(210, 180, 140)\\">fo<span style=\\"background-color:rgb(0, 255, 255)\\">o</span><span style=\\"background-color:rgba(0, 0, 0, 0)\\"><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>ar</span></span>" but got "<span style=\\"background-color:rgb(210, 180, 140)\\">fo</span><span style=\\"background-color:rgb(0, 255, 255)\\">ob</span><span style=\\"background-color:rgba(0, 0, 0, 0)\\">ar</span>"
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["backcolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/bold_3001-last-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/bold_3001-last-expected.txt
index 3e2a022f..19b5b01 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/bold_3001-last-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/bold_3001-last-expected.txt
@@ -15,16 +15,16 @@
   assert_equals: Wrong result returned expected true but got false
 [FAIL] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:100>fo[o</span><span style=font-weight:200>b]ar</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "abc<b>[d<span contenteditable=\"false\"><b>e</b></span>f]</b>ghi": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "abc<b>[d<span contenteditable=\"false\"><b>e</b></span>f]</b>ghi": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "abc<b>[d<span contenteditable=\"false\"><b>e</b></span>f]</b>ghi" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "abc<b>[d<span contenteditable=\"false\"><b>e</b></span>f]</b>ghi" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "abcd<span contenteditable=\"false\"><b>e</b></span>fghi" but got "abcd<span contenteditable=\"false\" style=\"\"><b>e</b></span>fghi"
-[PASS] [["stylewithcss","false"],["bold",""]] "abc<b>[d<span contenteditable=\"false\"><span contenteditable><b>e</b></span></span>f]</b>ghi": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "abc<b>[d<span contenteditable=\"false\"><span contenteditable><b>e</b></span></span>f]</b>ghi": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "abc<b>[d<span contenteditable=\"false\"><span contenteditable><b>e</b></span></span>f]</b>ghi" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "abc<b>[d<span contenteditable=\"false\"><span contenteditable><b>e</b></span></span>f]</b>ghi" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "abcd<span contenteditable=\"false\"><span contenteditable=\"\">e</span></span>fghi" but got "abcd<span contenteditable=\"false\" style=\"\"><span contenteditable=\"\">e</span></span>fghi"
+[PASS] [["stylewithcss","false"],["bold",""]] "abc<b>[d<span contenteditable=\\"false\\"><b>e</b></span>f]</b>ghi": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "abc<b>[d<span contenteditable=\\"false\\"><b>e</b></span>f]</b>ghi": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "abc<b>[d<span contenteditable=\\"false\\"><b>e</b></span>f]</b>ghi" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "abc<b>[d<span contenteditable=\\"false\\"><b>e</b></span>f]</b>ghi" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "abcd<span contenteditable=\\"false\\"><b>e</b></span>fghi" but got "abcd<span contenteditable=\\"false\\" style=\\"\\"><b>e</b></span>fghi"
+[PASS] [["stylewithcss","false"],["bold",""]] "abc<b>[d<span contenteditable=\\"false\\"><span contenteditable><b>e</b></span></span>f]</b>ghi": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "abc<b>[d<span contenteditable=\\"false\\"><span contenteditable><b>e</b></span></span>f]</b>ghi": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "abc<b>[d<span contenteditable=\\"false\\"><span contenteditable><b>e</b></span></span>f]</b>ghi" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "abc<b>[d<span contenteditable=\\"false\\"><span contenteditable><b>e</b></span></span>f]</b>ghi" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "abcd<span contenteditable=\\"false\\"><span contenteditable=\\"\\">e</span></span>fghi" but got "abcd<span contenteditable=\\"false\\" style=\\"\\"><span contenteditable=\\"\\">e</span></span>fghi"
 [PASS] [["stylewithcss","false"],["bold",""]] "abc<i>[def]</i>ghi": execCommand("stylewithcss", false, "false") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "abc<i>[def]</i>ghi": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "abc<i>[def]</i>ghi" checks for modifications to non-editable content
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/createlink-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/createlink-expected.txt
index f3dd19a..fbc121b 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/createlink-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/createlink-expected.txt
@@ -3,7 +3,7 @@
 [PASS] [["createlink","http://www.google.com/"]] "foo[]bar": execCommand("createlink", false, "http://www.google.com/") return value
 [PASS] [["createlink","http://www.google.com/"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar" but got "foo<a href=\"http://www.google.com/\">http://www.google.com/</a>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar" but got "foo<a href=\\"http://www.google.com/\\">http://www.google.com/</a>bar"
 [PASS] [["createlink","http://www.google.com/"]] "foo[]bar" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "foo[]bar" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "foo[]bar" queryCommandValue("createlink") before
@@ -31,7 +31,7 @@
 [PASS] [["createlink","http://www.google.com/"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>": execCommand("createlink", false, "http://www.google.com/") return value
 [PASS] [["createlink","http://www.google.com/"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\"http://www.google.com/\">foo</a></p><p> <a href=\"http://www.google.com/\"><span>bar</span></a> </p><p><a href=\"http://www.google.com/\">baz</a></p>" but got "<p><a href=\"http://www.google.com/\">foo</a></p><p> <a href=\"http://www.google.com/\"><span>bar</span> </a></p><p><a href=\"http://www.google.com/\">baz</a></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\\"http://www.google.com/\\">foo</a></p><p> <a href=\\"http://www.google.com/\\"><span>bar</span></a> </p><p><a href=\\"http://www.google.com/\\">baz</a></p>" but got "<p><a href=\\"http://www.google.com/\\">foo</a></p><p> <a href=\\"http://www.google.com/\\"><span>bar</span> </a></p><p><a href=\\"http://www.google.com/\\">baz</a></p>"
 [PASS] [["createlink","http://www.google.com/"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandValue("createlink") before
@@ -50,7 +50,7 @@
 [PASS] [["createlink","http://www.google.com/"]] "<b>foo[]bar</b>": execCommand("createlink", false, "http://www.google.com/") return value
 [PASS] [["createlink","http://www.google.com/"]] "<b>foo[]bar</b>" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"]] "<b>foo[]bar</b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foobar</b>" but got "<b>foo<a href=\"http://www.google.com/\">http://www.google.com/</a>bar</b>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foobar</b>" but got "<b>foo<a href=\\"http://www.google.com/\\">http://www.google.com/</a>bar</b>"
 [PASS] [["createlink","http://www.google.com/"]] "<b>foo[]bar</b>" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<b>foo[]bar</b>" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<b>foo[]bar</b>" queryCommandValue("createlink") before
@@ -60,7 +60,7 @@
 [PASS] [["createlink","http://www.google.com/"]] "<i>foo[]bar</i>": execCommand("createlink", false, "http://www.google.com/") return value
 [PASS] [["createlink","http://www.google.com/"]] "<i>foo[]bar</i>" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"]] "<i>foo[]bar</i>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<i>foobar</i>" but got "<i>foo<a href=\"http://www.google.com/\">http://www.google.com/</a>bar</i>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<i>foobar</i>" but got "<i>foo<a href=\\"http://www.google.com/\\">http://www.google.com/</a>bar</i>"
 [PASS] [["createlink","http://www.google.com/"]] "<i>foo[]bar</i>" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<i>foo[]bar</i>" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<i>foo[]bar</i>" queryCommandValue("createlink") before
@@ -70,7 +70,7 @@
 [PASS] [["createlink","http://www.google.com/"]] "<span>foo</span>{}<span>bar</span>": execCommand("createlink", false, "http://www.google.com/") return value
 [PASS] [["createlink","http://www.google.com/"]] "<span>foo</span>{}<span>bar</span>" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"]] "<span>foo</span>{}<span>bar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span>foo</span><span>bar</span>" but got "<span>foo<a href=\"http://www.google.com/\">http://www.google.com/</a></span><span>bar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span>foo</span><span>bar</span>" but got "<span>foo<a href=\\"http://www.google.com/\\">http://www.google.com/</a></span><span>bar</span>"
 [PASS] [["createlink","http://www.google.com/"]] "<span>foo</span>{}<span>bar</span>" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<span>foo</span>{}<span>bar</span>" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<span>foo</span>{}<span>bar</span>" queryCommandValue("createlink") before
@@ -80,7 +80,7 @@
 [PASS] [["createlink","http://www.google.com/"]] "<span>foo[</span><span>]bar</span>": execCommand("createlink", false, "http://www.google.com/") return value
 [PASS] [["createlink","http://www.google.com/"]] "<span>foo[</span><span>]bar</span>" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"]] "<span>foo[</span><span>]bar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span>foo</span><span>bar</span>" but got "<span>foo<a href=\"http://www.google.com/\">http://www.google.com/</a></span><span>bar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span>foo</span><span>bar</span>" but got "<span>foo<a href=\\"http://www.google.com/\\">http://www.google.com/</a></span><span>bar</span>"
 [PASS] [["createlink","http://www.google.com/"]] "<span>foo[</span><span>]bar</span>" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<span>foo[</span><span>]bar</span>" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<span>foo[</span><span>]bar</span>" queryCommandValue("createlink") before
@@ -288,7 +288,7 @@
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl>foo[bar]baz</a>": execCommand("createlink", false, "http://www.google.com/") return value
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl>foo[bar]baz</a>" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"]] "<a href=otherurl>foo[bar]baz</a>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\"http://www.google.com/\">foobarbaz</a>" but got "<a href=\"otherurl\">foo</a><a href=\"http://www.google.com/\">bar</a><a href=\"otherurl\">baz</a>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\"http://www.google.com/\\">foobarbaz</a>" but got "<a href=\\"otherurl\\">foo</a><a href=\\"http://www.google.com/\\">bar</a><a href=\\"otherurl\\">baz</a>"
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl>foo[bar]baz</a>" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl>foo[bar]baz</a>" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl>foo[bar]baz</a>" queryCommandValue("createlink") before
@@ -298,7 +298,7 @@
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl>foo[barbaz</a>}": execCommand("createlink", false, "http://www.google.com/") return value
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl>foo[barbaz</a>}" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"]] "<a href=otherurl>foo[barbaz</a>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\"http://www.google.com/\">foobarbaz</a>" but got "<a href=\"otherurl\">foo</a><a href=\"http://www.google.com/\">barbaz</a>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\"http://www.google.com/\\">foobarbaz</a>" but got "<a href=\\"otherurl\\">foo</a><a href=\\"http://www.google.com/\\">barbaz</a>"
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl>foo[barbaz</a>}" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl>foo[barbaz</a>}" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl>foo[barbaz</a>}" queryCommandValue("createlink") before
@@ -308,7 +308,7 @@
 [PASS] [["createlink","http://www.google.com/"]] "{<a href=otherurl>foobar]baz</a>": execCommand("createlink", false, "http://www.google.com/") return value
 [PASS] [["createlink","http://www.google.com/"]] "{<a href=otherurl>foobar]baz</a>" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"]] "{<a href=otherurl>foobar]baz</a>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\"http://www.google.com/\">foobarbaz</a>" but got "<a href=\"http://www.google.com/\">foobar</a><a href=\"otherurl\">baz</a>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\"http://www.google.com/\\">foobarbaz</a>" but got "<a href=\\"http://www.google.com/\\">foobar</a><a href=\\"otherurl\\">baz</a>"
 [PASS] [["createlink","http://www.google.com/"]] "{<a href=otherurl>foobar]baz</a>" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "{<a href=otherurl>foobar]baz</a>" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "{<a href=otherurl>foobar]baz</a>" queryCommandValue("createlink") before
@@ -381,7 +381,7 @@
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl><b>foo[bar]baz</b></a>": execCommand("createlink", false, "http://www.google.com/") return value
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl><b>foo[bar]baz</b></a>" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"]] "<a href=otherurl><b>foo[bar]baz</b></a>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\"http://www.google.com/\"><b>foobarbaz</b></a>" but got "<b><a href=\"otherurl\">foo</a><a href=\"http://www.google.com/\">bar</a><a href=\"otherurl\">baz</a></b>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\"http://www.google.com/\\"><b>foobarbaz</b></a>" but got "<b><a href=\\"otherurl\\">foo</a><a href=\\"http://www.google.com/\\">bar</a><a href=\\"otherurl\\">baz</a></b>"
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl><b>foo[bar]baz</b></a>" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl><b>foo[bar]baz</b></a>" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl><b>foo[bar]baz</b></a>" queryCommandValue("createlink") before
@@ -391,7 +391,7 @@
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl><b>foo[barbaz</b></a>}": execCommand("createlink", false, "http://www.google.com/") return value
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl><b>foo[barbaz</b></a>}" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"]] "<a href=otherurl><b>foo[barbaz</b></a>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\"http://www.google.com/\"><b>foobarbaz</b></a>" but got "<b><a href=\"otherurl\">foo</a><a href=\"http://www.google.com/\">barbaz</a></b>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\"http://www.google.com/\\"><b>foobarbaz</b></a>" but got "<b><a href=\\"otherurl\\">foo</a><a href=\\"http://www.google.com/\\">barbaz</a></b>"
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl><b>foo[barbaz</b></a>}" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl><b>foo[barbaz</b></a>}" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl><b>foo[barbaz</b></a>}" queryCommandValue("createlink") before
@@ -401,7 +401,7 @@
 [PASS] [["createlink","http://www.google.com/"]] "{<a href=otherurl><b>foobar]baz</b></a>": execCommand("createlink", false, "http://www.google.com/") return value
 [PASS] [["createlink","http://www.google.com/"]] "{<a href=otherurl><b>foobar]baz</b></a>" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"]] "{<a href=otherurl><b>foobar]baz</b></a>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\"http://www.google.com/\"><b>foobarbaz</b></a>" but got "<b><a href=\"http://www.google.com/\">foobar</a><a href=\"otherurl\">baz</a></b>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\"http://www.google.com/\\"><b>foobarbaz</b></a>" but got "<b><a href=\\"http://www.google.com/\\">foobar</a><a href=\\"otherurl\\">baz</a></b>"
 [PASS] [["createlink","http://www.google.com/"]] "{<a href=otherurl><b>foobar]baz</b></a>" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "{<a href=otherurl><b>foobar]baz</b></a>" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "{<a href=otherurl><b>foobar]baz</b></a>" queryCommandValue("createlink") before
@@ -411,7 +411,7 @@
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl><b>[foobarbaz]</b></a>": execCommand("createlink", false, "http://www.google.com/") return value
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl><b>[foobarbaz]</b></a>" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"]] "<a href=otherurl><b>[foobarbaz]</b></a>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\"http://www.google.com/\"><b>foobarbaz</b></a>" but got "<b><a href=\"http://www.google.com/\">foobarbaz</a></b>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\"http://www.google.com/\\"><b>foobarbaz</b></a>" but got "<b><a href=\\"http://www.google.com/\\">foobarbaz</a></b>"
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl><b>[foobarbaz]</b></a>" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl><b>[foobarbaz]</b></a>" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<a href=otherurl><b>[foobarbaz]</b></a>" queryCommandValue("createlink") before
@@ -421,7 +421,7 @@
 [PASS] [["createlink","http://www.google.com/"]] "<a name=abc>foo[bar]baz</a>": execCommand("createlink", false, "http://www.google.com/") return value
 [PASS] [["createlink","http://www.google.com/"]] "<a name=abc>foo[bar]baz</a>" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"]] "<a name=abc>foo[bar]baz</a>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span name=\"abc\">foo<a href=\"http://www.google.com/\">bar</a>baz</span>" but got "<a name=\"abc\">foo</a><a href=\"http://www.google.com/\">bar</a><a name=\"abc\">baz</a>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span name=\\"abc\\">foo<a href=\\"http://www.google.com/\\">bar</a>baz</span>" but got "<a name=\\"abc\\">foo</a><a href=\\"http://www.google.com/\\">bar</a><a name=\\"abc\\">baz</a>"
 [PASS] [["createlink","http://www.google.com/"]] "<a name=abc>foo[bar]baz</a>" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<a name=abc>foo[bar]baz</a>" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<a name=abc>foo[bar]baz</a>" queryCommandValue("createlink") before
@@ -431,7 +431,7 @@
 [PASS] [["createlink","http://www.google.com/"]] "<a name=abc><b>foo[bar]baz</b></a>": execCommand("createlink", false, "http://www.google.com/") return value
 [PASS] [["createlink","http://www.google.com/"]] "<a name=abc><b>foo[bar]baz</b></a>" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"]] "<a name=abc><b>foo[bar]baz</b></a>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span name=\"abc\"><b>foo<a href=\"http://www.google.com/\">bar</a>baz</b></span>" but got "<b><a name=\"abc\">foo</a><a href=\"http://www.google.com/\">bar</a><a>baz</a></b>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span name=\\"abc\\"><b>foo<a href=\\"http://www.google.com/\\">bar</a>baz</b></span>" but got "<b><a name=\\"abc\\">foo</a><a href=\\"http://www.google.com/\\">bar</a><a>baz</a></b>"
 [PASS] [["createlink","http://www.google.com/"]] "<a name=abc><b>foo[bar]baz</b></a>" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<a name=abc><b>foo[bar]baz</b></a>" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"]] "<a name=abc><b>foo[bar]baz</b></a>" queryCommandValue("createlink") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/delete_1-1000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/delete_1-1000-expected.txt
index d1a7944..07040bb 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/delete_1-1000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/delete_1-1000-expected.txt
@@ -627,7 +627,7 @@
 [PASS] [["delete",""]] "<a href=/>foo</a>[]bar": execCommand("delete", false, "") return value
 [PASS] [["delete",""]] "<a href=/>foo</a>[]bar" checks for modifications to non-editable content
 [FAIL] [["delete",""]] "<a href=/>foo</a>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar" but got "<a href=\"/\">fo</a>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar" but got "<a href=\\"/\\">fo</a>bar"
 [PASS] [["delete",""]] "<a href=/>foo</a>[]bar" queryCommandIndeterm("delete") before
 [PASS] [["delete",""]] "<a href=/>foo</a>[]bar" queryCommandState("delete") before
 [PASS] [["delete",""]] "<a href=/>foo</a>[]bar" queryCommandValue("delete") before
@@ -637,7 +637,7 @@
 [PASS] [["delete",""]] "<a name=abc>foo</a>[]bar": execCommand("delete", false, "") return value
 [PASS] [["delete",""]] "<a name=abc>foo</a>[]bar" checks for modifications to non-editable content
 [FAIL] [["delete",""]] "<a name=abc>foo</a>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar" but got "<a name=\"abc\">fo</a>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar" but got "<a name=\\"abc\\">fo</a>bar"
 [PASS] [["delete",""]] "<a name=abc>foo</a>[]bar" queryCommandIndeterm("delete") before
 [PASS] [["delete",""]] "<a name=abc>foo</a>[]bar" queryCommandState("delete") before
 [PASS] [["delete",""]] "<a name=abc>foo</a>[]bar" queryCommandValue("delete") before
@@ -647,7 +647,7 @@
 [PASS] [["delete",""]] "<a href=/ name=abc>foo</a>[]bar": execCommand("delete", false, "") return value
 [PASS] [["delete",""]] "<a href=/ name=abc>foo</a>[]bar" checks for modifications to non-editable content
 [FAIL] [["delete",""]] "<a href=/ name=abc>foo</a>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar" but got "<a href=\"/\" name=\"abc\">fo</a>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar" but got "<a href=\\"/\\" name=\\"abc\\">fo</a>bar"
 [PASS] [["delete",""]] "<a href=/ name=abc>foo</a>[]bar" queryCommandIndeterm("delete") before
 [PASS] [["delete",""]] "<a href=/ name=abc>foo</a>[]bar" queryCommandState("delete") before
 [PASS] [["delete",""]] "<a href=/ name=abc>foo</a>[]bar" queryCommandValue("delete") before
@@ -667,7 +667,7 @@
 [PASS] [["delete",""]] "<span><a href=/>foo</a></span>[]bar": execCommand("delete", false, "") return value
 [PASS] [["delete",""]] "<span><a href=/>foo</a></span>[]bar" checks for modifications to non-editable content
 [FAIL] [["delete",""]] "<span><a href=/>foo</a></span>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span>foo</span>bar" but got "<span><a href=\"/\">fo</a></span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span>foo</span>bar" but got "<span><a href=\\"/\\">fo</a></span>bar"
 [PASS] [["delete",""]] "<span><a href=/>foo</a></span>[]bar" queryCommandIndeterm("delete") before
 [PASS] [["delete",""]] "<span><a href=/>foo</a></span>[]bar" queryCommandState("delete") before
 [PASS] [["delete",""]] "<span><a href=/>foo</a></span>[]bar" queryCommandValue("delete") before
@@ -677,7 +677,7 @@
 [PASS] [["delete",""]] "<span><a name=abc>foo</a></span>[]bar": execCommand("delete", false, "") return value
 [PASS] [["delete",""]] "<span><a name=abc>foo</a></span>[]bar" checks for modifications to non-editable content
 [FAIL] [["delete",""]] "<span><a name=abc>foo</a></span>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span>foo</span>bar" but got "<span><a name=\"abc\">fo</a></span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span>foo</span>bar" but got "<span><a name=\\"abc\\">fo</a></span>bar"
 [PASS] [["delete",""]] "<span><a name=abc>foo</a></span>[]bar" queryCommandIndeterm("delete") before
 [PASS] [["delete",""]] "<span><a name=abc>foo</a></span>[]bar" queryCommandState("delete") before
 [PASS] [["delete",""]] "<span><a name=abc>foo</a></span>[]bar" queryCommandValue("delete") before
@@ -687,7 +687,7 @@
 [PASS] [["delete",""]] "<span><a href=/ name=abc>foo</a></span>[]bar": execCommand("delete", false, "") return value
 [PASS] [["delete",""]] "<span><a href=/ name=abc>foo</a></span>[]bar" checks for modifications to non-editable content
 [FAIL] [["delete",""]] "<span><a href=/ name=abc>foo</a></span>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span>foo</span>bar" but got "<span><a href=\"/\" name=\"abc\">fo</a></span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span>foo</span>bar" but got "<span><a href=\\"/\\" name=\\"abc\\">fo</a></span>bar"
 [PASS] [["delete",""]] "<span><a href=/ name=abc>foo</a></span>[]bar" queryCommandIndeterm("delete") before
 [PASS] [["delete",""]] "<span><a href=/ name=abc>foo</a></span>[]bar" queryCommandState("delete") before
 [PASS] [["delete",""]] "<span><a href=/ name=abc>foo</a></span>[]bar" queryCommandValue("delete") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/delete_2001-3000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/delete_2001-3000-expected.txt
index dc8b7da..718cc8e 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/delete_2001-3000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/delete_2001-3000-expected.txt
@@ -83,40 +83,40 @@
 [PASS] [["delete",""]] "foo<blockquote><div>[]bar</div></blockquote>" queryCommandIndeterm("delete") after
 [PASS] [["delete",""]] "foo<blockquote><div>[]bar</div></blockquote>" queryCommandState("delete") after
 [PASS] [["delete",""]] "foo<blockquote><div>[]bar</div></blockquote>" queryCommandValue("delete") after
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>": execCommand("delete", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" checks for modifications to non-editable content
-[FAIL] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\"color:rgb(0, 0, 255)\">bar</div>" but got "foo<span style=\"color:rgb(0, 0, 255)\">bar</span>"
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandState("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandState("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandIndeterm("delete") before
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandState("delete") before
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandValue("delete") before
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandIndeterm("delete") after
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandState("delete") after
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandValue("delete") after
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>": execCommand("defaultparagraphseparator", false, "p") return value
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>": execCommand("delete", false, "") return value
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" checks for modifications to non-editable content
-[FAIL] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\"color:rgb(0, 0, 255)\">bar</div>" but got "foo<span style=\"color:rgb(0, 0, 255)\">bar</span>"
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandState("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandState("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandIndeterm("delete") before
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandState("delete") before
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandValue("delete") before
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandIndeterm("delete") after
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandState("delete") after
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\">[]bar</blockquote>" queryCommandValue("delete") after
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>": execCommand("delete", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" checks for modifications to non-editable content
+[FAIL] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\\"color:rgb(0, 0, 255)\\">bar</div>" but got "foo<span style=\\"color:rgb(0, 0, 255)\\">bar</span>"
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandState("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandState("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandIndeterm("delete") before
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandState("delete") before
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandValue("delete") before
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandIndeterm("delete") after
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandState("delete") after
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandValue("delete") after
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>": execCommand("defaultparagraphseparator", false, "p") return value
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>": execCommand("delete", false, "") return value
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" checks for modifications to non-editable content
+[FAIL] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\\"color:rgb(0, 0, 255)\\">bar</div>" but got "foo<span style=\\"color:rgb(0, 0, 255)\\">bar</span>"
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandState("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandState("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandIndeterm("delete") before
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandState("delete") before
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandValue("delete") before
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandIndeterm("delete") after
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandState("delete") after
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\">[]bar</blockquote>" queryCommandValue("delete") after
 [PASS] [["delete",""]] "foo<blockquote><blockquote><p>[]bar<p>baz</blockquote></blockquote>": execCommand("delete", false, "") return value
 [PASS] [["delete",""]] "foo<blockquote><blockquote><p>[]bar<p>baz</blockquote></blockquote>" checks for modifications to non-editable content
 [FAIL] [["delete",""]] "foo<blockquote><blockquote><p>[]bar<p>baz</blockquote></blockquote>" compare innerHTML
@@ -137,40 +137,40 @@
 [PASS] [["delete",""]] "foo<blockquote><div><p>[]bar<p>baz</div></blockquote>" queryCommandIndeterm("delete") after
 [PASS] [["delete",""]] "foo<blockquote><div><p>[]bar<p>baz</div></blockquote>" queryCommandState("delete") after
 [PASS] [["delete",""]] "foo<blockquote><div><p>[]bar<p>baz</div></blockquote>" queryCommandValue("delete") after
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>": execCommand("delete", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" checks for modifications to non-editable content
-[FAIL] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\"color:rgb(0, 0, 255)\"><p>bar</p><blockquote><p>baz</p></blockquote></div>" but got "foo<span style=\"color:rgb(0, 0, 255)\">bar</span><blockquote style=\"color:rgb(0, 0, 255)\"><p>baz</p></blockquote>"
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandIndeterm("delete") before
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandState("delete") before
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandValue("delete") before
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandIndeterm("delete") after
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandState("delete") after
-[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandValue("delete") after
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>": execCommand("defaultparagraphseparator", false, "p") return value
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>": execCommand("delete", false, "") return value
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" checks for modifications to non-editable content
-[FAIL] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\"color:rgb(0, 0, 255)\"><p>bar</p><blockquote><p>baz</p></blockquote></div>" but got "foo<span style=\"color:rgb(0, 0, 255)\">bar</span><blockquote style=\"color:rgb(0, 0, 255)\"><p>baz</p></blockquote>"
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandIndeterm("delete") before
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandState("delete") before
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandValue("delete") before
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandIndeterm("delete") after
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandState("delete") after
-[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\"color: blue\"><p>[]bar<p>baz</blockquote>" queryCommandValue("delete") after
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>": execCommand("delete", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" checks for modifications to non-editable content
+[FAIL] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\\"color:rgb(0, 0, 255)\\"><p>bar</p><blockquote><p>baz</p></blockquote></div>" but got "foo<span style=\\"color:rgb(0, 0, 255)\\">bar</span><blockquote style=\\"color:rgb(0, 0, 255)\\"><p>baz</p></blockquote>"
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandIndeterm("delete") before
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandState("delete") before
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandValue("delete") before
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandIndeterm("delete") after
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandState("delete") after
+[PASS] [["defaultparagraphseparator","div"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandValue("delete") after
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>": execCommand("defaultparagraphseparator", false, "p") return value
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>": execCommand("delete", false, "") return value
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" checks for modifications to non-editable content
+[FAIL] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\\"color:rgb(0, 0, 255)\\"><p>bar</p><blockquote><p>baz</p></blockquote></div>" but got "foo<span style=\\"color:rgb(0, 0, 255)\\">bar</span><blockquote style=\\"color:rgb(0, 0, 255)\\"><p>baz</p></blockquote>"
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandIndeterm("delete") before
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandState("delete") before
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandValue("delete") before
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandIndeterm("delete") after
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandState("delete") after
+[PASS] [["defaultparagraphseparator","p"],["delete",""]] "foo<blockquote style=\\"color: blue\\"><p>[]bar<p>baz</blockquote>" queryCommandValue("delete") after
 [PASS] [["delete",""]] "foo<blockquote><p><b>[]bar</b><p>baz</blockquote>": execCommand("delete", false, "") return value
 [PASS] [["delete",""]] "foo<blockquote><p><b>[]bar</b><p>baz</blockquote>" checks for modifications to non-editable content
 [FAIL] [["delete",""]] "foo<blockquote><p><b>[]bar</b><p>baz</blockquote>" compare innerHTML
@@ -799,7 +799,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p style=color:blue>foo<p>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p style=color:blue>foo<p>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p style=color:blue>foo<p>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"color:rgb(0, 0, 255)\">foo</span>bar</p>" but got "<p style=\"color:rgb(0, 0, 255)\">foobar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span>bar</p>" but got "<p style=\\"color:rgb(0, 0, 255)\\">foobar</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p style=color:blue>foo<p>[]bar" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p style=color:blue>foo<p>[]bar" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -824,7 +824,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=color:blue>foo<p>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=color:blue>foo<p>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=color:blue>foo<p>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\"#0000ff\">foo</font>bar</p>" but got "<p style=\"color:rgb(0, 0, 255)\">foobar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\\"#0000ff\\">foo</font>bar</p>" but got "<p style=\\"color:rgb(0, 0, 255)\\">foobar</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=color:blue>foo<p>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=color:blue>foo<p>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=color:blue>foo<p>[]bar" queryCommandValue("stylewithcss") before
@@ -848,7 +848,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<p>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<p>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<p>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"color:rgb(0, 0, 255)\">foo</span>bar</p>" but got "<p style=\"color:rgb(0, 0, 255)\">foobar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span>bar</p>" but got "<p style=\\"color:rgb(0, 0, 255)\\">foobar</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<p>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<p>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<p>[]bar" queryCommandValue("stylewithcss") before
@@ -872,7 +872,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<p>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<p>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<p>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\"#0000ff\">foo</font>bar</p>" but got "<p style=\"color:rgb(0, 0, 255)\">foobar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\\"#0000ff\\">foo</font>bar</p>" but got "<p style=\\"color:rgb(0, 0, 255)\\">foobar</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<p>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<p>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<p>[]bar" queryCommandValue("stylewithcss") before
@@ -919,7 +919,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=color:blue>foo<p style=color:brown>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=color:blue>foo<p style=color:brown>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=color:blue>foo<p style=color:brown>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"color:rgb(0, 0, 255)\">foo<font color=\"#a52a2a\">bar</font></p>" but got "<p style=\"color:rgb(0, 0, 255)\">foo<span style=\"color:rgb(165, 42, 42)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"color:rgb(0, 0, 255)\\">foo<font color=\\"#a52a2a\\">bar</font></p>" but got "<p style=\\"color:rgb(0, 0, 255)\\">foo<span style=\\"color:rgb(165, 42, 42)\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=color:blue>foo<p style=color:brown>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=color:blue>foo<p style=color:brown>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=color:blue>foo<p style=color:brown>[]bar" queryCommandValue("stylewithcss") before
@@ -966,7 +966,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<p style=color:brown>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<p style=color:brown>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<p style=color:brown>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"color:rgb(0, 0, 255)\">foo<font color=\"#a52a2a\">bar</font></p>" but got "<p style=\"color:rgb(0, 0, 255)\">foo<span style=\"color:rgb(165, 42, 42)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"color:rgb(0, 0, 255)\\">foo<font color=\\"#a52a2a\\">bar</font></p>" but got "<p style=\\"color:rgb(0, 0, 255)\\">foo<span style=\\"color:rgb(165, 42, 42)\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<p style=color:brown>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<p style=color:brown>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<p style=color:brown>[]bar" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/delete_3001-4000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/delete_3001-4000-expected.txt
index 73dcbb21..4e8ad9b 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/delete_3001-4000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/delete_3001-4000-expected.txt
@@ -174,7 +174,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=color:brown>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=color:brown>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=color:brown>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\"#a52a2a\">bar</font></p>" but got "<p>foo<span style=\"color:rgb(165, 42, 42)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\\"#a52a2a\\">bar</font></p>" but got "<p>foo<span style=\\"color:rgb(165, 42, 42)\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=color:brown>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=color:brown>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=color:brown>[]bar" queryCommandValue("stylewithcss") before
@@ -221,7 +221,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=color:brown>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=color:brown>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=color:brown>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\"#a52a2a\">bar</font></p>" but got "<p>foo<span style=\"color:rgb(165, 42, 42)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\\"#a52a2a\\">bar</font></p>" but got "<p>foo<span style=\\"color:rgb(165, 42, 42)\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=color:brown>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=color:brown>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=color:brown>[]bar" queryCommandValue("stylewithcss") before
@@ -276,7 +276,7 @@
 [PASS] [["defaultparagraphseparator","div"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>": execCommand("delete", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\"blue\">foo</font><font color=\"brown\">bar</font></p>" but got "<p><font color=\"blue\">foo</font><span style=\"color:rgb(165, 42, 42)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\\"blue\\">foo</font><font color=\\"brown\\">bar</font></p>" but got "<p><font color=\\"blue\\">foo</font><span style=\\"color:rgb(165, 42, 42)\\">bar</span></p>"
 [PASS] [["defaultparagraphseparator","div"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>" queryCommandValue("defaultparagraphseparator") before
@@ -293,7 +293,7 @@
 [PASS] [["defaultparagraphseparator","p"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>": execCommand("delete", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\"blue\">foo</font><font color=\"brown\">bar</font></p>" but got "<p><font color=\"blue\">foo</font><span style=\"color:rgb(165, 42, 42)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\\"blue\\">foo</font><font color=\\"brown\\">bar</font></p>" but got "<p><font color=\\"blue\\">foo</font><span style=\\"color:rgb(165, 42, 42)\\">bar</span></p>"
 [PASS] [["defaultparagraphseparator","p"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>" queryCommandValue("defaultparagraphseparator") before
@@ -310,7 +310,7 @@
 [PASS] [["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p><font color=brown>[]bar</font>": execCommand("delete", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p><font color=brown>[]bar</font>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p><font color=brown>[]bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\"brown\">bar</font></p>" but got "<p>foo<span style=\"color:rgb(165, 42, 42)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\\"brown\\">bar</font></p>" but got "<p>foo<span style=\\"color:rgb(165, 42, 42)\\">bar</span></p>"
 [PASS] [["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p><font color=brown>[]bar</font>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p><font color=brown>[]bar</font>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p><font color=brown>[]bar</font>" queryCommandValue("defaultparagraphseparator") before
@@ -327,7 +327,7 @@
 [PASS] [["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p><font color=brown>[]bar</font>": execCommand("delete", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p><font color=brown>[]bar</font>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p><font color=brown>[]bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\"brown\">bar</font></p>" but got "<p>foo<span style=\"color:rgb(165, 42, 42)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\\"brown\\">bar</font></p>" but got "<p>foo<span style=\\"color:rgb(165, 42, 42)\\">bar</span></p>"
 [PASS] [["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p><font color=brown>[]bar</font>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p><font color=brown>[]bar</font>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p><font color=brown>[]bar</font>" queryCommandValue("defaultparagraphseparator") before
@@ -473,7 +473,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"background-color:rgb(0, 255, 255)\">foobar</p>" but got "<p style=\"background-color:rgb(0, 255, 255)\">foo<span style=\"background-color:rgb(210, 180, 140)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"background-color:rgb(0, 255, 255)\\">foobar</p>" but got "<p style=\\"background-color:rgb(0, 255, 255)\\">foo<span style=\\"background-color:rgb(210, 180, 140)\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar" queryCommandValue("stylewithcss") before
@@ -497,7 +497,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"background-color:rgb(0, 255, 255)\">foobar</p>" but got "<p style=\"background-color:rgb(0, 255, 255)\">foo<span style=\"background-color:rgb(210, 180, 140)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"background-color:rgb(0, 255, 255)\\">foobar</p>" but got "<p style=\\"background-color:rgb(0, 255, 255)\\">foo<span style=\\"background-color:rgb(210, 180, 140)\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar" queryCommandValue("stylewithcss") before
@@ -521,7 +521,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"background-color:rgb(0, 255, 255)\">foobar</p>" but got "<p style=\"background-color:rgb(0, 255, 255)\">foo<span style=\"background-color:rgb(210, 180, 140)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"background-color:rgb(0, 255, 255)\\">foobar</p>" but got "<p style=\\"background-color:rgb(0, 255, 255)\\">foo<span style=\\"background-color:rgb(210, 180, 140)\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar" queryCommandValue("stylewithcss") before
@@ -545,7 +545,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"background-color:rgb(0, 255, 255)\">foobar</p>" but got "<p style=\"background-color:rgb(0, 255, 255)\">foo<span style=\"background-color:rgb(210, 180, 140)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"background-color:rgb(0, 255, 255)\\">foobar</p>" but got "<p style=\\"background-color:rgb(0, 255, 255)\\">foo<span style=\\"background-color:rgb(210, 180, 140)\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=background-color:aqua>foo<p style=background-color:tan>[]bar" queryCommandValue("stylewithcss") before
@@ -569,7 +569,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foobar</p>" but got "<p>foo<span style=\"background-color:rgb(210, 180, 140)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foobar</p>" but got "<p>foo<span style=\\"background-color:rgb(210, 180, 140)\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar" queryCommandValue("stylewithcss") before
@@ -593,7 +593,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foobar</p>" but got "<p>foo<span style=\"background-color:rgb(210, 180, 140)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foobar</p>" but got "<p>foo<span style=\\"background-color:rgb(210, 180, 140)\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar" queryCommandValue("stylewithcss") before
@@ -617,7 +617,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foobar</p>" but got "<p>foo<span style=\"background-color:rgb(210, 180, 140)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foobar</p>" but got "<p>foo<span style=\\"background-color:rgb(210, 180, 140)\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar" queryCommandValue("stylewithcss") before
@@ -641,7 +641,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foobar</p>" but got "<p>foo<span style=\"background-color:rgb(210, 180, 140)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foobar</p>" but got "<p>foo<span style=\\"background-color:rgb(210, 180, 140)\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=background-color:tan>[]bar" queryCommandValue("stylewithcss") before
@@ -761,7 +761,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"text-decoration:underline\">foo</span>bar</p>" but got "<p style=\"text-decoration:underline\">foobar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"text-decoration:underline\\">foo</span>bar</p>" but got "<p style=\\"text-decoration:underline\\">foobar</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar" queryCommandValue("stylewithcss") before
@@ -785,7 +785,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><u>foo</u>bar</p>" but got "<p style=\"text-decoration:underline\">foobar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><u>foo</u>bar</p>" but got "<p style=\\"text-decoration:underline\\">foobar</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar" queryCommandValue("stylewithcss") before
@@ -809,7 +809,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"text-decoration:underline\">foo</span>bar</p>" but got "<p style=\"text-decoration:underline\">foobar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"text-decoration:underline\\">foo</span>bar</p>" but got "<p style=\\"text-decoration:underline\\">foobar</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar" queryCommandValue("stylewithcss") before
@@ -833,7 +833,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><u>foo</u>bar</p>" but got "<p style=\"text-decoration:underline\">foobar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><u>foo</u>bar</p>" but got "<p style=\\"text-decoration:underline\\">foobar</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p>[]bar" queryCommandValue("stylewithcss") before
@@ -857,7 +857,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"text-decoration:underline\">foo</span><span style=\"text-decoration:line-through\">bar</span></p>" but got "<p style=\"text-decoration:underline\">foo<span style=\"text-decoration-line:line-through\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"text-decoration:underline\\">foo</span><span style=\\"text-decoration:line-through\\">bar</span></p>" but got "<p style=\\"text-decoration:underline\\">foo<span style=\\"text-decoration-line:line-through\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar" queryCommandValue("stylewithcss") before
@@ -881,7 +881,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><u>foo</u><s>bar</s></p>" but got "<p style=\"text-decoration:underline\">foo<span style=\"text-decoration-line:line-through\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><u>foo</u><s>bar</s></p>" but got "<p style=\\"text-decoration:underline\\">foo<span style=\\"text-decoration-line:line-through\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar" queryCommandValue("stylewithcss") before
@@ -905,7 +905,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"text-decoration:underline\">foo</span><span style=\"text-decoration:line-through\">bar</span></p>" but got "<p style=\"text-decoration:underline\">foo<span style=\"text-decoration-line:line-through\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"text-decoration:underline\\">foo</span><span style=\\"text-decoration:line-through\\">bar</span></p>" but got "<p style=\\"text-decoration:underline\\">foo<span style=\\"text-decoration-line:line-through\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar" queryCommandValue("stylewithcss") before
@@ -929,7 +929,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><u>foo</u><s>bar</s></p>" but got "<p style=\"text-decoration:underline\">foo<span style=\"text-decoration-line:line-through\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><u>foo</u><s>bar</s></p>" but got "<p style=\\"text-decoration:underline\\">foo<span style=\\"text-decoration-line:line-through\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=text-decoration:underline>foo<p style=text-decoration:line-through>[]bar" queryCommandValue("stylewithcss") before
@@ -953,7 +953,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=text-decoration:line-through>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=text-decoration:line-through>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=text-decoration:line-through>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<span style=\"text-decoration:line-through\">bar</span></p>" but got "<p>foo<span style=\"text-decoration-line:line-through\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<span style=\\"text-decoration:line-through\\">bar</span></p>" but got "<p>foo<span style=\\"text-decoration-line:line-through\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=text-decoration:line-through>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=text-decoration:line-through>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=text-decoration:line-through>[]bar" queryCommandValue("stylewithcss") before
@@ -977,7 +977,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=text-decoration:line-through>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=text-decoration:line-through>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=text-decoration:line-through>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<s>bar</s></p>" but got "<p>foo<span style=\"text-decoration-line:line-through\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<s>bar</s></p>" but got "<p>foo<span style=\\"text-decoration-line:line-through\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=text-decoration:line-through>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=text-decoration:line-through>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo<p style=text-decoration:line-through>[]bar" queryCommandValue("stylewithcss") before
@@ -1001,7 +1001,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=text-decoration:line-through>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=text-decoration:line-through>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=text-decoration:line-through>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<span style=\"text-decoration:line-through\">bar</span></p>" but got "<p>foo<span style=\"text-decoration-line:line-through\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<span style=\\"text-decoration:line-through\\">bar</span></p>" but got "<p>foo<span style=\\"text-decoration-line:line-through\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=text-decoration:line-through>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=text-decoration:line-through>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=text-decoration:line-through>[]bar" queryCommandValue("stylewithcss") before
@@ -1025,7 +1025,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=text-decoration:line-through>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=text-decoration:line-through>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=text-decoration:line-through>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<s>bar</s></p>" but got "<p>foo<span style=\"text-decoration-line:line-through\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<s>bar</s></p>" but got "<p>foo<span style=\\"text-decoration-line:line-through\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo<p style=text-decoration:line-through>[]bar" queryCommandIndeterm("stylewithcss") before
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/delete_4001-5000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/delete_4001-5000-expected.txt
index 628b3f40..f5c66fc5 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/delete_4001-5000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/delete_4001-5000-expected.txt
@@ -121,7 +121,7 @@
 [PASS] [["stylewithcss","true"],["delete",""]] "<p style=color:blue>foo</p>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","true"],["delete",""]] "<p style=color:blue>foo</p>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["delete",""]] "<p style=color:blue>foo</p>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"color:rgb(0, 0, 255)\">foo</span>bar</p>" but got "<p style=\"color:rgb(0, 0, 255)\">foobar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span>bar</p>" but got "<p style=\\"color:rgb(0, 0, 255)\\">foobar</p>"
 [PASS] [["stylewithcss","true"],["delete",""]] "<p style=color:blue>foo</p>[]bar" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["delete",""]] "<p style=color:blue>foo</p>[]bar" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -139,7 +139,7 @@
 [PASS] [["stylewithcss","false"],["delete",""]] "<p style=color:blue>foo</p>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["delete",""]] "<p style=color:blue>foo</p>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["delete",""]] "<p style=color:blue>foo</p>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\"#0000ff\">foo</font>bar</p>" but got "<p style=\"color:rgb(0, 0, 255)\">foobar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\\"#0000ff\\">foo</font>bar</p>" but got "<p style=\\"color:rgb(0, 0, 255)\\">foobar</p>"
 [PASS] [["stylewithcss","false"],["delete",""]] "<p style=color:blue>foo</p>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["delete",""]] "<p style=color:blue>foo</p>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["delete",""]] "<p style=color:blue>foo</p>[]bar" queryCommandValue("stylewithcss") before
@@ -180,7 +180,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "foo<p style=color:brown>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "foo<p style=color:brown>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "foo<p style=color:brown>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\"#a52a2a\">bar</font>" but got "foo<span style=\"color:rgb(165, 42, 42)\">bar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\\"#a52a2a\\">bar</font>" but got "foo<span style=\\"color:rgb(165, 42, 42)\\">bar</span>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "foo<p style=color:brown>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "foo<p style=color:brown>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "foo<p style=color:brown>[]bar" queryCommandValue("stylewithcss") before
@@ -227,7 +227,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "foo<p style=color:brown>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "foo<p style=color:brown>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "foo<p style=color:brown>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\"#a52a2a\">bar</font>" but got "foo<span style=\"color:rgb(165, 42, 42)\">bar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\\"#a52a2a\\">bar</font>" but got "foo<span style=\\"color:rgb(165, 42, 42)\\">bar</span>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "foo<p style=color:brown>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "foo<p style=color:brown>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "foo<p style=color:brown>[]bar" queryCommandValue("stylewithcss") before
@@ -250,7 +250,7 @@
 [PASS] [["stylewithcss","true"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","true"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><p><span style=\"color:rgb(0, 128, 0)\">foo</span>bar</p></div>" but got "<div style=\"color:rgb(0, 0, 255)\"><p style=\"color:rgb(0, 128, 0)\">foobar</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><p><span style=\\"color:rgb(0, 128, 0)\\">foo</span>bar</p></div>" but got "<div style=\\"color:rgb(0, 0, 255)\\"><p style=\\"color:rgb(0, 128, 0)\\">foobar</p></div>"
 [PASS] [["stylewithcss","true"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div>[]bar" queryCommandValue("stylewithcss") before
@@ -267,7 +267,7 @@
 [PASS] [["stylewithcss","false"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><p><font color=\"#008000\">foo</font>bar</p></div>" but got "<div style=\"color:rgb(0, 0, 255)\"><p style=\"color:rgb(0, 128, 0)\">foobar</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><p><font color=\\"#008000\\">foo</font>bar</p></div>" but got "<div style=\\"color:rgb(0, 0, 255)\\"><p style=\\"color:rgb(0, 128, 0)\\">foobar</p></div>"
 [PASS] [["stylewithcss","false"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div>[]bar" queryCommandValue("stylewithcss") before
@@ -308,7 +308,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div><p style=color:brown>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div><p style=color:brown>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div><p style=color:brown>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"color:rgb(0, 0, 255)\"><p style=\"color:rgb(0, 128, 0)\">foo<font color=\"#a52a2a\">bar</font></p></div>" but got "<div style=\"color:rgb(0, 0, 255)\"><p style=\"color:rgb(0, 128, 0)\">foo<span style=\"color:rgb(165, 42, 42)\">bar</span></p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"color:rgb(0, 0, 255)\\"><p style=\\"color:rgb(0, 128, 0)\\">foo<font color=\\"#a52a2a\\">bar</font></p></div>" but got "<div style=\\"color:rgb(0, 0, 255)\\"><p style=\\"color:rgb(0, 128, 0)\\">foo<span style=\\"color:rgb(165, 42, 42)\\">bar</span></p></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div><p style=color:brown>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div><p style=color:brown>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div><p style=color:brown>[]bar" queryCommandValue("stylewithcss") before
@@ -355,7 +355,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div><p style=color:brown>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div><p style=color:brown>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div><p style=color:brown>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"color:rgb(0, 0, 255)\"><p style=\"color:rgb(0, 128, 0)\">foo<font color=\"#a52a2a\">bar</font></p></div>" but got "<div style=\"color:rgb(0, 0, 255)\"><p style=\"color:rgb(0, 128, 0)\">foo<span style=\"color:rgb(165, 42, 42)\">bar</span></p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"color:rgb(0, 0, 255)\\"><p style=\\"color:rgb(0, 128, 0)\\">foo<font color=\\"#a52a2a\\">bar</font></p></div>" but got "<div style=\\"color:rgb(0, 0, 255)\\"><p style=\\"color:rgb(0, 128, 0)\\">foo<span style=\\"color:rgb(165, 42, 42)\\">bar</span></p></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div><p style=color:brown>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div><p style=color:brown>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<div style=color:blue><p style=color:green>foo</div><p style=color:brown>[]bar" queryCommandValue("stylewithcss") before
@@ -402,7 +402,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=color:blue>foo<div style=color:brown><p style=color:green>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=color:blue>foo<div style=color:brown><p style=color:green>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=color:blue>foo<div style=color:brown><p style=color:green>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"color:rgb(0, 0, 255)\">foo<font color=\"#008000\">bar</font></p>" but got "<p style=\"color:rgb(0, 0, 255)\">foo<span style=\"color:rgb(0, 128, 0)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"color:rgb(0, 0, 255)\\">foo<font color=\\"#008000\\">bar</font></p>" but got "<p style=\\"color:rgb(0, 0, 255)\\">foo<span style=\\"color:rgb(0, 128, 0)\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=color:blue>foo<div style=color:brown><p style=color:green>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=color:blue>foo<div style=color:brown><p style=color:green>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p style=color:blue>foo<div style=color:brown><p style=color:green>[]bar" queryCommandValue("stylewithcss") before
@@ -449,7 +449,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<div style=color:brown><p style=color:green>[]bar": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<div style=color:brown><p style=color:green>[]bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<div style=color:brown><p style=color:green>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"color:rgb(0, 0, 255)\">foo<font color=\"#008000\">bar</font></p>" but got "<p style=\"color:rgb(0, 0, 255)\">foo<span style=\"color:rgb(0, 128, 0)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"color:rgb(0, 0, 255)\\">foo<font color=\\"#008000\\">bar</font></p>" but got "<p style=\\"color:rgb(0, 0, 255)\\">foo<span style=\\"color:rgb(0, 128, 0)\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<div style=color:brown><p style=color:green>[]bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<div style=color:brown><p style=color:green>[]bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p style=color:blue>foo<div style=color:brown><p style=color:green>[]bar" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/delete_5001-6000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/delete_5001-6000-expected.txt
index baac17c..9a50f53 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/delete_5001-6000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/delete_5001-6000-expected.txt
@@ -181,7 +181,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo[bar<p style=color:blue>baz]quz": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo[bar<p style=color:blue>baz]quz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo[bar<p style=color:blue>baz]quz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\"#0000ff\">quz</font></p>" but got "<p>foo<span style=\"color:rgb(0, 0, 255)\">quz</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\\"#0000ff\\">quz</font></p>" but got "<p>foo<span style=\\"color:rgb(0, 0, 255)\\">quz</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo[bar<p style=color:blue>baz]quz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo[bar<p style=color:blue>baz]quz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["delete",""]] "<p>foo[bar<p style=color:blue>baz]quz" queryCommandValue("stylewithcss") before
@@ -228,7 +228,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo[bar<p style=color:blue>baz]quz": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo[bar<p style=color:blue>baz]quz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo[bar<p style=color:blue>baz]quz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\"#0000ff\">quz</font></p>" but got "<p>foo<span style=\"color:rgb(0, 0, 255)\">quz</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\\"#0000ff\\">quz</font></p>" but got "<p>foo<span style=\\"color:rgb(0, 0, 255)\\">quz</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo[bar<p style=color:blue>baz]quz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo[bar<p style=color:blue>baz]quz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["delete",""]] "<p>foo[bar<p style=color:blue>baz]quz" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/delete_6001-7000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/delete_6001-7000-expected.txt
index dc7b78f..f44797ba 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/delete_6001-7000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/delete_6001-7000-expected.txt
@@ -243,7 +243,7 @@
 [PASS] [["delete",""]] "<span style=display:none>fo[o</span><span style=display:none>b]ar</span>": execCommand("delete", false, "") return value
 [PASS] [["delete",""]] "<span style=display:none>fo[o</span><span style=display:none>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["delete",""]] "<span style=display:none>fo[o</span><span style=display:none>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"display:none\">fo</span><span style=\"display:none\">ar</span>" but got ""
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"display:none\\">fo</span><span style=\\"display:none\\">ar</span>" but got ""
 [PASS] [["delete",""]] "<span style=display:none>fo[o</span><span style=display:none>b]ar</span>" queryCommandIndeterm("delete") before
 [PASS] [["delete",""]] "<span style=display:none>fo[o</span><span style=display:none>b]ar</span>" queryCommandState("delete") before
 [PASS] [["delete",""]] "<span style=display:none>fo[o</span><span style=display:none>b]ar</span>" queryCommandValue("delete") before
@@ -254,7 +254,7 @@
 [PASS] [["stylewithcss","true"],["delete",""]] "<quasit style=display:block>fo[o</quasit><quasit style=display:block>b]ar</quasit>": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","true"],["delete",""]] "<quasit style=display:block>fo[o</quasit><quasit style=display:block>b]ar</quasit>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["delete",""]] "<quasit style=display:block>fo[o</quasit><quasit style=display:block>b]ar</quasit>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<quasit style=\"display:block\">foar</quasit>" but got "<quasit style=\"display:block\">fo<span style=\"text-align:inherit\">ar</span></quasit>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<quasit style=\\"display:block\\">foar</quasit>" but got "<quasit style=\\"display:block\\">fo<span style=\\"text-align:inherit\\">ar</span></quasit>"
 [PASS] [["stylewithcss","true"],["delete",""]] "<quasit style=display:block>fo[o</quasit><quasit style=display:block>b]ar</quasit>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["delete",""]] "<quasit style=display:block>fo[o</quasit><quasit style=display:block>b]ar</quasit>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["delete",""]] "<quasit style=display:block>fo[o</quasit><quasit style=display:block>b]ar</quasit>" queryCommandValue("stylewithcss") before
@@ -271,7 +271,7 @@
 [PASS] [["stylewithcss","false"],["delete",""]] "<quasit style=display:block>fo[o</quasit><quasit style=display:block>b]ar</quasit>": execCommand("delete", false, "") return value
 [PASS] [["stylewithcss","false"],["delete",""]] "<quasit style=display:block>fo[o</quasit><quasit style=display:block>b]ar</quasit>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["delete",""]] "<quasit style=display:block>fo[o</quasit><quasit style=display:block>b]ar</quasit>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<quasit style=\"display:block\">foar</quasit>" but got "<quasit style=\"display:block\">fo<span style=\"text-align:inherit\">ar</span></quasit>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<quasit style=\\"display:block\\">foar</quasit>" but got "<quasit style=\\"display:block\\">fo<span style=\\"text-align:inherit\\">ar</span></quasit>"
 [PASS] [["stylewithcss","false"],["delete",""]] "<quasit style=display:block>fo[o</quasit><quasit style=display:block>b]ar</quasit>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["delete",""]] "<quasit style=display:block>fo[o</quasit><quasit style=display:block>b]ar</quasit>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["delete",""]] "<quasit style=display:block>fo[o</quasit><quasit style=display:block>b]ar</quasit>" queryCommandValue("stylewithcss") before
@@ -365,7 +365,7 @@
 [PASS] [["delete",""]] "<ol id=a><li>foo</ol>{}<br><ol><li>bar</ol>": execCommand("delete", false, "") return value
 [PASS] [["delete",""]] "<ol id=a><li>foo</ol>{}<br><ol><li>bar</ol>" checks for modifications to non-editable content
 [FAIL] [["delete",""]] "<ol id=a><li>foo</ol>{}<br><ol><li>bar</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol id=\"a\"><li>foo</li><li>bar</li></ol>" but got "<ol id=\"a\"><li>foo</li></ol><ol><li>bar</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol id=\\"a\\"><li>foo</li><li>bar</li></ol>" but got "<ol id=\\"a\\"><li>foo</li></ol><ol><li>bar</li></ol>"
 [PASS] [["delete",""]] "<ol id=a><li>foo</ol>{}<br><ol><li>bar</ol>" queryCommandIndeterm("delete") before
 [PASS] [["delete",""]] "<ol id=a><li>foo</ol>{}<br><ol><li>bar</ol>" queryCommandState("delete") before
 [PASS] [["delete",""]] "<ol id=a><li>foo</ol>{}<br><ol><li>bar</ol>" queryCommandValue("delete") before
@@ -375,7 +375,7 @@
 [PASS] [["delete",""]] "<ol><li>foo</ol>{}<br><ol id=b><li>bar</ol>": execCommand("delete", false, "") return value
 [PASS] [["delete",""]] "<ol><li>foo</ol>{}<br><ol id=b><li>bar</ol>" checks for modifications to non-editable content
 [FAIL] [["delete",""]] "<ol><li>foo</ol>{}<br><ol id=b><li>bar</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li><li>bar</li></ol>" but got "<ol><li>foo</li></ol><ol id=\"b\"><li>bar</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li><li>bar</li></ol>" but got "<ol><li>foo</li></ol><ol id=\\"b\\"><li>bar</li></ol>"
 [PASS] [["delete",""]] "<ol><li>foo</ol>{}<br><ol id=b><li>bar</ol>" queryCommandIndeterm("delete") before
 [PASS] [["delete",""]] "<ol><li>foo</ol>{}<br><ol id=b><li>bar</ol>" queryCommandState("delete") before
 [PASS] [["delete",""]] "<ol><li>foo</ol>{}<br><ol id=b><li>bar</ol>" queryCommandValue("delete") before
@@ -385,7 +385,7 @@
 [PASS] [["delete",""]] "<ol id=a><li>foo</ol>{}<br><ol id=b><li>bar</ol>": execCommand("delete", false, "") return value
 [PASS] [["delete",""]] "<ol id=a><li>foo</ol>{}<br><ol id=b><li>bar</ol>" checks for modifications to non-editable content
 [FAIL] [["delete",""]] "<ol id=a><li>foo</ol>{}<br><ol id=b><li>bar</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol id=\"a\"><li>foo</li><li>bar</li></ol>" but got "<ol id=\"a\"><li>foo</li></ol><ol id=\"b\"><li>bar</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol id=\\"a\\"><li>foo</li><li>bar</li></ol>" but got "<ol id=\\"a\\"><li>foo</li></ol><ol id=\\"b\\"><li>bar</li></ol>"
 [PASS] [["delete",""]] "<ol id=a><li>foo</ol>{}<br><ol id=b><li>bar</ol>" queryCommandIndeterm("delete") before
 [PASS] [["delete",""]] "<ol id=a><li>foo</ol>{}<br><ol id=b><li>bar</ol>" queryCommandState("delete") before
 [PASS] [["delete",""]] "<ol id=a><li>foo</ol>{}<br><ol id=b><li>bar</ol>" queryCommandValue("delete") before
@@ -395,7 +395,7 @@
 [PASS] [["delete",""]] "<ol class=a><li>foo</ol>{}<br><ol class=b><li>bar</ol>": execCommand("delete", false, "") return value
 [PASS] [["delete",""]] "<ol class=a><li>foo</ol>{}<br><ol class=b><li>bar</ol>" checks for modifications to non-editable content
 [FAIL] [["delete",""]] "<ol class=a><li>foo</ol>{}<br><ol class=b><li>bar</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol class=\"a\"><li>foo</li><li>bar</li></ol>" but got "<ol class=\"a\"><li>foo</li></ol><ol class=\"b\"><li>bar</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol class=\\"a\\"><li>foo</li><li>bar</li></ol>" but got "<ol class=\\"a\\"><li>foo</li></ol><ol class=\\"b\\"><li>bar</li></ol>"
 [PASS] [["delete",""]] "<ol class=a><li>foo</ol>{}<br><ol class=b><li>bar</ol>" queryCommandIndeterm("delete") before
 [PASS] [["delete",""]] "<ol class=a><li>foo</ol>{}<br><ol class=b><li>bar</ol>" queryCommandState("delete") before
 [PASS] [["delete",""]] "<ol class=a><li>foo</ol>{}<br><ol class=b><li>bar</ol>" queryCommandValue("delete") before
@@ -928,7 +928,7 @@
 [PASS] [["delete",""]] "foo<img contenteditable=false src=/img/lion.svg>[]bar": execCommand("delete", false, "") return value
 [PASS] [["delete",""]] "foo<img contenteditable=false src=/img/lion.svg>[]bar" checks for modifications to non-editable content
 [FAIL] [["delete",""]] "foo<img contenteditable=false src=/img/lion.svg>[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar" but got "foo<img contenteditable=\"false\" src=\"/img/lion.svg\">bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar" but got "foo<img contenteditable=\\"false\\" src=\\"/img/lion.svg\\">bar"
 [PASS] [["delete",""]] "foo<img contenteditable=false src=/img/lion.svg>[]bar" queryCommandIndeterm("delete") before
 [PASS] [["delete",""]] "foo<img contenteditable=false src=/img/lion.svg>[]bar" queryCommandState("delete") before
 [PASS] [["delete",""]] "foo<img contenteditable=false src=/img/lion.svg>[]bar" queryCommandValue("delete") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/delete_7001-last-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/delete_7001-last-expected.txt
index 55443b4b..5c0586a 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/delete_7001-last-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/delete_7001-last-expected.txt
@@ -30,283 +30,283 @@
 [PASS] [["delete",""]] "<div><div contenteditable=false><span contenteditable>{}<br></span></div></div></div>" queryCommandIndeterm("delete") after
 [PASS] [["delete",""]] "<div><div contenteditable=false><span contenteditable>{}<br></span></div></div></div>" queryCommandState("delete") after
 [PASS] [["delete",""]] "<div><div contenteditable=false><span contenteditable>{}<br></span></div></div></div>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre>foo \n[]bar</div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<div style=white-space:pre>foo \n[]bar</div>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<div style=white-space:pre>foo \n[]bar</div>" compare innerHTML
-[PASS] [["delete",""]] "<div style=white-space:pre>foo \n[]bar</div>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre>foo \n[]bar</div>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre>foo \n[]bar</div>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre>foo \n[]bar</div>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre>foo \n[]bar</div>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre>foo \n[]bar</div>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\n []bar</div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\n []bar</div>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\n []bar</div>" compare innerHTML
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\n []bar</div>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\n []bar</div>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\n []bar</div>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\n []bar</div>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\n []bar</div>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\n []bar</div>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\n\n[]bar</div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\n\n[]bar</div>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\n\n[]bar</div>" compare innerHTML
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\n\n[]bar</div>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\n\n[]bar</div>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\n\n[]bar</div>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\n\n[]bar</div>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\n\n[]bar</div>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\n\n[]bar</div>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\nb[]</div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\nb[]</div>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\nb[]</div>" compare innerHTML
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\nb[]</div>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\nb[]</div>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\nb[]</div>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\nb[]</div>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\nb[]</div>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre>foo\nb[]</div>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo \n[]bar</div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo \n[]bar</div>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo \n[]bar</div>" compare innerHTML
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo \n[]bar</div>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo \n[]bar</div>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo \n[]bar</div>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo \n[]bar</div>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo \n[]bar</div>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo \n[]bar</div>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\n []bar</div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\n []bar</div>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\n []bar</div>" compare innerHTML
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\n []bar</div>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\n []bar</div>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\n []bar</div>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\n []bar</div>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\n []bar</div>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\n []bar</div>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\n\n[]bar</div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\n\n[]bar</div>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\n\n[]bar</div>" compare innerHTML
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\n\n[]bar</div>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\n\n[]bar</div>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\n\n[]bar</div>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\n\n[]bar</div>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\n\n[]bar</div>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\n\n[]bar</div>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\nb[]</div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\nb[]</div>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\nb[]</div>" compare innerHTML
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\nb[]</div>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\nb[]</div>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\nb[]</div>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\nb[]</div>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\nb[]</div>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\nb[]</div>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo \n[]bar</div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo \n[]bar</div>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo \n[]bar</div>" compare innerHTML
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo \n[]bar</div>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo \n[]bar</div>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo \n[]bar</div>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo \n[]bar</div>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo \n[]bar</div>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo \n[]bar</div>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\n []bar</div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\n []bar</div>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\n []bar</div>" compare innerHTML
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\n []bar</div>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\n []bar</div>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\n []bar</div>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\n []bar</div>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\n []bar</div>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\n []bar</div>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\n\n[]bar</div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\n\n[]bar</div>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\n\n[]bar</div>" compare innerHTML
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\n\n[]bar</div>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\n\n[]bar</div>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\n\n[]bar</div>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\n\n[]bar</div>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\n\n[]bar</div>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\n\n[]bar</div>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\nb[]</div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\nb[]</div>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\nb[]</div>" compare innerHTML
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\nb[]</div>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\nb[]</div>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\nb[]</div>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\nb[]</div>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\nb[]</div>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\nb[]</div>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo \n[]bar</div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo \n[]bar</div>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo \n[]bar</div>" compare innerHTML
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo \n[]bar</div>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo \n[]bar</div>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo \n[]bar</div>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo \n[]bar</div>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo \n[]bar</div>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo \n[]bar</div>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\n []bar</div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\n []bar</div>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\n []bar</div>" compare innerHTML
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\n []bar</div>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\n []bar</div>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\n []bar</div>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\n []bar</div>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\n []bar</div>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\n []bar</div>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\n\n[]bar</div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\n\n[]bar</div>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\n\n[]bar</div>" compare innerHTML
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\n\n[]bar</div>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\n\n[]bar</div>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\n\n[]bar</div>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\n\n[]bar</div>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\n\n[]bar</div>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\n\n[]bar</div>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\nb[]</div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\nb[]</div>" checks for modifications to non-editable content
-[FAIL] [["delete",""]] "<div style=white-space:nowrap>foo\nb[]</div>" compare innerHTML
-  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div style=\"white-space:nowrap\">foo&nbsp;</div>" not in array ["<div style=\"white-space:nowrap\">foo\n</div>", "<div style=\"white-space:nowrap\">foo<br></div>"]
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\nb[]</div>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\nb[]</div>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\nb[]</div>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\nb[]</div>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\nb[]</div>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\nb[]</div>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>a[b]c</span></p>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>a[b]c</span></p>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>a[b]c</span></p>" compare innerHTML
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>a[b]c</span></p>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>a[b]c</span></p>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>a[b]c</span></p>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>a[b]c</span></p>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>a[b]c</span></p>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>a[b]c</span></p>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>a[b]c</unknown-element></p>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>a[b]c</unknown-element></p>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>a[b]c</unknown-element></p>" compare innerHTML
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>[abc]</span></p>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>[abc]</span></p>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>[abc]</span></p>" compare innerHTML
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>[abc]</span></p>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>[abc]</span></p>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>[abc]</span></p>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>[abc]</span></p>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>[abc]</span></p>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>[abc]</span></p>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>a[bc<br>de]f</span></p>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>a[bc<br>de]f</span></p>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>a[bc<br>de]f</span></p>" compare innerHTML
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>[abc]</unknown-element></p>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>[abc]</unknown-element></p>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>[abc]</unknown-element></p>" compare innerHTML
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>[ab</p><p>c]d</p></custom-element></div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>[ab</p><p>c]d</p></custom-element></div>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>[ab</p><p>c]d</p></custom-element></div>" compare innerHTML
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>a[b</p><p>cd]</p></custom-element></div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>a[b</p><p>cd]</p></custom-element></div>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>a[b</p><p>cd]</p></custom-element></div>" compare innerHTML
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" compare innerHTML
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" compare innerHTML
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<p>abc</p><ul contenteditable=\"false\"><li>def</li></ul><p>[]ghi</p>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<p>abc</p><ul contenteditable=\"false\"><li>def</li></ul><p>[]ghi</p>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<p>abc</p><ul contenteditable=\"false\"><li>def</li></ul><p>[]ghi</p>" compare innerHTML
-[PASS] [["delete",""]] "<p>abc</p><ul contenteditable=\"false\"><li>def</li></ul><p>[]ghi</p>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<p>abc</p><ul contenteditable=\"false\"><li>def</li></ul><p>[]ghi</p>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<p>abc</p><ul contenteditable=\"false\"><li>def</li></ul><p>[]ghi</p>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<p>abc</p><ul contenteditable=\"false\"><li>def</li></ul><p>[]ghi</p>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<p>abc</p><ul contenteditable=\"false\"><li>def</li></ul><p>[]ghi</p>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<p>abc</p><ul contenteditable=\"false\"><li>def</li></ul><p>[]ghi</p>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\"false\">def</li></ul><p>[]ghi</p>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\"false\">def</li></ul><p>[]ghi</p>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\"false\">def</li></ul><p>[]ghi</p>" compare innerHTML
-[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\"false\">def</li></ul><p>[]ghi</p>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\"false\">def</li></ul><p>[]ghi</p>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\"false\">def</li></ul><p>[]ghi</p>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\"false\">def</li></ul><p>[]ghi</p>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\"false\">def</li></ul><p>[]ghi</p>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\"false\">def</li></ul><p>[]ghi</p>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\"false\">def</li><li>[]ghi</li></ul>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\"false\">def</li><li>[]ghi</li></ul>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\"false\">def</li><li>[]ghi</li></ul>" compare innerHTML
-[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\"false\">def</li><li>[]ghi</li></ul>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\"false\">def</li><li>[]ghi</li></ul>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\"false\">def</li><li>[]ghi</li></ul>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\"false\">def</li><li>[]ghi</li></ul>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\"false\">def</li><li>[]ghi</li></ul>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\"false\">def</li><li>[]ghi</li></ul>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\"false\">def</li><li>[]ghi</li></ul>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\"false\">def</li><li>[]ghi</li></ul>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\"false\">def</li><li>[]ghi</li></ul>" compare innerHTML
-[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\"false\">def</li><li>[]ghi</li></ul>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\"false\">def</li><li>[]ghi</li></ul>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\"false\">def</li><li>[]ghi</li></ul>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\"false\">def</li><li>[]ghi</li></ul>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\"false\">def</li><li>[]ghi</li></ul>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\"false\">def</li><li>[]ghi</li></ul>" queryCommandValue("delete") after
-[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\"false\">def</li></ul><p>[]ghi</p>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\"false\">def</li></ul><p>[]ghi</p>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\"false\">def</li></ul><p>[]ghi</p>" compare innerHTML
-[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\"false\">def</li></ul><p>[]ghi</p>" queryCommandIndeterm("delete") before
-[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\"false\">def</li></ul><p>[]ghi</p>" queryCommandState("delete") before
-[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\"false\">def</li></ul><p>[]ghi</p>" queryCommandValue("delete") before
-[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\"false\">def</li></ul><p>[]ghi</p>" queryCommandIndeterm("delete") after
-[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\"false\">def</li></ul><p>[]ghi</p>" queryCommandState("delete") after
-[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\"false\">def</li></ul><p>[]ghi</p>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre>foo \\n[]bar</div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<div style=white-space:pre>foo \\n[]bar</div>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<div style=white-space:pre>foo \\n[]bar</div>" compare innerHTML
+[PASS] [["delete",""]] "<div style=white-space:pre>foo \\n[]bar</div>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre>foo \\n[]bar</div>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre>foo \\n[]bar</div>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre>foo \\n[]bar</div>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre>foo \\n[]bar</div>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre>foo \\n[]bar</div>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\n []bar</div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\n []bar</div>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\n []bar</div>" compare innerHTML
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\n []bar</div>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\n []bar</div>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\n []bar</div>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\n []bar</div>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\n []bar</div>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\n []bar</div>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\n\\n[]bar</div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\n\\n[]bar</div>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\n\\n[]bar</div>" compare innerHTML
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\n\\n[]bar</div>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\n\\n[]bar</div>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\n\\n[]bar</div>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\n\\n[]bar</div>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\n\\n[]bar</div>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\n\\n[]bar</div>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\nb[]</div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\nb[]</div>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\nb[]</div>" compare innerHTML
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\nb[]</div>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\nb[]</div>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\nb[]</div>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\nb[]</div>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\nb[]</div>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre>foo\\nb[]</div>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo \\n[]bar</div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo \\n[]bar</div>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo \\n[]bar</div>" compare innerHTML
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo \\n[]bar</div>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo \\n[]bar</div>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo \\n[]bar</div>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo \\n[]bar</div>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo \\n[]bar</div>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo \\n[]bar</div>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\n []bar</div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\n []bar</div>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\n []bar</div>" compare innerHTML
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\n []bar</div>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\n []bar</div>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\n []bar</div>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\n []bar</div>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\n []bar</div>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\n []bar</div>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\n\\n[]bar</div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\n\\n[]bar</div>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\n\\n[]bar</div>" compare innerHTML
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\n\\n[]bar</div>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\n\\n[]bar</div>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\n\\n[]bar</div>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\n\\n[]bar</div>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\n\\n[]bar</div>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\n\\n[]bar</div>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\nb[]</div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\nb[]</div>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\nb[]</div>" compare innerHTML
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\nb[]</div>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\nb[]</div>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\nb[]</div>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\nb[]</div>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\nb[]</div>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-wrap>foo\\nb[]</div>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo \\n[]bar</div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo \\n[]bar</div>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo \\n[]bar</div>" compare innerHTML
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo \\n[]bar</div>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo \\n[]bar</div>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo \\n[]bar</div>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo \\n[]bar</div>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo \\n[]bar</div>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo \\n[]bar</div>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\n []bar</div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\n []bar</div>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\n []bar</div>" compare innerHTML
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\n []bar</div>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\n []bar</div>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\n []bar</div>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\n []bar</div>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\n []bar</div>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\n []bar</div>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\n\\n[]bar</div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\n\\n[]bar</div>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\n\\n[]bar</div>" compare innerHTML
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\n\\n[]bar</div>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\n\\n[]bar</div>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\n\\n[]bar</div>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\n\\n[]bar</div>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\n\\n[]bar</div>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\n\\n[]bar</div>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\nb[]</div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\nb[]</div>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\nb[]</div>" compare innerHTML
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\nb[]</div>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\nb[]</div>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\nb[]</div>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\nb[]</div>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\nb[]</div>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<div style=white-space:pre-line>foo\\nb[]</div>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo \\n[]bar</div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo \\n[]bar</div>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo \\n[]bar</div>" compare innerHTML
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo \\n[]bar</div>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo \\n[]bar</div>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo \\n[]bar</div>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo \\n[]bar</div>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo \\n[]bar</div>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo \\n[]bar</div>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\n []bar</div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\n []bar</div>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\n []bar</div>" compare innerHTML
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\n []bar</div>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\n []bar</div>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\n []bar</div>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\n []bar</div>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\n []bar</div>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\n []bar</div>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\n\\n[]bar</div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\n\\n[]bar</div>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\n\\n[]bar</div>" compare innerHTML
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\n\\n[]bar</div>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\n\\n[]bar</div>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\n\\n[]bar</div>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\n\\n[]bar</div>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\n\\n[]bar</div>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\n\\n[]bar</div>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\nb[]</div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\nb[]</div>" checks for modifications to non-editable content
+[FAIL] [["delete",""]] "<div style=white-space:nowrap>foo\\nb[]</div>" compare innerHTML
+  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div style=\\"white-space:nowrap\\">foo&nbsp;</div>" not in array ["<div style=\\"white-space:nowrap\\">foo\\n</div>", "<div style=\\"white-space:nowrap\\">foo<br></div>"]
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\nb[]</div>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\nb[]</div>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\nb[]</div>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\nb[]</div>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\nb[]</div>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<div style=white-space:nowrap>foo\\nb[]</div>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[b]c</span></p>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[b]c</span></p>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[b]c</span></p>" compare innerHTML
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[b]c</span></p>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[b]c</span></p>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[b]c</span></p>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[b]c</span></p>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[b]c</span></p>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[b]c</span></p>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>a[b]c</unknown-element></p>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>a[b]c</unknown-element></p>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>a[b]c</unknown-element></p>" compare innerHTML
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>[abc]</span></p>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>[abc]</span></p>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>[abc]</span></p>" compare innerHTML
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>[abc]</span></p>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>[abc]</span></p>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>[abc]</span></p>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>[abc]</span></p>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>[abc]</span></p>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>[abc]</span></p>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[bc<br>de]f</span></p>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[bc<br>de]f</span></p>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[bc<br>de]f</span></p>" compare innerHTML
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>[abc]</unknown-element></p>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>[abc]</unknown-element></p>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>[abc]</unknown-element></p>" compare innerHTML
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>[ab</p><p>c]d</p></custom-element></div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>[ab</p><p>c]d</p></custom-element></div>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>[ab</p><p>c]d</p></custom-element></div>" compare innerHTML
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>a[b</p><p>cd]</p></custom-element></div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>a[b</p><p>cd]</p></custom-element></div>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>a[b</p><p>cd]</p></custom-element></div>" compare innerHTML
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" compare innerHTML
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" compare innerHTML
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<p>abc</p><ul contenteditable=\\"false\\"><li>def</li></ul><p>[]ghi</p>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<p>abc</p><ul contenteditable=\\"false\\"><li>def</li></ul><p>[]ghi</p>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<p>abc</p><ul contenteditable=\\"false\\"><li>def</li></ul><p>[]ghi</p>" compare innerHTML
+[PASS] [["delete",""]] "<p>abc</p><ul contenteditable=\\"false\\"><li>def</li></ul><p>[]ghi</p>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<p>abc</p><ul contenteditable=\\"false\\"><li>def</li></ul><p>[]ghi</p>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<p>abc</p><ul contenteditable=\\"false\\"><li>def</li></ul><p>[]ghi</p>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<p>abc</p><ul contenteditable=\\"false\\"><li>def</li></ul><p>[]ghi</p>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<p>abc</p><ul contenteditable=\\"false\\"><li>def</li></ul><p>[]ghi</p>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<p>abc</p><ul contenteditable=\\"false\\"><li>def</li></ul><p>[]ghi</p>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\\"false\\">def</li></ul><p>[]ghi</p>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\\"false\\">def</li></ul><p>[]ghi</p>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\\"false\\">def</li></ul><p>[]ghi</p>" compare innerHTML
+[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\\"false\\">def</li></ul><p>[]ghi</p>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\\"false\\">def</li></ul><p>[]ghi</p>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\\"false\\">def</li></ul><p>[]ghi</p>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\\"false\\">def</li></ul><p>[]ghi</p>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\\"false\\">def</li></ul><p>[]ghi</p>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\\"false\\">def</li></ul><p>[]ghi</p>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\\"false\\">def</li><li>[]ghi</li></ul>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\\"false\\">def</li><li>[]ghi</li></ul>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\\"false\\">def</li><li>[]ghi</li></ul>" compare innerHTML
+[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\\"false\\">def</li><li>[]ghi</li></ul>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\\"false\\">def</li><li>[]ghi</li></ul>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\\"false\\">def</li><li>[]ghi</li></ul>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\\"false\\">def</li><li>[]ghi</li></ul>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\\"false\\">def</li><li>[]ghi</li></ul>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<p>abc</p><ul><li contenteditable=\\"false\\">def</li><li>[]ghi</li></ul>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\\"false\\">def</li><li>[]ghi</li></ul>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\\"false\\">def</li><li>[]ghi</li></ul>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\\"false\\">def</li><li>[]ghi</li></ul>" compare innerHTML
+[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\\"false\\">def</li><li>[]ghi</li></ul>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\\"false\\">def</li><li>[]ghi</li></ul>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\\"false\\">def</li><li>[]ghi</li></ul>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\\"false\\">def</li><li>[]ghi</li></ul>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\\"false\\">def</li><li>[]ghi</li></ul>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\\"false\\">def</li><li>[]ghi</li></ul>" queryCommandValue("delete") after
+[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\\"false\\">def</li></ul><p>[]ghi</p>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\\"false\\">def</li></ul><p>[]ghi</p>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\\"false\\">def</li></ul><p>[]ghi</p>" compare innerHTML
+[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\\"false\\">def</li></ul><p>[]ghi</p>" queryCommandIndeterm("delete") before
+[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\\"false\\">def</li></ul><p>[]ghi</p>" queryCommandState("delete") before
+[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\\"false\\">def</li></ul><p>[]ghi</p>" queryCommandValue("delete") before
+[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\\"false\\">def</li></ul><p>[]ghi</p>" queryCommandIndeterm("delete") after
+[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\\"false\\">def</li></ul><p>[]ghi</p>" queryCommandState("delete") after
+[PASS] [["delete",""]] "<ul><li>abc</li><li contenteditable=\\"false\\">def</li></ul><p>[]ghi</p>" queryCommandValue("delete") after
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>": execCommand("styleWithCSS", false, "false") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>": execCommand("defaultparagraphseparator", false, "div") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>": execCommand("delete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\"blue\">foo</font><font color=\"brown\">bar</font></p>" but got "<p><font color=\"blue\">foo</font><span style=\"color:rgb(165, 42, 42)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\\"blue\\">foo</font><font color=\\"brown\\">bar</font></p>" but got "<p><font color=\\"blue\\">foo</font><span style=\\"color:rgb(165, 42, 42)\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>" queryCommandIndeterm("foreColor") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>" queryCommandState("foreColor") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>" queryCommandValue("foreColor") before
@@ -318,7 +318,7 @@
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>": execCommand("delete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\"blue\">foo</font><font color=\"brown\">bar</font></p>" but got "<p><font color=\"blue\">foo</font><span style=\"color:rgb(165, 42, 42)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\\"blue\\">foo</font><font color=\\"brown\\">bar</font></p>" but got "<p><font color=\\"blue\\">foo</font><span style=\\"color:rgb(165, 42, 42)\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>" queryCommandIndeterm("foreColor") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>" queryCommandState("foreColor") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font color=blue>foo</font><p><font color=brown>[]bar</font>" queryCommandValue("foreColor") before
@@ -330,7 +330,7 @@
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font size=3>foo</font><p><font size=5>[]bar</font>": execCommand("delete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font size=3>foo</font><p><font size=5>[]bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font size=3>foo</font><p><font size=5>[]bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\"3\">foo</font><font size=\"5\">bar</font></p>" but got "<p><font size=\"3\">foo</font><span style=\"font-size:x-large\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\\"3\\">foo</font><font size=\\"5\\">bar</font></p>" but got "<p><font size=\\"3\\">foo</font><span style=\\"font-size:x-large\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font size=3>foo</font><p><font size=5>[]bar</font>" queryCommandIndeterm("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font size=3>foo</font><p><font size=5>[]bar</font>" queryCommandState("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font size=3>foo</font><p><font size=5>[]bar</font>" queryCommandValue("fontSize") before
@@ -342,7 +342,7 @@
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font size=3>foo</font><p><font size=5>[]bar</font>": execCommand("delete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font size=3>foo</font><p><font size=5>[]bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font size=3>foo</font><p><font size=5>[]bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\"3\">foo</font><font size=\"5\">bar</font></p>" but got "<p><font size=\"3\">foo</font><span style=\"font-size:x-large\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\\"3\\">foo</font><font size=\\"5\\">bar</font></p>" but got "<p><font size=\\"3\\">foo</font><span style=\\"font-size:x-large\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font size=3>foo</font><p><font size=5>[]bar</font>" queryCommandIndeterm("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font size=3>foo</font><p><font size=5>[]bar</font>" queryCommandState("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font size=3>foo</font><p><font size=5>[]bar</font>" queryCommandValue("fontSize") before
@@ -354,7 +354,7 @@
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font size=4>foo</font><p><font size=5>[]bar</font>": execCommand("delete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font size=4>foo</font><p><font size=5>[]bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font size=4>foo</font><p><font size=5>[]bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\"4\">foo</font><font size=\"5\">bar</font></p>" but got "<p><font size=\"4\">foo</font><span style=\"font-size:x-large\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\\"4\\">foo</font><font size=\\"5\\">bar</font></p>" but got "<p><font size=\\"4\\">foo</font><span style=\\"font-size:x-large\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font size=4>foo</font><p><font size=5>[]bar</font>" queryCommandIndeterm("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font size=4>foo</font><p><font size=5>[]bar</font>" queryCommandState("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font size=4>foo</font><p><font size=5>[]bar</font>" queryCommandValue("fontSize") before
@@ -366,7 +366,7 @@
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font size=4>foo</font><p><font size=5>[]bar</font>": execCommand("delete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font size=4>foo</font><p><font size=5>[]bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font size=4>foo</font><p><font size=5>[]bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\"4\">foo</font><font size=\"5\">bar</font></p>" but got "<p><font size=\"4\">foo</font><span style=\"font-size:x-large\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\\"4\\">foo</font><font size=\\"5\\">bar</font></p>" but got "<p><font size=\\"4\\">foo</font><span style=\\"font-size:x-large\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font size=4>foo</font><p><font size=5>[]bar</font>" queryCommandIndeterm("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font size=4>foo</font><p><font size=5>[]bar</font>" queryCommandState("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font size=4>foo</font><p><font size=5>[]bar</font>" queryCommandValue("fontSize") before
@@ -378,7 +378,7 @@
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font color=blue>foo</font><p><font size=5>[]bar</font>": execCommand("delete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font color=blue>foo</font><p><font size=5>[]bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font color=blue>foo</font><p><font size=5>[]bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\"blue\">foo</font><font size=\"5\">bar</font></p>" but got "<p><font color=\"blue\">foo</font><span style=\"font-size:x-large\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\\"blue\\">foo</font><font size=\\"5\\">bar</font></p>" but got "<p><font color=\\"blue\\">foo</font><span style=\\"font-size:x-large\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font color=blue>foo</font><p><font size=5>[]bar</font>" queryCommandIndeterm("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font color=blue>foo</font><p><font size=5>[]bar</font>" queryCommandState("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font color=blue>foo</font><p><font size=5>[]bar</font>" queryCommandValue("fontSize") before
@@ -396,7 +396,7 @@
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font color=blue>foo</font><p><font size=5>[]bar</font>": execCommand("delete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font color=blue>foo</font><p><font size=5>[]bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font color=blue>foo</font><p><font size=5>[]bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\"blue\">foo</font><font size=\"5\">bar</font></p>" but got "<p><font color=\"blue\">foo</font><span style=\"font-size:x-large\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\\"blue\\">foo</font><font size=\\"5\\">bar</font></p>" but got "<p><font color=\\"blue\\">foo</font><span style=\\"font-size:x-large\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font color=blue>foo</font><p><font size=5>[]bar</font>" queryCommandIndeterm("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font color=blue>foo</font><p><font size=5>[]bar</font>" queryCommandState("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font color=blue>foo</font><p><font size=5>[]bar</font>" queryCommandValue("fontSize") before
@@ -414,7 +414,7 @@
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font size=5>foo</font><p><font color=blue>[]bar</font>": execCommand("delete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font size=5>foo</font><p><font color=blue>[]bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font size=5>foo</font><p><font color=blue>[]bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\"5\">foo</font><font color=\"blue\">bar</font></p>" but got "<p><font size=\"5\">foo</font><span style=\"color:rgb(0, 0, 255)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\\"5\\">foo</font><font color=\\"blue\\">bar</font></p>" but got "<p><font size=\\"5\\">foo</font><span style=\\"color:rgb(0, 0, 255)\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font size=5>foo</font><p><font color=blue>[]bar</font>" queryCommandIndeterm("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font size=5>foo</font><p><font color=blue>[]bar</font>" queryCommandState("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font size=5>foo</font><p><font color=blue>[]bar</font>" queryCommandValue("fontSize") before
@@ -432,7 +432,7 @@
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font size=5>foo</font><p><font color=blue>[]bar</font>": execCommand("delete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font size=5>foo</font><p><font color=blue>[]bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font size=5>foo</font><p><font color=blue>[]bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\"5\">foo</font><font color=\"blue\">bar</font></p>" but got "<p><font size=\"5\">foo</font><span style=\"color:rgb(0, 0, 255)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\\"5\\">foo</font><font color=\\"blue\\">bar</font></p>" but got "<p><font size=\\"5\\">foo</font><span style=\\"color:rgb(0, 0, 255)\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font size=5>foo</font><p><font color=blue>[]bar</font>" queryCommandIndeterm("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font size=5>foo</font><p><font color=blue>[]bar</font>" queryCommandState("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font size=5>foo</font><p><font color=blue>[]bar</font>" queryCommandValue("fontSize") before
@@ -450,7 +450,7 @@
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font face=monospace>foo</font><p><font face=sans-serif>[]bar</font>": execCommand("delete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font face=monospace>foo</font><p><font face=sans-serif>[]bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font face=monospace>foo</font><p><font face=sans-serif>[]bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font face=\"monospace\">foo</font><font face=\"sans-serif\">bar</font></p>" but got "<p><font face=\"monospace\">foo</font><span style=\"font-family:sans-serif\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font face=\\"monospace\\">foo</font><font face=\\"sans-serif\\">bar</font></p>" but got "<p><font face=\\"monospace\\">foo</font><span style=\\"font-family:sans-serif\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font face=monospace>foo</font><p><font face=sans-serif>[]bar</font>" queryCommandIndeterm("fontName") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font face=monospace>foo</font><p><font face=sans-serif>[]bar</font>" queryCommandState("fontName") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]] "<p><font face=monospace>foo</font><p><font face=sans-serif>[]bar</font>" queryCommandValue("fontName") before
@@ -462,93 +462,93 @@
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font face=monospace>foo</font><p><font face=sans-serif>[]bar</font>": execCommand("delete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font face=monospace>foo</font><p><font face=sans-serif>[]bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font face=monospace>foo</font><p><font face=sans-serif>[]bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font face=\"monospace\">foo</font><font face=\"sans-serif\">bar</font></p>" but got "<p><font face=\"monospace\">foo</font><span style=\"font-family:sans-serif\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font face=\\"monospace\\">foo</font><font face=\\"sans-serif\\">bar</font></p>" but got "<p><font face=\\"monospace\\">foo</font><span style=\\"font-family:sans-serif\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font face=monospace>foo</font><p><font face=sans-serif>[]bar</font>" queryCommandIndeterm("fontName") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font face=monospace>foo</font><p><font face=sans-serif>[]bar</font>" queryCommandState("fontName") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font face=monospace>foo</font><p><font face=sans-serif>[]bar</font>" queryCommandValue("fontName") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font face=monospace>foo</font><p><font face=sans-serif>[]bar</font>" queryCommandIndeterm("fontName") after
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font face=monospace>foo</font><p><font face=sans-serif>[]bar</font>" queryCommandState("fontName") after
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]] "<p><font face=monospace>foo</font><p><font face=sans-serif>[]bar</font>" queryCommandValue("fontName") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("delete", false, "") return value
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandIndeterm("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandState("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandValue("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandIndeterm("foreColor") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandState("foreColor") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandValue("foreColor") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("delete", false, "") return value
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandIndeterm("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandState("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandValue("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandIndeterm("foreColor") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandState("foreColor") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandValue("foreColor") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("delete", false, "") return value
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandIndeterm("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandState("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandValue("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandIndeterm("foreColor") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandState("foreColor") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandValue("foreColor") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>": execCommand("delete", false, "") return value
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" queryCommandIndeterm("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" queryCommandState("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" queryCommandValue("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" queryCommandIndeterm("foreColor") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" queryCommandState("foreColor") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" queryCommandValue("foreColor") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>": execCommand("delete", false, "") return value
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" queryCommandIndeterm("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" queryCommandState("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" queryCommandValue("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" queryCommandIndeterm("foreColor") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" queryCommandState("foreColor") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" queryCommandValue("foreColor") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>": execCommand("delete", false, "") return value
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" queryCommandIndeterm("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" queryCommandState("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" queryCommandValue("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" queryCommandIndeterm("foreColor") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" queryCommandState("foreColor") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" queryCommandValue("foreColor") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo</span><br><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo</span><br><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("delete", false, "") return value
-[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo</span><br><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo</span><br><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo</span><br><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandIndeterm("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo</span><br><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandState("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo</span><br><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandValue("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo</span><br><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandIndeterm("foreColor") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo</span><br><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandState("foreColor") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo</span><br><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandValue("foreColor") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo<br></span><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo<br></span><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("delete", false, "") return value
-[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo<br></span><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo<br></span><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo<br></span><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandIndeterm("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo<br></span><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandState("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo<br></span><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandValue("foreColor") before
-[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo<br></span><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandIndeterm("foreColor") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo<br></span><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandState("foreColor") after
-[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo<br></span><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" queryCommandValue("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("delete", false, "") return value
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandIndeterm("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandState("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandValue("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandIndeterm("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandState("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandValue("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("delete", false, "") return value
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandIndeterm("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandState("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandValue("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandIndeterm("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandState("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandValue("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("delete", false, "") return value
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandIndeterm("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandState("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandValue("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandIndeterm("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandState("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandValue("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>": execCommand("delete", false, "") return value
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" queryCommandIndeterm("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" queryCommandState("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" queryCommandValue("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" queryCommandIndeterm("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" queryCommandState("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" queryCommandValue("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>": execCommand("delete", false, "") return value
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" queryCommandIndeterm("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" queryCommandState("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" queryCommandValue("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" queryCommandIndeterm("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" queryCommandState("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" queryCommandValue("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>": execCommand("delete", false, "") return value
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" queryCommandIndeterm("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" queryCommandState("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" queryCommandValue("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" queryCommandIndeterm("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" queryCommandState("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" queryCommandValue("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("delete", false, "") return value
+[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandIndeterm("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandState("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandValue("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandIndeterm("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandState("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandValue("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("delete", false, "") return value
+[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandIndeterm("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandState("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandValue("foreColor") before
+[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandIndeterm("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandState("foreColor") after
+[PASS] [["styleWithCSS","false"],["delete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" queryCommandValue("foreColor") after
 [PASS] [["delete",""]] "<ul><li>[abc</li><li>def]</li></ul>": execCommand("delete", false, "") return value
 [PASS] [["delete",""]] "<ul><li>[abc</li><li>def]</li></ul>" checks for modifications to non-editable content
 [PASS] [["delete",""]] "<ul><li>[abc</li><li>def]</li></ul>" compare innerHTML
@@ -585,24 +585,24 @@
 [PASS] [["delete",""]] "<ul><li> [abc</li><li>def] </li></ul>": execCommand("delete", false, "") return value
 [PASS] [["delete",""]] "<ul><li> [abc</li><li>def] </li></ul>" checks for modifications to non-editable content
 [PASS] [["delete",""]] "<ul><li> [abc</li><li>def] </li></ul>" compare innerHTML
-[PASS] [["delete",""]] "<ul>\n<li>[abc</li><li>def]</li></ul>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<ul>\n<li>[abc</li><li>def]</li></ul>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<ul>\n<li>[abc</li><li>def]</li></ul>" compare innerHTML
-[PASS] [["delete",""]] "<ul><li>[abc</li><li>def]</li>\n</ul>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<ul><li>[abc</li><li>def]</li>\n</ul>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<ul><li>[abc</li><li>def]</li>\n</ul>" compare innerHTML
-[PASS] [["delete",""]] "<ul>\n<li>[abc</li><li>def]</li>\n</ul>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<ul>\n<li>[abc</li><li>def]</li>\n</ul>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<ul>\n<li>[abc</li><li>def]</li>\n</ul>" compare innerHTML
+[PASS] [["delete",""]] "<ul>\\n<li>[abc</li><li>def]</li></ul>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<ul>\\n<li>[abc</li><li>def]</li></ul>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<ul>\\n<li>[abc</li><li>def]</li></ul>" compare innerHTML
+[PASS] [["delete",""]] "<ul><li>[abc</li><li>def]</li>\\n</ul>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<ul><li>[abc</li><li>def]</li>\\n</ul>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<ul><li>[abc</li><li>def]</li>\\n</ul>" compare innerHTML
+[PASS] [["delete",""]] "<ul>\\n<li>[abc</li><li>def]</li>\\n</ul>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<ul>\\n<li>[abc</li><li>def]</li>\\n</ul>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<ul>\\n<li>[abc</li><li>def]</li>\\n</ul>" compare innerHTML
 [PASS] [["delete",""]] "<ol><li>[abc</li></ol><ul><li>def]</li></ul>": execCommand("delete", false, "") return value
 [PASS] [["delete",""]] "<ol><li>[abc</li></ol><ul><li>def]</li></ul>" checks for modifications to non-editable content
 [PASS] [["delete",""]] "<ol><li>[abc</li></ol><ul><li>def]</li></ul>" compare innerHTML
 [PASS] [["delete",""]] "<ol><li> [abc</li></ol><ul><li>def]</li></ul>": execCommand("delete", false, "") return value
 [PASS] [["delete",""]] "<ol><li> [abc</li></ol><ul><li>def]</li></ul>" checks for modifications to non-editable content
 [PASS] [["delete",""]] "<ol><li> [abc</li></ol><ul><li>def]</li></ul>" compare innerHTML
-[PASS] [["delete",""]] "<ol>\n<li>[abc</li></ol><ul><li>def]</li></ul>": execCommand("delete", false, "") return value
-[PASS] [["delete",""]] "<ol>\n<li>[abc</li></ol><ul><li>def]</li></ul>" checks for modifications to non-editable content
-[PASS] [["delete",""]] "<ol>\n<li>[abc</li></ol><ul><li>def]</li></ul>" compare innerHTML
+[PASS] [["delete",""]] "<ol>\\n<li>[abc</li></ol><ul><li>def]</li></ul>": execCommand("delete", false, "") return value
+[PASS] [["delete",""]] "<ol>\\n<li>[abc</li></ol><ul><li>def]</li></ul>" checks for modifications to non-editable content
+[PASS] [["delete",""]] "<ol>\\n<li>[abc</li></ol><ul><li>def]</li></ul>" compare innerHTML
 [PASS] [["delete",""]] "{<ul><li>abc<span>def</span>ghi</li><li>jkl<span>opq</span>rst</li></ul>}": execCommand("delete", false, "") return value
 [PASS] [["delete",""]] "{<ul><li>abc<span>def</span>ghi</li><li>jkl<span>opq</span>rst</li></ul>}" checks for modifications to non-editable content
 [PASS] [["delete",""]] "{<ul><li>abc<span>def</span>ghi</li><li>jkl<span>opq</span>rst</li></ul>}" compare innerHTML
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/fontname_1-1000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/fontname_1-1000-expected.txt
index c48cc03..649b0c183 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/fontname_1-1000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/fontname_1-1000-expected.txt
@@ -78,7 +78,7 @@
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>": execCommand("fontname", false, "sans-serif") return value
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["fontname","sans-serif"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"font-family:sans-serif\">foo</span></p><p> <span style=\"font-family:sans-serif\"><span>bar</span></span> </p><p><span style=\"font-family:sans-serif\">baz</span></p>" but got "<p><span style=\"font-family:sans-serif\">foo</span></p><p> <span style=\"font-family:sans-serif\"><span>bar</span> </span></p><p><span style=\"font-family:sans-serif\">baz</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"font-family:sans-serif\\">foo</span></p><p> <span style=\\"font-family:sans-serif\\"><span>bar</span></span> </p><p><span style=\\"font-family:sans-serif\\">baz</span></p>" but got "<p><span style=\\"font-family:sans-serif\\">foo</span></p><p> <span style=\\"font-family:sans-serif\\"><span>bar</span> </span></p><p><span style=\\"font-family:sans-serif\\">baz</span></p>"
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandValue("stylewithcss") before
@@ -95,7 +95,7 @@
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>": execCommand("fontname", false, "sans-serif") return value
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["fontname","sans-serif"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font face=\"sans-serif\">foo</font></p><p> <font face=\"sans-serif\"><span>bar</span></font> </p><p><font face=\"sans-serif\">baz</font></p>" but got "<p><font face=\"sans-serif\">foo</font></p><p> <font face=\"sans-serif\"><span>bar</span> </font></p><p><font face=\"sans-serif\">baz</font></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font face=\\"sans-serif\\">foo</font></p><p> <font face=\\"sans-serif\\"><span>bar</span></font> </p><p><font face=\\"sans-serif\\">baz</font></p>" but got "<p><font face=\\"sans-serif\\">foo</font></p><p> <font face=\\"sans-serif\\"><span>bar</span> </font></p><p><font face=\\"sans-serif\\">baz</font></p>"
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandValue("stylewithcss") before
@@ -504,7 +504,7 @@
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<code>[bar]</code>baz": execCommand("fontname", false, "sans-serif") return value
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<code>[bar]</code>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<code>[bar]</code>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<code><span style=\"font-family:sans-serif\">bar</span></code>baz" but got "foo<code style=\"font-family:sans-serif\">bar</code>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<code><span style=\\"font-family:sans-serif\\">bar</span></code>baz" but got "foo<code style=\\"font-family:sans-serif\\">bar</code>baz"
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<code>[bar]</code>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<code>[bar]</code>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<code>[bar]</code>baz" queryCommandValue("stylewithcss") before
@@ -537,7 +537,7 @@
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<kbd>[bar]</kbd>baz": execCommand("fontname", false, "sans-serif") return value
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<kbd>[bar]</kbd>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<kbd>[bar]</kbd>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<kbd><span style=\"font-family:sans-serif\">bar</span></kbd>baz" but got "foo<kbd style=\"font-family:sans-serif\">bar</kbd>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<kbd><span style=\\"font-family:sans-serif\\">bar</span></kbd>baz" but got "foo<kbd style=\\"font-family:sans-serif\\">bar</kbd>baz"
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<kbd>[bar]</kbd>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<kbd>[bar]</kbd>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<kbd>[bar]</kbd>baz" queryCommandValue("stylewithcss") before
@@ -634,7 +634,7 @@
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<samp>[bar]</samp>baz": execCommand("fontname", false, "sans-serif") return value
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<samp>[bar]</samp>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<samp>[bar]</samp>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<samp><span style=\"font-family:sans-serif\">bar</span></samp>baz" but got "foo<samp style=\"font-family:sans-serif\">bar</samp>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<samp><span style=\\"font-family:sans-serif\\">bar</span></samp>baz" but got "foo<samp style=\\"font-family:sans-serif\\">bar</samp>baz"
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<samp>[bar]</samp>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<samp>[bar]</samp>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<samp>[bar]</samp>baz" queryCommandValue("stylewithcss") before
@@ -667,7 +667,7 @@
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<tt>[bar]</tt>baz": execCommand("fontname", false, "sans-serif") return value
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<tt>[bar]</tt>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<tt>[bar]</tt>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<tt><span style=\"font-family:sans-serif\">bar</span></tt>baz" but got "foo<tt style=\"font-family:sans-serif\">bar</tt>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<tt><span style=\\"font-family:sans-serif\\">bar</span></tt>baz" but got "foo<tt style=\\"font-family:sans-serif\\">bar</tt>baz"
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<tt>[bar]</tt>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<tt>[bar]</tt>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<tt>[bar]</tt>baz" queryCommandValue("stylewithcss") before
@@ -892,7 +892,7 @@
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "[foo<code>bar</code>baz]": execCommand("fontname", false, "sans-serif") return value
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "[foo<code>bar</code>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["fontname","sans-serif"]] "[foo<code>bar</code>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-family:sans-serif\">foo<code><span style=\"font-family:sans-serif\">bar</span></code>baz</span>" but got "<span style=\"font-family:sans-serif\">foo<code>bar</code>baz</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-family:sans-serif\\">foo<code><span style=\\"font-family:sans-serif\\">bar</span></code>baz</span>" but got "<span style=\\"font-family:sans-serif\\">foo<code>bar</code>baz</span>"
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "[foo<code>bar</code>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "[foo<code>bar</code>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "[foo<code>bar</code>baz]" queryCommandValue("stylewithcss") before
@@ -910,7 +910,7 @@
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<code>bar</code>baz]": execCommand("fontname", false, "sans-serif") return value
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<code>bar</code>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<code>bar</code>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font face=\"sans-serif\">foo<code><font face=\"sans-serif\">bar</font></code>baz</font>" but got "<font face=\"sans-serif\">foo<code>bar</code>baz</font>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font face=\\"sans-serif\\">foo<code><font face=\\"sans-serif\\">bar</font></code>baz</font>" but got "<font face=\\"sans-serif\\">foo<code>bar</code>baz</font>"
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<code>bar</code>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<code>bar</code>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<code>bar</code>baz]" queryCommandValue("stylewithcss") before
@@ -928,7 +928,7 @@
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "[foo<kbd>bar</kbd>baz]": execCommand("fontname", false, "sans-serif") return value
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "[foo<kbd>bar</kbd>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["fontname","sans-serif"]] "[foo<kbd>bar</kbd>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-family:sans-serif\">foo<kbd><span style=\"font-family:sans-serif\">bar</span></kbd>baz</span>" but got "<span style=\"font-family:sans-serif\">foo<kbd>bar</kbd>baz</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-family:sans-serif\\">foo<kbd><span style=\\"font-family:sans-serif\\">bar</span></kbd>baz</span>" but got "<span style=\\"font-family:sans-serif\\">foo<kbd>bar</kbd>baz</span>"
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "[foo<kbd>bar</kbd>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "[foo<kbd>bar</kbd>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "[foo<kbd>bar</kbd>baz]" queryCommandValue("stylewithcss") before
@@ -946,7 +946,7 @@
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<kbd>bar</kbd>baz]": execCommand("fontname", false, "sans-serif") return value
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<kbd>bar</kbd>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<kbd>bar</kbd>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font face=\"sans-serif\">foo<kbd><font face=\"sans-serif\">bar</font></kbd>baz</font>" but got "<font face=\"sans-serif\">foo<kbd>bar</kbd>baz</font>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font face=\\"sans-serif\\">foo<kbd><font face=\\"sans-serif\\">bar</font></kbd>baz</font>" but got "<font face=\\"sans-serif\\">foo<kbd>bar</kbd>baz</font>"
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<kbd>bar</kbd>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<kbd>bar</kbd>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<kbd>bar</kbd>baz]" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/fontname_1001-2000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/fontname_1001-2000-expected.txt
index 0cd85ce..c25b7ff 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/fontname_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/fontname_1001-2000-expected.txt
@@ -10,7 +10,7 @@
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "[foo<samp>bar</samp>baz]": execCommand("fontname", false, "sans-serif") return value
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "[foo<samp>bar</samp>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["fontname","sans-serif"]] "[foo<samp>bar</samp>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-family:sans-serif\">foo<samp><span style=\"font-family:sans-serif\">bar</span></samp>baz</span>" but got "<span style=\"font-family:sans-serif\">foo<samp>bar</samp>baz</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-family:sans-serif\\">foo<samp><span style=\\"font-family:sans-serif\\">bar</span></samp>baz</span>" but got "<span style=\\"font-family:sans-serif\\">foo<samp>bar</samp>baz</span>"
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "[foo<samp>bar</samp>baz]" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["fontname","sans-serif"]] "[foo<samp>bar</samp>baz]" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -29,7 +29,7 @@
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<samp>bar</samp>baz]": execCommand("fontname", false, "sans-serif") return value
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<samp>bar</samp>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<samp>bar</samp>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font face=\"sans-serif\">foo<samp><font face=\"sans-serif\">bar</font></samp>baz</font>" but got "<font face=\"sans-serif\">foo<samp>bar</samp>baz</font>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font face=\\"sans-serif\\">foo<samp><font face=\\"sans-serif\\">bar</font></samp>baz</font>" but got "<font face=\\"sans-serif\\">foo<samp>bar</samp>baz</font>"
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<samp>bar</samp>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<samp>bar</samp>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<samp>bar</samp>baz]" queryCommandValue("stylewithcss") before
@@ -47,7 +47,7 @@
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "[foo<tt>bar</tt>baz]": execCommand("fontname", false, "sans-serif") return value
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "[foo<tt>bar</tt>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["fontname","sans-serif"]] "[foo<tt>bar</tt>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-family:sans-serif\">foo<tt><span style=\"font-family:sans-serif\">bar</span></tt>baz</span>" but got "<span style=\"font-family:sans-serif\">foo<tt>bar</tt>baz</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-family:sans-serif\\">foo<tt><span style=\\"font-family:sans-serif\\">bar</span></tt>baz</span>" but got "<span style=\\"font-family:sans-serif\\">foo<tt>bar</tt>baz</span>"
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "[foo<tt>bar</tt>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "[foo<tt>bar</tt>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "[foo<tt>bar</tt>baz]" queryCommandValue("stylewithcss") before
@@ -65,7 +65,7 @@
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<tt>bar</tt>baz]": execCommand("fontname", false, "sans-serif") return value
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<tt>bar</tt>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<tt>bar</tt>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font face=\"sans-serif\">foo<tt><font face=\"sans-serif\">bar</font></tt>baz</font>" but got "<font face=\"sans-serif\">foo<tt>bar</tt>baz</font>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font face=\\"sans-serif\\">foo<tt><font face=\\"sans-serif\\">bar</font></tt>baz</font>" but got "<font face=\\"sans-serif\\">foo<tt>bar</tt>baz</font>"
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<tt>bar</tt>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<tt>bar</tt>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "[foo<tt>bar</tt>baz]" queryCommandValue("stylewithcss") before
@@ -487,112 +487,112 @@
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<tt>b[ar</tt>baz]" queryCommandIndeterm("fontname") after
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<tt>b[ar</tt>baz]" queryCommandState("fontname") after
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<tt>b[ar</tt>baz]" queryCommandValue("fontname") after
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz": execCommand("fontname", false, "sans-serif") return value
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandIndeterm("fontname") before
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandState("fontname") before
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandValue("fontname") before
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandIndeterm("fontname") after
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandState("fontname") after
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandValue("fontname") after
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz": execCommand("fontname", false, "sans-serif") return value
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandIndeterm("fontname") before
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandState("fontname") before
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandValue("fontname") before
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandIndeterm("fontname") after
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandState("fontname") after
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">[bar]</span>baz" queryCommandValue("fontname") after
-[PASS] [["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">b[a]r</span>baz": execCommand("fontname", false, "sans-serif") return value
-[PASS] [["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">b[a]r</span>baz" checks for modifications to non-editable content
-[FAIL] [["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">b[a]r</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"font-family:sans-serif\">bar</span>baz" but got "foo<span style=\"font-family:sans-serif\">b</span><font face=\"sans-serif\">a</font><span style=\"font-family:sans-serif\">r</span>baz"
-[PASS] [["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">b[a]r</span>baz" queryCommandIndeterm("fontname") before
-[PASS] [["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">b[a]r</span>baz" queryCommandState("fontname") before
-[PASS] [["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">b[a]r</span>baz" queryCommandValue("fontname") before
-[PASS] [["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">b[a]r</span>baz" queryCommandIndeterm("fontname") after
-[PASS] [["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">b[a]r</span>baz" queryCommandState("fontname") after
-[PASS] [["fontname","sans-serif"]] "foo<span style=\"font-family: sans-serif\">b[a]r</span>baz" queryCommandValue("fontname") after
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz": execCommand("fontname", false, "sans-serif") return value
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandIndeterm("fontname") before
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandState("fontname") before
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandValue("fontname") before
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandIndeterm("fontname") after
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandState("fontname") after
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandValue("fontname") after
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz": execCommand("fontname", false, "sans-serif") return value
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandIndeterm("fontname") before
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandState("fontname") before
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandValue("fontname") before
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandIndeterm("fontname") after
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandState("fontname") after
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">[bar]</span>baz" queryCommandValue("fontname") after
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz": execCommand("fontname", false, "sans-serif") return value
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandIndeterm("fontname") before
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandState("fontname") before
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandValue("fontname") before
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandIndeterm("fontname") after
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandState("fontname") after
-[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandValue("fontname") after
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz": execCommand("fontname", false, "sans-serif") return value
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandIndeterm("fontname") before
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandState("fontname") before
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandValue("fontname") before
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandIndeterm("fontname") after
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandState("fontname") after
-[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\"font-family: monospace\">b[a]r</span>baz" queryCommandValue("fontname") after
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz": execCommand("fontname", false, "sans-serif") return value
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandIndeterm("fontname") before
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandState("fontname") before
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandValue("fontname") before
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandIndeterm("fontname") after
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandState("fontname") after
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandValue("fontname") after
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz": execCommand("fontname", false, "sans-serif") return value
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandIndeterm("fontname") before
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandState("fontname") before
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandValue("fontname") before
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandIndeterm("fontname") after
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandState("fontname") after
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">[bar]</span>baz" queryCommandValue("fontname") after
+[PASS] [["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">b[a]r</span>baz": execCommand("fontname", false, "sans-serif") return value
+[PASS] [["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">b[a]r</span>baz" checks for modifications to non-editable content
+[FAIL] [["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">b[a]r</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"font-family:sans-serif\\">bar</span>baz" but got "foo<span style=\\"font-family:sans-serif\\">b</span><font face=\\"sans-serif\\">a</font><span style=\\"font-family:sans-serif\\">r</span>baz"
+[PASS] [["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">b[a]r</span>baz" queryCommandIndeterm("fontname") before
+[PASS] [["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">b[a]r</span>baz" queryCommandState("fontname") before
+[PASS] [["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">b[a]r</span>baz" queryCommandValue("fontname") before
+[PASS] [["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">b[a]r</span>baz" queryCommandIndeterm("fontname") after
+[PASS] [["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">b[a]r</span>baz" queryCommandState("fontname") after
+[PASS] [["fontname","sans-serif"]] "foo<span style=\\"font-family: sans-serif\\">b[a]r</span>baz" queryCommandValue("fontname") after
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz": execCommand("fontname", false, "sans-serif") return value
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandIndeterm("fontname") before
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandState("fontname") before
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandValue("fontname") before
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandIndeterm("fontname") after
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandState("fontname") after
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandValue("fontname") after
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz": execCommand("fontname", false, "sans-serif") return value
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandIndeterm("fontname") before
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandState("fontname") before
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandValue("fontname") before
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandIndeterm("fontname") after
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandState("fontname") after
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">[bar]</span>baz" queryCommandValue("fontname") after
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz": execCommand("fontname", false, "sans-serif") return value
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandIndeterm("fontname") before
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandState("fontname") before
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandValue("fontname") before
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandIndeterm("fontname") after
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandState("fontname") after
+[PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandValue("fontname") after
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz": execCommand("fontname", false, "sans-serif") return value
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandIndeterm("fontname") before
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandState("fontname") before
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandValue("fontname") before
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandIndeterm("fontname") after
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandState("fontname") after
+[PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<span style=\\"font-family: monospace\\">b[a]r</span>baz" queryCommandValue("fontname") after
 [PASS] [["fontname","sans-serif"]] "foo<tt contenteditable=false>ba[r</tt>b]az": execCommand("fontname", false, "sans-serif") return value
 [PASS] [["fontname","sans-serif"]] "foo<tt contenteditable=false>ba[r</tt>b]az" checks for modifications to non-editable content
 [PASS] [["fontname","sans-serif"]] "foo<tt contenteditable=false>ba[r</tt>b]az" compare innerHTML
@@ -608,7 +608,7 @@
   assert_equals: expected false but got true
 [PASS] [["fontname","sans-serif"]] "fo[o<tt contenteditable=false>b]ar</tt>baz" checks for modifications to non-editable content
 [FAIL] [["fontname","sans-serif"]] "fo[o<tt contenteditable=false>b]ar</tt>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<tt contenteditable=\"false\">bar</tt>baz" but got "fo<font face=\"sans-serif\">o</font><tt contenteditable=\"false\">bar</tt>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<tt contenteditable=\\"false\\">bar</tt>baz" but got "fo<font face=\\"sans-serif\\">o</font><tt contenteditable=\\"false\\">bar</tt>baz"
 [PASS] [["fontname","sans-serif"]] "fo[o<tt contenteditable=false>b]ar</tt>baz" queryCommandIndeterm("fontname") before
 [PASS] [["fontname","sans-serif"]] "fo[o<tt contenteditable=false>b]ar</tt>baz" queryCommandState("fontname") before
 [PASS] [["fontname","sans-serif"]] "fo[o<tt contenteditable=false>b]ar</tt>baz" queryCommandValue("fontname") before
@@ -630,7 +630,7 @@
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<tt>{<br></tt>}bar": execCommand("fontname", false, "sans-serif") return value
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<tt>{<br></tt>}bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<tt>{<br></tt>}bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<tt><span style=\"font-family:sans-serif\"><br></span></tt>bar" but got "foo<tt style=\"font-family:sans-serif\"><br></tt>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<tt><span style=\\"font-family:sans-serif\\"><br></span></tt>bar" but got "foo<tt style=\\"font-family:sans-serif\\"><br></tt>bar"
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<tt>{<br></tt>}bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<tt>{<br></tt>}bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<tt>{<br></tt>}bar" queryCommandValue("stylewithcss") before
@@ -667,7 +667,7 @@
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<tt>{<br></tt>b]ar": execCommand("fontname", false, "sans-serif") return value
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<tt>{<br></tt>b]ar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<tt>{<br></tt>b]ar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<tt><span style=\"font-family:sans-serif\"><br></span></tt><span style=\"font-family:sans-serif\">b</span>ar" but got "foo<span style=\"font-family:sans-serif\"><tt><br></tt>b</span>ar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<tt><span style=\\"font-family:sans-serif\\"><br></span></tt><span style=\\"font-family:sans-serif\\">b</span>ar" but got "foo<span style=\\"font-family:sans-serif\\"><tt><br></tt>b</span>ar"
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<tt>{<br></tt>b]ar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<tt>{<br></tt>b]ar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontname","sans-serif"]] "foo<tt>{<br></tt>b]ar" queryCommandValue("stylewithcss") before
@@ -686,7 +686,7 @@
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<tt>{<br></tt>b]ar": execCommand("fontname", false, "sans-serif") return value
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<tt>{<br></tt>b]ar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<tt>{<br></tt>b]ar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<tt><font face=\"sans-serif\"><br></font></tt><font face=\"sans-serif\">b</font>ar" but got "foo<font face=\"sans-serif\"><tt><br></tt>b</font>ar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<tt><font face=\\"sans-serif\\"><br></font></tt><font face=\\"sans-serif\\">b</font>ar" but got "foo<font face=\\"sans-serif\\"><tt><br></tt>b</font>ar"
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<tt>{<br></tt>b]ar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<tt>{<br></tt>b]ar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["fontname","sans-serif"]] "foo<tt>{<br></tt>b]ar" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/fontname_2001-last-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/fontname_2001-last-expected.txt
index c6c577a..aaf8000 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/fontname_2001-last-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/fontname_2001-last-expected.txt
@@ -209,10 +209,10 @@
 [PASS] [["styleWithCSS","false"],["fontName","monospace"]] "<font color=#ff0000>[abc]</font>": execCommand("fontName", false, "monospace") return value
 [PASS] [["styleWithCSS","false"],["fontName","monospace"]] "<font color=#ff0000>[abc]</font>" checks for modifications to non-editable content
 [PASS] [["styleWithCSS","false"],["fontName","monospace"]] "<font color=#ff0000>[abc]</font>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["fontName","monospace"]] "<font size=\"7\" color=#ff0000>[abc]</font>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["fontName","monospace"]] "<font size=\"7\" color=#ff0000>[abc]</font>": execCommand("fontName", false, "monospace") return value
-[PASS] [["styleWithCSS","false"],["fontName","monospace"]] "<font size=\"7\" color=#ff0000>[abc]</font>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["fontName","monospace"]] "<font size=\"7\" color=#ff0000>[abc]</font>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["fontName","monospace"]] "<font size=\\"7\\" color=#ff0000>[abc]</font>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["fontName","monospace"]] "<font size=\\"7\\" color=#ff0000>[abc]</font>": execCommand("fontName", false, "monospace") return value
+[PASS] [["styleWithCSS","false"],["fontName","monospace"]] "<font size=\\"7\\" color=#ff0000>[abc]</font>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["fontName","monospace"]] "<font size=\\"7\\" color=#ff0000>[abc]</font>" compare innerHTML
 [PASS] [["styleWithCSS","false"],["fontName","monospace"]] "<font size=7>[a]bc</font>": execCommand("styleWithCSS", false, "false") return value
 [PASS] [["styleWithCSS","false"],["fontName","monospace"]] "<font size=7>[a]bc</font>": execCommand("fontName", false, "monospace") return value
 [PASS] [["styleWithCSS","false"],["fontName","monospace"]] "<font size=7>[a]bc</font>" checks for modifications to non-editable content
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/fontsize_1-1000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/fontsize_1-1000-expected.txt
index 2b98d160..a8095e2 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/fontsize_1-1000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/fontsize_1-1000-expected.txt
@@ -78,7 +78,7 @@
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>": execCommand("fontsize", false, "4") return value
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["fontsize","4"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"font-size:large\">foo</span></p><p> <span style=\"font-size:large\"><span>bar</span></span> </p><p><span style=\"font-size:large\">baz</span></p>" but got "<p><span style=\"font-size:large\">foo</span></p><p> <span style=\"font-size:large\"><span>bar</span> </span></p><p><span style=\"font-size:large\">baz</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"font-size:large\\">foo</span></p><p> <span style=\\"font-size:large\\"><span>bar</span></span> </p><p><span style=\\"font-size:large\\">baz</span></p>" but got "<p><span style=\\"font-size:large\\">foo</span></p><p> <span style=\\"font-size:large\\"><span>bar</span> </span></p><p><span style=\\"font-size:large\\">baz</span></p>"
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandValue("stylewithcss") before
@@ -95,7 +95,7 @@
 [PASS] [["stylewithcss","false"],["fontsize","4"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>": execCommand("fontsize", false, "4") return value
 [PASS] [["stylewithcss","false"],["fontsize","4"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["fontsize","4"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\"4\">foo</font></p><p> <font size=\"4\"><span>bar</span></font> </p><p><font size=\"4\">baz</font></p>" but got "<p><font size=\"4\">foo</font></p><p> <font size=\"4\"><span>bar</span> </font></p><p><font size=\"4\">baz</font></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\\"4\\">foo</font></p><p> <font size=\\"4\\"><span>bar</span></font> </p><p><font size=\\"4\\">baz</font></p>" but got "<p><font size=\\"4\\">foo</font></p><p> <font size=\\"4\\"><span>bar</span> </font></p><p><font size=\\"4\\">baz</font></p>"
 [PASS] [["stylewithcss","false"],["fontsize","4"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["fontsize","4"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["fontsize","4"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandValue("stylewithcss") before
@@ -112,7 +112,7 @@
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "<p>[foo<p><br><p>bar]": execCommand("fontsize", false, "4") return value
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "<p>[foo<p><br><p>bar]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["fontsize","4"]] "<p>[foo<p><br><p>bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"font-size:large\">foo</span></p><p><br></p><p><span style=\"font-size:large\">bar</span></p>" but got "<p><span style=\"font-size:large\">foo</span></p><p><span style=\"font-size:large\"><br></span></p><p><span style=\"font-size:large\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"font-size:large\\">foo</span></p><p><br></p><p><span style=\\"font-size:large\\">bar</span></p>" but got "<p><span style=\\"font-size:large\\">foo</span></p><p><span style=\\"font-size:large\\"><br></span></p><p><span style=\\"font-size:large\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "<p>[foo<p><br><p>bar]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "<p>[foo<p><br><p>bar]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "<p>[foo<p><br><p>bar]" queryCommandValue("stylewithcss") before
@@ -130,7 +130,7 @@
 [PASS] [["stylewithcss","false"],["fontsize","4"]] "<p>[foo<p><br><p>bar]": execCommand("fontsize", false, "4") return value
 [PASS] [["stylewithcss","false"],["fontsize","4"]] "<p>[foo<p><br><p>bar]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["fontsize","4"]] "<p>[foo<p><br><p>bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\"4\">foo</font></p><p><br></p><p><font size=\"4\">bar</font></p>" but got "<p><font size=\"4\">foo</font></p><p><font size=\"4\"><br></font></p><p><font size=\"4\">bar</font></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\\"4\\">foo</font></p><p><br></p><p><font size=\\"4\\">bar</font></p>" but got "<p><font size=\\"4\\">foo</font></p><p><font size=\\"4\\"><br></font></p><p><font size=\\"4\\">bar</font></p>"
 [PASS] [["stylewithcss","false"],["fontsize","4"]] "<p>[foo<p><br><p>bar]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["fontsize","4"]] "<p>[foo<p><br><p>bar]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["fontsize","4"]] "<p>[foo<p><br><p>bar]" queryCommandValue("stylewithcss") before
@@ -440,7 +440,7 @@
 [PASS] [["stylewithcss","true"],["fontsize","7"]] "foo[bar]baz": execCommand("fontsize", false, "7") return value
 [PASS] [["stylewithcss","true"],["fontsize","7"]] "foo[bar]baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["fontsize","7"]] "foo[bar]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\"7\">bar</font>baz" but got "foo<span style=\"font-size:xxx-large\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\\"7\\">bar</font>baz" but got "foo<span style=\\"font-size:xxx-large\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["fontsize","7"]] "foo[bar]baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontsize","7"]] "foo[bar]baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontsize","7"]] "foo[bar]baz" queryCommandValue("stylewithcss") before
@@ -473,7 +473,7 @@
 [PASS] [["stylewithcss","true"],["fontsize","8"]] "foo[bar]baz": execCommand("fontsize", false, "8") return value
 [PASS] [["stylewithcss","true"],["fontsize","8"]] "foo[bar]baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["fontsize","8"]] "foo[bar]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\"7\">bar</font>baz" but got "foo<span style=\"font-size:xxx-large\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\\"7\\">bar</font>baz" but got "foo<span style=\\"font-size:xxx-large\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["fontsize","8"]] "foo[bar]baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontsize","8"]] "foo[bar]baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontsize","8"]] "foo[bar]baz" queryCommandValue("stylewithcss") before
@@ -506,7 +506,7 @@
 [PASS] [["stylewithcss","true"],["fontsize","100"]] "foo[bar]baz": execCommand("fontsize", false, "100") return value
 [PASS] [["stylewithcss","true"],["fontsize","100"]] "foo[bar]baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["fontsize","100"]] "foo[bar]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\"7\">bar</font>baz" but got "foo<span style=\"font-size:xxx-large\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\\"7\\">bar</font>baz" but got "foo<span style=\\"font-size:xxx-large\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["fontsize","100"]] "foo[bar]baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontsize","100"]] "foo[bar]baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontsize","100"]] "foo[bar]baz" queryCommandValue("stylewithcss") before
@@ -539,7 +539,7 @@
   assert_equals: expected false but got true
 [PASS] [["fontsize","2em"]] "foo[bar]baz" checks for modifications to non-editable content
 [FAIL] [["fontsize","2em"]] "foo[bar]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<font size=\"2\">bar</font>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<font size=\\"2\\">bar</font>baz"
 [PASS] [["fontsize","2em"]] "foo[bar]baz" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","2em"]] "foo[bar]baz" queryCommandState("fontsize") before
 [PASS] [["fontsize","2em"]] "foo[bar]baz" queryCommandValue("fontsize") before
@@ -551,7 +551,7 @@
   assert_equals: expected false but got true
 [PASS] [["fontsize","20pt"]] "foo[bar]baz" checks for modifications to non-editable content
 [FAIL] [["fontsize","20pt"]] "foo[bar]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<font size=\"7\">bar</font>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<font size=\\"7\\">bar</font>baz"
 [PASS] [["fontsize","20pt"]] "foo[bar]baz" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","20pt"]] "foo[bar]baz" queryCommandState("fontsize") before
 [PASS] [["fontsize","20pt"]] "foo[bar]baz" queryCommandValue("fontsize") before
@@ -604,7 +604,7 @@
   assert_equals: expected false but got true
 [PASS] [["fontsize","1."]] "foo[bar]baz" checks for modifications to non-editable content
 [FAIL] [["fontsize","1."]] "foo[bar]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<font size=\"1\">bar</font>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<font size=\\"1\\">bar</font>baz"
 [PASS] [["fontsize","1."]] "foo[bar]baz" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","1."]] "foo[bar]baz" queryCommandState("fontsize") before
 [PASS] [["fontsize","1."]] "foo[bar]baz" queryCommandValue("fontsize") before
@@ -785,7 +785,7 @@
 [PASS] [["stylewithcss","true"],["fontsize","+9"]] "foo[bar]baz": execCommand("fontsize", false, "+9") return value
 [PASS] [["stylewithcss","true"],["fontsize","+9"]] "foo[bar]baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["fontsize","+9"]] "foo[bar]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\"7\">bar</font>baz" but got "foo<span style=\"font-size:xxx-large\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\\"7\\">bar</font>baz" but got "foo<span style=\\"font-size:xxx-large\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["fontsize","+9"]] "foo[bar]baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontsize","+9"]] "foo[bar]baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontsize","+9"]] "foo[bar]baz" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/fontsize_1001-2000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/fontsize_1001-2000-expected.txt
index 27c0454..3b493356 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/fontsize_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/fontsize_1001-2000-expected.txt
@@ -206,7 +206,7 @@
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<font size=4>[bar]</font>baz": execCommand("fontsize", false, "4") return value
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<font size=4>[bar]</font>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["fontsize","4"]] "foo<font size=4>[bar]</font>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"font-size:large\">bar</span>baz" but got "foo<font size=\"4\">bar</font>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"font-size:large\\">bar</span>baz" but got "foo<font size=\\"4\\">bar</font>baz"
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<font size=4>[bar]</font>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<font size=4>[bar]</font>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<font size=4>[bar]</font>baz" queryCommandValue("stylewithcss") before
@@ -248,7 +248,7 @@
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<font size=+1>[bar]</font>baz": execCommand("fontsize", false, "4") return value
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<font size=+1>[bar]</font>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["fontsize","4"]] "foo<font size=+1>[bar]</font>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"font-size:large\">bar</span>baz" but got "foo<font size=\"+1\">bar</font>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"font-size:large\\">bar</span>baz" but got "foo<font size=\\"+1\\">bar</font>baz"
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<font size=+1>[bar]</font>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<font size=+1>[bar]</font>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<font size=+1>[bar]</font>baz" queryCommandValue("stylewithcss") before
@@ -265,7 +265,7 @@
 [PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<font size=+1>[bar]</font>baz": execCommand("fontsize", false, "4") return value
 [PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<font size=+1>[bar]</font>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["fontsize","4"]] "foo<font size=+1>[bar]</font>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\"4\">bar</font>baz" but got "foo<font size=\"+1\">bar</font>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\\"4\\">bar</font>baz" but got "foo<font size=\\"+1\\">bar</font>baz"
 [PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<font size=+1>[bar]</font>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<font size=+1>[bar]</font>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<font size=+1>[bar]</font>baz" queryCommandValue("stylewithcss") before
@@ -291,7 +291,7 @@
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "<font size=4>foo<font size=1>b[a]r</font>baz</font>": execCommand("fontsize", false, "4") return value
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "<font size=4>foo<font size=1>b[a]r</font>baz</font>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["fontsize","4"]] "<font size=4>foo<font size=1>b[a]r</font>baz</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font size=\"4\">foo<span style=\"font-size:x-small\">b</span>a<span style=\"font-size:x-small\">r</span>baz</font>" but got "<font size=\"4\">foo<font size=\"1\">b</font>a<font size=\"1\">r</font>baz</font>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font size=\\"4\\">foo<span style=\\"font-size:x-small\\">b</span>a<span style=\\"font-size:x-small\\">r</span>baz</font>" but got "<font size=\\"4\\">foo<font size=\\"1\\">b</font>a<font size=\\"1\\">r</font>baz</font>"
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "<font size=4>foo<font size=1>b[a]r</font>baz</font>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "<font size=4>foo<font size=1>b[a]r</font>baz</font>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontsize","4"]] "<font size=4>foo<font size=1>b[a]r</font>baz</font>" queryCommandValue("stylewithcss") before
@@ -320,545 +320,545 @@
 [PASS] [["stylewithcss","false"],["fontsize","4"]] "<font size=4>foo<font size=1>b[a]r</font>baz</font>" queryCommandIndeterm("fontsize") after
 [PASS] [["stylewithcss","false"],["fontsize","4"]] "<font size=4>foo<font size=1>b[a]r</font>baz</font>" queryCommandState("fontsize") after
 [PASS] [["stylewithcss","false"],["fontsize","4"]] "<font size=4>foo<font size=1>b[a]r</font>baz</font>" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz": execCommand("fontsize", false, "4") return value
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandState("fontsize") before
-[FAIL] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz": execCommand("fontsize", false, "4") return value
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandState("fontsize") before
+[FAIL] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandValue("fontsize") before
   assert_equals: Wrong result returned expected "1" but got "0"
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz": execCommand("fontsize", false, "4") return value
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandState("fontsize") before
-[FAIL] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz": execCommand("fontsize", false, "4") return value
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandState("fontsize") before
+[FAIL] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandValue("fontsize") before
   assert_equals: Wrong result returned expected "1" but got "0"
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: xx-small\">[bar]</span>baz" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>": execCommand("fontsize", false, "4") return value
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandState("fontsize") before
-[FAIL] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: xx-small\\">[bar]</span>baz" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>": execCommand("fontsize", false, "4") return value
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandState("fontsize") before
+[FAIL] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandValue("fontsize") before
   assert_equals: Wrong result returned expected "1" but got "0"
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>": execCommand("fontsize", false, "4") return value
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandState("fontsize") before
-[FAIL] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>": execCommand("fontsize", false, "4") return value
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandState("fontsize") before
+[FAIL] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandValue("fontsize") before
   assert_equals: Wrong result returned expected "1" but got "0"
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: xx-small\">foo[bar]baz</span>" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz": execCommand("fontsize", false, "4") return value
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandState("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandValue("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz": execCommand("fontsize", false, "4") return value
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandState("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandValue("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: medium\">[bar]</span>baz" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>": execCommand("fontsize", false, "4") return value
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandState("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandValue("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>": execCommand("fontsize", false, "4") return value
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandState("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandValue("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: medium\">foo[bar]baz</span>" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz": execCommand("fontsize", false, "4") return value
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandState("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandValue("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz": execCommand("fontsize", false, "4") return value
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandState("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandValue("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: large\">[bar]</span>baz" queryCommandValue("fontsize") after
-[PASS] [["fontsize","4"]] "<span style=\"font-size: large\">foo[bar]baz</span>": execCommand("fontsize", false, "4") return value
-[PASS] [["fontsize","4"]] "<span style=\"font-size: large\">foo[bar]baz</span>" checks for modifications to non-editable content
-[FAIL] [["fontsize","4"]] "<span style=\"font-size: large\">foo[bar]baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-size:large\">foobarbaz</span>" but got "<span style=\"font-size:large\">foo</span><font size=\"4\">bar</font><span style=\"font-size:large\">baz</span>"
-[PASS] [["fontsize","4"]] "<span style=\"font-size: large\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") before
-[PASS] [["fontsize","4"]] "<span style=\"font-size: large\">foo[bar]baz</span>" queryCommandState("fontsize") before
-[PASS] [["fontsize","4"]] "<span style=\"font-size: large\">foo[bar]baz</span>" queryCommandValue("fontsize") before
-[PASS] [["fontsize","4"]] "<span style=\"font-size: large\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") after
-[PASS] [["fontsize","4"]] "<span style=\"font-size: large\">foo[bar]baz</span>" queryCommandState("fontsize") after
-[PASS] [["fontsize","4"]] "<span style=\"font-size: large\">foo[bar]baz</span>" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>": execCommand("fontsize", false, "4") return value
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-size:large\">foo<span style=\"font-size:xx-small\">b</span>a<span style=\"font-size:xx-small\">r</span>baz</span>" but got "<span style=\"font-size:large\">foo</span><span style=\"font-size:xx-small\">b</span><span style=\"font-size:large\">a</span><span style=\"font-size:xx-small\">r</span><span style=\"font-size:large\">baz</span>"
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandState("fontsize") before
-[FAIL] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: xx-small\\">foo[bar]baz</span>" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz": execCommand("fontsize", false, "4") return value
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandState("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz": execCommand("fontsize", false, "4") return value
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandState("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: medium\\">[bar]</span>baz" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>": execCommand("fontsize", false, "4") return value
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandState("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>": execCommand("fontsize", false, "4") return value
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandState("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: medium\\">foo[bar]baz</span>" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz": execCommand("fontsize", false, "4") return value
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandState("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz": execCommand("fontsize", false, "4") return value
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandState("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: large\\">[bar]</span>baz" queryCommandValue("fontsize") after
+[PASS] [["fontsize","4"]] "<span style=\\"font-size: large\\">foo[bar]baz</span>": execCommand("fontsize", false, "4") return value
+[PASS] [["fontsize","4"]] "<span style=\\"font-size: large\\">foo[bar]baz</span>" checks for modifications to non-editable content
+[FAIL] [["fontsize","4"]] "<span style=\\"font-size: large\\">foo[bar]baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-size:large\\">foobarbaz</span>" but got "<span style=\\"font-size:large\\">foo</span><font size=\\"4\\">bar</font><span style=\\"font-size:large\\">baz</span>"
+[PASS] [["fontsize","4"]] "<span style=\\"font-size: large\\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") before
+[PASS] [["fontsize","4"]] "<span style=\\"font-size: large\\">foo[bar]baz</span>" queryCommandState("fontsize") before
+[PASS] [["fontsize","4"]] "<span style=\\"font-size: large\\">foo[bar]baz</span>" queryCommandValue("fontsize") before
+[PASS] [["fontsize","4"]] "<span style=\\"font-size: large\\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") after
+[PASS] [["fontsize","4"]] "<span style=\\"font-size: large\\">foo[bar]baz</span>" queryCommandState("fontsize") after
+[PASS] [["fontsize","4"]] "<span style=\\"font-size: large\\">foo[bar]baz</span>" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>": execCommand("fontsize", false, "4") return value
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-size:large\\">foo<span style=\\"font-size:xx-small\\">b</span>a<span style=\\"font-size:xx-small\\">r</span>baz</span>" but got "<span style=\\"font-size:large\\">foo</span><span style=\\"font-size:xx-small\\">b</span><span style=\\"font-size:large\\">a</span><span style=\\"font-size:xx-small\\">r</span><span style=\\"font-size:large\\">baz</span>"
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandState("fontsize") before
+[FAIL] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandValue("fontsize") before
   assert_equals: Wrong result returned expected "1" but got "0"
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>": execCommand("fontsize", false, "4") return value
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-size:large\">foo<span style=\"font-size:xx-small\">b</span>a<span style=\"font-size:xx-small\">r</span>baz</span>" but got "<font size=\"4\">foo</font><span style=\"font-size:xx-small\">b</span><font size=\"4\">a</font><span style=\"font-size:xx-small\">r</span><font size=\"4\">baz</font>"
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandState("fontsize") before
-[FAIL] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>": execCommand("fontsize", false, "4") return value
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-size:large\\">foo<span style=\\"font-size:xx-small\\">b</span>a<span style=\\"font-size:xx-small\\">r</span>baz</span>" but got "<font size=\\"4\\">foo</font><span style=\\"font-size:xx-small\\">b</span><font size=\\"4\\">a</font><span style=\\"font-size:xx-small\\">r</span><font size=\\"4\\">baz</font>"
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandState("fontsize") before
+[FAIL] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandValue("fontsize") before
   assert_equals: Wrong result returned expected "1" but got "0"
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: large\">foo<span style=\"font-size: xx-small\">b[a]r</span>baz</span>" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz": execCommand("fontsize", false, "4") return value
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandState("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandValue("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz": execCommand("fontsize", false, "4") return value
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandState("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandValue("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\"font-size: 2em\">[bar]</span>baz" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>": execCommand("fontsize", false, "4") return value
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandState("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandValue("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>": execCommand("fontsize", false, "4") return value
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandState("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandValue("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\"font-size: 2em\">foo[bar]baz</span>" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>": execCommand("fontsize", false, "4") return value
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"font-size:xx-small\">foo<span style=\"font-size:large\">bar</span>baz</p>" but got "<p style=\"\"><span style=\"font-size:xx-small\">foo</span><span style=\"font-size:large\">bar</span><span style=\"font-size:xx-small\">baz</span></p>"
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandState("fontsize") before
-[FAIL] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: large\\">foo<span style=\\"font-size: xx-small\\">b[a]r</span>baz</span>" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz": execCommand("fontsize", false, "4") return value
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandState("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz": execCommand("fontsize", false, "4") return value
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandState("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "foo<span style=\\"font-size: 2em\\">[bar]</span>baz" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>": execCommand("fontsize", false, "4") return value
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandState("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>": execCommand("fontsize", false, "4") return value
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandState("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<span style=\\"font-size: 2em\\">foo[bar]baz</span>" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>": execCommand("fontsize", false, "4") return value
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"font-size:xx-small\\">foo<span style=\\"font-size:large\\">bar</span>baz</p>" but got "<p style=\\"\\"><span style=\\"font-size:xx-small\\">foo</span><span style=\\"font-size:large\\">bar</span><span style=\\"font-size:xx-small\\">baz</span></p>"
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandState("fontsize") before
+[FAIL] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandValue("fontsize") before
   assert_equals: Wrong result returned expected "1" but got "0"
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>": execCommand("fontsize", false, "4") return value
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"font-size:xx-small\">foo<font size=\"4\">bar</font>baz</p>" but got "<p style=\"\"><span style=\"font-size:xx-small\">foo</span><font size=\"4\">bar</font><span style=\"font-size:xx-small\">baz</span></p>"
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandState("fontsize") before
-[FAIL] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>": execCommand("fontsize", false, "4") return value
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"font-size:xx-small\\">foo<font size=\\"4\\">bar</font>baz</p>" but got "<p style=\\"\\"><span style=\\"font-size:xx-small\\">foo</span><font size=\\"4\\">bar</font><span style=\\"font-size:xx-small\\">baz</span></p>"
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandState("fontsize") before
+[FAIL] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandValue("fontsize") before
   assert_equals: Wrong result returned expected "1" but got "0"
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>": execCommand("fontsize", false, "4") return value
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"font-size:medium\">foo<span style=\"font-size:large\">bar</span>baz</p>" but got "<p style=\"\"><span style=\"font-size:medium\">foo</span><span style=\"font-size:large\">bar</span>baz</p>"
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandState("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandValue("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>": execCommand("fontsize", false, "4") return value
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"font-size:medium\">foo<font size=\"4\">bar</font>baz</p>" but got "<p style=\"\"><span style=\"font-size:medium\">foo</span><font size=\"4\">bar</font>baz</p>"
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandState("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandValue("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandValue("fontsize") after
-[PASS] [["fontsize","4"]] "<p style=\"font-size: large\">foo[bar]baz</p>": execCommand("fontsize", false, "4") return value
-[PASS] [["fontsize","4"]] "<p style=\"font-size: large\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["fontsize","4"]] "<p style=\"font-size: large\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"font-size:large\">foobarbaz</p>" but got "<p style=\"\"><span style=\"font-size:large\">foo</span><font size=\"4\">barbaz</font></p>"
-[PASS] [["fontsize","4"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
-[PASS] [["fontsize","4"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandState("fontsize") before
-[PASS] [["fontsize","4"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandValue("fontsize") before
-[PASS] [["fontsize","4"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
-[PASS] [["fontsize","4"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandState("fontsize") after
-[PASS] [["fontsize","4"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>": execCommand("fontsize", false, "4") return value
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"font-size:2em\">foo<span style=\"font-size:large\">bar</span>baz</p>" but got "<p style=\"\"><span style=\"font-size:2em\">foo</span><span style=\"font-size:large\">bar</span><span style=\"font-size:2em\">baz</span></p>"
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandState("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandValue("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>": execCommand("fontsize", false, "4") return value
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"font-size:2em\">foo<font size=\"4\">bar</font>baz</p>" but got "<p style=\"\"><span style=\"font-size:2em\">foo</span><font size=\"4\">bar</font><span style=\"font-size:2em\">baz</span></p>"
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandState("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandValue("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>": execCommand("fontsize", false, "3") return value
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"font-size:xx-small\">foo</span>bar<span style=\"font-size:xx-small\">baz</span></p>" but got "<p style=\"\"><span style=\"font-size:xx-small\">foo</span>bar<span style=\"font-size:xx-small\">baz</span></p>"
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandState("fontsize") before
-[FAIL] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>": execCommand("fontsize", false, "4") return value
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"font-size:medium\\">foo<span style=\\"font-size:large\\">bar</span>baz</p>" but got "<p style=\\"\\"><span style=\\"font-size:medium\\">foo</span><span style=\\"font-size:large\\">bar</span>baz</p>"
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandState("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>": execCommand("fontsize", false, "4") return value
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"font-size:medium\\">foo<font size=\\"4\\">bar</font>baz</p>" but got "<p style=\\"\\"><span style=\\"font-size:medium\\">foo</span><font size=\\"4\\">bar</font>baz</p>"
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandState("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandValue("fontsize") after
+[PASS] [["fontsize","4"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>": execCommand("fontsize", false, "4") return value
+[PASS] [["fontsize","4"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["fontsize","4"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"font-size:large\\">foobarbaz</p>" but got "<p style=\\"\\"><span style=\\"font-size:large\\">foo</span><font size=\\"4\\">barbaz</font></p>"
+[PASS] [["fontsize","4"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
+[PASS] [["fontsize","4"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandState("fontsize") before
+[PASS] [["fontsize","4"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandValue("fontsize") before
+[PASS] [["fontsize","4"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
+[PASS] [["fontsize","4"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandState("fontsize") after
+[PASS] [["fontsize","4"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>": execCommand("fontsize", false, "4") return value
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"font-size:2em\\">foo<span style=\\"font-size:large\\">bar</span>baz</p>" but got "<p style=\\"\\"><span style=\\"font-size:2em\\">foo</span><span style=\\"font-size:large\\">bar</span><span style=\\"font-size:2em\\">baz</span></p>"
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandState("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>": execCommand("fontsize", false, "4") return value
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"font-size:2em\\">foo<font size=\\"4\\">bar</font>baz</p>" but got "<p style=\\"\\"><span style=\\"font-size:2em\\">foo</span><font size=\\"4\\">bar</font><span style=\\"font-size:2em\\">baz</span></p>"
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandState("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","4"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>": execCommand("fontsize", false, "3") return value
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"font-size:xx-small\\">foo</span>bar<span style=\\"font-size:xx-small\\">baz</span></p>" but got "<p style=\\"\\"><span style=\\"font-size:xx-small\\">foo</span>bar<span style=\\"font-size:xx-small\\">baz</span></p>"
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandState("fontsize") before
+[FAIL] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandValue("fontsize") before
   assert_equals: Wrong result returned expected "1" but got "0"
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>": execCommand("fontsize", false, "3") return value
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"font-size:xx-small\">foo</span>bar<span style=\"font-size:xx-small\">baz</span></p>" but got "<p style=\"\"><span style=\"font-size:xx-small\">foo</span>bar<span style=\"font-size:xx-small\">baz</span></p>"
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandState("fontsize") before
-[FAIL] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>": execCommand("fontsize", false, "3") return value
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"font-size:xx-small\\">foo</span>bar<span style=\\"font-size:xx-small\\">baz</span></p>" but got "<p style=\\"\\"><span style=\\"font-size:xx-small\\">foo</span>bar<span style=\\"font-size:xx-small\\">baz</span></p>"
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandState("fontsize") before
+[FAIL] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandValue("fontsize") before
   assert_equals: Wrong result returned expected "1" but got "0"
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: xx-small\">foo[bar]baz</p>" queryCommandValue("fontsize") after
-[PASS] [["fontsize","3"]] "<p style=\"font-size: medium\">foo[bar]baz</p>": execCommand("fontsize", false, "3") return value
-[PASS] [["fontsize","3"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["fontsize","3"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"font-size:medium\">foobarbaz</p>" but got "<p style=\"\"><span style=\"font-size:medium\">foo</span>barbaz</p>"
-[PASS] [["fontsize","3"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
-[PASS] [["fontsize","3"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandState("fontsize") before
-[PASS] [["fontsize","3"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandValue("fontsize") before
-[PASS] [["fontsize","3"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
-[PASS] [["fontsize","3"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandState("fontsize") after
-[PASS] [["fontsize","3"]] "<p style=\"font-size: medium\">foo[bar]baz</p>" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>": execCommand("fontsize", false, "3") return value
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"font-size:large\">foo</span>bar<span style=\"font-size:large\">baz</span></p>" but got "<p style=\"\"><span style=\"font-size:large\">foo</span>bar<span style=\"font-size:large\">baz</span></p>"
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandState("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandValue("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>": execCommand("fontsize", false, "3") return value
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\"4\">foo</font>bar<font size=\"4\">baz</font></p>" but got "<p style=\"\"><span style=\"font-size:large\">foo</span>bar<font size=\"4\">baz</font></p>"
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandState("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandValue("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: large\">foo[bar]baz</p>" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>": execCommand("fontsize", false, "3") return value
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"font-size:2em\">foo</span>bar<span style=\"font-size:2em\">baz</span></p>" but got "<p style=\"\"><span style=\"font-size:2em\">foo</span>bar<span style=\"font-size:2em\">baz</span></p>"
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandState("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandValue("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>": execCommand("fontsize", false, "3") return value
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"font-size:2em\">foo</span>bar<span style=\"font-size:2em\">baz</span></p>" but got "<p style=\"\"><span style=\"font-size:2em\">foo</span>bar<span style=\"font-size:2em\">baz</span></p>"
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandState("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandValue("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\"font-size: 2em\">foo[bar]baz</p>" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>": execCommand("fontsize", false, "3") return value
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" compare innerHTML
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandState("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandValue("fontsize") before
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandValue("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>": execCommand("fontsize", false, "3") return value
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" compare innerHTML
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandIndeterm("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandState("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandValue("fontsize") before
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandIndeterm("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandState("fontsize") after
-[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\"font-size: 2em\">b[a]r</span> baz</font>" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: xx-small\\">foo[bar]baz</p>" queryCommandValue("fontsize") after
+[PASS] [["fontsize","3"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>": execCommand("fontsize", false, "3") return value
+[PASS] [["fontsize","3"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["fontsize","3"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"font-size:medium\\">foobarbaz</p>" but got "<p style=\\"\\"><span style=\\"font-size:medium\\">foo</span>barbaz</p>"
+[PASS] [["fontsize","3"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
+[PASS] [["fontsize","3"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandState("fontsize") before
+[PASS] [["fontsize","3"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandValue("fontsize") before
+[PASS] [["fontsize","3"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
+[PASS] [["fontsize","3"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandState("fontsize") after
+[PASS] [["fontsize","3"]] "<p style=\\"font-size: medium\\">foo[bar]baz</p>" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>": execCommand("fontsize", false, "3") return value
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"font-size:large\\">foo</span>bar<span style=\\"font-size:large\\">baz</span></p>" but got "<p style=\\"\\"><span style=\\"font-size:large\\">foo</span>bar<span style=\\"font-size:large\\">baz</span></p>"
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandState("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>": execCommand("fontsize", false, "3") return value
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\\"4\\">foo</font>bar<font size=\\"4\\">baz</font></p>" but got "<p style=\\"\\"><span style=\\"font-size:large\\">foo</span>bar<font size=\\"4\\">baz</font></p>"
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandState("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: large\\">foo[bar]baz</p>" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>": execCommand("fontsize", false, "3") return value
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"font-size:2em\\">foo</span>bar<span style=\\"font-size:2em\\">baz</span></p>" but got "<p style=\\"\\"><span style=\\"font-size:2em\\">foo</span>bar<span style=\\"font-size:2em\\">baz</span></p>"
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandState("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>": execCommand("fontsize", false, "3") return value
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"font-size:2em\\">foo</span>bar<span style=\\"font-size:2em\\">baz</span></p>" but got "<p style=\\"\\"><span style=\\"font-size:2em\\">foo</span>bar<span style=\\"font-size:2em\\">baz</span></p>"
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandState("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<p style=\\"font-size: 2em\\">foo[bar]baz</p>" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>": execCommand("fontsize", false, "3") return value
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" compare innerHTML
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandState("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","true"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandValue("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>": execCommand("fontsize", false, "3") return value
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" compare innerHTML
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandIndeterm("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandState("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandValue("fontsize") before
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandIndeterm("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandState("fontsize") after
+[PASS] [["stylewithcss","false"],["fontsize","3"]] "<font size=6>foo <span style=\\"font-size: 2em\\">b[a]r</span> baz</font>" queryCommandValue("fontsize") after
 [PASS] [["stylewithcss","true"],["fontsize","3"]] "foo<big>[bar]</big>baz": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["fontsize","3"]] "foo<big>[bar]</big>baz": execCommand("fontsize", false, "3") return value
 [PASS] [["stylewithcss","true"],["fontsize","3"]] "foo<big>[bar]</big>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["fontsize","3"]] "foo<big>[bar]</big>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<big><span style=\"font-size:medium\">bar</span></big>baz" but got "foo<big style=\"font-size:medium\">bar</big>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<big><span style=\\"font-size:medium\\">bar</span></big>baz" but got "foo<big style=\\"font-size:medium\\">bar</big>baz"
 [PASS] [["stylewithcss","true"],["fontsize","3"]] "foo<big>[bar]</big>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontsize","3"]] "foo<big>[bar]</big>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontsize","3"]] "foo<big>[bar]</big>baz" queryCommandValue("stylewithcss") before
@@ -923,7 +923,7 @@
 [PASS] [["stylewithcss","true"],["fontsize","3"]] "foo<small>[bar]</small>baz": execCommand("fontsize", false, "3") return value
 [PASS] [["stylewithcss","true"],["fontsize","3"]] "foo<small>[bar]</small>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["fontsize","3"]] "foo<small>[bar]</small>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<small><span style=\"font-size:medium\">bar</span></small>baz" but got "foo<small style=\"font-size:medium\">bar</small>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<small><span style=\\"font-size:medium\\">bar</span></small>baz" but got "foo<small style=\\"font-size:medium\\">bar</small>baz"
 [PASS] [["stylewithcss","true"],["fontsize","3"]] "foo<small>[bar]</small>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontsize","3"]] "foo<small>[bar]</small>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["fontsize","3"]] "foo<small>[bar]</small>baz" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/fontsize_2001-last-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/fontsize_2001-last-expected.txt
index 05b65dc..2366897 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/fontsize_2001-last-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/fontsize_2001-last-expected.txt
@@ -308,7 +308,7 @@
 [PASS] [["fontsize","4"]] "<font size=4>fo[o</font><span style=font-size:large>b]ar</span>": execCommand("fontsize", false, "4") return value
 [PASS] [["fontsize","4"]] "<font size=4>fo[o</font><span style=font-size:large>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["fontsize","4"]] "<font size=4>fo[o</font><span style=font-size:large>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font size=\"4\">foo</font><span style=\"font-size:large\">bar</span>" but got "<font size=\"4\">foob</font><span style=\"font-size:large\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font size=\\"4\\">foo</font><span style=\\"font-size:large\\">bar</span>" but got "<font size=\\"4\\">foob</font><span style=\\"font-size:large\\">ar</span>"
 [PASS] [["fontsize","4"]] "<font size=4>fo[o</font><span style=font-size:large>b]ar</span>" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","4"]] "<font size=4>fo[o</font><span style=font-size:large>b]ar</span>" queryCommandState("fontsize") before
 [PASS] [["fontsize","4"]] "<font size=4>fo[o</font><span style=font-size:large>b]ar</span>" queryCommandValue("fontsize") before
@@ -407,25 +407,25 @@
 [PASS] [["styleWithCSS","false"],["fontSize","7"]] "<font face=monospace>ab[c]</font>": execCommand("fontSize", false, "7") return value
 [PASS] [["styleWithCSS","false"],["fontSize","7"]] "<font face=monospace>ab[c]</font>" checks for modifications to non-editable content
 [PASS] [["styleWithCSS","false"],["fontSize","7"]] "<font face=monospace>ab[c]</font>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\"font-size:32px; background-color:rgb(0, 128, 128)\">[abc]</span>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\"font-size:32px; background-color:rgb(0, 128, 128)\">[abc]</span>": execCommand("fontSize", false, "5") return value
-[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\"font-size:32px; background-color:rgb(0, 128, 128)\">[abc]</span>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\"font-size:32px; background-color:rgb(0, 128, 128)\">[abc]</span>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\"font-size:32px; background-color:rgb(0, 128, 128)\">[a]bc</span>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\"font-size:32px; background-color:rgb(0, 128, 128)\">[a]bc</span>": execCommand("fontSize", false, "5") return value
-[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\"font-size:32px; background-color:rgb(0, 128, 128)\">[a]bc</span>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\"font-size:32px; background-color:rgb(0, 128, 128)\">[a]bc</span>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\"font-size:32px; background-color:rgb(0, 128, 128)\">a[b]c</span>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\"font-size:32px; background-color:rgb(0, 128, 128)\">a[b]c</span>": execCommand("fontSize", false, "5") return value
-[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\"font-size:32px; background-color:rgb(0, 128, 128)\">a[b]c</span>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\"font-size:32px; background-color:rgb(0, 128, 128)\">a[b]c</span>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\"font-size:32px; background-color:rgb(0, 128, 128)\">ab[c]</span>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\"font-size:32px; background-color:rgb(0, 128, 128)\">ab[c]</span>": execCommand("fontSize", false, "5") return value
-[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\"font-size:32px; background-color:rgb(0, 128, 128)\">ab[c]</span>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\"font-size:32px; background-color:rgb(0, 128, 128)\">ab[c]</span>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<p><span style=\"font-size:32px; background-color:rgb(0, 128, 128)\">[abc</span></p><p><span style=\"font-size:64px; background-color:rgb(128, 128, 0)\">def]</span></p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<p><span style=\"font-size:32px; background-color:rgb(0, 128, 128)\">[abc</span></p><p><span style=\"font-size:64px; background-color:rgb(128, 128, 0)\">def]</span></p>": execCommand("fontSize", false, "5") return value
-[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<p><span style=\"font-size:32px; background-color:rgb(0, 128, 128)\">[abc</span></p><p><span style=\"font-size:64px; background-color:rgb(128, 128, 0)\">def]</span></p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<p><span style=\"font-size:32px; background-color:rgb(0, 128, 128)\">[abc</span></p><p><span style=\"font-size:64px; background-color:rgb(128, 128, 0)\">def]</span></p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\\"font-size:32px; background-color:rgb(0, 128, 128)\\">[abc]</span>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\\"font-size:32px; background-color:rgb(0, 128, 128)\\">[abc]</span>": execCommand("fontSize", false, "5") return value
+[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\\"font-size:32px; background-color:rgb(0, 128, 128)\\">[abc]</span>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\\"font-size:32px; background-color:rgb(0, 128, 128)\\">[abc]</span>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\\"font-size:32px; background-color:rgb(0, 128, 128)\\">[a]bc</span>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\\"font-size:32px; background-color:rgb(0, 128, 128)\\">[a]bc</span>": execCommand("fontSize", false, "5") return value
+[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\\"font-size:32px; background-color:rgb(0, 128, 128)\\">[a]bc</span>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\\"font-size:32px; background-color:rgb(0, 128, 128)\\">[a]bc</span>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\\"font-size:32px; background-color:rgb(0, 128, 128)\\">a[b]c</span>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\\"font-size:32px; background-color:rgb(0, 128, 128)\\">a[b]c</span>": execCommand("fontSize", false, "5") return value
+[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\\"font-size:32px; background-color:rgb(0, 128, 128)\\">a[b]c</span>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\\"font-size:32px; background-color:rgb(0, 128, 128)\\">a[b]c</span>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\\"font-size:32px; background-color:rgb(0, 128, 128)\\">ab[c]</span>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\\"font-size:32px; background-color:rgb(0, 128, 128)\\">ab[c]</span>": execCommand("fontSize", false, "5") return value
+[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\\"font-size:32px; background-color:rgb(0, 128, 128)\\">ab[c]</span>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<span style=\\"font-size:32px; background-color:rgb(0, 128, 128)\\">ab[c]</span>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<p><span style=\\"font-size:32px; background-color:rgb(0, 128, 128)\\">[abc</span></p><p><span style=\\"font-size:64px; background-color:rgb(128, 128, 0)\\">def]</span></p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<p><span style=\\"font-size:32px; background-color:rgb(0, 128, 128)\\">[abc</span></p><p><span style=\\"font-size:64px; background-color:rgb(128, 128, 0)\\">def]</span></p>": execCommand("fontSize", false, "5") return value
+[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<p><span style=\\"font-size:32px; background-color:rgb(0, 128, 128)\\">[abc</span></p><p><span style=\\"font-size:64px; background-color:rgb(128, 128, 0)\\">def]</span></p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["fontSize","5"]] "<p><span style=\\"font-size:32px; background-color:rgb(0, 128, 128)\\">[abc</span></p><p><span style=\\"font-size:64px; background-color:rgb(128, 128, 0)\\">def]</span></p>" compare innerHTML
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/forecolor_1001-2000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/forecolor_1001-2000-expected.txt
index b593b39..98e8707 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/forecolor_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/forecolor_1001-2000-expected.txt
@@ -104,138 +104,138 @@
 [PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "foo{<font color=blue>bar</font>}baz" queryCommandIndeterm("forecolor") after
 [PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "foo{<font color=blue>bar</font>}baz" queryCommandState("forecolor") after
 [PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "foo{<font color=blue>bar</font>}baz" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"color:rgb(0, 0, 255)\">foo</span><font color=\"#0000ff\">bar</font><span style=\"color:rgb(0, 0, 255)\">baz</span>" but got "<font color=\"#0000ff\">foobarbaz</font>"
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"color:rgb(0, 0, 255)\">foobarbaz</span>" but got "<font color=\"#0000ff\">foobarbaz</font>"
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #00f\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"color:rgb(0, 0, 255)\">foobarbaz</span>" but got "<font color=\"#0000ff\">foobarbaz</font>"
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"color:rgb(0, 0, 255)\">foobarbaz</span>" but got "<font color=\"#0000ff\">foobarbaz</font>"
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">[bar]</span>baz</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><font color=\\"#0000ff\\">bar</font><span style=\\"color:rgb(0, 0, 255)\\">baz</span>" but got "<font color=\\"#0000ff\\">foobarbaz</font>"
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"color:rgb(0, 0, 255)\\">foobarbaz</span>" but got "<font color=\\"#0000ff\\">foobarbaz</font>"
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #00f\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"color:rgb(0, 0, 255)\\">foobarbaz</span>" but got "<font color=\\"#0000ff\\">foobarbaz</font>"
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"color:rgb(0, 0, 255)\\">foobarbaz</span>" but got "<font color=\\"#0000ff\\">foobarbaz</font>"
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">[bar]</span>baz</span>" queryCommandValue("forecolor") after
 [PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=blue>foo<font color=brown>[bar]</font>baz</font>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=blue>foo<font color=brown>[bar]</font>baz</font>": execCommand("forecolor", false, "#0000FF") return value
 [PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=blue>foo<font color=brown>[bar]</font>baz</font>" checks for modifications to non-editable content
@@ -256,7 +256,7 @@
 [PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=blue>foo<font color=brown>[bar]</font>baz</font>": execCommand("forecolor", false, "#0000FF") return value
 [PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=blue>foo<font color=brown>[bar]</font>baz</font>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=blue>foo<font color=brown>[bar]</font>baz</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font color=\"blue\">foobarbaz</font>" but got "<font color=\"#0000ff\">foo</font><font style=\"\" color=\"#0000ff\">bar</font><font color=\"#0000ff\">baz</font>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font color=\\"blue\\">foobarbaz</font>" but got "<font color=\\"#0000ff\\">foo</font><font style=\\"\\" color=\\"#0000ff\\">bar</font><font color=\\"#0000ff\\">baz</font>"
 [PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=blue>foo<font color=brown>[bar]</font>baz</font>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=blue>foo<font color=brown>[bar]</font>baz</font>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=blue>foo<font color=brown>[bar]</font>baz</font>" queryCommandValue("stylewithcss") before
@@ -269,40 +269,40 @@
 [PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=blue>foo<font color=brown>[bar]</font>baz</font>" queryCommandIndeterm("forecolor") after
 [PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=blue>foo<font color=brown>[bar]</font>baz</font>" queryCommandState("forecolor") after
 [PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=blue>foo<font color=brown>[bar]</font>baz</font>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"color:rgb(0, 0, 255)\">foo<span style=\"color:rgb(165, 42, 42)\">b</span>arbaz</span>" but got "<span style=\"color:rgb(0, 0, 255)\">foo</span><span style=\"color:rgb(165, 42, 42)\">b</span><span style=\"color:rgb(0, 0, 255)\">arbaz</span>"
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"color:rgb(0, 0, 255)\">foo<font color=\"#a52a2a\">b</font>arbaz</span>" but got "<font color=\"#0000ff\">foo</font><span style=\"color:rgb(165, 42, 42)\">b</span><font color=\"#0000ff\">arbaz</font>"
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span style=\"color: brown\">b[ar]</span>baz</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"color:rgb(0, 0, 255)\\">foo<span style=\\"color:rgb(165, 42, 42)\\">b</span>arbaz</span>" but got "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><span style=\\"color:rgb(165, 42, 42)\\">b</span><span style=\\"color:rgb(0, 0, 255)\\">arbaz</span>"
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"color:rgb(0, 0, 255)\\">foo<font color=\\"#a52a2a\\">b</font>arbaz</span>" but got "<font color=\\"#0000ff\\">foo</font><span style=\\"color:rgb(165, 42, 42)\\">b</span><font color=\\"#0000ff\\">arbaz</font>"
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span style=\\"color: brown\\">b[ar]</span>baz</span>" queryCommandValue("forecolor") after
 [PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "foo<span id=purple>ba[r</span>ba]z": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "foo<span id=purple>ba[r</span>ba]z": execCommand("forecolor", false, "#0000FF") return value
 [PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "foo<span id=purple>ba[r</span>ba]z" checks for modifications to non-editable content
@@ -337,40 +337,40 @@
 [PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "foo<span id=purple>ba[r</span>ba]z" queryCommandIndeterm("forecolor") after
 [PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "foo<span id=purple>ba[r</span>ba]z" queryCommandState("forecolor") after
 [PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "foo<span id=purple>ba[r</span>ba]z" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"color:rgb(0, 0, 255)\">foo<span id=\"purple\">b<span style=\"color:rgb(0, 0, 255)\">a</span>r</span>baz</span>" but got "<span style=\"color:rgb(0, 0, 255)\">foo</span><span id=\"purple\" style=\"\"><span style=\"color:rgb(0, 0, 255)\">bar</span></span><span style=\"color:rgb(0, 0, 255)\">baz</span>"
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"color:rgb(0, 0, 255)\">foo<span id=\"purple\">b<font color=\"#0000ff\">a</font>r</span>baz</span>" but got "<font color=\"#0000ff\">foo</font><span id=\"purple\" style=\"\"><font color=\"#0000ff\">bar</font></span><font color=\"#0000ff\">baz</font>"
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"color:rgb(0, 0, 255)\\">foo<span id=\\"purple\\">b<span style=\\"color:rgb(0, 0, 255)\\">a</span>r</span>baz</span>" but got "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><span id=\\"purple\\" style=\\"\\"><span style=\\"color:rgb(0, 0, 255)\\">bar</span></span><span style=\\"color:rgb(0, 0, 255)\\">baz</span>"
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"color:rgb(0, 0, 255)\\">foo<span id=\\"purple\\">b<font color=\\"#0000ff\\">a</font>r</span>baz</span>" but got "<font color=\\"#0000ff\\">foo</font><span id=\\"purple\\" style=\\"\\"><font color=\\"#0000ff\\">bar</font></span><font color=\\"#0000ff\\">baz</font>"
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">foo<span id=purple>b[a]r</span>baz</span>" queryCommandValue("forecolor") after
 [PASS] [["forecolor","blue"]] "<a href=http://www.google.com>foo[bar]baz</a>": execCommand("forecolor", false, "blue") return value
 [PASS] [["forecolor","blue"]] "<a href=http://www.google.com>foo[bar]baz</a>" checks for modifications to non-editable content
 [PASS] [["forecolor","blue"]] "<a href=http://www.google.com>foo[bar]baz</a>" compare innerHTML
@@ -398,553 +398,553 @@
 [PASS] [["forecolor","rgb(0,0,255)"]] "<a href=http://www.google.com>foo[bar]baz</a>" queryCommandIndeterm("forecolor") after
 [PASS] [["forecolor","rgb(0,0,255)"]] "<a href=http://www.google.com>foo[bar]baz</a>" queryCommandState("forecolor") after
 [PASS] [["forecolor","rgb(0,0,255)"]] "<a href=http://www.google.com>foo[bar]baz</a>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" compare innerHTML
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" compare innerHTML
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"blue\">[foo]</font>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"color:rgb(0, 0, 255)\">foo</span>" but got "<font color=\"0000ff\">foo</font>"
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font color=\"#0000ff\">foo</font>" but got "<font color=\"0000ff\">foo</font>"
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"0000ff\">[foo]</font>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"color:rgb(0, 0, 255)\">foo</span>" but got "<font color=\"#0000ff\">foo</font>"
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" compare innerHTML
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\"#0000ff\">[foo]</font>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: blue\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: #0000ff\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0, 0, 255)\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(0%, 0%, 100%)\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb( 0 ,0 ,255)\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.0)\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgb(15, -10, 375)\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 0, 1)\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(255, 255, 255, 1)\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: rgba(0, 0, 255, 0.5)\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: hsl(240, 100%, 50%)\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: cornsilk\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: transparent\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandValue("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandIndeterm("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandState("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandValue("forecolor") before
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandIndeterm("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandState("forecolor") after
-[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\"color: currentColor\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" compare innerHTML
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" compare innerHTML
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"blue\\">[foo]</font>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"color:rgb(0, 0, 255)\\">foo</span>" but got "<font color=\\"0000ff\\">foo</font>"
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font color=\\"#0000ff\\">foo</font>" but got "<font color=\\"0000ff\\">foo</font>"
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"0000ff\\">[foo]</font>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"color:rgb(0, 0, 255)\\">foo</span>" but got "<font color=\\"#0000ff\\">foo</font>"
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" compare innerHTML
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<font color=\\"#0000ff\\">[foo]</font>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: blue\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: #0000ff\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0, 0, 255)\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(0%, 0%, 100%)\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb( 0 ,0 ,255)\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.0)\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgb(15, -10, 375)\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 0, 1)\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(255, 255, 255, 1)\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: rgba(0, 0, 255, 0.5)\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: hsl(240, 100%, 50%)\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: cornsilk\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: transparent\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandValue("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>": execCommand("forecolor", false, "#0000FF") return value
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandIndeterm("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandState("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandValue("forecolor") before
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandIndeterm("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandState("forecolor") after
+[PASS] [["stylewithcss","false"],["forecolor","#0000FF"]] "<span style=\\"color: currentColor\\">[foo]</span>" queryCommandValue("forecolor") after
 [PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "fo[o<font color=brown>b]ar</font>baz": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "fo[o<font color=brown>b]ar</font>baz": execCommand("forecolor", false, "#0000FF") return value
 [PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "fo[o<font color=brown>b]ar</font>baz" checks for modifications to non-editable content
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/forecolor_2001-last-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/forecolor_2001-last-expected.txt
index 955801f..2c74622 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/forecolor_2001-last-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/forecolor_2001-last-expected.txt
@@ -222,7 +222,7 @@
 [PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=color:brown>fo[o</span><span style=color:#0000ff>b]ar</span>": execCommand("forecolor", false, "#0000FF") return value
 [PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=color:brown>fo[o</span><span style=color:#0000ff>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=color:brown>fo[o</span><span style=color:#0000ff>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"color:rgb(165, 42, 42)\">fo</span><span style=\"color:rgb(0, 0, 255)\">obar</span>" but got "<span style=\"color:rgb(165, 42, 42)\">fo</span><span style=\"color:rgb(0, 0, 255)\">ob</span><span style=\"color:rgb(0, 0, 255)\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"color:rgb(165, 42, 42)\\">fo</span><span style=\\"color:rgb(0, 0, 255)\\">obar</span>" but got "<span style=\\"color:rgb(165, 42, 42)\\">fo</span><span style=\\"color:rgb(0, 0, 255)\\">ob</span><span style=\\"color:rgb(0, 0, 255)\\">ar</span>"
 [PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=color:brown>fo[o</span><span style=color:#0000ff>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=color:brown>fo[o</span><span style=color:#0000ff>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["forecolor","#0000FF"]] "<span style=color:brown>fo[o</span><span style=color:#0000ff>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -261,10 +261,10 @@
 [PASS] [["styleWithCSS","false"],["foreColor","#ff0000"]] "<font face=monospace>[abc]</font>": execCommand("foreColor", false, "#ff0000") return value
 [PASS] [["styleWithCSS","false"],["foreColor","#ff0000"]] "<font face=monospace>[abc]</font>" checks for modifications to non-editable content
 [PASS] [["styleWithCSS","false"],["foreColor","#ff0000"]] "<font face=monospace>[abc]</font>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["foreColor","#ff0000"]] "<font size=\"7\" face=monospace>[abc]</font>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["foreColor","#ff0000"]] "<font size=\"7\" face=monospace>[abc]</font>": execCommand("foreColor", false, "#ff0000") return value
-[PASS] [["styleWithCSS","false"],["foreColor","#ff0000"]] "<font size=\"7\" face=monospace>[abc]</font>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["foreColor","#ff0000"]] "<font size=\"7\" face=monospace>[abc]</font>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["foreColor","#ff0000"]] "<font size=\\"7\\" face=monospace>[abc]</font>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["foreColor","#ff0000"]] "<font size=\\"7\\" face=monospace>[abc]</font>": execCommand("foreColor", false, "#ff0000") return value
+[PASS] [["styleWithCSS","false"],["foreColor","#ff0000"]] "<font size=\\"7\\" face=monospace>[abc]</font>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["foreColor","#ff0000"]] "<font size=\\"7\\" face=monospace>[abc]</font>" compare innerHTML
 [PASS] [["styleWithCSS","false"],["foreColor","#ff0000"]] "<font size=7>[a]bc</font>": execCommand("styleWithCSS", false, "false") return value
 [PASS] [["styleWithCSS","false"],["foreColor","#ff0000"]] "<font size=7>[a]bc</font>": execCommand("foreColor", false, "#ff0000") return value
 [PASS] [["styleWithCSS","false"],["foreColor","#ff0000"]] "<font size=7>[a]bc</font>" checks for modifications to non-editable content
@@ -299,14 +299,14 @@
 [PASS] [["styleWithCSS","true"],["foreColor","rgba(0, 0, 255, 0.5)"],["styleWithCSS","false"],["insertText","b"]] "a[]c": execCommand("insertText", false, "b") return value
 [PASS] [["styleWithCSS","true"],["foreColor","rgba(0, 0, 255, 0.5)"],["styleWithCSS","false"],["insertText","b"]] "a[]c" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","true"],["foreColor","rgba(0, 0, 255, 0.5)"],["styleWithCSS","false"],["insertText","b"]] "a[]c" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "a<span style=\"color:rgba(0, 0, 255, 0.5)\">b</span>c" but got "a<font color=\"rgba(0, 0, 255, 0.5)\">b</font>c"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "a<span style=\\"color:rgba(0, 0, 255, 0.5)\\">b</span>c" but got "a<font color=\\"rgba(0, 0, 255, 0.5)\\">b</font>c"
 [PASS] [["styleWithCSS","true"],["foreColor","transparent"],["styleWithCSS","false"],["insertText","b"]] "a[]c": execCommand("styleWithCSS", false, "true") return value
 [PASS] [["styleWithCSS","true"],["foreColor","transparent"],["styleWithCSS","false"],["insertText","b"]] "a[]c": execCommand("foreColor", false, "transparent") return value
 [PASS] [["styleWithCSS","true"],["foreColor","transparent"],["styleWithCSS","false"],["insertText","b"]] "a[]c": execCommand("styleWithCSS", false, "false") return value
 [PASS] [["styleWithCSS","true"],["foreColor","transparent"],["styleWithCSS","false"],["insertText","b"]] "a[]c": execCommand("insertText", false, "b") return value
 [PASS] [["styleWithCSS","true"],["foreColor","transparent"],["styleWithCSS","false"],["insertText","b"]] "a[]c" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","true"],["foreColor","transparent"],["styleWithCSS","false"],["insertText","b"]] "a[]c" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "a<span style=\"color:rgba(0, 0, 0, 0)\">b</span>c" but got "a<font color=\"rgba(0, 0, 0, 0)\">b</font>c"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "a<span style=\\"color:rgba(0, 0, 0, 0)\\">b</span>c" but got "a<font color=\\"rgba(0, 0, 0, 0)\\">b</font>c"
 [PASS] [["styleWithCSS","false"],["foreColor","#0000FF"],["styleWithCSS","true"],["insertText","b"]] "a[]c": execCommand("styleWithCSS", false, "false") return value
 [PASS] [["styleWithCSS","false"],["foreColor","#0000FF"],["styleWithCSS","true"],["insertText","b"]] "a[]c": execCommand("foreColor", false, "#0000FF") return value
 [PASS] [["styleWithCSS","false"],["foreColor","#0000FF"],["styleWithCSS","true"],["insertText","b"]] "a[]c": execCommand("styleWithCSS", false, "true") return value
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/formatblock_1001-2000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/formatblock_1001-2000-expected.txt
index f1ccb362..f20bb0d 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/formatblock_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/formatblock_1001-2000-expected.txt
@@ -35,38 +35,38 @@
 [PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit>[foobar]</quasit>" queryCommandIndeterm("formatblock") after
 [PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit>[foobar]</quasit>" queryCommandState("formatblock") after
 [PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit>[foobar]</quasit>" queryCommandValue("formatblock") after
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>": execCommand("formatblock", false, "<div>") return value
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" compare innerHTML
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandState("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandState("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandIndeterm("formatblock") before
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandState("formatblock") before
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandValue("formatblock") before
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandIndeterm("formatblock") after
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandState("formatblock") after
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandValue("formatblock") after
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>": execCommand("defaultparagraphseparator", false, "p") return value
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>": execCommand("formatblock", false, "<div>") return value
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" compare innerHTML
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandState("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandState("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandIndeterm("formatblock") before
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandState("formatblock") before
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandValue("formatblock") before
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandIndeterm("formatblock") after
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandState("formatblock") after
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandValue("formatblock") after
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>": execCommand("formatblock", false, "<div>") return value
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandState("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandState("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandIndeterm("formatblock") before
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandState("formatblock") before
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandValue("formatblock") before
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandIndeterm("formatblock") after
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandState("formatblock") after
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandValue("formatblock") after
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>": execCommand("defaultparagraphseparator", false, "p") return value
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>": execCommand("formatblock", false, "<div>") return value
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" compare innerHTML
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandState("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandState("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandIndeterm("formatblock") before
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandState("formatblock") before
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandValue("formatblock") before
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandIndeterm("formatblock") after
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandState("formatblock") after
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<div>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandValue("formatblock") after
 [PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "foo[]bar<p>extra": execCommand("defaultparagraphseparator", false, "div") return value
 [PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "foo[]bar<p>extra": execCommand("formatblock", false, "<p>") return value
 [PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "foo[]bar<p>extra" checks for modifications to non-editable content
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/formatblock_2001-3000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/formatblock_2001-3000-expected.txt
index 59b88ed..9e0c88b 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/formatblock_2001-3000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/formatblock_2001-3000-expected.txt
@@ -164,38 +164,38 @@
 [PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit>[foobar]</quasit>" queryCommandIndeterm("formatblock") after
 [PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit>[foobar]</quasit>" queryCommandState("formatblock") after
 [PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit>[foobar]</quasit>" queryCommandValue("formatblock") after
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>": execCommand("formatblock", false, "<p>") return value
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" compare innerHTML
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandState("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandState("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandIndeterm("formatblock") before
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandState("formatblock") before
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandValue("formatblock") before
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandIndeterm("formatblock") after
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandState("formatblock") after
-[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandValue("formatblock") after
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>": execCommand("defaultparagraphseparator", false, "p") return value
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>": execCommand("formatblock", false, "<p>") return value
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" compare innerHTML
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandState("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandState("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandIndeterm("formatblock") before
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandState("formatblock") before
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandValue("formatblock") before
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandIndeterm("formatblock") after
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandState("formatblock") after
-[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\"display: block\">[foobar]</quasit>" queryCommandValue("formatblock") after
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>": execCommand("formatblock", false, "<p>") return value
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandState("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandState("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandIndeterm("formatblock") before
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandState("formatblock") before
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandValue("formatblock") before
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandIndeterm("formatblock") after
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandState("formatblock") after
+[PASS] [["defaultparagraphseparator","div"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandValue("formatblock") after
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>": execCommand("defaultparagraphseparator", false, "p") return value
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>": execCommand("formatblock", false, "<p>") return value
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" compare innerHTML
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandState("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandState("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandIndeterm("formatblock") before
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandState("formatblock") before
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandValue("formatblock") before
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandIndeterm("formatblock") after
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandState("formatblock") after
+[PASS] [["defaultparagraphseparator","p"],["formatblock","<p>"]] "<quasit style=\\"display: block\\">[foobar]</quasit>" queryCommandValue("formatblock") after
 [PASS] [["formatblock","<blockquote>"]] "<blockquote>[foo]</blockquote><p>extra": execCommand("formatblock", false, "<blockquote>") return value
 [PASS] [["formatblock","<blockquote>"]] "<blockquote>[foo]</blockquote><p>extra" checks for modifications to non-editable content
 [PASS] [["formatblock","<blockquote>"]] "<blockquote>[foo]</blockquote><p>extra" compare innerHTML
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/formatblock_4001-last-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/formatblock_4001-last-expected.txt
index 3fb8d12..e14906f 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/formatblock_4001-last-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/formatblock_4001-last-expected.txt
@@ -1054,7 +1054,7 @@
   assert_equals: expected false but got true
 [PASS] [["formatblock","p"]] "<div><div contenteditable=false><span contenteditable>[foo]</span></div></div>" checks for modifications to non-editable content
 [FAIL] [["formatblock","p"]] "<div><div contenteditable=false><span contenteditable>[foo]</span></div></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><div contenteditable=\"false\"><span contenteditable=\"\">foo</span></div></div>" but got "<div><div contenteditable=\"false\"><span contenteditable=\"\"><p>foo</p></span></div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><div contenteditable=\\"false\\"><span contenteditable=\\"\\">foo</span></div></div>" but got "<div><div contenteditable=\\"false\\"><span contenteditable=\\"\\"><p>foo</p></span></div></div>"
 [PASS] [["formatblock","p"]] "<div><div contenteditable=false><span contenteditable>[foo]</span></div></div>" queryCommandIndeterm("formatblock") before
 [PASS] [["formatblock","p"]] "<div><div contenteditable=false><span contenteditable>[foo]</span></div></div>" queryCommandState("formatblock") before
 [PASS] [["formatblock","p"]] "<div><div contenteditable=false><span contenteditable>[foo]</span></div></div>" queryCommandValue("formatblock") before
@@ -1066,7 +1066,7 @@
   assert_equals: expected false but got true
 [PASS] [["formatblock","p"]] "<div><p contenteditable=false><span contenteditable>[foo]</span></p></div>" checks for modifications to non-editable content
 [FAIL] [["formatblock","p"]] "<div><p contenteditable=false><span contenteditable>[foo]</span></p></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><p contenteditable=\"false\"><span contenteditable=\"\">foo</span></p></div>" but got "<div><p contenteditable=\"false\"><span contenteditable=\"\"><p>foo</p></span></p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><p contenteditable=\\"false\\"><span contenteditable=\\"\\">foo</span></p></div>" but got "<div><p contenteditable=\\"false\\"><span contenteditable=\\"\\"><p>foo</p></span></p></div>"
 [PASS] [["formatblock","p"]] "<div><p contenteditable=false><span contenteditable>[foo]</span></p></div>" queryCommandIndeterm("formatblock") before
 [PASS] [["formatblock","p"]] "<div><p contenteditable=false><span contenteditable>[foo]</span></p></div>" queryCommandState("formatblock") before
 [PASS] [["formatblock","p"]] "<div><p contenteditable=false><span contenteditable>[foo]</span></p></div>" queryCommandValue("formatblock") before
@@ -1078,7 +1078,7 @@
   assert_equals: expected false but got true
 [PASS] [["formatblock","div"]] "<div><div contenteditable=false><p contenteditable>[foo]</p></div></div>" checks for modifications to non-editable content
 [FAIL] [["formatblock","div"]] "<div><div contenteditable=false><p contenteditable>[foo]</p></div></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><div contenteditable=\"false\"><p contenteditable=\"\">foo</p></div></div>" but got "<div><div contenteditable=\"false\"><p contenteditable=\"\"><div>foo</div></p></div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><div contenteditable=\\"false\\"><p contenteditable=\\"\\">foo</p></div></div>" but got "<div><div contenteditable=\\"false\\"><p contenteditable=\\"\\"><div>foo</div></p></div></div>"
 [PASS] [["formatblock","div"]] "<div><div contenteditable=false><p contenteditable>[foo]</p></div></div>" queryCommandIndeterm("formatblock") before
 [PASS] [["formatblock","div"]] "<div><div contenteditable=false><p contenteditable>[foo]</p></div></div>" queryCommandState("formatblock") before
 [PASS] [["formatblock","div"]] "<div><div contenteditable=false><p contenteditable>[foo]</p></div></div>" queryCommandValue("formatblock") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_2001-3000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_2001-3000-expected.txt
index 01d3419..a7f18232 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_2001-3000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_2001-3000-expected.txt
@@ -45,40 +45,40 @@
 [PASS] [["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote><div>bar</div></blockquote>" queryCommandIndeterm("forwarddelete") after
 [PASS] [["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote><div>bar</div></blockquote>" queryCommandState("forwarddelete") after
 [PASS] [["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote><div>bar</div></blockquote>" queryCommandValue("forwarddelete") after
-[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>": execCommand("forwarddelete", false, "") return value
-[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" compare innerHTML
-[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandIndeterm("stylewithcss") before
-[FAIL] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>": execCommand("forwarddelete", false, "") return value
+[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" compare innerHTML
+[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandIndeterm("stylewithcss") before
+[FAIL] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
-[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandState("forwarddelete") before
-[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandValue("forwarddelete") before
-[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandState("forwarddelete") after
-[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandValue("forwarddelete") after
-[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>": execCommand("forwarddelete", false, "") return value
-[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\"#0000ff\">bar</font>" but got "foo<span style=\"color:rgb(0, 0, 255)\">bar</span>"
-[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandState("forwarddelete") before
-[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandValue("forwarddelete") before
-[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandState("forwarddelete") after
-[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\">bar</blockquote>" queryCommandValue("forwarddelete") after
+[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandState("forwarddelete") before
+[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandValue("forwarddelete") before
+[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandState("forwarddelete") after
+[PASS] [["stylewithcss","true"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandValue("forwarddelete") after
+[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>": execCommand("forwarddelete", false, "") return value
+[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\\"#0000ff\\">bar</font>" but got "foo<span style=\\"color:rgb(0, 0, 255)\\">bar</span>"
+[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandState("forwarddelete") before
+[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandValue("forwarddelete") before
+[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandState("forwarddelete") after
+[PASS] [["stylewithcss","false"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\">bar</blockquote>" queryCommandValue("forwarddelete") after
 [PASS] [["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote><blockquote><p>bar<p>baz</blockquote></blockquote>": execCommand("defaultparagraphseparator", false, "div") return value
 [PASS] [["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote><blockquote><p>bar<p>baz</blockquote></blockquote>": execCommand("forwarddelete", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote><blockquote><p>bar<p>baz</blockquote></blockquote>" checks for modifications to non-editable content
@@ -145,100 +145,100 @@
 [PASS] [["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote><div><p>bar<p>baz</div></blockquote>" queryCommandIndeterm("forwarddelete") after
 [PASS] [["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote><div><p>bar<p>baz</div></blockquote>" queryCommandState("forwarddelete") after
 [PASS] [["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote><div><p>bar<p>baz</div></blockquote>" queryCommandValue("forwarddelete") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>": execCommand("forwarddelete", false, "") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" compare innerHTML
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("forwarddelete") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("forwarddelete") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("forwarddelete") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("forwarddelete") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>": execCommand("forwarddelete", false, "") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\"#0000ff\">bar</font><blockquote style=\"color:rgb(0, 0, 255)\"><p>baz</p></blockquote>" but got "foo<span style=\"color:rgb(0, 0, 255)\">bar</span><blockquote style=\"color:rgb(0, 0, 255)\"><p>baz</p></blockquote>"
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("forwarddelete") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("forwarddelete") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("forwarddelete") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("forwarddelete") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>": execCommand("defaultparagraphseparator", false, "p") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>": execCommand("forwarddelete", false, "") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" compare innerHTML
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("forwarddelete") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("forwarddelete") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("forwarddelete") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("forwarddelete") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>": execCommand("defaultparagraphseparator", false, "p") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>": execCommand("forwarddelete", false, "") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\"#0000ff\">bar</font><blockquote style=\"color:rgb(0, 0, 255)\"><p>baz</p></blockquote>" but got "foo<span style=\"color:rgb(0, 0, 255)\">bar</span><blockquote style=\"color:rgb(0, 0, 255)\"><p>baz</p></blockquote>"
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("forwarddelete") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("forwarddelete") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandState("forwarddelete") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\"color: blue\"><p>bar<p>baz</blockquote>" queryCommandValue("forwarddelete") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>": execCommand("forwarddelete", false, "") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" compare innerHTML
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("forwarddelete") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("forwarddelete") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("forwarddelete") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("forwarddelete") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>": execCommand("forwarddelete", false, "") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\\"#0000ff\\">bar</font><blockquote style=\\"color:rgb(0, 0, 255)\\"><p>baz</p></blockquote>" but got "foo<span style=\\"color:rgb(0, 0, 255)\\">bar</span><blockquote style=\\"color:rgb(0, 0, 255)\\"><p>baz</p></blockquote>"
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("forwarddelete") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("forwarddelete") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("forwarddelete") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("forwarddelete") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>": execCommand("defaultparagraphseparator", false, "p") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>": execCommand("forwarddelete", false, "") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" compare innerHTML
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("forwarddelete") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("forwarddelete") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("forwarddelete") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("forwarddelete") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>": execCommand("defaultparagraphseparator", false, "p") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>": execCommand("forwarddelete", false, "") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\\"#0000ff\\">bar</font><blockquote style=\\"color:rgb(0, 0, 255)\\"><p>baz</p></blockquote>" but got "foo<span style=\\"color:rgb(0, 0, 255)\\">bar</span><blockquote style=\\"color:rgb(0, 0, 255)\\"><p>baz</p></blockquote>"
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("forwarddelete") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("forwarddelete") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandState("forwarddelete") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<blockquote style=\\"color: blue\\"><p>bar<p>baz</blockquote>" queryCommandValue("forwarddelete") after
 [PASS] [["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote><p><b>bar</b><p>baz</blockquote>": execCommand("defaultparagraphseparator", false, "div") return value
 [PASS] [["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote><p><b>bar</b><p>baz</blockquote>": execCommand("forwarddelete", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<blockquote><p><b>bar</b><p>baz</blockquote>" checks for modifications to non-editable content
@@ -884,7 +884,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"color:rgb(0, 0, 255)\">foo</span>bar</p>" but got "<p style=\"color:rgb(0, 0, 255)\">foobar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span>bar</p>" but got "<p style=\\"color:rgb(0, 0, 255)\\">foobar</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar" queryCommandValue("stylewithcss") before
@@ -908,7 +908,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\"#0000ff\">foo</font>bar</p>" but got "<p style=\"color:rgb(0, 0, 255)\">foobar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\\"#0000ff\\">foo</font>bar</p>" but got "<p style=\\"color:rgb(0, 0, 255)\\">foobar</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar" queryCommandValue("stylewithcss") before
@@ -932,7 +932,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"color:rgb(0, 0, 255)\">foo</span>bar</p>" but got "<p style=\"color:rgb(0, 0, 255)\">foobar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span>bar</p>" but got "<p style=\\"color:rgb(0, 0, 255)\\">foobar</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar" queryCommandValue("stylewithcss") before
@@ -956,7 +956,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\"#0000ff\">foo</font>bar</p>" but got "<p style=\"color:rgb(0, 0, 255)\">foobar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\\"#0000ff\\">foo</font>bar</p>" but got "<p style=\\"color:rgb(0, 0, 255)\\">foobar</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<p>bar" queryCommandValue("stylewithcss") before
@@ -1003,7 +1003,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<p style=color:brown>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<p style=color:brown>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<p style=color:brown>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"color:rgb(0, 0, 255)\">foo<font color=\"#a52a2a\">bar</font></p>" but got "<p style=\"color:rgb(0, 0, 255)\">foo<span style=\"color:rgb(165, 42, 42)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"color:rgb(0, 0, 255)\\">foo<font color=\\"#a52a2a\\">bar</font></p>" but got "<p style=\\"color:rgb(0, 0, 255)\\">foo<span style=\\"color:rgb(165, 42, 42)\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<p style=color:brown>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<p style=color:brown>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<p style=color:brown>bar" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_3001-4000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_3001-4000-expected.txt
index eb53f5a..6f880bc 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_3001-4000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_3001-4000-expected.txt
@@ -37,7 +37,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<p style=color:brown>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<p style=color:brown>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<p style=color:brown>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"color:rgb(0, 0, 255)\">foo<font color=\"#a52a2a\">bar</font></p>" but got "<p style=\"color:rgb(0, 0, 255)\">foo<span style=\"color:rgb(165, 42, 42)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"color:rgb(0, 0, 255)\\">foo<font color=\\"#a52a2a\\">bar</font></p>" but got "<p style=\\"color:rgb(0, 0, 255)\\">foo<span style=\\"color:rgb(165, 42, 42)\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<p style=color:brown>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<p style=color:brown>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<p style=color:brown>bar" queryCommandValue("stylewithcss") before
@@ -84,7 +84,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=color:brown>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=color:brown>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=color:brown>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\"#a52a2a\">bar</font></p>" but got "<p>foo<span style=\"color:rgb(165, 42, 42)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\\"#a52a2a\\">bar</font></p>" but got "<p>foo<span style=\\"color:rgb(165, 42, 42)\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=color:brown>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=color:brown>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=color:brown>bar" queryCommandValue("stylewithcss") before
@@ -131,7 +131,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=color:brown>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=color:brown>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=color:brown>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\"#a52a2a\">bar</font></p>" but got "<p>foo<span style=\"color:rgb(165, 42, 42)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\\"#a52a2a\\">bar</font></p>" but got "<p>foo<span style=\\"color:rgb(165, 42, 42)\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=color:brown>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=color:brown>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=color:brown>bar" queryCommandValue("stylewithcss") before
@@ -186,7 +186,7 @@
 [PASS] [["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>": execCommand("forwarddelete", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\"blue\">foo</font><font color=\"brown\">bar</font></p>" but got "<p><font color=\"blue\">foo</font><span style=\"color:rgb(165, 42, 42)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\\"blue\\">foo</font><font color=\\"brown\\">bar</font></p>" but got "<p><font color=\\"blue\\">foo</font><span style=\\"color:rgb(165, 42, 42)\\">bar</span></p>"
 [PASS] [["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>" queryCommandValue("defaultparagraphseparator") before
@@ -203,7 +203,7 @@
 [PASS] [["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>": execCommand("forwarddelete", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\"blue\">foo</font><font color=\"brown\">bar</font></p>" but got "<p><font color=\"blue\">foo</font><span style=\"color:rgb(165, 42, 42)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\\"blue\\">foo</font><font color=\\"brown\\">bar</font></p>" but got "<p><font color=\\"blue\\">foo</font><span style=\\"color:rgb(165, 42, 42)\\">bar</span></p>"
 [PASS] [["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>" queryCommandValue("defaultparagraphseparator") before
@@ -220,7 +220,7 @@
 [PASS] [["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p><font color=brown>bar</font>": execCommand("forwarddelete", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p><font color=brown>bar</font>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p><font color=brown>bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\"brown\">bar</font></p>" but got "<p>foo<span style=\"color:rgb(165, 42, 42)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\\"brown\\">bar</font></p>" but got "<p>foo<span style=\\"color:rgb(165, 42, 42)\\">bar</span></p>"
 [PASS] [["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p><font color=brown>bar</font>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p><font color=brown>bar</font>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p><font color=brown>bar</font>" queryCommandValue("defaultparagraphseparator") before
@@ -237,7 +237,7 @@
 [PASS] [["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p><font color=brown>bar</font>": execCommand("forwarddelete", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p><font color=brown>bar</font>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p><font color=brown>bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\"brown\">bar</font></p>" but got "<p>foo<span style=\"color:rgb(165, 42, 42)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\\"brown\\">bar</font></p>" but got "<p>foo<span style=\\"color:rgb(165, 42, 42)\\">bar</span></p>"
 [PASS] [["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p><font color=brown>bar</font>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p><font color=brown>bar</font>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p><font color=brown>bar</font>" queryCommandValue("defaultparagraphseparator") before
@@ -383,7 +383,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"background-color:rgb(0, 255, 255)\">foobar</p>" but got "<p style=\"background-color:rgb(0, 255, 255)\">foo<span style=\"background-color:rgb(210, 180, 140)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"background-color:rgb(0, 255, 255)\\">foobar</p>" but got "<p style=\\"background-color:rgb(0, 255, 255)\\">foo<span style=\\"background-color:rgb(210, 180, 140)\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar" queryCommandValue("stylewithcss") before
@@ -407,7 +407,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"background-color:rgb(0, 255, 255)\">foobar</p>" but got "<p style=\"background-color:rgb(0, 255, 255)\">foo<span style=\"background-color:rgb(210, 180, 140)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"background-color:rgb(0, 255, 255)\\">foobar</p>" but got "<p style=\\"background-color:rgb(0, 255, 255)\\">foo<span style=\\"background-color:rgb(210, 180, 140)\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar" queryCommandValue("stylewithcss") before
@@ -431,7 +431,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"background-color:rgb(0, 255, 255)\">foobar</p>" but got "<p style=\"background-color:rgb(0, 255, 255)\">foo<span style=\"background-color:rgb(210, 180, 140)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"background-color:rgb(0, 255, 255)\\">foobar</p>" but got "<p style=\\"background-color:rgb(0, 255, 255)\\">foo<span style=\\"background-color:rgb(210, 180, 140)\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar" queryCommandValue("stylewithcss") before
@@ -455,7 +455,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"background-color:rgb(0, 255, 255)\">foobar</p>" but got "<p style=\"background-color:rgb(0, 255, 255)\">foo<span style=\"background-color:rgb(210, 180, 140)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"background-color:rgb(0, 255, 255)\\">foobar</p>" but got "<p style=\\"background-color:rgb(0, 255, 255)\\">foo<span style=\\"background-color:rgb(210, 180, 140)\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=background-color:aqua>foo[]<p style=background-color:tan>bar" queryCommandValue("stylewithcss") before
@@ -479,7 +479,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foobar</p>" but got "<p>foo<span style=\"background-color:rgb(210, 180, 140)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foobar</p>" but got "<p>foo<span style=\\"background-color:rgb(210, 180, 140)\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar" queryCommandValue("stylewithcss") before
@@ -503,7 +503,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foobar</p>" but got "<p>foo<span style=\"background-color:rgb(210, 180, 140)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foobar</p>" but got "<p>foo<span style=\\"background-color:rgb(210, 180, 140)\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar" queryCommandValue("stylewithcss") before
@@ -527,7 +527,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foobar</p>" but got "<p>foo<span style=\"background-color:rgb(210, 180, 140)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foobar</p>" but got "<p>foo<span style=\\"background-color:rgb(210, 180, 140)\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar" queryCommandValue("stylewithcss") before
@@ -551,7 +551,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foobar</p>" but got "<p>foo<span style=\"background-color:rgb(210, 180, 140)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foobar</p>" but got "<p>foo<span style=\\"background-color:rgb(210, 180, 140)\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=background-color:tan>bar" queryCommandValue("stylewithcss") before
@@ -671,7 +671,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"text-decoration:underline\">foo</span>bar</p>" but got "<p style=\"text-decoration:underline\">foobar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"text-decoration:underline\\">foo</span>bar</p>" but got "<p style=\\"text-decoration:underline\\">foobar</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar" queryCommandValue("stylewithcss") before
@@ -695,7 +695,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><u>foo</u>bar</p>" but got "<p style=\"text-decoration:underline\">foobar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><u>foo</u>bar</p>" but got "<p style=\\"text-decoration:underline\\">foobar</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar" queryCommandValue("stylewithcss") before
@@ -719,7 +719,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"text-decoration:underline\">foo</span>bar</p>" but got "<p style=\"text-decoration:underline\">foobar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"text-decoration:underline\\">foo</span>bar</p>" but got "<p style=\\"text-decoration:underline\\">foobar</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar" queryCommandValue("stylewithcss") before
@@ -743,7 +743,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><u>foo</u>bar</p>" but got "<p style=\"text-decoration:underline\">foobar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><u>foo</u>bar</p>" but got "<p style=\\"text-decoration:underline\\">foobar</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p>bar" queryCommandValue("stylewithcss") before
@@ -767,7 +767,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"text-decoration:underline\">foo</span><span style=\"text-decoration:line-through\">bar</span></p>" but got "<p style=\"text-decoration:underline\">foo<span style=\"text-decoration-line:line-through\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"text-decoration:underline\\">foo</span><span style=\\"text-decoration:line-through\\">bar</span></p>" but got "<p style=\\"text-decoration:underline\\">foo<span style=\\"text-decoration-line:line-through\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar" queryCommandValue("stylewithcss") before
@@ -791,7 +791,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><u>foo</u><s>bar</s></p>" but got "<p style=\"text-decoration:underline\">foo<span style=\"text-decoration-line:line-through\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><u>foo</u><s>bar</s></p>" but got "<p style=\\"text-decoration:underline\\">foo<span style=\\"text-decoration-line:line-through\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar" queryCommandValue("stylewithcss") before
@@ -815,7 +815,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"text-decoration:underline\">foo</span><span style=\"text-decoration:line-through\">bar</span></p>" but got "<p style=\"text-decoration:underline\">foo<span style=\"text-decoration-line:line-through\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"text-decoration:underline\\">foo</span><span style=\\"text-decoration:line-through\\">bar</span></p>" but got "<p style=\\"text-decoration:underline\\">foo<span style=\\"text-decoration-line:line-through\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar" queryCommandValue("stylewithcss") before
@@ -839,7 +839,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><u>foo</u><s>bar</s></p>" but got "<p style=\"text-decoration:underline\">foo<span style=\"text-decoration-line:line-through\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><u>foo</u><s>bar</s></p>" but got "<p style=\\"text-decoration:underline\\">foo<span style=\\"text-decoration-line:line-through\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=text-decoration:underline>foo[]<p style=text-decoration:line-through>bar" queryCommandValue("stylewithcss") before
@@ -863,7 +863,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<span style=\"text-decoration:line-through\">bar</span></p>" but got "<p>foo<span style=\"text-decoration-line:line-through\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<span style=\\"text-decoration:line-through\\">bar</span></p>" but got "<p>foo<span style=\\"text-decoration-line:line-through\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar" queryCommandValue("stylewithcss") before
@@ -887,7 +887,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<s>bar</s></p>" but got "<p>foo<span style=\"text-decoration-line:line-through\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<s>bar</s></p>" but got "<p>foo<span style=\\"text-decoration-line:line-through\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar" queryCommandValue("stylewithcss") before
@@ -911,7 +911,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<span style=\"text-decoration:line-through\">bar</span></p>" but got "<p>foo<span style=\"text-decoration-line:line-through\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<span style=\\"text-decoration:line-through\\">bar</span></p>" but got "<p>foo<span style=\\"text-decoration-line:line-through\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar" queryCommandValue("stylewithcss") before
@@ -935,7 +935,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<s>bar</s></p>" but got "<p>foo<span style=\"text-decoration-line:line-through\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<s>bar</s></p>" but got "<p>foo<span style=\\"text-decoration-line:line-through\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[]<p style=text-decoration:line-through>bar" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_4001-5000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_4001-5000-expected.txt
index efcafa7a..5c71a87da 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_4001-5000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_4001-5000-expected.txt
@@ -26,7 +26,7 @@
 [PASS] [["stylewithcss","true"],["forwarddelete",""]] "<p style=color:blue>foo[]</p>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","true"],["forwarddelete",""]] "<p style=color:blue>foo[]</p>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["forwarddelete",""]] "<p style=color:blue>foo[]</p>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"color:rgb(0, 0, 255)\">foo</span>bar</p>" but got "<p style=\"color:rgb(0, 0, 255)\">foobar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span>bar</p>" but got "<p style=\\"color:rgb(0, 0, 255)\\">foobar</p>"
 [PASS] [["stylewithcss","true"],["forwarddelete",""]] "<p style=color:blue>foo[]</p>bar" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["forwarddelete",""]] "<p style=color:blue>foo[]</p>bar" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -44,7 +44,7 @@
 [PASS] [["stylewithcss","false"],["forwarddelete",""]] "<p style=color:blue>foo[]</p>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["forwarddelete",""]] "<p style=color:blue>foo[]</p>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["forwarddelete",""]] "<p style=color:blue>foo[]</p>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\"#0000ff\">foo</font>bar</p>" but got "<p style=\"color:rgb(0, 0, 255)\">foobar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\\"#0000ff\\">foo</font>bar</p>" but got "<p style=\\"color:rgb(0, 0, 255)\\">foobar</p>"
 [PASS] [["stylewithcss","false"],["forwarddelete",""]] "<p style=color:blue>foo[]</p>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["forwarddelete",""]] "<p style=color:blue>foo[]</p>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["forwarddelete",""]] "<p style=color:blue>foo[]</p>bar" queryCommandValue("stylewithcss") before
@@ -85,7 +85,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<p style=color:brown>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<p style=color:brown>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<p style=color:brown>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\"#a52a2a\">bar</font>" but got "foo<span style=\"color:rgb(165, 42, 42)\">bar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\\"#a52a2a\\">bar</font>" but got "foo<span style=\\"color:rgb(165, 42, 42)\\">bar</span>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<p style=color:brown>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<p style=color:brown>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "foo[]<p style=color:brown>bar" queryCommandValue("stylewithcss") before
@@ -132,7 +132,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<p style=color:brown>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<p style=color:brown>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<p style=color:brown>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\"#a52a2a\">bar</font>" but got "foo<span style=\"color:rgb(165, 42, 42)\">bar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\\"#a52a2a\\">bar</font>" but got "foo<span style=\\"color:rgb(165, 42, 42)\\">bar</span>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<p style=color:brown>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<p style=color:brown>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "foo[]<p style=color:brown>bar" queryCommandValue("stylewithcss") before
@@ -155,7 +155,7 @@
 [PASS] [["stylewithcss","true"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","true"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><p><span style=\"color:rgb(0, 128, 0)\">foo</span>bar</p></div>" but got "<div style=\"color:rgb(0, 0, 255)\"><p style=\"color:rgb(0, 128, 0)\">foobar</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><p><span style=\\"color:rgb(0, 128, 0)\\">foo</span>bar</p></div>" but got "<div style=\\"color:rgb(0, 0, 255)\\"><p style=\\"color:rgb(0, 128, 0)\\">foobar</p></div>"
 [PASS] [["stylewithcss","true"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div>bar" queryCommandValue("stylewithcss") before
@@ -172,7 +172,7 @@
 [PASS] [["stylewithcss","false"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><p><font color=\"#008000\">foo</font>bar</p></div>" but got "<div style=\"color:rgb(0, 0, 255)\"><p style=\"color:rgb(0, 128, 0)\">foobar</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><p><font color=\\"#008000\\">foo</font>bar</p></div>" but got "<div style=\\"color:rgb(0, 0, 255)\\"><p style=\\"color:rgb(0, 128, 0)\\">foobar</p></div>"
 [PASS] [["stylewithcss","false"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div>bar" queryCommandValue("stylewithcss") before
@@ -213,7 +213,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div><p style=color:brown>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div><p style=color:brown>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div><p style=color:brown>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"color:rgb(0, 0, 255)\"><p style=\"color:rgb(0, 128, 0)\">foo<font color=\"#a52a2a\">bar</font></p></div>" but got "<div style=\"color:rgb(0, 0, 255)\"><p style=\"color:rgb(0, 128, 0)\">foo<span style=\"color:rgb(165, 42, 42)\">bar</span></p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"color:rgb(0, 0, 255)\\"><p style=\\"color:rgb(0, 128, 0)\\">foo<font color=\\"#a52a2a\\">bar</font></p></div>" but got "<div style=\\"color:rgb(0, 0, 255)\\"><p style=\\"color:rgb(0, 128, 0)\\">foo<span style=\\"color:rgb(165, 42, 42)\\">bar</span></p></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div><p style=color:brown>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div><p style=color:brown>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div><p style=color:brown>bar" queryCommandValue("stylewithcss") before
@@ -260,7 +260,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div><p style=color:brown>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div><p style=color:brown>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div><p style=color:brown>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"color:rgb(0, 0, 255)\"><p style=\"color:rgb(0, 128, 0)\">foo<font color=\"#a52a2a\">bar</font></p></div>" but got "<div style=\"color:rgb(0, 0, 255)\"><p style=\"color:rgb(0, 128, 0)\">foo<span style=\"color:rgb(165, 42, 42)\">bar</span></p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"color:rgb(0, 0, 255)\\"><p style=\\"color:rgb(0, 128, 0)\\">foo<font color=\\"#a52a2a\\">bar</font></p></div>" but got "<div style=\\"color:rgb(0, 0, 255)\\"><p style=\\"color:rgb(0, 128, 0)\\">foo<span style=\\"color:rgb(165, 42, 42)\\">bar</span></p></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div><p style=color:brown>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div><p style=color:brown>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<div style=color:blue><p style=color:green>foo[]</div><p style=color:brown>bar" queryCommandValue("stylewithcss") before
@@ -307,7 +307,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<div style=color:brown><p style=color:green>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<div style=color:brown><p style=color:green>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<div style=color:brown><p style=color:green>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"color:rgb(0, 0, 255)\">foo<font color=\"#008000\">bar</font></p>" but got "<p style=\"color:rgb(0, 0, 255)\">foo<span style=\"color:rgb(0, 128, 0)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"color:rgb(0, 0, 255)\\">foo<font color=\\"#008000\\">bar</font></p>" but got "<p style=\\"color:rgb(0, 0, 255)\\">foo<span style=\\"color:rgb(0, 128, 0)\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<div style=color:brown><p style=color:green>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<div style=color:brown><p style=color:green>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p style=color:blue>foo[]<div style=color:brown><p style=color:green>bar" queryCommandValue("stylewithcss") before
@@ -354,7 +354,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<div style=color:brown><p style=color:green>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<div style=color:brown><p style=color:green>bar" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<div style=color:brown><p style=color:green>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"color:rgb(0, 0, 255)\">foo<font color=\"#008000\">bar</font></p>" but got "<p style=\"color:rgb(0, 0, 255)\">foo<span style=\"color:rgb(0, 128, 0)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"color:rgb(0, 0, 255)\\">foo<font color=\\"#008000\\">bar</font></p>" but got "<p style=\\"color:rgb(0, 0, 255)\\">foo<span style=\\"color:rgb(0, 128, 0)\\">bar</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<div style=color:brown><p style=color:green>bar" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<div style=color:brown><p style=color:green>bar" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p style=color:blue>foo[]<div style=color:brown><p style=color:green>bar" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_5001-6000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_5001-6000-expected.txt
index f585c75..69c3252 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_5001-6000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_5001-6000-expected.txt
@@ -90,7 +90,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[bar<p style=color:blue>baz]quz": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[bar<p style=color:blue>baz]quz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[bar<p style=color:blue>baz]quz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\"#0000ff\">quz</font></p>" but got "<p>foo<span style=\"color:rgb(0, 0, 255)\">quz</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\\"#0000ff\\">quz</font></p>" but got "<p>foo<span style=\\"color:rgb(0, 0, 255)\\">quz</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[bar<p style=color:blue>baz]quz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[bar<p style=color:blue>baz]quz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p>foo[bar<p style=color:blue>baz]quz" queryCommandValue("stylewithcss") before
@@ -137,7 +137,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[bar<p style=color:blue>baz]quz": execCommand("forwarddelete", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[bar<p style=color:blue>baz]quz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[bar<p style=color:blue>baz]quz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\"#0000ff\">quz</font></p>" but got "<p>foo<span style=\"color:rgb(0, 0, 255)\">quz</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<font color=\\"#0000ff\\">quz</font></p>" but got "<p>foo<span style=\\"color:rgb(0, 0, 255)\\">quz</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[bar<p style=color:blue>baz]quz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[bar<p style=color:blue>baz]quz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p>foo[bar<p style=color:blue>baz]quz" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_6001-7000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_6001-7000-expected.txt
index afcf62a..9e36ee4 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_6001-7000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_6001-7000-expected.txt
@@ -86,7 +86,7 @@
 [PASS] [["forwarddelete",""]] "<ol id=a><li>foo</ol>{}<br><ol><li>bar</ol>": execCommand("forwarddelete", false, "") return value
 [PASS] [["forwarddelete",""]] "<ol id=a><li>foo</ol>{}<br><ol><li>bar</ol>" checks for modifications to non-editable content
 [FAIL] [["forwarddelete",""]] "<ol id=a><li>foo</ol>{}<br><ol><li>bar</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol id=\"a\"><li>foo</li></ol>bar" but got "<ol id=\"a\"><li>foo</li></ol><ol><li>bar</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol id=\\"a\\"><li>foo</li></ol>bar" but got "<ol id=\\"a\\"><li>foo</li></ol><ol><li>bar</li></ol>"
 [PASS] [["forwarddelete",""]] "<ol id=a><li>foo</ol>{}<br><ol><li>bar</ol>" queryCommandIndeterm("forwarddelete") before
 [PASS] [["forwarddelete",""]] "<ol id=a><li>foo</ol>{}<br><ol><li>bar</ol>" queryCommandState("forwarddelete") before
 [PASS] [["forwarddelete",""]] "<ol id=a><li>foo</ol>{}<br><ol><li>bar</ol>" queryCommandValue("forwarddelete") before
@@ -96,7 +96,7 @@
 [PASS] [["forwarddelete",""]] "<ol><li>foo</ol>{}<br><ol id=b><li>bar</ol>": execCommand("forwarddelete", false, "") return value
 [PASS] [["forwarddelete",""]] "<ol><li>foo</ol>{}<br><ol id=b><li>bar</ol>" checks for modifications to non-editable content
 [FAIL] [["forwarddelete",""]] "<ol><li>foo</ol>{}<br><ol id=b><li>bar</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li></ol>bar" but got "<ol><li>foo</li></ol><ol id=\"b\"><li>bar</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li></ol>bar" but got "<ol><li>foo</li></ol><ol id=\\"b\\"><li>bar</li></ol>"
 [PASS] [["forwarddelete",""]] "<ol><li>foo</ol>{}<br><ol id=b><li>bar</ol>" queryCommandIndeterm("forwarddelete") before
 [PASS] [["forwarddelete",""]] "<ol><li>foo</ol>{}<br><ol id=b><li>bar</ol>" queryCommandState("forwarddelete") before
 [PASS] [["forwarddelete",""]] "<ol><li>foo</ol>{}<br><ol id=b><li>bar</ol>" queryCommandValue("forwarddelete") before
@@ -106,7 +106,7 @@
 [PASS] [["forwarddelete",""]] "<ol id=a><li>foo</ol>{}<br><ol id=b><li>bar</ol>": execCommand("forwarddelete", false, "") return value
 [PASS] [["forwarddelete",""]] "<ol id=a><li>foo</ol>{}<br><ol id=b><li>bar</ol>" checks for modifications to non-editable content
 [FAIL] [["forwarddelete",""]] "<ol id=a><li>foo</ol>{}<br><ol id=b><li>bar</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol id=\"a\"><li>foo</li></ol>bar" but got "<ol id=\"a\"><li>foo</li></ol><ol id=\"b\"><li>bar</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol id=\\"a\\"><li>foo</li></ol>bar" but got "<ol id=\\"a\\"><li>foo</li></ol><ol id=\\"b\\"><li>bar</li></ol>"
 [PASS] [["forwarddelete",""]] "<ol id=a><li>foo</ol>{}<br><ol id=b><li>bar</ol>" queryCommandIndeterm("forwarddelete") before
 [PASS] [["forwarddelete",""]] "<ol id=a><li>foo</ol>{}<br><ol id=b><li>bar</ol>" queryCommandState("forwarddelete") before
 [PASS] [["forwarddelete",""]] "<ol id=a><li>foo</ol>{}<br><ol id=b><li>bar</ol>" queryCommandValue("forwarddelete") before
@@ -116,7 +116,7 @@
 [PASS] [["forwarddelete",""]] "<ol class=a><li>foo</ol>{}<br><ol class=b><li>bar</ol>": execCommand("forwarddelete", false, "") return value
 [PASS] [["forwarddelete",""]] "<ol class=a><li>foo</ol>{}<br><ol class=b><li>bar</ol>" checks for modifications to non-editable content
 [FAIL] [["forwarddelete",""]] "<ol class=a><li>foo</ol>{}<br><ol class=b><li>bar</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol class=\"a\"><li>foo</li></ol>bar" but got "<ol class=\"a\"><li>foo</li></ol><ol class=\"b\"><li>bar</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol class=\\"a\\"><li>foo</li></ol>bar" but got "<ol class=\\"a\\"><li>foo</li></ol><ol class=\\"b\\"><li>bar</li></ol>"
 [PASS] [["forwarddelete",""]] "<ol class=a><li>foo</ol>{}<br><ol class=b><li>bar</ol>" queryCommandIndeterm("forwarddelete") before
 [PASS] [["forwarddelete",""]] "<ol class=a><li>foo</ol>{}<br><ol class=b><li>bar</ol>" queryCommandState("forwarddelete") before
 [PASS] [["forwarddelete",""]] "<ol class=a><li>foo</ol>{}<br><ol class=b><li>bar</ol>" queryCommandValue("forwarddelete") before
@@ -594,7 +594,7 @@
 [PASS] [["forwarddelete",""]] "foo[]<img contenteditable=false src=/img/lion.svg>bar": execCommand("forwarddelete", false, "") return value
 [PASS] [["forwarddelete",""]] "foo[]<img contenteditable=false src=/img/lion.svg>bar" checks for modifications to non-editable content
 [FAIL] [["forwarddelete",""]] "foo[]<img contenteditable=false src=/img/lion.svg>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar" but got "foo<img contenteditable=\"false\" src=\"/img/lion.svg\">bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar" but got "foo<img contenteditable=\\"false\\" src=\\"/img/lion.svg\\">bar"
 [PASS] [["forwarddelete",""]] "foo[]<img contenteditable=false src=/img/lion.svg>bar" queryCommandIndeterm("forwarddelete") before
 [PASS] [["forwarddelete",""]] "foo[]<img contenteditable=false src=/img/lion.svg>bar" queryCommandState("forwarddelete") before
 [PASS] [["forwarddelete",""]] "foo[]<img contenteditable=false src=/img/lion.svg>bar" queryCommandValue("forwarddelete") before
@@ -714,7 +714,7 @@
 [PASS] [["forwarddelete",""]] "<div><div contenteditable=false><div contenteditable><div>{}<br></div></div></div></div>": execCommand("forwarddelete", false, "") return value
 [PASS] [["forwarddelete",""]] "<div><div contenteditable=false><div contenteditable><div>{}<br></div></div></div></div>" checks for modifications to non-editable content
 [FAIL] [["forwarddelete",""]] "<div><div contenteditable=false><div contenteditable><div>{}<br></div></div></div></div>" compare innerHTML
-  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div><div contenteditable=\"false\"><div contenteditable=\"\"><div><br></div></div></div></div>" not in array ["<div><div contenteditable=\"false\"><div contenteditable=\"\"></div></div></div>", "<div><div contenteditable=\"false\"><div contenteditable=\"\"><br></div></div></div>"]
+  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div><div contenteditable=\\"false\\"><div contenteditable=\\"\\"><div><br></div></div></div></div>" not in array ["<div><div contenteditable=\\"false\\"><div contenteditable=\\"\\"></div></div></div>", "<div><div contenteditable=\\"false\\"><div contenteditable=\\"\\"><br></div></div></div>"]
 [PASS] [["forwarddelete",""]] "<div><div contenteditable=false><div contenteditable><div>{}<br></div></div></div></div>" queryCommandIndeterm("forwarddelete") before
 [PASS] [["forwarddelete",""]] "<div><div contenteditable=false><div contenteditable><div>{}<br></div></div></div></div>" queryCommandState("forwarddelete") before
 [PASS] [["forwarddelete",""]] "<div><div contenteditable=false><div contenteditable><div>{}<br></div></div></div></div>" queryCommandValue("forwarddelete") before
@@ -730,283 +730,283 @@
 [PASS] [["forwarddelete",""]] "<div><div contenteditable=false><span contenteditable>{}<br></span></div></div>" queryCommandIndeterm("forwarddelete") after
 [PASS] [["forwarddelete",""]] "<div><div contenteditable=false><span contenteditable>{}<br></span></div></div>" queryCommandState("forwarddelete") after
 [PASS] [["forwarddelete",""]] "<div><div contenteditable=false><span contenteditable>{}<br></span></div></div>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[] \nbar</div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[] \nbar</div>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[] \nbar</div>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[] \nbar</div>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[] \nbar</div>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[] \nbar</div>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[] \nbar</div>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[] \nbar</div>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[] \nbar</div>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\n bar</div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\n bar</div>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\n bar</div>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\n bar</div>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\n bar</div>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\n bar</div>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\n bar</div>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\n bar</div>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\n bar</div>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\n\nbar</div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\n\nbar</div>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\n\nbar</div>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\n\nbar</div>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\n\nbar</div>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\n\nbar</div>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\n\nbar</div>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\n\nbar</div>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\n\nbar</div>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>[]f\nbar</div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>[]f\nbar</div>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>[]f\nbar</div>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>[]f\nbar</div>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>[]f\nbar</div>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>[]f\nbar</div>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>[]f\nbar</div>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>[]f\nbar</div>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre>[]f\nbar</div>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[] \nbar</div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[] \nbar</div>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[] \nbar</div>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[] \nbar</div>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[] \nbar</div>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[] \nbar</div>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[] \nbar</div>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[] \nbar</div>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[] \nbar</div>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\n bar</div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\n bar</div>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\n bar</div>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\n bar</div>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\n bar</div>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\n bar</div>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\n bar</div>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\n bar</div>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\n bar</div>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\n\nbar</div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\n\nbar</div>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\n\nbar</div>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\n\nbar</div>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\n\nbar</div>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\n\nbar</div>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\n\nbar</div>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\n\nbar</div>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\n\nbar</div>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>[]f\nbar</div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>[]f\nbar</div>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>[]f\nbar</div>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>[]f\nbar</div>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>[]f\nbar</div>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>[]f\nbar</div>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>[]f\nbar</div>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>[]f\nbar</div>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>[]f\nbar</div>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[] \nbar</div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[] \nbar</div>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[] \nbar</div>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[] \nbar</div>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[] \nbar</div>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[] \nbar</div>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[] \nbar</div>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[] \nbar</div>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[] \nbar</div>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\n bar</div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\n bar</div>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\n bar</div>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\n bar</div>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\n bar</div>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\n bar</div>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\n bar</div>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\n bar</div>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\n bar</div>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\n\nbar</div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\n\nbar</div>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\n\nbar</div>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\n\nbar</div>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\n\nbar</div>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\n\nbar</div>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\n\nbar</div>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\n\nbar</div>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\n\nbar</div>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>[]f\nbar</div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>[]f\nbar</div>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>[]f\nbar</div>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>[]f\nbar</div>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>[]f\nbar</div>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>[]f\nbar</div>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>[]f\nbar</div>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>[]f\nbar</div>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>[]f\nbar</div>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[] \nbar</div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[] \nbar</div>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[] \nbar</div>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[] \nbar</div>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[] \nbar</div>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[] \nbar</div>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[] \nbar</div>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[] \nbar</div>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[] \nbar</div>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\n bar</div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\n bar</div>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\n bar</div>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\n bar</div>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\n bar</div>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\n bar</div>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\n bar</div>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\n bar</div>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\n bar</div>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\n\nbar</div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\n\nbar</div>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\n\nbar</div>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\n\nbar</div>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\n\nbar</div>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\n\nbar</div>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\n\nbar</div>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\n\nbar</div>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\n\nbar</div>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>[]f\nbar</div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>[]f\nbar</div>" checks for modifications to non-editable content
-[FAIL] [["forwarddelete",""]] "<div style=white-space:nowrap>[]f\nbar</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"white-space:nowrap\">bar</div>" but got "<div style=\"white-space:nowrap\">&nbsp;bar</div>"
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>[]f\nbar</div>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>[]f\nbar</div>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>[]f\nbar</div>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>[]f\nbar</div>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>[]f\nbar</div>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>[]f\nbar</div>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>a[b]c</span></p>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>a[b]c</span></p>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>a[b]c</span></p>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>a[b]c</span></p>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>a[b]c</span></p>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>a[b]c</span></p>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>a[b]c</span></p>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>a[b]c</span></p>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>a[b]c</span></p>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>a[b]c</unknown-element></p>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>a[b]c</unknown-element></p>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>a[b]c</unknown-element></p>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>[abc]</span></p>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>[abc]</span></p>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>[abc]</span></p>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>[abc]</span></p>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>[abc]</span></p>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>[abc]</span></p>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>[abc]</span></p>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>[abc]</span></p>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>[abc]</span></p>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>a[bc<br>de]f</span></p>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>a[bc<br>de]f</span></p>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>a[bc<br>de]f</span></p>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>[abc]</unknown-element></p>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>[abc]</unknown-element></p>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>[abc]</unknown-element></p>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p contenteditable=\"false\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>[ab</p><p>c]d</p></custom-element></div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>[ab</p><p>c]d</p></custom-element></div>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>[ab</p><p>c]d</p></custom-element></div>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>a[b</p><p>cd]</p></custom-element></div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>a[b</p><p>cd]</p></custom-element></div>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>a[b</p><p>cd]</p></custom-element></div>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<div contenteditable=\"false\"><custom-element contenteditable=\"\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul contenteditable=\"false\"><li>def</li></ul><p>ghi</p>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul contenteditable=\"false\"><li>def</li></ul><p>ghi</p>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul contenteditable=\"false\"><li>def</li></ul><p>ghi</p>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul contenteditable=\"false\"><li>def</li></ul><p>ghi</p>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul contenteditable=\"false\"><li>def</li></ul><p>ghi</p>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul contenteditable=\"false\"><li>def</li></ul><p>ghi</p>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul contenteditable=\"false\"><li>def</li></ul><p>ghi</p>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul contenteditable=\"false\"><li>def</li></ul><p>ghi</p>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul contenteditable=\"false\"><li>def</li></ul><p>ghi</p>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\"false\">def</li></ul><p>ghi</p>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\"false\">def</li></ul><p>ghi</p>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\"false\">def</li></ul><p>ghi</p>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\"false\">def</li></ul><p>ghi</p>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\"false\">def</li></ul><p>ghi</p>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\"false\">def</li></ul><p>ghi</p>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\"false\">def</li></ul><p>ghi</p>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\"false\">def</li></ul><p>ghi</p>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\"false\">def</li></ul><p>ghi</p>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\"false\">def</li><li>ghi</li></ul>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\"false\">def</li><li>ghi</li></ul>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\"false\">def</li><li>ghi</li></ul>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\"false\">def</li><li>ghi</li></ul>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\"false\">def</li><li>ghi</li></ul>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\"false\">def</li><li>ghi</li></ul>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\"false\">def</li><li>ghi</li></ul>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\"false\">def</li><li>ghi</li></ul>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\"false\">def</li><li>ghi</li></ul>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\"false\">def</li><li>ghi</li></ul>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\"false\">def</li><li>ghi</li></ul>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\"false\">def</li><li>ghi</li></ul>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\"false\">def</li><li>ghi</li></ul>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\"false\">def</li><li>ghi</li></ul>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\"false\">def</li><li>ghi</li></ul>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\"false\">def</li><li>ghi</li></ul>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\"false\">def</li><li>ghi</li></ul>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\"false\">def</li><li>ghi</li></ul>" queryCommandValue("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\"false\">def</li></ul><p>ghi</p>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\"false\">def</li></ul><p>ghi</p>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\"false\">def</li></ul><p>ghi</p>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\"false\">def</li></ul><p>ghi</p>" queryCommandIndeterm("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\"false\">def</li></ul><p>ghi</p>" queryCommandState("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\"false\">def</li></ul><p>ghi</p>" queryCommandValue("forwarddelete") before
-[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\"false\">def</li></ul><p>ghi</p>" queryCommandIndeterm("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\"false\">def</li></ul><p>ghi</p>" queryCommandState("forwarddelete") after
-[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\"false\">def</li></ul><p>ghi</p>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[] \\nbar</div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[] \\nbar</div>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[] \\nbar</div>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[] \\nbar</div>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[] \\nbar</div>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[] \\nbar</div>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[] \\nbar</div>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[] \\nbar</div>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[] \\nbar</div>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\\n bar</div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\\n bar</div>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\\n bar</div>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\\n bar</div>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\\n bar</div>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\\n bar</div>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\\n bar</div>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\\n bar</div>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\\n bar</div>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\\n\\nbar</div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\\n\\nbar</div>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\\n\\nbar</div>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\\n\\nbar</div>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\\n\\nbar</div>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\\n\\nbar</div>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\\n\\nbar</div>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\\n\\nbar</div>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>foo[]\\n\\nbar</div>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>[]f\\nbar</div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>[]f\\nbar</div>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>[]f\\nbar</div>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>[]f\\nbar</div>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>[]f\\nbar</div>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>[]f\\nbar</div>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>[]f\\nbar</div>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>[]f\\nbar</div>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre>[]f\\nbar</div>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[] \\nbar</div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[] \\nbar</div>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[] \\nbar</div>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[] \\nbar</div>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[] \\nbar</div>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[] \\nbar</div>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[] \\nbar</div>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[] \\nbar</div>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[] \\nbar</div>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\\n bar</div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\\n bar</div>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\\n bar</div>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\\n bar</div>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\\n bar</div>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\\n bar</div>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\\n bar</div>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\\n bar</div>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\\n bar</div>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\\n\\nbar</div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\\n\\nbar</div>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\\n\\nbar</div>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\\n\\nbar</div>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\\n\\nbar</div>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\\n\\nbar</div>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\\n\\nbar</div>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\\n\\nbar</div>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>foo[]\\n\\nbar</div>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>[]f\\nbar</div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>[]f\\nbar</div>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>[]f\\nbar</div>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>[]f\\nbar</div>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>[]f\\nbar</div>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>[]f\\nbar</div>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>[]f\\nbar</div>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>[]f\\nbar</div>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-wrap>[]f\\nbar</div>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[] \\nbar</div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[] \\nbar</div>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[] \\nbar</div>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[] \\nbar</div>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[] \\nbar</div>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[] \\nbar</div>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[] \\nbar</div>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[] \\nbar</div>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[] \\nbar</div>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\\n bar</div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\\n bar</div>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\\n bar</div>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\\n bar</div>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\\n bar</div>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\\n bar</div>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\\n bar</div>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\\n bar</div>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\\n bar</div>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\\n\\nbar</div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\\n\\nbar</div>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\\n\\nbar</div>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\\n\\nbar</div>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\\n\\nbar</div>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\\n\\nbar</div>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\\n\\nbar</div>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\\n\\nbar</div>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>foo[]\\n\\nbar</div>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>[]f\\nbar</div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>[]f\\nbar</div>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>[]f\\nbar</div>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>[]f\\nbar</div>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>[]f\\nbar</div>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>[]f\\nbar</div>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>[]f\\nbar</div>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>[]f\\nbar</div>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:pre-line>[]f\\nbar</div>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[] \\nbar</div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[] \\nbar</div>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[] \\nbar</div>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[] \\nbar</div>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[] \\nbar</div>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[] \\nbar</div>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[] \\nbar</div>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[] \\nbar</div>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[] \\nbar</div>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\\n bar</div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\\n bar</div>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\\n bar</div>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\\n bar</div>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\\n bar</div>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\\n bar</div>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\\n bar</div>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\\n bar</div>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\\n bar</div>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\\n\\nbar</div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\\n\\nbar</div>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\\n\\nbar</div>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\\n\\nbar</div>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\\n\\nbar</div>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\\n\\nbar</div>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\\n\\nbar</div>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\\n\\nbar</div>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>foo[]\\n\\nbar</div>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>[]f\\nbar</div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>[]f\\nbar</div>" checks for modifications to non-editable content
+[FAIL] [["forwarddelete",""]] "<div style=white-space:nowrap>[]f\\nbar</div>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"white-space:nowrap\\">bar</div>" but got "<div style=\\"white-space:nowrap\\">&nbsp;bar</div>"
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>[]f\\nbar</div>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>[]f\\nbar</div>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>[]f\\nbar</div>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>[]f\\nbar</div>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>[]f\\nbar</div>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div style=white-space:nowrap>[]f\\nbar</div>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[b]c</span></p>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[b]c</span></p>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[b]c</span></p>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[b]c</span></p>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[b]c</span></p>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[b]c</span></p>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[b]c</span></p>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[b]c</span></p>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[b]c</span></p>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>a[b]c</unknown-element></p>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>a[b]c</unknown-element></p>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>a[b]c</unknown-element></p>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>a[b]c</unknown-element></p>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>[abc]</span></p>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>[abc]</span></p>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>[abc]</span></p>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>[abc]</span></p>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>[abc]</span></p>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>[abc]</span></p>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>[abc]</span></p>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>[abc]</span></p>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>[abc]</span></p>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[bc<br>de]f</span></p>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[bc<br>de]f</span></p>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[bc<br>de]f</span></p>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><span contenteditable>a[bc<br>de]f</span></p>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>[abc]</unknown-element></p>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>[abc]</unknown-element></p>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>[abc]</unknown-element></p>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p contenteditable=\\"false\\"><unknown-element contenteditable>[abc]</unknown-element></p>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>[ab</p><p>c]d</p></custom-element></div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>[ab</p><p>c]d</p></custom-element></div>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>[ab</p><p>c]d</p></custom-element></div>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>[ab</p><p>c]d</p></custom-element></div>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>a[b</p><p>cd]</p></custom-element></div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>a[b</p><p>cd]</p></custom-element></div>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>a[b</p><p>cd]</p></custom-element></div>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p>a[b</p><p>cd]</p></custom-element></div>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>[ab</b></p><p><i>c]d</i></p></custom-element></div>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<div contenteditable=\\"false\\"><custom-element contenteditable=\\"\\"><p><b>a[b</b></p><p><i>cd]</i></p></custom-element></div>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul contenteditable=\\"false\\"><li>def</li></ul><p>ghi</p>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul contenteditable=\\"false\\"><li>def</li></ul><p>ghi</p>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul contenteditable=\\"false\\"><li>def</li></ul><p>ghi</p>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul contenteditable=\\"false\\"><li>def</li></ul><p>ghi</p>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul contenteditable=\\"false\\"><li>def</li></ul><p>ghi</p>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul contenteditable=\\"false\\"><li>def</li></ul><p>ghi</p>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul contenteditable=\\"false\\"><li>def</li></ul><p>ghi</p>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul contenteditable=\\"false\\"><li>def</li></ul><p>ghi</p>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul contenteditable=\\"false\\"><li>def</li></ul><p>ghi</p>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\\"false\\">def</li></ul><p>ghi</p>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\\"false\\">def</li></ul><p>ghi</p>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\\"false\\">def</li></ul><p>ghi</p>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\\"false\\">def</li></ul><p>ghi</p>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\\"false\\">def</li></ul><p>ghi</p>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\\"false\\">def</li></ul><p>ghi</p>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\\"false\\">def</li></ul><p>ghi</p>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\\"false\\">def</li></ul><p>ghi</p>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\\"false\\">def</li></ul><p>ghi</p>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\\"false\\">def</li><li>ghi</li></ul>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\\"false\\">def</li><li>ghi</li></ul>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\\"false\\">def</li><li>ghi</li></ul>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\\"false\\">def</li><li>ghi</li></ul>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\\"false\\">def</li><li>ghi</li></ul>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\\"false\\">def</li><li>ghi</li></ul>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\\"false\\">def</li><li>ghi</li></ul>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\\"false\\">def</li><li>ghi</li></ul>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\\"false\\">def</li><li>ghi</li></ul>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\\"false\\">def</li><li>ghi</li></ul>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\\"false\\">def</li><li>ghi</li></ul>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\\"false\\">def</li><li>ghi</li></ul>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\\"false\\">def</li><li>ghi</li></ul>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\\"false\\">def</li><li>ghi</li></ul>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\\"false\\">def</li><li>ghi</li></ul>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\\"false\\">def</li><li>ghi</li></ul>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\\"false\\">def</li><li>ghi</li></ul>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<p>abc[]</p><ul><li contenteditable=\\"false\\">def</li><li>ghi</li></ul>" queryCommandValue("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\\"false\\">def</li></ul><p>ghi</p>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\\"false\\">def</li></ul><p>ghi</p>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\\"false\\">def</li></ul><p>ghi</p>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\\"false\\">def</li></ul><p>ghi</p>" queryCommandIndeterm("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\\"false\\">def</li></ul><p>ghi</p>" queryCommandState("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\\"false\\">def</li></ul><p>ghi</p>" queryCommandValue("forwarddelete") before
+[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\\"false\\">def</li></ul><p>ghi</p>" queryCommandIndeterm("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\\"false\\">def</li></ul><p>ghi</p>" queryCommandState("forwarddelete") after
+[PASS] [["forwarddelete",""]] "<ul><li>abc[]</li><li contenteditable=\\"false\\">def</li></ul><p>ghi</p>" queryCommandValue("forwarddelete") after
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>": execCommand("styleWithCSS", false, "false") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>": execCommand("defaultparagraphseparator", false, "div") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>": execCommand("forwarddelete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\"blue\">foo</font><font color=\"brown\">bar</font></p>" but got "<p><font color=\"blue\">foo</font><span style=\"color:rgb(165, 42, 42)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\\"blue\\">foo</font><font color=\\"brown\\">bar</font></p>" but got "<p><font color=\\"blue\\">foo</font><span style=\\"color:rgb(165, 42, 42)\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>" queryCommandIndeterm("foreColor") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>" queryCommandState("foreColor") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>" queryCommandValue("foreColor") before
@@ -1018,7 +1018,7 @@
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>": execCommand("forwarddelete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\"blue\">foo</font><font color=\"brown\">bar</font></p>" but got "<p><font color=\"blue\">foo</font><span style=\"color:rgb(165, 42, 42)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\\"blue\\">foo</font><font color=\\"brown\\">bar</font></p>" but got "<p><font color=\\"blue\\">foo</font><span style=\\"color:rgb(165, 42, 42)\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>" queryCommandIndeterm("foreColor") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>" queryCommandState("foreColor") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font color=brown>bar</font>" queryCommandValue("foreColor") before
@@ -1030,7 +1030,7 @@
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font size=3>foo[]</font><p><font size=5>bar</font>": execCommand("forwarddelete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font size=3>foo[]</font><p><font size=5>bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font size=3>foo[]</font><p><font size=5>bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\"3\">foo</font><font size=\"5\">bar</font></p>" but got "<p><font size=\"3\">foo</font><span style=\"font-size:x-large\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\\"3\\">foo</font><font size=\\"5\\">bar</font></p>" but got "<p><font size=\\"3\\">foo</font><span style=\\"font-size:x-large\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font size=3>foo[]</font><p><font size=5>bar</font>" queryCommandIndeterm("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font size=3>foo[]</font><p><font size=5>bar</font>" queryCommandState("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font size=3>foo[]</font><p><font size=5>bar</font>" queryCommandValue("fontSize") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_7001-last-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_7001-last-expected.txt
index 3fb0abb..ce88a37 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_7001-last-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/forwarddelete_7001-last-expected.txt
@@ -5,7 +5,7 @@
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font size=3>foo[]</font><p><font size=5>bar</font>": execCommand("forwarddelete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font size=3>foo[]</font><p><font size=5>bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font size=3>foo[]</font><p><font size=5>bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\"3\">foo</font><font size=\"5\">bar</font></p>" but got "<p><font size=\"3\">foo</font><span style=\"font-size:x-large\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\\"3\\">foo</font><font size=\\"5\\">bar</font></p>" but got "<p><font size=\\"3\\">foo</font><span style=\\"font-size:x-large\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font size=3>foo[]</font><p><font size=5>bar</font>" queryCommandIndeterm("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font size=3>foo[]</font><p><font size=5>bar</font>" queryCommandState("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font size=3>foo[]</font><p><font size=5>bar</font>" queryCommandValue("fontSize") before
@@ -17,7 +17,7 @@
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font size=4>foo[]</font><p><font size=5>bar</font>": execCommand("forwarddelete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font size=4>foo[]</font><p><font size=5>bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font size=4>foo[]</font><p><font size=5>bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\"4\">foo</font><font size=\"5\">bar</font></p>" but got "<p><font size=\"4\">foo</font><span style=\"font-size:x-large\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\\"4\\">foo</font><font size=\\"5\\">bar</font></p>" but got "<p><font size=\\"4\\">foo</font><span style=\\"font-size:x-large\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font size=4>foo[]</font><p><font size=5>bar</font>" queryCommandIndeterm("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font size=4>foo[]</font><p><font size=5>bar</font>" queryCommandState("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font size=4>foo[]</font><p><font size=5>bar</font>" queryCommandValue("fontSize") before
@@ -29,7 +29,7 @@
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font size=4>foo[]</font><p><font size=5>bar</font>": execCommand("forwarddelete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font size=4>foo[]</font><p><font size=5>bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font size=4>foo[]</font><p><font size=5>bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\"4\">foo</font><font size=\"5\">bar</font></p>" but got "<p><font size=\"4\">foo</font><span style=\"font-size:x-large\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\\"4\\">foo</font><font size=\\"5\\">bar</font></p>" but got "<p><font size=\\"4\\">foo</font><span style=\\"font-size:x-large\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font size=4>foo[]</font><p><font size=5>bar</font>" queryCommandIndeterm("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font size=4>foo[]</font><p><font size=5>bar</font>" queryCommandState("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font size=4>foo[]</font><p><font size=5>bar</font>" queryCommandValue("fontSize") before
@@ -41,7 +41,7 @@
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font size=5>bar</font>": execCommand("forwarddelete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font size=5>bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font size=5>bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\"blue\">foo</font><font size=\"5\">bar</font></p>" but got "<p><font color=\"blue\">foo</font><span style=\"font-size:x-large\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\\"blue\\">foo</font><font size=\\"5\\">bar</font></p>" but got "<p><font color=\\"blue\\">foo</font><span style=\\"font-size:x-large\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font size=5>bar</font>" queryCommandIndeterm("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font size=5>bar</font>" queryCommandState("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font size=5>bar</font>" queryCommandValue("fontSize") before
@@ -59,7 +59,7 @@
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font size=5>bar</font>": execCommand("forwarddelete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font size=5>bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font size=5>bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\"blue\">foo</font><font size=\"5\">bar</font></p>" but got "<p><font color=\"blue\">foo</font><span style=\"font-size:x-large\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font color=\\"blue\\">foo</font><font size=\\"5\\">bar</font></p>" but got "<p><font color=\\"blue\\">foo</font><span style=\\"font-size:x-large\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font size=5>bar</font>" queryCommandIndeterm("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font size=5>bar</font>" queryCommandState("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font color=blue>foo[]</font><p><font size=5>bar</font>" queryCommandValue("fontSize") before
@@ -77,7 +77,7 @@
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font size=5>foo[]</font><p><font color=blue>bar</font>": execCommand("forwarddelete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font size=5>foo[]</font><p><font color=blue>bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font size=5>foo[]</font><p><font color=blue>bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\"5\">foo</font><font color=\"blue\">bar</font></p>" but got "<p><font size=\"5\">foo</font><span style=\"color:rgb(0, 0, 255)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\\"5\\">foo</font><font color=\\"blue\\">bar</font></p>" but got "<p><font size=\\"5\\">foo</font><span style=\\"color:rgb(0, 0, 255)\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font size=5>foo[]</font><p><font color=blue>bar</font>" queryCommandIndeterm("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font size=5>foo[]</font><p><font color=blue>bar</font>" queryCommandState("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font size=5>foo[]</font><p><font color=blue>bar</font>" queryCommandValue("fontSize") before
@@ -95,7 +95,7 @@
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font size=5>foo[]</font><p><font color=blue>bar</font>": execCommand("forwarddelete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font size=5>foo[]</font><p><font color=blue>bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font size=5>foo[]</font><p><font color=blue>bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\"5\">foo</font><font color=\"blue\">bar</font></p>" but got "<p><font size=\"5\">foo</font><span style=\"color:rgb(0, 0, 255)\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font size=\\"5\\">foo</font><font color=\\"blue\\">bar</font></p>" but got "<p><font size=\\"5\\">foo</font><span style=\\"color:rgb(0, 0, 255)\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font size=5>foo[]</font><p><font color=blue>bar</font>" queryCommandIndeterm("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font size=5>foo[]</font><p><font color=blue>bar</font>" queryCommandState("fontSize") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font size=5>foo[]</font><p><font color=blue>bar</font>" queryCommandValue("fontSize") before
@@ -113,7 +113,7 @@
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font face=monospace>foo[]</font><p><font face=sans-serif>bar</font>": execCommand("forwarddelete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font face=monospace>foo[]</font><p><font face=sans-serif>bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font face=monospace>foo[]</font><p><font face=sans-serif>bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font face=\"monospace\">foo</font><font face=\"sans-serif\">bar</font></p>" but got "<p><font face=\"monospace\">foo</font><span style=\"font-family:sans-serif\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font face=\\"monospace\\">foo</font><font face=\\"sans-serif\\">bar</font></p>" but got "<p><font face=\\"monospace\\">foo</font><span style=\\"font-family:sans-serif\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font face=monospace>foo[]</font><p><font face=sans-serif>bar</font>" queryCommandIndeterm("fontName") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font face=monospace>foo[]</font><p><font face=sans-serif>bar</font>" queryCommandState("fontName") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]] "<p><font face=monospace>foo[]</font><p><font face=sans-serif>bar</font>" queryCommandValue("fontName") before
@@ -125,93 +125,93 @@
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font face=monospace>foo[]</font><p><font face=sans-serif>bar</font>": execCommand("forwarddelete", false, "") return value
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font face=monospace>foo[]</font><p><font face=sans-serif>bar</font>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font face=monospace>foo[]</font><p><font face=sans-serif>bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font face=\"monospace\">foo</font><font face=\"sans-serif\">bar</font></p>" but got "<p><font face=\"monospace\">foo</font><span style=\"font-family:sans-serif\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><font face=\\"monospace\\">foo</font><font face=\\"sans-serif\\">bar</font></p>" but got "<p><font face=\\"monospace\\">foo</font><span style=\\"font-family:sans-serif\\">bar</span></p>"
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font face=monospace>foo[]</font><p><font face=sans-serif>bar</font>" queryCommandIndeterm("fontName") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font face=monospace>foo[]</font><p><font face=sans-serif>bar</font>" queryCommandState("fontName") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font face=monospace>foo[]</font><p><font face=sans-serif>bar</font>" queryCommandValue("fontName") before
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font face=monospace>foo[]</font><p><font face=sans-serif>bar</font>" queryCommandIndeterm("fontName") after
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font face=monospace>foo[]</font><p><font face=sans-serif>bar</font>" queryCommandState("fontName") after
 [PASS] [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]] "<p><font face=monospace>foo[]</font><p><font face=sans-serif>bar</font>" queryCommandValue("fontName") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("forwarddelete", false, "") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandIndeterm("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandState("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandValue("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandIndeterm("foreColor") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandState("foreColor") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandValue("foreColor") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("forwarddelete", false, "") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandIndeterm("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandState("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandValue("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandIndeterm("foreColor") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandState("foreColor") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandValue("foreColor") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("forwarddelete", false, "") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandIndeterm("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandState("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandValue("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandIndeterm("foreColor") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandState("foreColor") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandValue("foreColor") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>": execCommand("forwarddelete", false, "") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" queryCommandIndeterm("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" queryCommandState("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" queryCommandValue("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" queryCommandIndeterm("foreColor") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" queryCommandState("foreColor") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" queryCommandValue("foreColor") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><span style=\"color:rgb(255, 0, 0)\">bar</span>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><span style=\"color:rgb(255, 0, 0)\">bar</span>": execCommand("forwarddelete", false, "") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" queryCommandIndeterm("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" queryCommandState("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" queryCommandValue("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" queryCommandIndeterm("foreColor") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" queryCommandState("foreColor") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" queryCommandValue("foreColor") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>": execCommand("forwarddelete", false, "") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" queryCommandIndeterm("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" queryCommandState("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" queryCommandValue("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" queryCommandIndeterm("foreColor") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" queryCommandState("foreColor") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" queryCommandValue("foreColor") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo[]</span><br><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo[]</span><br><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("forwarddelete", false, "") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo[]</span><br><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo[]</span><br><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo[]</span><br><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandIndeterm("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo[]</span><br><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandState("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo[]</span><br><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandValue("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo[]</span><br><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandIndeterm("foreColor") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo[]</span><br><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandState("foreColor") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo[]</span><br><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandValue("foreColor") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo[]<br></span><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo[]<br></span><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("forwarddelete", false, "") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo[]<br></span><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo[]<br></span><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo[]<br></span><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandIndeterm("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo[]<br></span><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandState("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo[]<br></span><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandValue("foreColor") before
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo[]<br></span><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandIndeterm("foreColor") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo[]<br></span><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandState("foreColor") after
-[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\"color:rgb(0, 0, 255)\">foo[]<br></span><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" queryCommandValue("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("forwarddelete", false, "") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandIndeterm("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandState("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandValue("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandIndeterm("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandState("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandValue("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("forwarddelete", false, "") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandIndeterm("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandState("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandValue("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandIndeterm("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandState("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandValue("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("forwarddelete", false, "") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandIndeterm("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandState("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandValue("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandIndeterm("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandState("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandValue("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>": execCommand("forwarddelete", false, "") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" queryCommandIndeterm("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" queryCommandState("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" queryCommandValue("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" queryCommandIndeterm("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" queryCommandState("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" queryCommandValue("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>": execCommand("forwarddelete", false, "") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" queryCommandIndeterm("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" queryCommandState("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" queryCommandValue("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" queryCommandIndeterm("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" queryCommandState("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" queryCommandValue("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>": execCommand("forwarddelete", false, "") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" queryCommandIndeterm("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" queryCommandState("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" queryCommandValue("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" queryCommandIndeterm("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" queryCommandState("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" queryCommandValue("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("forwarddelete", false, "") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandIndeterm("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandState("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandValue("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandIndeterm("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandState("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandValue("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("forwarddelete", false, "") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandIndeterm("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandState("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandValue("foreColor") before
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandIndeterm("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandState("foreColor") after
+[PASS] [["styleWithCSS","false"],["forwarddelete",""]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" queryCommandValue("foreColor") after
 [PASS] [["forwarddelete",""]] "<ul><li>[abc</li><li>def]</li></ul>": execCommand("forwarddelete", false, "") return value
 [PASS] [["forwarddelete",""]] "<ul><li>[abc</li><li>def]</li></ul>" checks for modifications to non-editable content
 [PASS] [["forwarddelete",""]] "<ul><li>[abc</li><li>def]</li></ul>" compare innerHTML
@@ -248,24 +248,24 @@
 [PASS] [["forwarddelete",""]] "<ul><li> [abc</li><li>def] </li></ul>": execCommand("forwarddelete", false, "") return value
 [PASS] [["forwarddelete",""]] "<ul><li> [abc</li><li>def] </li></ul>" checks for modifications to non-editable content
 [PASS] [["forwarddelete",""]] "<ul><li> [abc</li><li>def] </li></ul>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<ul>\n<li>[abc</li><li>def]</li></ul>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<ul>\n<li>[abc</li><li>def]</li></ul>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<ul>\n<li>[abc</li><li>def]</li></ul>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<ul><li>[abc</li><li>def]</li>\n</ul>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<ul><li>[abc</li><li>def]</li>\n</ul>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<ul><li>[abc</li><li>def]</li>\n</ul>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<ul>\n<li>[abc</li><li>def]</li>\n</ul>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<ul>\n<li>[abc</li><li>def]</li>\n</ul>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<ul>\n<li>[abc</li><li>def]</li>\n</ul>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<ul>\\n<li>[abc</li><li>def]</li></ul>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<ul>\\n<li>[abc</li><li>def]</li></ul>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<ul>\\n<li>[abc</li><li>def]</li></ul>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<ul><li>[abc</li><li>def]</li>\\n</ul>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<ul><li>[abc</li><li>def]</li>\\n</ul>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<ul><li>[abc</li><li>def]</li>\\n</ul>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<ul>\\n<li>[abc</li><li>def]</li>\\n</ul>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<ul>\\n<li>[abc</li><li>def]</li>\\n</ul>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<ul>\\n<li>[abc</li><li>def]</li>\\n</ul>" compare innerHTML
 [PASS] [["forwarddelete",""]] "<ol><li>[abc</li></ol><ul><li>def]</li></ul>": execCommand("forwarddelete", false, "") return value
 [PASS] [["forwarddelete",""]] "<ol><li>[abc</li></ol><ul><li>def]</li></ul>" checks for modifications to non-editable content
 [PASS] [["forwarddelete",""]] "<ol><li>[abc</li></ol><ul><li>def]</li></ul>" compare innerHTML
 [PASS] [["forwarddelete",""]] "<ol><li> [abc</li></ol><ul><li>def]</li></ul>": execCommand("forwarddelete", false, "") return value
 [PASS] [["forwarddelete",""]] "<ol><li> [abc</li></ol><ul><li>def]</li></ul>" checks for modifications to non-editable content
 [PASS] [["forwarddelete",""]] "<ol><li> [abc</li></ol><ul><li>def]</li></ul>" compare innerHTML
-[PASS] [["forwarddelete",""]] "<ol>\n<li>[abc</li></ol><ul><li>def]</li></ul>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""]] "<ol>\n<li>[abc</li></ol><ul><li>def]</li></ul>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""]] "<ol>\n<li>[abc</li></ol><ul><li>def]</li></ul>" compare innerHTML
+[PASS] [["forwarddelete",""]] "<ol>\\n<li>[abc</li></ol><ul><li>def]</li></ul>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""]] "<ol>\\n<li>[abc</li></ol><ul><li>def]</li></ul>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""]] "<ol>\\n<li>[abc</li></ol><ul><li>def]</li></ul>" compare innerHTML
 [PASS] [["delete",""]] "{<ul><li>abc<span>def</span>ghi</li><li>jkl<span>opq</span>rst</li></ul>}": execCommand("delete", false, "") return value
 [PASS] [["delete",""]] "{<ul><li>abc<span>def</span>ghi</li><li>jkl<span>opq</span>rst</li></ul>}" checks for modifications to non-editable content
 [PASS] [["delete",""]] "{<ul><li>abc<span>def</span>ghi</li><li>jkl<span>opq</span>rst</li></ul>}" compare innerHTML
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/hilitecolor-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/hilitecolor-expected.txt
index 429032d..c423830 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/hilitecolor-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/hilitecolor-expected.txt
@@ -88,7 +88,7 @@
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>": execCommand("hilitecolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"background-color:rgb(0, 255, 255)\">foo</span></p><p> <span style=\"background-color:rgb(0, 255, 255)\"><span>bar</span></span> </p><p><span style=\"background-color:rgb(0, 255, 255)\">baz</span></p>" but got "<p><span style=\"background-color:rgb(0, 255, 255)\">foo</span></p><p> <span style=\"background-color:rgb(0, 255, 255)\"><span>bar</span> </span></p><p><span style=\"background-color:rgb(0, 255, 255)\">baz</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"background-color:rgb(0, 255, 255)\\">foo</span></p><p> <span style=\\"background-color:rgb(0, 255, 255)\\"><span>bar</span></span> </p><p><span style=\\"background-color:rgb(0, 255, 255)\\">baz</span></p>" but got "<p><span style=\\"background-color:rgb(0, 255, 255)\\">foo</span></p><p> <span style=\\"background-color:rgb(0, 255, 255)\\"><span>bar</span> </span></p><p><span style=\\"background-color:rgb(0, 255, 255)\\">baz</span></p>"
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandValue("stylewithcss") before
@@ -107,7 +107,7 @@
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>": execCommand("hilitecolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"background-color:rgb(0, 255, 255)\">foo</span></p><p> <span style=\"background-color:rgb(0, 255, 255)\"><span>bar</span></span> </p><p><span style=\"background-color:rgb(0, 255, 255)\">baz</span></p>" but got "<p><span style=\"background-color:rgb(0, 255, 255)\">foo</span></p><p> <span style=\"background-color:rgb(0, 255, 255)\"><span>bar</span> </span></p><p><span style=\"background-color:rgb(0, 255, 255)\">baz</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"background-color:rgb(0, 255, 255)\\">foo</span></p><p> <span style=\\"background-color:rgb(0, 255, 255)\\"><span>bar</span></span> </p><p><span style=\\"background-color:rgb(0, 255, 255)\\">baz</span></p>" but got "<p><span style=\\"background-color:rgb(0, 255, 255)\\">foo</span></p><p> <span style=\\"background-color:rgb(0, 255, 255)\\"><span>bar</span> </span></p><p><span style=\\"background-color:rgb(0, 255, 255)\\">baz</span></p>"
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandValue("stylewithcss") before
@@ -562,333 +562,333 @@
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandState("hilitecolor") after
 [FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandValue("hilitecolor") after
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: rgb(0, 255, 255)\">foo[bar]baz</p>": execCommand("hilitecolor", false, "#00FFFF") return value
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: rgb(0, 255, 255)\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: rgb(0, 255, 255)\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"background-color:rgb(0, 255, 255)\">foobarbaz</p>" but got "<p style=\"\"><span style=\"background-color:rgb(0, 255, 255)\">foobarbaz</span></p>"
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: rgb(0, 255, 255)\">foo[bar]baz</p>" queryCommandIndeterm("hilitecolor") before
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: rgb(0, 255, 255)\">foo[bar]baz</p>" queryCommandState("hilitecolor") before
-[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: rgb(0, 255, 255)\">foo[bar]baz</p>" queryCommandValue("hilitecolor") before
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: rgb(0, 255, 255)\\">foo[bar]baz</p>": execCommand("hilitecolor", false, "#00FFFF") return value
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: rgb(0, 255, 255)\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: rgb(0, 255, 255)\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"background-color:rgb(0, 255, 255)\\">foobarbaz</p>" but got "<p style=\\"\\"><span style=\\"background-color:rgb(0, 255, 255)\\">foobarbaz</span></p>"
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: rgb(0, 255, 255)\\">foo[bar]baz</p>" queryCommandIndeterm("hilitecolor") before
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: rgb(0, 255, 255)\\">foo[bar]baz</p>" queryCommandState("hilitecolor") before
+[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: rgb(0, 255, 255)\\">foo[bar]baz</p>" queryCommandValue("hilitecolor") before
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: rgb(0, 255, 255)\">foo[bar]baz</p>" queryCommandIndeterm("hilitecolor") after
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: rgb(0, 255, 255)\">foo[bar]baz</p>" queryCommandState("hilitecolor") after
-[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: rgb(0, 255, 255)\">foo[bar]baz</p>" queryCommandValue("hilitecolor") after
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: rgb(0, 255, 255)\\">foo[bar]baz</p>" queryCommandIndeterm("hilitecolor") after
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: rgb(0, 255, 255)\\">foo[bar]baz</p>" queryCommandState("hilitecolor") after
+[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: rgb(0, 255, 255)\\">foo[bar]baz</p>" queryCommandValue("hilitecolor") after
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: #00ffff\">foo[bar]baz</p>": execCommand("hilitecolor", false, "#00FFFF") return value
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: #00ffff\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: #00ffff\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"background-color:rgb(0, 255, 255)\">foobarbaz</p>" but got "<p style=\"\"><span style=\"background-color:rgb(0, 255, 255)\">foobarbaz</span></p>"
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: #00ffff\">foo[bar]baz</p>" queryCommandIndeterm("hilitecolor") before
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: #00ffff\">foo[bar]baz</p>" queryCommandState("hilitecolor") before
-[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: #00ffff\">foo[bar]baz</p>" queryCommandValue("hilitecolor") before
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: #00ffff\\">foo[bar]baz</p>": execCommand("hilitecolor", false, "#00FFFF") return value
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: #00ffff\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: #00ffff\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"background-color:rgb(0, 255, 255)\\">foobarbaz</p>" but got "<p style=\\"\\"><span style=\\"background-color:rgb(0, 255, 255)\\">foobarbaz</span></p>"
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: #00ffff\\">foo[bar]baz</p>" queryCommandIndeterm("hilitecolor") before
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: #00ffff\\">foo[bar]baz</p>" queryCommandState("hilitecolor") before
+[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: #00ffff\\">foo[bar]baz</p>" queryCommandValue("hilitecolor") before
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: #00ffff\">foo[bar]baz</p>" queryCommandIndeterm("hilitecolor") after
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: #00ffff\">foo[bar]baz</p>" queryCommandState("hilitecolor") after
-[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: #00ffff\">foo[bar]baz</p>" queryCommandValue("hilitecolor") after
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: #00ffff\\">foo[bar]baz</p>" queryCommandIndeterm("hilitecolor") after
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: #00ffff\\">foo[bar]baz</p>" queryCommandState("hilitecolor") after
+[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: #00ffff\\">foo[bar]baz</p>" queryCommandValue("hilitecolor") after
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo[bar]baz</p>": execCommand("hilitecolor", false, "#00FFFF") return value
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"background-color:rgb(0, 255, 255)\">foobarbaz</p>" but got "<p style=\"\"><span style=\"background-color:rgb(0, 255, 255)\">foo</span><span style=\"background-color:rgb(0, 255, 255)\">bar</span><span style=\"background-color:rgb(0, 255, 255)\">baz</span></p>"
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" queryCommandIndeterm("hilitecolor") before
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" queryCommandState("hilitecolor") before
-[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" queryCommandValue("hilitecolor") before
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>": execCommand("hilitecolor", false, "#00FFFF") return value
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"background-color:rgb(0, 255, 255)\\">foobarbaz</p>" but got "<p style=\\"\\"><span style=\\"background-color:rgb(0, 255, 255)\\">foo</span><span style=\\"background-color:rgb(0, 255, 255)\\">bar</span><span style=\\"background-color:rgb(0, 255, 255)\\">baz</span></p>"
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" queryCommandIndeterm("hilitecolor") before
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" queryCommandState("hilitecolor") before
+[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" queryCommandValue("hilitecolor") before
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" queryCommandIndeterm("hilitecolor") after
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" queryCommandState("hilitecolor") after
-[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" queryCommandValue("hilitecolor") after
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" queryCommandIndeterm("hilitecolor") after
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" queryCommandState("hilitecolor") after
+[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" queryCommandValue("hilitecolor") after
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}": execCommand("hilitecolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"background-color:rgb(0, 255, 255)\">foo</p><p><span style=\"background-color:rgb(0, 255, 255)\">bar</span></p>" but got "<p style=\"\"><span style=\"background-color:rgb(0, 255, 255)\">foo</span></p><p><span style=\"background-color:rgb(0, 255, 255)\">bar</span></p>"
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandValue("stylewithcss") after
-[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandIndeterm("hilitecolor") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}": execCommand("hilitecolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"background-color:rgb(0, 255, 255)\\">foo</p><p><span style=\\"background-color:rgb(0, 255, 255)\\">bar</span></p>" but got "<p style=\\"\\"><span style=\\"background-color:rgb(0, 255, 255)\\">foo</span></p><p><span style=\\"background-color:rgb(0, 255, 255)\\">bar</span></p>"
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandValue("stylewithcss") after
+[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandIndeterm("hilitecolor") before
   assert_equals: Wrong result returned expected true but got false
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandState("hilitecolor") before
-[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandValue("hilitecolor") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandState("hilitecolor") before
+[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandValue("hilitecolor") before
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandIndeterm("hilitecolor") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandState("hilitecolor") after
-[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandValue("hilitecolor") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandIndeterm("hilitecolor") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandState("hilitecolor") after
+[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandValue("hilitecolor") after
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}": execCommand("hilitecolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"background-color:rgb(0, 255, 255)\">foo</p><p><span style=\"background-color:rgb(0, 255, 255)\">bar</span></p>" but got "<p style=\"\"><span style=\"background-color:rgb(0, 255, 255)\">foo</span></p><p><span style=\"background-color:rgb(0, 255, 255)\">bar</span></p>"
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandValue("stylewithcss") after
-[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandIndeterm("hilitecolor") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}": execCommand("hilitecolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"background-color:rgb(0, 255, 255)\\">foo</p><p><span style=\\"background-color:rgb(0, 255, 255)\\">bar</span></p>" but got "<p style=\\"\\"><span style=\\"background-color:rgb(0, 255, 255)\\">foo</span></p><p><span style=\\"background-color:rgb(0, 255, 255)\\">bar</span></p>"
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandValue("stylewithcss") after
+[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandIndeterm("hilitecolor") before
   assert_equals: Wrong result returned expected true but got false
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandState("hilitecolor") before
-[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandValue("hilitecolor") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandState("hilitecolor") before
+[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandValue("hilitecolor") before
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandIndeterm("hilitecolor") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandState("hilitecolor") after
-[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\"background-color: aqua\">foo</p><p>bar</p>}" queryCommandValue("hilitecolor") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandIndeterm("hilitecolor") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandState("hilitecolor") after
+[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "{<p style=\\"background-color: aqua\\">foo</p><p>bar</p>}" queryCommandValue("hilitecolor") after
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("hilitecolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"background-color:rgb(0, 255, 255)\">foobarbaz</span>" but got "<span style=\"background-color:rgb(0, 255, 255)\">foo</span><span style=\"background-color:rgb(0, 255, 255)\">bar</span><span style=\"background-color:rgb(0, 255, 255)\">baz</span>"
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("hilitecolor") before
-[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("hilitecolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"background-color:rgb(0, 255, 255)\\">foobarbaz</span>" but got "<span style=\\"background-color:rgb(0, 255, 255)\\">foo</span><span style=\\"background-color:rgb(0, 255, 255)\\">bar</span><span style=\\"background-color:rgb(0, 255, 255)\\">baz</span>"
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("hilitecolor") before
+[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") before
   assert_equals: Wrong result returned (after color normalization) expected "rgb(210, 180, 140)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("hilitecolor") after
-[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("hilitecolor") after
+[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") after
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("hilitecolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"background-color:rgb(0, 255, 255)\">foobarbaz</span>" but got "<span style=\"background-color:rgb(0, 255, 255)\">foo</span><span style=\"background-color:rgb(0, 255, 255)\">bar</span><span style=\"background-color:rgb(0, 255, 255)\">baz</span>"
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("hilitecolor") before
-[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("hilitecolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"background-color:rgb(0, 255, 255)\\">foobarbaz</span>" but got "<span style=\\"background-color:rgb(0, 255, 255)\\">foo</span><span style=\\"background-color:rgb(0, 255, 255)\\">bar</span><span style=\\"background-color:rgb(0, 255, 255)\\">baz</span>"
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("hilitecolor") before
+[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") before
   assert_equals: Wrong result returned (after color normalization) expected "rgb(210, 180, 140)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("hilitecolor") after
-[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("hilitecolor") after
+[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") after
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("hilitecolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("hilitecolor") before
-[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("hilitecolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("hilitecolor") before
+[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") before
   assert_equals: Wrong result returned (after color normalization) expected "rgb(210, 180, 140)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("hilitecolor") after
-[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("hilitecolor") after
+[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") after
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("hilitecolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("hilitecolor") before
-[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("hilitecolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("hilitecolor") before
+[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") before
   assert_equals: Wrong result returned (after color normalization) expected "rgb(210, 180, 140)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("hilitecolor") after
-[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #00ffff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("hilitecolor") after
+[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #00ffff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") after
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("hilitecolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("hilitecolor") before
-[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("hilitecolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("hilitecolor") before
+[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") before
   assert_equals: Wrong result returned (after color normalization) expected "rgb(210, 180, 140)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("hilitecolor") after
-[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("hilitecolor") after
+[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") after
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("hilitecolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("hilitecolor") before
-[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("hilitecolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("hilitecolor") before
+[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") before
   assert_equals: Wrong result returned (after color normalization) expected "rgb(210, 180, 140)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("hilitecolor") after
-[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: #0ff\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("hilitecolor") after
+[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: #0ff\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") after
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("hilitecolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("hilitecolor") before
-[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("hilitecolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("hilitecolor") before
+[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") before
   assert_equals: Wrong result returned (after color normalization) expected "rgb(210, 180, 140)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("hilitecolor") after
-[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("hilitecolor") after
+[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") after
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>": execCommand("hilitecolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("hilitecolor") before
-[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>": execCommand("hilitecolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("hilitecolor") before
+[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") before
   assert_equals: Wrong result returned (after color normalization) expected "rgb(210, 180, 140)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandState("hilitecolor") after
-[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"background-color: rgb(0, 255, 255)\">foo<span style=\"background-color: tan\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandIndeterm("hilitecolor") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandState("hilitecolor") after
+[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"background-color: rgb(0, 255, 255)\\">foo<span style=\\"background-color: tan\\">[bar]</span>baz</span>" queryCommandValue("hilitecolor") after
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</span>": execCommand("hilitecolor", false, "#00FFFF") return value
-[PASS] [["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</span>" checks for modifications to non-editable content
-[FAIL] [["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"background-color:rgb(0, 255, 255)\">foo<span style=\"background-color:rgb(210, 180, 140)\">b</span>arbaz</span>" but got "<span style=\"background-color:rgb(0, 255, 255)\">foo</span><span style=\"background-color:rgb(210, 180, 140)\">b</span><span style=\"background-color:rgb(0, 255, 255)\">ar</span><span style=\"background-color:rgb(0, 255, 255)\">baz</span>"
-[PASS] [["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</span>" queryCommandIndeterm("hilitecolor") before
-[PASS] [["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</span>" queryCommandState("hilitecolor") before
-[FAIL] [["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</span>" queryCommandValue("hilitecolor") before
+[PASS] [["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</span>": execCommand("hilitecolor", false, "#00FFFF") return value
+[PASS] [["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</span>" checks for modifications to non-editable content
+[FAIL] [["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"background-color:rgb(0, 255, 255)\\">foo<span style=\\"background-color:rgb(210, 180, 140)\\">b</span>arbaz</span>" but got "<span style=\\"background-color:rgb(0, 255, 255)\\">foo</span><span style=\\"background-color:rgb(210, 180, 140)\\">b</span><span style=\\"background-color:rgb(0, 255, 255)\\">ar</span><span style=\\"background-color:rgb(0, 255, 255)\\">baz</span>"
+[PASS] [["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</span>" queryCommandIndeterm("hilitecolor") before
+[PASS] [["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</span>" queryCommandState("hilitecolor") before
+[FAIL] [["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</span>" queryCommandValue("hilitecolor") before
   assert_equals: Wrong result returned (after color normalization) expected "rgb(210, 180, 140)" but got "rgb(0, 0, 0)"
-[PASS] [["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</span>" queryCommandIndeterm("hilitecolor") after
-[PASS] [["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</span>" queryCommandState("hilitecolor") after
-[FAIL] [["hilitecolor","#00FFFF"]] "<span style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</span>" queryCommandValue("hilitecolor") after
+[PASS] [["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</span>" queryCommandIndeterm("hilitecolor") after
+[PASS] [["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</span>" queryCommandState("hilitecolor") after
+[FAIL] [["hilitecolor","#00FFFF"]] "<span style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</span>" queryCommandValue("hilitecolor") after
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</p>": execCommand("hilitecolor", false, "#00FFFF") return value
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</p>" checks for modifications to non-editable content
-[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"background-color:rgb(0, 255, 255)\">foo<span style=\"background-color:rgb(210, 180, 140)\">b</span>arbaz</p>" but got "<p style=\"\"><span style=\"background-color:rgb(0, 255, 255)\">foo</span><span style=\"background-color:rgb(210, 180, 140)\">b</span><span style=\"background-color:rgb(0, 255, 255)\">ar</span><span style=\"background-color:rgb(0, 255, 255)\">baz</span></p>"
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</p>" queryCommandIndeterm("hilitecolor") before
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</p>" queryCommandState("hilitecolor") before
-[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</p>" queryCommandValue("hilitecolor") before
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</p>": execCommand("hilitecolor", false, "#00FFFF") return value
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</p>" checks for modifications to non-editable content
+[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"background-color:rgb(0, 255, 255)\\">foo<span style=\\"background-color:rgb(210, 180, 140)\\">b</span>arbaz</p>" but got "<p style=\\"\\"><span style=\\"background-color:rgb(0, 255, 255)\\">foo</span><span style=\\"background-color:rgb(210, 180, 140)\\">b</span><span style=\\"background-color:rgb(0, 255, 255)\\">ar</span><span style=\\"background-color:rgb(0, 255, 255)\\">baz</span></p>"
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</p>" queryCommandIndeterm("hilitecolor") before
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</p>" queryCommandState("hilitecolor") before
+[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</p>" queryCommandValue("hilitecolor") before
   assert_equals: Wrong result returned (after color normalization) expected "rgb(210, 180, 140)" but got "rgb(0, 0, 0)"
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</p>" queryCommandIndeterm("hilitecolor") after
-[PASS] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</p>" queryCommandState("hilitecolor") after
-[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\"background-color: aqua\">foo<span style=\"background-color: tan\">b[ar]</span>baz</p>" queryCommandValue("hilitecolor") after
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</p>" queryCommandIndeterm("hilitecolor") after
+[PASS] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</p>" queryCommandState("hilitecolor") after
+[FAIL] [["hilitecolor","#00FFFF"]] "<p style=\\"background-color: aqua\\">foo<span style=\\"background-color: tan\\">b[ar]</span>baz</p>" queryCommandValue("hilitecolor") after
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>": execCommand("hilitecolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"background-color:rgb(0, 255, 255)\"><p style=\"background-color:rgb(210, 180, 140)\">b<span style=\"background-color:rgb(0, 255, 255)\">ar</span></p></div>" but got "<div style=\"\"><p style=\"\"><span style=\"background-color:rgb(210, 180, 140)\">b</span><span style=\"background-color:rgb(0, 255, 255)\">ar</span></p></div>"
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandIndeterm("hilitecolor") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandState("hilitecolor") before
-[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandValue("hilitecolor") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>": execCommand("hilitecolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"background-color:rgb(0, 255, 255)\\"><p style=\\"background-color:rgb(210, 180, 140)\\">b<span style=\\"background-color:rgb(0, 255, 255)\\">ar</span></p></div>" but got "<div style=\\"\\"><p style=\\"\\"><span style=\\"background-color:rgb(210, 180, 140)\\">b</span><span style=\\"background-color:rgb(0, 255, 255)\\">ar</span></p></div>"
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandIndeterm("hilitecolor") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandState("hilitecolor") before
+[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandValue("hilitecolor") before
   assert_equals: Wrong result returned (after color normalization) expected "rgb(210, 180, 140)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandIndeterm("hilitecolor") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandState("hilitecolor") after
-[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandValue("hilitecolor") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandIndeterm("hilitecolor") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandState("hilitecolor") after
+[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandValue("hilitecolor") after
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>": execCommand("hilitecolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"background-color:rgb(0, 255, 255)\"><p style=\"background-color:rgb(210, 180, 140)\">b<span style=\"background-color:rgb(0, 255, 255)\">ar</span></p></div>" but got "<div style=\"\"><p style=\"\"><span style=\"background-color:rgb(210, 180, 140)\">b</span><span style=\"background-color:rgb(0, 255, 255)\">ar</span></p></div>"
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandIndeterm("hilitecolor") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandState("hilitecolor") before
-[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandValue("hilitecolor") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>": execCommand("hilitecolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"background-color:rgb(0, 255, 255)\\"><p style=\\"background-color:rgb(210, 180, 140)\\">b<span style=\\"background-color:rgb(0, 255, 255)\\">ar</span></p></div>" but got "<div style=\\"\\"><p style=\\"\\"><span style=\\"background-color:rgb(210, 180, 140)\\">b</span><span style=\\"background-color:rgb(0, 255, 255)\\">ar</span></p></div>"
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandIndeterm("hilitecolor") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandState("hilitecolor") before
+[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandValue("hilitecolor") before
   assert_equals: Wrong result returned (after color normalization) expected "rgb(210, 180, 140)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandIndeterm("hilitecolor") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandState("hilitecolor") after
-[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\"background-color: aqua\"><p style=\"background-color: tan\">b[ar]</p></div>" queryCommandValue("hilitecolor") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandIndeterm("hilitecolor") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandState("hilitecolor") after
+[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<div style=\\"background-color: aqua\\"><p style=\\"background-color: tan\\">b[ar]</p></div>" queryCommandValue("hilitecolor") after
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>": execCommand("hilitecolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"display:block; background-color:rgb(0, 255, 255)\"><span style=\"display:block; background-color:rgb(210, 180, 140)\">b<span style=\"background-color:rgb(0, 255, 255)\">ar</span></span></span>" but got "<span style=\"display:block\"><span style=\"display:block\"><span style=\"background-color:rgb(210, 180, 140)\">b</span><span style=\"background-color:rgb(0, 255, 255)\">ar</span></span></span>"
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandIndeterm("hilitecolor") before
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandState("hilitecolor") before
-[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandValue("hilitecolor") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>": execCommand("hilitecolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"display:block; background-color:rgb(0, 255, 255)\\"><span style=\\"display:block; background-color:rgb(210, 180, 140)\\">b<span style=\\"background-color:rgb(0, 255, 255)\\">ar</span></span></span>" but got "<span style=\\"display:block\\"><span style=\\"display:block\\"><span style=\\"background-color:rgb(210, 180, 140)\\">b</span><span style=\\"background-color:rgb(0, 255, 255)\\">ar</span></span></span>"
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandIndeterm("hilitecolor") before
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandState("hilitecolor") before
+[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandValue("hilitecolor") before
   assert_equals: Wrong result returned (after color normalization) expected "rgb(210, 180, 140)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandIndeterm("hilitecolor") after
-[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandState("hilitecolor") after
-[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandValue("hilitecolor") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandIndeterm("hilitecolor") after
+[PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandState("hilitecolor") after
+[FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandValue("hilitecolor") after
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>": execCommand("hilitecolor", false, "#00FFFF") return value
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"display:block; background-color:rgb(0, 255, 255)\"><span style=\"display:block; background-color:rgb(210, 180, 140)\">b<span style=\"background-color:rgb(0, 255, 255)\">ar</span></span></span>" but got "<span style=\"display:block\"><span style=\"display:block\"><span style=\"background-color:rgb(210, 180, 140)\">b</span><span style=\"background-color:rgb(0, 255, 255)\">ar</span></span></span>"
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandIndeterm("hilitecolor") before
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandState("hilitecolor") before
-[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandValue("hilitecolor") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>": execCommand("hilitecolor", false, "#00FFFF") return value
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"display:block; background-color:rgb(0, 255, 255)\\"><span style=\\"display:block; background-color:rgb(210, 180, 140)\\">b<span style=\\"background-color:rgb(0, 255, 255)\\">ar</span></span></span>" but got "<span style=\\"display:block\\"><span style=\\"display:block\\"><span style=\\"background-color:rgb(210, 180, 140)\\">b</span><span style=\\"background-color:rgb(0, 255, 255)\\">ar</span></span></span>"
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandIndeterm("hilitecolor") before
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandState("hilitecolor") before
+[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandValue("hilitecolor") before
   assert_equals: Wrong result returned (after color normalization) expected "rgb(210, 180, 140)" but got "rgb(0, 0, 0)"
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandIndeterm("hilitecolor") after
-[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandState("hilitecolor") after
-[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\"display: block; background-color: aqua\"><span style=\"display: block; background-color: tan\">b[ar]</span></span>" queryCommandValue("hilitecolor") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandIndeterm("hilitecolor") after
+[PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandState("hilitecolor") after
+[FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=\\"display: block; background-color: aqua\\"><span style=\\"display: block; background-color: tan\\">b[ar]</span></span>" queryCommandValue("hilitecolor") after
   assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)"
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz": execCommand("hilitecolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\"background-color:rgb(0, 255, 255)\">o</span><span style=\"background-color:rgb(210, 180, 140)\"><span style=\"background-color:rgb(0, 255, 255)\">b</span>ar</span>baz" but got "fo<span style=\"background-color:rgb(0, 255, 255)\">ob</span><span style=\"background-color:rgb(210, 180, 140)\">ar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\\"background-color:rgb(0, 255, 255)\\">o</span><span style=\\"background-color:rgb(210, 180, 140)\\"><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>ar</span>baz" but got "fo<span style=\\"background-color:rgb(0, 255, 255)\\">ob</span><span style=\\"background-color:rgb(210, 180, 140)\\">ar</span>baz"
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz" queryCommandValue("stylewithcss") before
@@ -908,7 +908,7 @@
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz": execCommand("hilitecolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\"background-color:rgb(0, 255, 255)\">o</span><span style=\"background-color:rgb(210, 180, 140)\"><span style=\"background-color:rgb(0, 255, 255)\">b</span>ar</span>baz" but got "fo<span style=\"background-color:rgb(0, 255, 255)\">ob</span><span style=\"background-color:rgb(210, 180, 140)\">ar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\\"background-color:rgb(0, 255, 255)\\">o</span><span style=\\"background-color:rgb(210, 180, 140)\\"><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>ar</span>baz" but got "fo<span style=\\"background-color:rgb(0, 255, 255)\\">ob</span><span style=\\"background-color:rgb(210, 180, 140)\\">ar</span>baz"
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "fo[o<span style=background-color:tan>b]ar</span>baz" queryCommandValue("stylewithcss") before
@@ -928,7 +928,7 @@
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az": execCommand("hilitecolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"background-color:rgb(210, 180, 140)\">ba<span style=\"background-color:rgb(0, 255, 255)\">r</span></span><span style=\"background-color:rgb(0, 255, 255)\">b</span>az" but got "foo<span style=\"background-color:rgb(210, 180, 140)\">ba</span><span style=\"background-color:rgb(0, 255, 255)\">rb</span>az"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"background-color:rgb(210, 180, 140)\\">ba<span style=\\"background-color:rgb(0, 255, 255)\\">r</span></span><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>az" but got "foo<span style=\\"background-color:rgb(210, 180, 140)\\">ba</span><span style=\\"background-color:rgb(0, 255, 255)\\">rb</span>az"
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az" queryCommandValue("stylewithcss") before
@@ -948,7 +948,7 @@
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az": execCommand("hilitecolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"background-color:rgb(210, 180, 140)\">ba<span style=\"background-color:rgb(0, 255, 255)\">r</span></span><span style=\"background-color:rgb(0, 255, 255)\">b</span>az" but got "foo<span style=\"background-color:rgb(210, 180, 140)\">ba</span><span style=\"background-color:rgb(0, 255, 255)\">rb</span>az"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"background-color:rgb(210, 180, 140)\\">ba<span style=\\"background-color:rgb(0, 255, 255)\\">r</span></span><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>az" but got "foo<span style=\\"background-color:rgb(210, 180, 140)\\">ba</span><span style=\\"background-color:rgb(0, 255, 255)\\">rb</span>az"
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>b]az" queryCommandValue("stylewithcss") before
@@ -980,7 +980,7 @@
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz": execCommand("hilitecolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"background-color:rgb(210, 180, 140)\"><span style=\"background-color:rgb(0, 255, 255)\">b</span>ar</span>baz" but got "foo<span style=\"background-color:rgb(0, 255, 255)\">b</span><span style=\"background-color:rgb(210, 180, 140)\">ar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"background-color:rgb(210, 180, 140)\\"><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>ar</span>baz" but got "foo<span style=\\"background-color:rgb(0, 255, 255)\\">b</span><span style=\\"background-color:rgb(210, 180, 140)\\">ar</span>baz"
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz" queryCommandValue("stylewithcss") before
@@ -999,7 +999,7 @@
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz": execCommand("hilitecolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"background-color:rgb(210, 180, 140)\"><span style=\"background-color:rgb(0, 255, 255)\">b</span>ar</span>baz" but got "foo<span style=\"background-color:rgb(0, 255, 255)\">b</span><span style=\"background-color:rgb(210, 180, 140)\">ar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"background-color:rgb(210, 180, 140)\\"><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>ar</span>baz" but got "foo<span style=\\"background-color:rgb(0, 255, 255)\\">b</span><span style=\\"background-color:rgb(210, 180, 140)\\">ar</span>baz"
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "foo[<span style=background-color:tan>b]ar</span>baz" queryCommandValue("stylewithcss") before
@@ -1018,7 +1018,7 @@
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz": execCommand("hilitecolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"background-color:rgb(210, 180, 140)\">ba<span style=\"background-color:rgb(0, 255, 255)\">r</span></span>baz" but got "foo<span style=\"background-color:rgb(210, 180, 140)\">ba</span><span style=\"background-color:rgb(0, 255, 255)\">r</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"background-color:rgb(210, 180, 140)\\">ba<span style=\\"background-color:rgb(0, 255, 255)\\">r</span></span>baz" but got "foo<span style=\\"background-color:rgb(210, 180, 140)\\">ba</span><span style=\\"background-color:rgb(0, 255, 255)\\">r</span>baz"
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz" queryCommandValue("stylewithcss") before
@@ -1037,7 +1037,7 @@
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz": execCommand("hilitecolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"background-color:rgb(210, 180, 140)\">ba<span style=\"background-color:rgb(0, 255, 255)\">r</span></span>baz" but got "foo<span style=\"background-color:rgb(210, 180, 140)\">ba</span><span style=\"background-color:rgb(0, 255, 255)\">r</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"background-color:rgb(210, 180, 140)\\">ba<span style=\\"background-color:rgb(0, 255, 255)\\">r</span></span>baz" but got "foo<span style=\\"background-color:rgb(210, 180, 140)\\">ba</span><span style=\\"background-color:rgb(0, 255, 255)\\">r</span>baz"
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "foo<span style=background-color:tan>ba[r</span>]baz" queryCommandValue("stylewithcss") before
@@ -1089,7 +1089,7 @@
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>": execCommand("hilitecolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"background-color:rgb(210, 180, 140)\">fo<span style=\"background-color:rgb(0, 255, 255)\">o</span></span><span style=\"background-color:rgb(255, 255, 0)\"><span style=\"background-color:rgb(0, 255, 255)\">b</span>ar</span>" but got "<span style=\"background-color:rgb(210, 180, 140)\">fo</span><span style=\"background-color:rgb(0, 255, 255)\">ob</span><span style=\"background-color:rgb(255, 255, 0)\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"background-color:rgb(210, 180, 140)\\">fo<span style=\\"background-color:rgb(0, 255, 255)\\">o</span></span><span style=\\"background-color:rgb(255, 255, 0)\\"><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>ar</span>" but got "<span style=\\"background-color:rgb(210, 180, 140)\\">fo</span><span style=\\"background-color:rgb(0, 255, 255)\\">ob</span><span style=\\"background-color:rgb(255, 255, 0)\\">ar</span>"
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1109,7 +1109,7 @@
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>": execCommand("hilitecolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"background-color:rgb(210, 180, 140)\">fo<span style=\"background-color:rgb(0, 255, 255)\">o</span></span><span style=\"background-color:rgb(255, 255, 0)\"><span style=\"background-color:rgb(0, 255, 255)\">b</span>ar</span>" but got "<span style=\"background-color:rgb(210, 180, 140)\">fo</span><span style=\"background-color:rgb(0, 255, 255)\">ob</span><span style=\"background-color:rgb(255, 255, 0)\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"background-color:rgb(210, 180, 140)\\">fo<span style=\\"background-color:rgb(0, 255, 255)\\">o</span></span><span style=\\"background-color:rgb(255, 255, 0)\\"><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>ar</span>" but got "<span style=\\"background-color:rgb(210, 180, 140)\\">fo</span><span style=\\"background-color:rgb(0, 255, 255)\\">ob</span><span style=\\"background-color:rgb(255, 255, 0)\\">ar</span>"
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:yellow>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1129,7 +1129,7 @@
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>": execCommand("hilitecolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"background-color:rgb(210, 180, 140)\">fo<span style=\"background-color:rgb(0, 255, 255)\">o</span></span><span style=\"background-color:rgb(210, 180, 140)\"><span style=\"background-color:rgb(0, 255, 255)\">b</span>ar</span>" but got "<span style=\"background-color:rgb(210, 180, 140)\">fo</span><span style=\"background-color:rgb(0, 255, 255)\">ob</span><span style=\"background-color:rgb(210, 180, 140)\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"background-color:rgb(210, 180, 140)\\">fo<span style=\\"background-color:rgb(0, 255, 255)\\">o</span></span><span style=\\"background-color:rgb(210, 180, 140)\\"><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>ar</span>" but got "<span style=\\"background-color:rgb(210, 180, 140)\\">fo</span><span style=\\"background-color:rgb(0, 255, 255)\\">ob</span><span style=\\"background-color:rgb(210, 180, 140)\\">ar</span>"
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1148,7 +1148,7 @@
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>": execCommand("hilitecolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"background-color:rgb(210, 180, 140)\">fo<span style=\"background-color:rgb(0, 255, 255)\">o</span></span><span style=\"background-color:rgb(210, 180, 140)\"><span style=\"background-color:rgb(0, 255, 255)\">b</span>ar</span>" but got "<span style=\"background-color:rgb(210, 180, 140)\">fo</span><span style=\"background-color:rgb(0, 255, 255)\">ob</span><span style=\"background-color:rgb(210, 180, 140)\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"background-color:rgb(210, 180, 140)\\">fo<span style=\\"background-color:rgb(0, 255, 255)\\">o</span></span><span style=\\"background-color:rgb(210, 180, 140)\\"><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>ar</span>" but got "<span style=\\"background-color:rgb(210, 180, 140)\\">fo</span><span style=\\"background-color:rgb(0, 255, 255)\\">ob</span><span style=\\"background-color:rgb(210, 180, 140)\\">ar</span>"
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o</span><span style=background-color:tan>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1167,7 +1167,7 @@
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>": execCommand("hilitecolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"background-color:rgb(210, 180, 140)\">fo<span style=\"background-color:rgb(0, 255, 255)\">o</span><span style=\"background-color:rgba(0, 0, 0, 0)\"><span style=\"background-color:rgb(0, 255, 255)\">b</span>ar</span></span>" but got "<span style=\"background-color:rgb(210, 180, 140)\">fo</span><span style=\"background-color:rgb(0, 255, 255)\">ob</span><span style=\"background-color:rgba(0, 0, 0, 0)\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"background-color:rgb(210, 180, 140)\\">fo<span style=\\"background-color:rgb(0, 255, 255)\\">o</span><span style=\\"background-color:rgba(0, 0, 0, 0)\\"><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>ar</span></span>" but got "<span style=\\"background-color:rgb(210, 180, 140)\\">fo</span><span style=\\"background-color:rgb(0, 255, 255)\\">ob</span><span style=\\"background-color:rgba(0, 0, 0, 0)\\">ar</span>"
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>" queryCommandValue("stylewithcss") before
@@ -1186,7 +1186,7 @@
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>": execCommand("hilitecolor", false, "#00FFFF") return value
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"background-color:rgb(210, 180, 140)\">fo<span style=\"background-color:rgb(0, 255, 255)\">o</span><span style=\"background-color:rgba(0, 0, 0, 0)\"><span style=\"background-color:rgb(0, 255, 255)\">b</span>ar</span></span>" but got "<span style=\"background-color:rgb(210, 180, 140)\">fo</span><span style=\"background-color:rgb(0, 255, 255)\">ob</span><span style=\"background-color:rgba(0, 0, 0, 0)\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"background-color:rgb(210, 180, 140)\\">fo<span style=\\"background-color:rgb(0, 255, 255)\\">o</span><span style=\\"background-color:rgba(0, 0, 0, 0)\\"><span style=\\"background-color:rgb(0, 255, 255)\\">b</span>ar</span></span>" but got "<span style=\\"background-color:rgb(210, 180, 140)\\">fo</span><span style=\\"background-color:rgb(0, 255, 255)\\">ob</span><span style=\\"background-color:rgba(0, 0, 0, 0)\\">ar</span>"
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["hilitecolor","#00FFFF"]] "<span style=background-color:tan>fo[o<span style=background-color:transparent>b]ar</span></span>" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/indent-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/indent-expected.txt
index bfa0cb6..039ae0d 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/indent-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/indent-expected.txt
@@ -3,7 +3,7 @@
 [PASS] [["indent",""]] "foo[]bar<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "foo[]bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "foo[]bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foobar</blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foobar</blockquote><p>extra</p>"
 [PASS] [["indent",""]] "foo[]bar<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "foo[]bar<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "foo[]bar<p>extra" queryCommandValue("indent") before
@@ -13,7 +13,7 @@
 [PASS] [["indent",""]] "<span>foo</span>{}<span>bar</span><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<span>foo</span>{}<span>bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><span>foo</span><span>bar</span></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><span>foo</span><span>bar</span></blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><span>foo</span><span>bar</span></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><span>foo</span><span>bar</span></blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("indent") before
@@ -23,7 +23,7 @@
 [PASS] [["indent",""]] "<span>foo[</span><span>]bar</span><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<span>foo[</span><span>]bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><span>foo</span><span>bar</span></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><span>foo</span><span>bar</span></blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><span>foo</span><span>bar</span></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><span>foo</span><span>bar</span></blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("indent") before
@@ -33,7 +33,7 @@
 [PASS] [["indent",""]] "foo[bar]baz<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "foo[bar]baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "foo[bar]baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobarbaz</blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foobarbaz</blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobarbaz</blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foobarbaz</blockquote><p>extra</p>"
 [PASS] [["indent",""]] "foo[bar]baz<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "foo[bar]baz<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "foo[bar]baz<p>extra" queryCommandValue("indent") before
@@ -43,7 +43,7 @@
 [PASS] [["indent",""]] "<p dir=rtl>פו[בר]בז<p dir=rtl>נוםף": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<p dir=rtl>פו[בר]בז<p dir=rtl>נוםף" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<p dir=rtl>פו[בר]בז<p dir=rtl>נוםף" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p dir=\"rtl\">פוברבז</p></blockquote><p dir=\"rtl\">נוםף</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p dir=\"rtl\">פוברבז</p></blockquote><p dir=\"rtl\">נוםף</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p dir=\\"rtl\\">פוברבז</p></blockquote><p dir=\\"rtl\\">נוםף</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p dir=\\"rtl\\">פוברבז</p></blockquote><p dir=\\"rtl\\">נוםף</p>"
 [PASS] [["indent",""]] "<p dir=rtl>פו[בר]בז<p dir=rtl>נוםף" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<p dir=rtl>פו[בר]בז<p dir=rtl>נוםף" queryCommandState("indent") before
 [PASS] [["indent",""]] "<p dir=rtl>פו[בר]בז<p dir=rtl>נוםף" queryCommandValue("indent") before
@@ -53,7 +53,7 @@
 [PASS] [["indent",""]] "<p dir=rtl>פו[ברבז<p>Foobar]baz<p>Extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<p dir=rtl>פו[ברבז<p>Foobar]baz<p>Extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<p dir=rtl>פו[ברבז<p>Foobar]baz<p>Extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p dir=\"rtl\">פוברבז</p><p>Foobarbaz</p></blockquote><p>Extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p dir=\"rtl\">פוברבז</p><p>Foobarbaz</p></blockquote><p>Extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p dir=\\"rtl\\">פוברבז</p><p>Foobarbaz</p></blockquote><p>Extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p dir=\\"rtl\\">פוברבז</p><p>Foobarbaz</p></blockquote><p>Extra</p>"
 [PASS] [["indent",""]] "<p dir=rtl>פו[ברבז<p>Foobar]baz<p>Extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<p dir=rtl>פו[ברבז<p>Foobar]baz<p>Extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<p dir=rtl>פו[ברבז<p>Foobar]baz<p>Extra" queryCommandValue("indent") before
@@ -63,7 +63,7 @@
 [PASS] [["indent",""]] "<p>Foo[barbaz<p dir=rtl>פובר]בז<p>Extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<p>Foo[barbaz<p dir=rtl>פובר]בז<p>Extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<p>Foo[barbaz<p dir=rtl>פובר]בז<p>Extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>Foobarbaz</p><p dir=\"rtl\">פוברבז</p></blockquote><p>Extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>Foobarbaz</p><p dir=\"rtl\">פוברבז</p></blockquote><p>Extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>Foobarbaz</p><p dir=\\"rtl\\">פוברבז</p></blockquote><p>Extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>Foobarbaz</p><p dir=\\"rtl\\">פוברבז</p></blockquote><p>Extra</p>"
 [PASS] [["indent",""]] "<p>Foo[barbaz<p dir=rtl>פובר]בז<p>Extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<p>Foo[barbaz<p dir=rtl>פובר]בז<p>Extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<p>Foo[barbaz<p dir=rtl>פובר]בז<p>Extra" queryCommandValue("indent") before
@@ -73,7 +73,7 @@
 [PASS] [["indent",""]] "<div><p>Foo[barbaz<p dir=rtl>פובר]בז</div><p>Extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<div><p>Foo[barbaz<p dir=rtl>פובר]בז</div><p>Extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<div><p>Foo[barbaz<p dir=rtl>פובר]בז</div><p>Extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><div><p>Foobarbaz</p><p dir=\"rtl\">פוברבז</p></div></blockquote><p>Extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><div><p>Foobarbaz</p></div><div><p dir=\"rtl\">פוברבז</p></div></blockquote><p>Extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><div><p>Foobarbaz</p><p dir=\\"rtl\\">פוברבז</p></div></blockquote><p>Extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><div><p>Foobarbaz</p></div><div><p dir=\\"rtl\\">פוברבז</p></div></blockquote><p>Extra</p>"
 [PASS] [["indent",""]] "<div><p>Foo[barbaz<p dir=rtl>פובר]בז</div><p>Extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<div><p>Foo[barbaz<p dir=rtl>פובר]בז</div><p>Extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<div><p>Foo[barbaz<p dir=rtl>פובר]בז</div><p>Extra" queryCommandValue("indent") before
@@ -83,7 +83,7 @@
 [PASS] [["indent",""]] "foo]bar[baz<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "foo]bar[baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "foo]bar[baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobarbaz</blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foobarbaz</blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobarbaz</blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foobarbaz</blockquote><p>extra</p>"
 [PASS] [["indent",""]] "foo]bar[baz<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "foo]bar[baz<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "foo]bar[baz<p>extra" queryCommandValue("indent") before
@@ -93,7 +93,7 @@
 [PASS] [["indent",""]] "{<p><p> <p>foo</p>}<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "{<p><p> <p>foo</p>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "{<p><p> <p>foo</p>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p></p><p> </p><p>foo</p></blockquote><p>extra</p>" but got "<p></p><p> </p><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foo</p></blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p></p><p> </p><p>foo</p></blockquote><p>extra</p>" but got "<p></p><p> </p><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foo</p></blockquote><p>extra</p>"
 [PASS] [["indent",""]] "{<p><p> <p>foo</p>}<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "{<p><p> <p>foo</p>}<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "{<p><p> <p>foo</p>}<p>extra" queryCommandValue("indent") before
@@ -103,7 +103,7 @@
 [PASS] [["indent",""]] "foo[bar<i>baz]qoz</i>quz<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "foo[bar<i>baz]qoz</i>quz<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "foo[bar<i>baz]qoz</i>quz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar<i>bazqoz</i>quz</blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foobar<i>bazqoz</i>quz</blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar<i>bazqoz</i>quz</blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foobar<i>bazqoz</i>quz</blockquote><p>extra</p>"
 [PASS] [["indent",""]] "foo[bar<i>baz]qoz</i>quz<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "foo[bar<i>baz]qoz</i>quz<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "foo[bar<i>baz]qoz</i>quz<p>extra" queryCommandValue("indent") before
@@ -113,7 +113,7 @@
 [PASS] [["indent",""]] "[]foo<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "[]foo<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "[]foo<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo</blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foo</blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo</blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foo</blockquote><p>extra</p>"
 [PASS] [["indent",""]] "[]foo<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "[]foo<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "[]foo<p>extra" queryCommandValue("indent") before
@@ -123,7 +123,7 @@
 [PASS] [["indent",""]] "foo[]<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "foo[]<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "foo[]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo</blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foo</blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo</blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foo</blockquote><p>extra</p>"
 [PASS] [["indent",""]] "foo[]<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "foo[]<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "foo[]<p>extra" queryCommandValue("indent") before
@@ -133,7 +133,7 @@
 [PASS] [["indent",""]] "<p>[]foo<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<p>[]foo<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<p>[]foo<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foo</p></blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foo</p></blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<p>[]foo<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<p>[]foo<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<p>[]foo<p>extra" queryCommandValue("indent") before
@@ -143,7 +143,7 @@
 [PASS] [["indent",""]] "<p>foo[]<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<p>foo[]<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<p>foo[]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foo</p></blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foo</p></blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<p>foo[]<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<p>foo[]<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<p>foo[]<p>extra" queryCommandValue("indent") before
@@ -153,7 +153,7 @@
 [PASS] [["indent",""]] "<p>{}<br>foo</p><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<p>{}<br>foo</p><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<p>{}<br>foo</p><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><br></blockquote><p>foo</p><p>extra</p>" but got "<p><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p><br></p></blockquote>foo</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><br></blockquote><p>foo</p><p>extra</p>" but got "<p><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p><br></p></blockquote>foo</p><p>extra</p>"
 [PASS] [["indent",""]] "<p>{}<br>foo</p><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<p>{}<br>foo</p><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<p>{}<br>foo</p><p>extra" queryCommandValue("indent") before
@@ -163,7 +163,7 @@
 [PASS] [["indent",""]] "<p>foo<br>{}</p><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<p>foo<br>{}</p><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<p>foo<br>{}</p><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foo</p></blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foo</p></blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<p>foo<br>{}</p><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<p>foo<br>{}</p><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<p>foo<br>{}</p><p>extra" queryCommandValue("indent") before
@@ -173,7 +173,7 @@
 [PASS] [["indent",""]] "<span>{}<br>foo</span>bar<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<span>{}<br>foo</span>bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<span>{}<br>foo</span>bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><br></blockquote><span>foo</span>bar<p>extra</p>" but got "<span><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><span><br></span></blockquote>foo</span>bar<p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><br></blockquote><span>foo</span>bar<p>extra</p>" but got "<span><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><span><br></span></blockquote>foo</span>bar<p>extra</p>"
 [PASS] [["indent",""]] "<span>{}<br>foo</span>bar<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<span>{}<br>foo</span>bar<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<span>{}<br>foo</span>bar<p>extra" queryCommandValue("indent") before
@@ -183,7 +183,7 @@
 [PASS] [["indent",""]] "<span>foo<br>{}</span>bar<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<span>foo<br>{}</span>bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<span>foo<br>{}</span>bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span>foo</span><blockquote>bar</blockquote><p>extra</p>" but got "<span>foo<br></span><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">bar</blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span>foo</span><blockquote>bar</blockquote><p>extra</p>" but got "<span>foo<br></span><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">bar</blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<span>foo<br>{}</span>bar<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<span>foo<br>{}</span>bar<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<span>foo<br>{}</span>bar<p>extra" queryCommandValue("indent") before
@@ -193,7 +193,7 @@
 [PASS] [["indent",""]] "<p>foo</p>{}<p>bar</p>": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<p>foo</p>{}<p>bar</p>" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<p>foo</p>{}<p>bar</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p>" but got "<p>foo</p><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>bar</p></blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p>" but got "<p>foo</p><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>bar</p></blockquote>"
 [PASS] [["indent",""]] "<p>foo</p>{}<p>bar</p>" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<p>foo</p>{}<p>bar</p>" queryCommandState("indent") before
 [PASS] [["indent",""]] "<p>foo</p>{}<p>bar</p>" queryCommandValue("indent") before
@@ -203,7 +203,7 @@
 [PASS] [["indent",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><blockquote>bar</blockquote></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">bar</blockquote></td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><blockquote>bar</blockquote></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">bar</blockquote></td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["indent",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("indent") before
@@ -213,7 +213,7 @@
 [PASS] [["indent",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><blockquote>bar</blockquote></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">bar</blockquote></td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><blockquote>bar</blockquote></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">bar</blockquote></td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["indent",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("indent") before
@@ -223,7 +223,7 @@
 [PASS] [["indent",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><blockquote>foo</blockquote></td><td><blockquote>bar</blockquote></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foo</blockquote></td><td><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">bar</blockquote></td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><blockquote>foo</blockquote></td><td><blockquote>bar</blockquote></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foo</blockquote></td><td><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">bar</blockquote></td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["indent",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("indent") before
@@ -233,7 +233,7 @@
 [PASS] [["indent",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></blockquote><p>extra</p>" but got "<table><tbody><tr><td><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foo</blockquote></td><td><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">bar</blockquote></td><td><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">baz</blockquote></td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></blockquote><p>extra</p>" but got "<table><tbody><tr><td><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foo</blockquote></td><td><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">bar</blockquote></td><td><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">baz</blockquote></td></tr></tbody></table><p>extra</p>"
 [PASS] [["indent",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("indent") before
@@ -243,7 +243,7 @@
 [PASS] [["indent",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("indent") before
@@ -253,7 +253,7 @@
 [PASS] [["indent",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></blockquote><p>extra</p>"
 [PASS] [["indent",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("indent") before
@@ -263,7 +263,7 @@
 [PASS] [["indent",""]] "<p>foo[bar]</p><p>baz</p><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<p>foo[bar]</p><p>baz</p><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<p>foo[bar]</p><p>baz</p><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foobar</p></blockquote><p>baz</p><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foobar</p></blockquote><p>baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foobar</p></blockquote><p>baz</p><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foobar</p></blockquote><p>baz</p><p>extra</p>"
 [PASS] [["indent",""]] "<p>foo[bar]</p><p>baz</p><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<p>foo[bar]</p><p>baz</p><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<p>foo[bar]</p><p>baz</p><p>extra" queryCommandValue("indent") before
@@ -273,7 +273,7 @@
 [PASS] [["indent",""]] "<p>[foobar</p><p>ba]z</p><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<p>[foobar</p><p>ba]z</p><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<p>[foobar</p><p>ba]z</p><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foobar</p><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foobar</p><p>baz</p></blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foobar</p><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foobar</p><p>baz</p></blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<p>[foobar</p><p>ba]z</p><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<p>[foobar</p><p>ba]z</p><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<p>[foobar</p><p>ba]z</p><p>extra" queryCommandValue("indent") before
@@ -283,7 +283,7 @@
 [PASS] [["indent",""]] "foo[bar]<br>baz<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "foo[bar]<br>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "foo[bar]<br>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>baz<p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foobar</blockquote>baz<p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>baz<p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foobar</blockquote>baz<p>extra</p>"
 [PASS] [["indent",""]] "foo[bar]<br>baz<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "foo[bar]<br>baz<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "foo[bar]<br>baz<p>extra" queryCommandValue("indent") before
@@ -293,7 +293,7 @@
 [PASS] [["indent",""]] "foo[bar]<br><br><br><br>baz<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "foo[bar]<br><br><br><br>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "foo[bar]<br><br><br><br>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote><br><br><br>baz<p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foobar</blockquote><br><br><br>baz<p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote><br><br><br>baz<p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foobar</blockquote><br><br><br>baz<p>extra</p>"
 [PASS] [["indent",""]] "foo[bar]<br><br><br><br>baz<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "foo[bar]<br><br><br><br>baz<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "foo[bar]<br><br><br><br>baz<p>extra" queryCommandValue("indent") before
@@ -303,7 +303,7 @@
 [PASS] [["indent",""]] "foobar<br>[ba]z<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "foobar<br>[ba]z<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "foobar<br>[ba]z<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar<blockquote>baz</blockquote><p>extra</p>" but got "foobar<br><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">baz</blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar<blockquote>baz</blockquote><p>extra</p>" but got "foobar<br><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">baz</blockquote><p>extra</p>"
 [PASS] [["indent",""]] "foobar<br>[ba]z<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "foobar<br>[ba]z<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "foobar<br>[ba]z<p>extra" queryCommandValue("indent") before
@@ -313,7 +313,7 @@
 [PASS] [["indent",""]] "foobar<br><br><br><br>[ba]z<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "foobar<br><br><br><br>[ba]z<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "foobar<br><br><br><br>[ba]z<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar<br><br><br><br><blockquote>baz</blockquote><p>extra</p>" but got "foobar<br><br><br><br><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">baz</blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar<br><br><br><br><blockquote>baz</blockquote><p>extra</p>" but got "foobar<br><br><br><br><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">baz</blockquote><p>extra</p>"
 [PASS] [["indent",""]] "foobar<br><br><br><br>[ba]z<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "foobar<br><br><br><br>[ba]z<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "foobar<br><br><br><br>[ba]z<p>extra" queryCommandValue("indent") before
@@ -323,7 +323,7 @@
 [PASS] [["indent",""]] "foo[bar<br>ba]z<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "foo[bar<br>ba]z<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "foo[bar<br>ba]z<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar<br>baz</blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foobar<br>baz</blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar<br>baz</blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foobar<br>baz</blockquote><p>extra</p>"
 [PASS] [["indent",""]] "foo[bar<br>ba]z<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "foo[bar<br>ba]z<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "foo[bar<br>ba]z<p>extra" queryCommandValue("indent") before
@@ -333,7 +333,7 @@
 [PASS] [["indent",""]] "<div>foo<p>[bar]</p>baz</div><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<div>foo<p>[bar]</p>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<div>foo<p>[bar]</p>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo<blockquote><p>bar</p></blockquote>baz</div><p>extra</p>" but got "<div>foo</div><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><div><p>bar</p></div></blockquote><div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo<blockquote><p>bar</p></blockquote>baz</div><p>extra</p>" but got "<div>foo</div><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><div><p>bar</p></div></blockquote><div>baz</div><p>extra</p>"
 [PASS] [["indent",""]] "<div>foo<p>[bar]</p>baz</div><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<div>foo<p>[bar]</p>baz</div><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<div>foo<p>[bar]</p>baz</div><p>extra" queryCommandValue("indent") before
@@ -343,7 +343,7 @@
 [PASS] [["indent",""]] "<blockquote><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<blockquote><p>foo[bar]</p><p>baz</p></blockquote><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<blockquote><p>foo[bar]</p><p>baz</p></blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote><p>foobar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><blockquote><p>foobar</p></blockquote></blockquote><blockquote><p>baz</p></blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote><p>foobar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><blockquote><p>foobar</p></blockquote></blockquote><blockquote><p>baz</p></blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<blockquote><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<blockquote><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<blockquote><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("indent") before
@@ -353,7 +353,7 @@
 [PASS] [["indent",""]] "<blockquote><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<blockquote><p>foo[bar</p><p>b]az</p></blockquote><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<blockquote><p>foo[bar</p><p>b]az</p></blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote><p>foobar</p><p>baz</p></blockquote></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><blockquote><p>foobar</p></blockquote><blockquote><p>baz</p></blockquote></blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote><p>foobar</p><p>baz</p></blockquote></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><blockquote><p>foobar</p></blockquote><blockquote><p>baz</p></blockquote></blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<blockquote><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<blockquote><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<blockquote><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("indent") before
@@ -363,7 +363,7 @@
 [PASS] [["indent",""]] "<blockquote><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<blockquote><p>foo[bar]</p></blockquote><p>baz</p><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<blockquote><p>foo[bar]</p></blockquote><p>baz</p><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote><p>foobar</p></blockquote></blockquote><p>baz</p><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><blockquote><p>foobar</p></blockquote></blockquote><p>baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote><p>foobar</p></blockquote></blockquote><p>baz</p><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><blockquote><p>foobar</p></blockquote></blockquote><p>baz</p><p>extra</p>"
 [PASS] [["indent",""]] "<blockquote><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<blockquote><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<blockquote><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("indent") before
@@ -373,7 +373,7 @@
 [PASS] [["indent",""]] "<blockquote><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<blockquote><p>foo[bar</p></blockquote><p>b]az</p><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<blockquote><p>foo[bar</p></blockquote><p>b]az</p><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote><p>foobar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><blockquote><p>foobar</p></blockquote><p>baz</p></blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote><p>foobar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><blockquote><p>foobar</p></blockquote><p>baz</p></blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<blockquote><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<blockquote><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<blockquote><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("indent") before
@@ -383,7 +383,7 @@
 [PASS] [["indent",""]] "<p>[foo]<blockquote><p>bar</blockquote><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<p>[foo]<blockquote><p>bar</blockquote><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<p>[foo]<blockquote><p>bar</blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p><p>bar</p></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foo</p></blockquote><blockquote><p>bar</p></blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p><p>bar</p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foo</p></blockquote><blockquote><p>bar</p></blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<p>[foo]<blockquote><p>bar</blockquote><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<p>[foo]<blockquote><p>bar</blockquote><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<p>[foo]<blockquote><p>bar</blockquote><p>extra" queryCommandValue("indent") before
@@ -393,7 +393,7 @@
 [PASS] [["indent",""]] "<p>[foo<blockquote><p>b]ar</blockquote><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<p>[foo<blockquote><p>b]ar</blockquote><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<p>[foo<blockquote><p>b]ar</blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p><blockquote><p>bar</p></blockquote></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foo</p><blockquote><p>bar</p></blockquote></blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p><blockquote><p>bar</p></blockquote></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foo</p><blockquote><p>bar</p></blockquote></blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<p>[foo<blockquote><p>b]ar</blockquote><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<p>[foo<blockquote><p>b]ar</blockquote><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<p>[foo<blockquote><p>b]ar</blockquote><p>extra" queryCommandValue("indent") before
@@ -403,7 +403,7 @@
 [PASS] [["indent",""]] "<p>foo<blockquote><p>bar</blockquote><p>[baz]<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<p>foo<blockquote><p>bar</blockquote><p>[baz]<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<p>foo<blockquote><p>bar</blockquote><p>[baz]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><blockquote><p>bar</p><p>baz</p></blockquote><p>extra</p>" but got "<p>foo</p><blockquote><p>bar</p></blockquote><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>baz</p></blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><blockquote><p>bar</p><p>baz</p></blockquote><p>extra</p>" but got "<p>foo</p><blockquote><p>bar</p></blockquote><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>baz</p></blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<p>foo<blockquote><p>bar</blockquote><p>[baz]<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<p>foo<blockquote><p>bar</blockquote><p>[baz]<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<p>foo<blockquote><p>bar</blockquote><p>[baz]<p>extra" queryCommandValue("indent") before
@@ -413,7 +413,7 @@
 [PASS] [["indent",""]] "<p>foo<blockquote><p>[bar</blockquote><p>baz]<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<p>foo<blockquote><p>[bar</blockquote><p>baz]<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<p>foo<blockquote><p>[bar</blockquote><p>baz]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><blockquote><blockquote><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<p>foo</p><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><blockquote><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><blockquote><blockquote><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<p>foo</p><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><blockquote><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<p>foo<blockquote><p>[bar</blockquote><p>baz]<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<p>foo<blockquote><p>[bar</blockquote><p>baz]<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<p>foo<blockquote><p>[bar</blockquote><p>baz]<p>extra" queryCommandValue("indent") before
@@ -423,7 +423,7 @@
 [PASS] [["indent",""]] "<p>[foo<blockquote><p>bar</blockquote><p>baz]<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<p>[foo<blockquote><p>bar</blockquote><p>baz]<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<p>[foo<blockquote><p>bar</blockquote><p>baz]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p><blockquote><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foo</p><blockquote><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p><blockquote><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foo</p><blockquote><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<p>[foo<blockquote><p>bar</blockquote><p>baz]<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<p>[foo<blockquote><p>bar</blockquote><p>baz]<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<p>[foo<blockquote><p>bar</blockquote><p>baz]<p>extra" queryCommandValue("indent") before
@@ -433,7 +433,7 @@
 [PASS] [["indent",""]] "<blockquote><p>foo</blockquote><p>[bar]<blockquote><p>baz</blockquote><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<blockquote><p>foo</blockquote><p>[bar]<blockquote><p>baz</blockquote><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<blockquote><p>foo</blockquote><p>[bar]<blockquote><p>baz</blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p><p>bar</p><p>baz</p></blockquote><p>extra</p>" but got "<blockquote><p>foo</p></blockquote><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>bar</p></blockquote><blockquote><p>baz</p></blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p><p>bar</p><p>baz</p></blockquote><p>extra</p>" but got "<blockquote><p>foo</p></blockquote><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>bar</p></blockquote><blockquote><p>baz</p></blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<blockquote><p>foo</blockquote><p>[bar]<blockquote><p>baz</blockquote><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<blockquote><p>foo</blockquote><p>[bar]<blockquote><p>baz</blockquote><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<blockquote><p>foo</blockquote><p>[bar]<blockquote><p>baz</blockquote><p>extra" queryCommandValue("indent") before
@@ -443,7 +443,7 @@
 [PASS] [["indent",""]] "<blockquote>foo[bar]<br>baz</blockquote><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<blockquote>foo[bar]<br>baz</blockquote><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<blockquote>foo[bar]<br>baz</blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote>foobar</blockquote>baz</blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><blockquote>foobar</blockquote></blockquote><blockquote>baz</blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote>foobar</blockquote>baz</blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><blockquote>foobar</blockquote></blockquote><blockquote>baz</blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<blockquote>foo[bar]<br>baz</blockquote><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<blockquote>foo[bar]<br>baz</blockquote><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<blockquote>foo[bar]<br>baz</blockquote><p>extra" queryCommandValue("indent") before
@@ -453,7 +453,7 @@
 [PASS] [["indent",""]] "<blockquote>foo[bar<br>b]az</blockquote><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<blockquote>foo[bar<br>b]az</blockquote><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<blockquote>foo[bar<br>b]az</blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote>foobar<br>baz</blockquote></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><blockquote>foobar</blockquote><blockquote>baz</blockquote></blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote>foobar<br>baz</blockquote></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><blockquote>foobar</blockquote><blockquote>baz</blockquote></blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<blockquote>foo[bar<br>b]az</blockquote><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<blockquote>foo[bar<br>b]az</blockquote><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<blockquote>foo[bar<br>b]az</blockquote><p>extra" queryCommandValue("indent") before
@@ -463,7 +463,7 @@
 [PASS] [["indent",""]] "<blockquote>foo[bar]</blockquote>baz<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<blockquote>foo[bar]</blockquote>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<blockquote>foo[bar]</blockquote>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote>foobar</blockquote></blockquote>baz<p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><blockquote>foobar</blockquote></blockquote>baz<p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote>foobar</blockquote></blockquote>baz<p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><blockquote>foobar</blockquote></blockquote>baz<p>extra</p>"
 [PASS] [["indent",""]] "<blockquote>foo[bar]</blockquote>baz<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<blockquote>foo[bar]</blockquote>baz<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<blockquote>foo[bar]</blockquote>baz<p>extra" queryCommandValue("indent") before
@@ -473,7 +473,7 @@
 [PASS] [["indent",""]] "<blockquote>foo[bar</blockquote>b]az<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<blockquote>foo[bar</blockquote>b]az<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<blockquote>foo[bar</blockquote>b]az<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote>foobar</blockquote>baz</blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><blockquote>foobar</blockquote>baz</blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote>foobar</blockquote>baz</blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><blockquote>foobar</blockquote>baz</blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<blockquote>foo[bar</blockquote>b]az<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<blockquote>foo[bar</blockquote>b]az<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<blockquote>foo[bar</blockquote>b]az<p>extra" queryCommandValue("indent") before
@@ -483,7 +483,7 @@
 [PASS] [["indent",""]] "[foo]<blockquote>bar</blockquote><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "[foo]<blockquote>bar</blockquote><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "[foo]<blockquote>bar</blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<br>bar</blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foo</blockquote><blockquote>bar</blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<br>bar</blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foo</blockquote><blockquote>bar</blockquote><p>extra</p>"
 [PASS] [["indent",""]] "[foo]<blockquote>bar</blockquote><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "[foo]<blockquote>bar</blockquote><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "[foo]<blockquote>bar</blockquote><p>extra" queryCommandValue("indent") before
@@ -493,7 +493,7 @@
 [PASS] [["indent",""]] "[foo<blockquote>b]ar</blockquote><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "[foo<blockquote>b]ar</blockquote><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "[foo<blockquote>b]ar</blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<blockquote>bar</blockquote></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foo<blockquote>bar</blockquote></blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<blockquote>bar</blockquote></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foo<blockquote>bar</blockquote></blockquote><p>extra</p>"
 [PASS] [["indent",""]] "[foo<blockquote>b]ar</blockquote><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "[foo<blockquote>b]ar</blockquote><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "[foo<blockquote>b]ar</blockquote><p>extra" queryCommandValue("indent") before
@@ -503,7 +503,7 @@
 [PASS] [["indent",""]] "foo<blockquote>bar</blockquote>[baz]<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "foo<blockquote>bar</blockquote>[baz]<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "foo<blockquote>bar</blockquote>[baz]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<blockquote>bar<br>baz</blockquote><p>extra</p>" but got "foo<blockquote>bar</blockquote><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">baz</blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<blockquote>bar<br>baz</blockquote><p>extra</p>" but got "foo<blockquote>bar</blockquote><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">baz</blockquote><p>extra</p>"
 [PASS] [["indent",""]] "foo<blockquote>bar</blockquote>[baz]<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "foo<blockquote>bar</blockquote>[baz]<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "foo<blockquote>bar</blockquote>[baz]<p>extra" queryCommandValue("indent") before
@@ -513,7 +513,7 @@
 [PASS] [["indent",""]] "[foo<blockquote>bar</blockquote>baz]<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "[foo<blockquote>bar</blockquote>baz]<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "[foo<blockquote>bar</blockquote>baz]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<blockquote>bar</blockquote>baz</blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foo<blockquote>bar</blockquote>baz</blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<blockquote>bar</blockquote>baz</blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foo<blockquote>bar</blockquote>baz</blockquote><p>extra</p>"
 [PASS] [["indent",""]] "[foo<blockquote>bar</blockquote>baz]<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "[foo<blockquote>bar</blockquote>baz]<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "[foo<blockquote>bar</blockquote>baz]<p>extra" queryCommandValue("indent") before
@@ -523,342 +523,342 @@
 [PASS] [["indent",""]] "<blockquote>foo</blockquote>[bar]<blockquote>baz</blockquote><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<blockquote>foo</blockquote>[bar]<blockquote>baz</blockquote><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<blockquote>foo</blockquote>[bar]<blockquote>baz</blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<br>bar<br>baz</blockquote><p>extra</p>" but got "<blockquote>foo</blockquote><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">bar</blockquote><blockquote>baz</blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<br>bar<br>baz</blockquote><p>extra</p>" but got "<blockquote>foo</blockquote><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">bar</blockquote><blockquote>baz</blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<blockquote>foo</blockquote>[bar]<blockquote>baz</blockquote><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<blockquote>foo</blockquote>[bar]<blockquote>baz</blockquote><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<blockquote>foo</blockquote>[bar]<blockquote>baz</blockquote><p>extra" queryCommandValue("indent") before
 [PASS] [["indent",""]] "<blockquote>foo</blockquote>[bar]<blockquote>baz</blockquote><p>extra" queryCommandIndeterm("indent") after
 [PASS] [["indent",""]] "<blockquote>foo</blockquote>[bar]<blockquote>baz</blockquote><p>extra" queryCommandState("indent") after
 [PASS] [["indent",""]] "<blockquote>foo</blockquote>[bar]<blockquote>baz</blockquote><p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote style=\"margin-right:0\" dir=\"ltr\"><blockquote><p>foobar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><blockquote style=\"margin-right:0\" dir=\"ltr\"><p>foobar</p></blockquote></blockquote><blockquote style=\"margin-right:0\" dir=\"ltr\"><p>baz</p></blockquote><p>extra</p>"
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote style=\"margin-right:0\" dir=\"ltr\"><p>foobar</p><p>baz</p></blockquote></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><blockquote style=\"margin-right:0\" dir=\"ltr\"><p>foobar</p></blockquote><blockquote style=\"margin-right:0\" dir=\"ltr\"><p>baz</p></blockquote></blockquote><p>extra</p>"
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote style=\"margin-right:0\" dir=\"ltr\"><p>foobar</p></blockquote></blockquote><p>baz</p><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><blockquote style=\"margin-right:0\" dir=\"ltr\"><p>foobar</p></blockquote></blockquote><p>baz</p><p>extra</p>"
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote style=\"margin-right:0\" dir=\"ltr\"><p>foobar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><blockquote style=\"margin-right:0\" dir=\"ltr\"><p>foobar</p></blockquote><p>baz</p></blockquote><p>extra</p>"
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<p>[foo]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<p>[foo]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<p>[foo]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote style=\"margin-right:0\" dir=\"ltr\"><p>foo</p><p>bar</p></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foo</p></blockquote><blockquote style=\"margin-right:0\" dir=\"ltr\"><p>bar</p></blockquote><p>extra</p>"
-[PASS] [["indent",""]] "<p>[foo]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<p>[foo]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<p>[foo]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<p>[foo]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<p>[foo]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<p>[foo]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<p>[foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>b]ar</blockquote><p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<p>[foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>b]ar</blockquote><p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<p>[foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>b]ar</blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p><blockquote style=\"margin-right:0\" dir=\"ltr\"><p>bar</p></blockquote></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foo</p><blockquote style=\"margin-right:0\" dir=\"ltr\"><p>bar</p></blockquote></blockquote><p>extra</p>"
-[PASS] [["indent",""]] "<p>[foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>b]ar</blockquote><p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<p>[foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>b]ar</blockquote><p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<p>[foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>b]ar</blockquote><p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<p>[foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>b]ar</blockquote><p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<p>[foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>b]ar</blockquote><p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<p>[foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>b]ar</blockquote><p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<p>foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>[baz]<p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<p>foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>[baz]<p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<p>foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>[baz]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><blockquote style=\"margin-right:0\" dir=\"ltr\"><p>bar</p><p>baz</p></blockquote><p>extra</p>" but got "<p>foo</p><blockquote style=\"margin-right:0\" dir=\"ltr\"><p>bar</p></blockquote><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>baz</p></blockquote><p>extra</p>"
-[PASS] [["indent",""]] "<p>foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<p>foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<p>foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<p>foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<p>foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<p>foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<p>foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>[bar</blockquote><p>baz]<p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<p>foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>[bar</blockquote><p>baz]<p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<p>foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>[bar</blockquote><p>baz]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><blockquote><blockquote style=\"margin-right:0\" dir=\"ltr\"><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<p>foo</p><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><blockquote style=\"margin-right:0\" dir=\"ltr\"><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>"
-[PASS] [["indent",""]] "<p>foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<p>foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<p>foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<p>foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<p>foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<p>foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<p>[foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>baz]<p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<p>[foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>baz]<p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<p>[foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>baz]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p><blockquote style=\"margin-right:0\" dir=\"ltr\"><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foo</p><blockquote style=\"margin-right:0\" dir=\"ltr\"><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>"
-[PASS] [["indent",""]] "<p>[foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>baz]<p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<p>[foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>baz]<p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<p>[foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>baz]<p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<p>[foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>baz]<p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<p>[foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>baz]<p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<p>[foo<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>bar</blockquote><p>baz]<p>extra" queryCommandValue("indent") after
-[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra": execCommand("indent", false, "") return value
-[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote style=\"margin-right:0\" dir=\"ltr\"><p>foo</p><p>bar</p><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\"margin-right:0\" dir=\"ltr\"><p>foo</p></blockquote><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>bar</p></blockquote><blockquote style=\"margin-right:0\" dir=\"ltr\"><p>baz</p></blockquote><p>extra</p>"
-[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
-[FAIL] [["stylewithcss","true"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><blockquote><p>foobar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>foobar</p></blockquote></blockquote><blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>baz</p></blockquote><p>extra</p>"
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>foobar</p><p>baz</p></blockquote></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>foobar</p></blockquote><blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>baz</p></blockquote></blockquote><p>extra</p>"
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>foobar</p></blockquote></blockquote><p>baz</p><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>foobar</p></blockquote></blockquote><p>baz</p><p>extra</p>"
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>foobar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>foobar</p></blockquote><p>baz</p></blockquote><p>extra</p>"
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<p>[foo]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<p>[foo]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<p>[foo]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>foo</p><p>bar</p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foo</p></blockquote><blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>bar</p></blockquote><p>extra</p>"
+[PASS] [["indent",""]] "<p>[foo]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<p>[foo]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<p>[foo]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<p>[foo]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<p>[foo]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<p>[foo]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<p>[foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>b]ar</blockquote><p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<p>[foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>b]ar</blockquote><p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<p>[foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>b]ar</blockquote><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p><blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>bar</p></blockquote></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foo</p><blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>bar</p></blockquote></blockquote><p>extra</p>"
+[PASS] [["indent",""]] "<p>[foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>b]ar</blockquote><p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<p>[foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>b]ar</blockquote><p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<p>[foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>b]ar</blockquote><p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<p>[foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>b]ar</blockquote><p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<p>[foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>b]ar</blockquote><p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<p>[foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>b]ar</blockquote><p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<p>foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>[baz]<p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<p>foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>[baz]<p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<p>foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>[baz]<p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>bar</p><p>baz</p></blockquote><p>extra</p>" but got "<p>foo</p><blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>bar</p></blockquote><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>baz</p></blockquote><p>extra</p>"
+[PASS] [["indent",""]] "<p>foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<p>foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<p>foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<p>foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<p>foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<p>foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<p>foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>[bar</blockquote><p>baz]<p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<p>foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>[bar</blockquote><p>baz]<p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<p>foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>[bar</blockquote><p>baz]<p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><blockquote><blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<p>foo</p><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>"
+[PASS] [["indent",""]] "<p>foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<p>foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<p>foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<p>foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<p>foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<p>foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<p>[foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>baz]<p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<p>[foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>baz]<p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<p>[foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>baz]<p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p><blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foo</p><blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>"
+[PASS] [["indent",""]] "<p>[foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>baz]<p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<p>[foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>baz]<p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<p>[foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>baz]<p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<p>[foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>baz]<p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<p>[foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>baz]<p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<p>[foo<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>bar</blockquote><p>baz]<p>extra" queryCommandValue("indent") after
+[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra": execCommand("indent", false, "") return value
+[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>foo</p><p>bar</p><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>foo</p></blockquote><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>bar</p></blockquote><blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>baz</p></blockquote><p>extra</p>"
+[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
+[FAIL] [["stylewithcss","true"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
-[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandIndeterm("indent") before
-[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandState("indent") before
-[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandValue("indent") before
-[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandIndeterm("indent") after
-[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandState("indent") after
-[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandValue("indent") after
-[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra": execCommand("indent", false, "") return value
-[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote style=\"margin-right:0\" dir=\"ltr\"><p>foo</p><p>bar</p><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\"margin-right:0\" dir=\"ltr\"><p>foo</p></blockquote><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>bar</p></blockquote><blockquote style=\"margin-right:0\" dir=\"ltr\"><p>baz</p></blockquote><p>extra</p>"
-[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandIndeterm("indent") before
-[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandState("indent") before
-[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandValue("indent") before
-[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandIndeterm("indent") after
-[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandState("indent") after
-[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>foo</blockquote><p>[bar]<blockquote style=\"margin-right: 0\" dir=\"ltr\"><p>baz</blockquote><p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p style=\"margin-left: 40px\">baz</p><p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p style=\"margin-left: 40px\">baz</p><p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p style=\"margin-left: 40px\">baz</p><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p style=\"margin-left:40px\">foobar</p></blockquote><p style=\"margin-left:40px\">baz</p><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p style=\"margin-left:40px\">foobar</p></blockquote><p style=\"margin-left:40px\">baz</p><p>extra</p>"
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p style=\"margin-left: 40px\">baz</p><p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p style=\"margin-left: 40px\">baz</p><p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p style=\"margin-left: 40px\">baz</p><p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p style=\"margin-left: 40px\">baz</p><p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p style=\"margin-left: 40px\">baz</p><p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p style=\"margin-left: 40px\">baz</p><p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p style=\"margin-left: 40px\">b]az</p><p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p style=\"margin-left: 40px\">b]az</p><p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p style=\"margin-left: 40px\">b]az</p><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p style=\"margin-left:40px\">foobar</p><p style=\"margin-left:40px\">baz</p></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p style=\"margin-left:40px\">foobar</p><p style=\"margin-left:40px\">baz</p></blockquote><p>extra</p>"
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p style=\"margin-left: 40px\">b]az</p><p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p style=\"margin-left: 40px\">b]az</p><p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p style=\"margin-left: 40px\">b]az</p><p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p style=\"margin-left: 40px\">b]az</p><p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p style=\"margin-left: 40px\">b]az</p><p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p style=\"margin-left: 40px\">b]az</p><p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p>baz</p><p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p>baz</p><p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p>baz</p><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p style=\"margin-left:40px\">foobar</p></blockquote><p>baz</p><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p style=\"margin-left:40px\">foobar</p></blockquote><p>baz</p><p>extra</p>"
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p>baz</p><p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p>baz</p><p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p>baz</p><p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p>baz</p><p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p>baz</p><p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p>baz</p><p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p>b]az</p><p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p>b]az</p><p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p>b]az</p><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p style=\"margin-left:40px\">foobar</p><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p style=\"margin-left:40px\">foobar</p><p>baz</p></blockquote><p>extra</p>"
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p>b]az</p><p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p>b]az</p><p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p>b]az</p><p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p>b]az</p><p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p>b]az</p><p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p>b]az</p><p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<p>[foo]<p style=\"margin-left: 40px\">bar<p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<p>[foo]<p style=\"margin-left: 40px\">bar<p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<p>[foo]<p style=\"margin-left: 40px\">bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p></blockquote><p style=\"margin-left:40px\">bar</p><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foo</p></blockquote><p style=\"margin-left:40px\">bar</p><p>extra</p>"
-[PASS] [["indent",""]] "<p>[foo]<p style=\"margin-left: 40px\">bar<p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<p>[foo]<p style=\"margin-left: 40px\">bar<p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<p>[foo]<p style=\"margin-left: 40px\">bar<p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<p>[foo]<p style=\"margin-left: 40px\">bar<p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<p>[foo]<p style=\"margin-left: 40px\">bar<p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<p>[foo]<p style=\"margin-left: 40px\">bar<p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<p>[foo<p style=\"margin-left: 40px\">b]ar<p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<p>[foo<p style=\"margin-left: 40px\">b]ar<p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<p>[foo<p style=\"margin-left: 40px\">b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p><p style=\"margin-left:40px\">bar</p></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foo</p><p style=\"margin-left:40px\">bar</p></blockquote><p>extra</p>"
-[PASS] [["indent",""]] "<p>[foo<p style=\"margin-left: 40px\">b]ar<p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<p>[foo<p style=\"margin-left: 40px\">b]ar<p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<p>[foo<p style=\"margin-left: 40px\">b]ar<p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<p>[foo<p style=\"margin-left: 40px\">b]ar<p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<p>[foo<p style=\"margin-left: 40px\">b]ar<p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<p>[foo<p style=\"margin-left: 40px\">b]ar<p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<p>foo<p style=\"margin-left: 40px\">bar<p>[baz]<p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<p>foo<p style=\"margin-left: 40px\">bar<p>[baz]<p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<p>foo<p style=\"margin-left: 40px\">bar<p>[baz]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p style=\"margin-left:40px\">bar</p><blockquote><p>baz</p></blockquote><p>extra</p>" but got "<p>foo</p><p style=\"margin-left:40px\">bar</p><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>baz</p></blockquote><p>extra</p>"
-[PASS] [["indent",""]] "<p>foo<p style=\"margin-left: 40px\">bar<p>[baz]<p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<p>foo<p style=\"margin-left: 40px\">bar<p>[baz]<p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<p>foo<p style=\"margin-left: 40px\">bar<p>[baz]<p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<p>foo<p style=\"margin-left: 40px\">bar<p>[baz]<p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<p>foo<p style=\"margin-left: 40px\">bar<p>[baz]<p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<p>foo<p style=\"margin-left: 40px\">bar<p>[baz]<p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<p>foo<p style=\"margin-left: 40px\">[bar<p>baz]<p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<p>foo<p style=\"margin-left: 40px\">[bar<p>baz]<p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<p>foo<p style=\"margin-left: 40px\">[bar<p>baz]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><blockquote><p style=\"margin-left:40px\">bar</p><p>baz</p></blockquote><p>extra</p>" but got "<p>foo</p><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p style=\"margin-left:40px\">bar</p><p>baz</p></blockquote><p>extra</p>"
-[PASS] [["indent",""]] "<p>foo<p style=\"margin-left: 40px\">[bar<p>baz]<p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<p>foo<p style=\"margin-left: 40px\">[bar<p>baz]<p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<p>foo<p style=\"margin-left: 40px\">[bar<p>baz]<p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<p>foo<p style=\"margin-left: 40px\">[bar<p>baz]<p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<p>foo<p style=\"margin-left: 40px\">[bar<p>baz]<p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<p>foo<p style=\"margin-left: 40px\">[bar<p>baz]<p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<p>[foo<p style=\"margin-left: 40px\">bar<p>baz]<p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<p>[foo<p style=\"margin-left: 40px\">bar<p>baz]<p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<p>[foo<p style=\"margin-left: 40px\">bar<p>baz]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p><p style=\"margin-left:40px\">bar</p><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foo</p><p style=\"margin-left:40px\">bar</p><p>baz</p></blockquote><p>extra</p>"
-[PASS] [["indent",""]] "<p>[foo<p style=\"margin-left: 40px\">bar<p>baz]<p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<p>[foo<p style=\"margin-left: 40px\">bar<p>baz]<p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<p>[foo<p style=\"margin-left: 40px\">bar<p>baz]<p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<p>[foo<p style=\"margin-left: 40px\">bar<p>baz]<p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<p>[foo<p style=\"margin-left: 40px\">bar<p>baz]<p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<p>[foo<p style=\"margin-left: 40px\">bar<p>baz]<p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo<p>[bar]<p style=\"margin-left: 40px\">baz<p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo<p>[bar]<p style=\"margin-left: 40px\">baz<p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<p style=\"margin-left: 40px\">foo<p>[bar]<p style=\"margin-left: 40px\">baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"margin-left:40px\">foo</p><blockquote><p>bar</p></blockquote><p style=\"margin-left:40px\">baz</p><p>extra</p>" but got "<p style=\"margin-left:40px\">foo</p><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>bar</p></blockquote><p style=\"margin-left:40px\">baz</p><p>extra</p>"
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo<p>[bar]<p style=\"margin-left: 40px\">baz<p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo<p>[bar]<p style=\"margin-left: 40px\">baz<p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo<p>[bar]<p style=\"margin-left: 40px\">baz<p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo<p>[bar]<p style=\"margin-left: 40px\">baz<p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo<p>[bar]<p style=\"margin-left: 40px\">baz<p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<p style=\"margin-left: 40px\">foo<p>[bar]<p style=\"margin-left: 40px\">baz<p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><blockquote><p>foobar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foobar</p></blockquote></blockquote><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>baz</p></blockquote><p>extra</p>"
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foobar</p><p>baz</p></blockquote></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foobar</p></blockquote><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>baz</p></blockquote></blockquote><p>extra</p>"
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foobar</p></blockquote></blockquote><p>baz</p><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foobar</p></blockquote></blockquote><p>baz</p><p>extra</p>"
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foobar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foobar</p></blockquote><p>baz</p></blockquote><p>extra</p>"
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<p>[foo]<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<p>[foo]<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<p>[foo]<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p></blockquote><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>bar</p></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foo</p></blockquote><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>bar</p></blockquote><p>extra</p>"
-[PASS] [["indent",""]] "<p>[foo]<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<p>[foo]<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<p>[foo]<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<p>[foo]<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<p>[foo]<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<p>[foo]<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<p>[foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>b]ar</blockquote><p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<p>[foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>b]ar</blockquote><p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<p>[foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>b]ar</blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>bar</p></blockquote></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foo</p><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>bar</p></blockquote></blockquote><p>extra</p>"
-[PASS] [["indent",""]] "<p>[foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>b]ar</blockquote><p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<p>[foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>b]ar</blockquote><p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<p>[foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>b]ar</blockquote><p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<p>[foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>b]ar</blockquote><p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<p>[foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>b]ar</blockquote><p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<p>[foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>b]ar</blockquote><p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<p>foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>[baz]<p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<p>foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>[baz]<p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<p>foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>[baz]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>bar</p></blockquote><blockquote><p>baz</p></blockquote><p>extra</p>" but got "<p>foo</p><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>bar</p></blockquote><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>baz</p></blockquote><p>extra</p>"
-[PASS] [["indent",""]] "<p>foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<p>foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<p>foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<p>foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<p>foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<p>foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<p>foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>[bar</blockquote><p>baz]<p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<p>foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>[bar</blockquote><p>baz]<p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<p>foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>[bar</blockquote><p>baz]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><blockquote><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<p>foo</p><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>"
-[PASS] [["indent",""]] "<p>foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<p>foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<p>foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<p>foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<p>foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<p>foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<p>[foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>baz]<p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<p>[foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>baz]<p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<p>[foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>baz]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foo</p><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>"
-[PASS] [["indent",""]] "<p>[foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>baz]<p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<p>[foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>baz]<p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<p>[foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>baz]<p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<p>[foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>baz]<p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<p>[foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>baz]<p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<p>[foo<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>bar</blockquote><p>baz]<p>extra" queryCommandValue("indent") after
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo</blockquote><p>[bar]<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>baz</blockquote><p>extra": execCommand("indent", false, "") return value
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo</blockquote><p>[bar]<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>baz</blockquote><p>extra" checks for modifications to non-editable content
-[FAIL] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo</blockquote><p>[bar]<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>baz</blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foo</p></blockquote><blockquote><p>bar</p></blockquote><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>baz</p></blockquote><p>extra</p>" but got "<blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foo</p></blockquote><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>bar</p></blockquote><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>baz</p></blockquote><p>extra</p>"
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo</blockquote><p>[bar]<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>baz</blockquote><p>extra" queryCommandIndeterm("indent") before
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo</blockquote><p>[bar]<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>baz</blockquote><p>extra" queryCommandState("indent") before
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo</blockquote><p>[bar]<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>baz</blockquote><p>extra" queryCommandValue("indent") before
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo</blockquote><p>[bar]<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>baz</blockquote><p>extra" queryCommandIndeterm("indent") after
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo</blockquote><p>[bar]<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>baz</blockquote><p>extra" queryCommandState("indent") after
-[PASS] [["indent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>foo</blockquote><p>[bar]<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px\"><p>baz</blockquote><p>extra" queryCommandValue("indent") after
+[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandIndeterm("indent") before
+[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandState("indent") before
+[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandValue("indent") before
+[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandIndeterm("indent") after
+[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandState("indent") after
+[PASS] [["stylewithcss","true"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandValue("indent") after
+[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra": execCommand("indent", false, "") return value
+[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>foo</p><p>bar</p><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>foo</p></blockquote><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>bar</p></blockquote><blockquote style=\\"margin-right:0\\" dir=\\"ltr\\"><p>baz</p></blockquote><p>extra</p>"
+[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandIndeterm("indent") before
+[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandState("indent") before
+[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandValue("indent") before
+[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandIndeterm("indent") after
+[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandState("indent") after
+[PASS] [["stylewithcss","false"],["indent",""]] "<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>foo</blockquote><p>[bar]<blockquote style=\\"margin-right: 0\\" dir=\\"ltr\\"><p>baz</blockquote><p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p style=\\"margin-left: 40px\\">baz</p><p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p style=\\"margin-left: 40px\\">baz</p><p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p style=\\"margin-left: 40px\\">baz</p><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p style=\\"margin-left:40px\\">foobar</p></blockquote><p style=\\"margin-left:40px\\">baz</p><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p style=\\"margin-left:40px\\">foobar</p></blockquote><p style=\\"margin-left:40px\\">baz</p><p>extra</p>"
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p style=\\"margin-left: 40px\\">baz</p><p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p style=\\"margin-left: 40px\\">baz</p><p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p style=\\"margin-left: 40px\\">baz</p><p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p style=\\"margin-left: 40px\\">baz</p><p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p style=\\"margin-left: 40px\\">baz</p><p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p style=\\"margin-left: 40px\\">baz</p><p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p style=\\"margin-left: 40px\\">b]az</p><p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p style=\\"margin-left: 40px\\">b]az</p><p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p style=\\"margin-left: 40px\\">b]az</p><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p style=\\"margin-left:40px\\">foobar</p><p style=\\"margin-left:40px\\">baz</p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p style=\\"margin-left:40px\\">foobar</p><p style=\\"margin-left:40px\\">baz</p></blockquote><p>extra</p>"
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p style=\\"margin-left: 40px\\">b]az</p><p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p style=\\"margin-left: 40px\\">b]az</p><p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p style=\\"margin-left: 40px\\">b]az</p><p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p style=\\"margin-left: 40px\\">b]az</p><p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p style=\\"margin-left: 40px\\">b]az</p><p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p style=\\"margin-left: 40px\\">b]az</p><p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p>baz</p><p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p>baz</p><p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p>baz</p><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p style=\\"margin-left:40px\\">foobar</p></blockquote><p>baz</p><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p style=\\"margin-left:40px\\">foobar</p></blockquote><p>baz</p><p>extra</p>"
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p>baz</p><p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p>baz</p><p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p>baz</p><p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p>baz</p><p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p>baz</p><p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p>baz</p><p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p>b]az</p><p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p>b]az</p><p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p>b]az</p><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p style=\\"margin-left:40px\\">foobar</p><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p style=\\"margin-left:40px\\">foobar</p><p>baz</p></blockquote><p>extra</p>"
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p>b]az</p><p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p>b]az</p><p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p>b]az</p><p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p>b]az</p><p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p>b]az</p><p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p>b]az</p><p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<p>[foo]<p style=\\"margin-left: 40px\\">bar<p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<p>[foo]<p style=\\"margin-left: 40px\\">bar<p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<p>[foo]<p style=\\"margin-left: 40px\\">bar<p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p></blockquote><p style=\\"margin-left:40px\\">bar</p><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foo</p></blockquote><p style=\\"margin-left:40px\\">bar</p><p>extra</p>"
+[PASS] [["indent",""]] "<p>[foo]<p style=\\"margin-left: 40px\\">bar<p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<p>[foo]<p style=\\"margin-left: 40px\\">bar<p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<p>[foo]<p style=\\"margin-left: 40px\\">bar<p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<p>[foo]<p style=\\"margin-left: 40px\\">bar<p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<p>[foo]<p style=\\"margin-left: 40px\\">bar<p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<p>[foo]<p style=\\"margin-left: 40px\\">bar<p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<p>[foo<p style=\\"margin-left: 40px\\">b]ar<p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<p>[foo<p style=\\"margin-left: 40px\\">b]ar<p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<p>[foo<p style=\\"margin-left: 40px\\">b]ar<p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p><p style=\\"margin-left:40px\\">bar</p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foo</p><p style=\\"margin-left:40px\\">bar</p></blockquote><p>extra</p>"
+[PASS] [["indent",""]] "<p>[foo<p style=\\"margin-left: 40px\\">b]ar<p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<p>[foo<p style=\\"margin-left: 40px\\">b]ar<p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<p>[foo<p style=\\"margin-left: 40px\\">b]ar<p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<p>[foo<p style=\\"margin-left: 40px\\">b]ar<p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<p>[foo<p style=\\"margin-left: 40px\\">b]ar<p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<p>[foo<p style=\\"margin-left: 40px\\">b]ar<p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<p>foo<p style=\\"margin-left: 40px\\">bar<p>[baz]<p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<p>foo<p style=\\"margin-left: 40px\\">bar<p>[baz]<p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<p>foo<p style=\\"margin-left: 40px\\">bar<p>[baz]<p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p style=\\"margin-left:40px\\">bar</p><blockquote><p>baz</p></blockquote><p>extra</p>" but got "<p>foo</p><p style=\\"margin-left:40px\\">bar</p><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>baz</p></blockquote><p>extra</p>"
+[PASS] [["indent",""]] "<p>foo<p style=\\"margin-left: 40px\\">bar<p>[baz]<p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<p>foo<p style=\\"margin-left: 40px\\">bar<p>[baz]<p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<p>foo<p style=\\"margin-left: 40px\\">bar<p>[baz]<p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<p>foo<p style=\\"margin-left: 40px\\">bar<p>[baz]<p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<p>foo<p style=\\"margin-left: 40px\\">bar<p>[baz]<p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<p>foo<p style=\\"margin-left: 40px\\">bar<p>[baz]<p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<p>foo<p style=\\"margin-left: 40px\\">[bar<p>baz]<p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<p>foo<p style=\\"margin-left: 40px\\">[bar<p>baz]<p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<p>foo<p style=\\"margin-left: 40px\\">[bar<p>baz]<p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><blockquote><p style=\\"margin-left:40px\\">bar</p><p>baz</p></blockquote><p>extra</p>" but got "<p>foo</p><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p style=\\"margin-left:40px\\">bar</p><p>baz</p></blockquote><p>extra</p>"
+[PASS] [["indent",""]] "<p>foo<p style=\\"margin-left: 40px\\">[bar<p>baz]<p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<p>foo<p style=\\"margin-left: 40px\\">[bar<p>baz]<p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<p>foo<p style=\\"margin-left: 40px\\">[bar<p>baz]<p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<p>foo<p style=\\"margin-left: 40px\\">[bar<p>baz]<p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<p>foo<p style=\\"margin-left: 40px\\">[bar<p>baz]<p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<p>foo<p style=\\"margin-left: 40px\\">[bar<p>baz]<p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<p>[foo<p style=\\"margin-left: 40px\\">bar<p>baz]<p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<p>[foo<p style=\\"margin-left: 40px\\">bar<p>baz]<p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<p>[foo<p style=\\"margin-left: 40px\\">bar<p>baz]<p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p><p style=\\"margin-left:40px\\">bar</p><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foo</p><p style=\\"margin-left:40px\\">bar</p><p>baz</p></blockquote><p>extra</p>"
+[PASS] [["indent",""]] "<p>[foo<p style=\\"margin-left: 40px\\">bar<p>baz]<p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<p>[foo<p style=\\"margin-left: 40px\\">bar<p>baz]<p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<p>[foo<p style=\\"margin-left: 40px\\">bar<p>baz]<p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<p>[foo<p style=\\"margin-left: 40px\\">bar<p>baz]<p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<p>[foo<p style=\\"margin-left: 40px\\">bar<p>baz]<p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<p>[foo<p style=\\"margin-left: 40px\\">bar<p>baz]<p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo<p>[bar]<p style=\\"margin-left: 40px\\">baz<p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo<p>[bar]<p style=\\"margin-left: 40px\\">baz<p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo<p>[bar]<p style=\\"margin-left: 40px\\">baz<p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"margin-left:40px\\">foo</p><blockquote><p>bar</p></blockquote><p style=\\"margin-left:40px\\">baz</p><p>extra</p>" but got "<p style=\\"margin-left:40px\\">foo</p><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>bar</p></blockquote><p style=\\"margin-left:40px\\">baz</p><p>extra</p>"
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo<p>[bar]<p style=\\"margin-left: 40px\\">baz<p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo<p>[bar]<p style=\\"margin-left: 40px\\">baz<p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo<p>[bar]<p style=\\"margin-left: 40px\\">baz<p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo<p>[bar]<p style=\\"margin-left: 40px\\">baz<p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo<p>[bar]<p style=\\"margin-left: 40px\\">baz<p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<p style=\\"margin-left: 40px\\">foo<p>[bar]<p style=\\"margin-left: 40px\\">baz<p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><blockquote><p>foobar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foobar</p></blockquote></blockquote><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>baz</p></blockquote><p>extra</p>"
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foobar</p><p>baz</p></blockquote></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foobar</p></blockquote><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>baz</p></blockquote></blockquote><p>extra</p>"
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foobar</p></blockquote></blockquote><p>baz</p><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foobar</p></blockquote></blockquote><p>baz</p><p>extra</p>"
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foobar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foobar</p></blockquote><p>baz</p></blockquote><p>extra</p>"
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<p>[foo]<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<p>[foo]<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<p>[foo]<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p></blockquote><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>bar</p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foo</p></blockquote><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>bar</p></blockquote><p>extra</p>"
+[PASS] [["indent",""]] "<p>[foo]<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<p>[foo]<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<p>[foo]<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<p>[foo]<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<p>[foo]<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<p>[foo]<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<p>[foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>b]ar</blockquote><p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<p>[foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>b]ar</blockquote><p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<p>[foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>b]ar</blockquote><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>bar</p></blockquote></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foo</p><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>bar</p></blockquote></blockquote><p>extra</p>"
+[PASS] [["indent",""]] "<p>[foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>b]ar</blockquote><p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<p>[foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>b]ar</blockquote><p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<p>[foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>b]ar</blockquote><p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<p>[foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>b]ar</blockquote><p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<p>[foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>b]ar</blockquote><p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<p>[foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>b]ar</blockquote><p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<p>foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>[baz]<p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<p>foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>[baz]<p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<p>foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>[baz]<p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>bar</p></blockquote><blockquote><p>baz</p></blockquote><p>extra</p>" but got "<p>foo</p><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>bar</p></blockquote><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>baz</p></blockquote><p>extra</p>"
+[PASS] [["indent",""]] "<p>foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<p>foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<p>foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<p>foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<p>foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<p>foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>[baz]<p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<p>foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>[bar</blockquote><p>baz]<p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<p>foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>[bar</blockquote><p>baz]<p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<p>foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>[bar</blockquote><p>baz]<p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><blockquote><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<p>foo</p><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>"
+[PASS] [["indent",""]] "<p>foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<p>foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<p>foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<p>foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<p>foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<p>foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>[bar</blockquote><p>baz]<p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<p>[foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>baz]<p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<p>[foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>baz]<p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<p>[foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>baz]<p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foo</p><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>bar</p></blockquote><p>baz</p></blockquote><p>extra</p>"
+[PASS] [["indent",""]] "<p>[foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>baz]<p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<p>[foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>baz]<p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<p>[foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>baz]<p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<p>[foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>baz]<p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<p>[foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>baz]<p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<p>[foo<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>bar</blockquote><p>baz]<p>extra" queryCommandValue("indent") after
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo</blockquote><p>[bar]<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>baz</blockquote><p>extra": execCommand("indent", false, "") return value
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo</blockquote><p>[bar]<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>baz</blockquote><p>extra" checks for modifications to non-editable content
+[FAIL] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo</blockquote><p>[bar]<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>baz</blockquote><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foo</p></blockquote><blockquote><p>bar</p></blockquote><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>baz</p></blockquote><p>extra</p>" but got "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foo</p></blockquote><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>bar</p></blockquote><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>baz</p></blockquote><p>extra</p>"
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo</blockquote><p>[bar]<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>baz</blockquote><p>extra" queryCommandIndeterm("indent") before
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo</blockquote><p>[bar]<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>baz</blockquote><p>extra" queryCommandState("indent") before
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo</blockquote><p>[bar]<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>baz</blockquote><p>extra" queryCommandValue("indent") before
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo</blockquote><p>[bar]<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>baz</blockquote><p>extra" queryCommandIndeterm("indent") after
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo</blockquote><p>[bar]<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>baz</blockquote><p>extra" queryCommandState("indent") after
+[PASS] [["indent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>foo</blockquote><p>[bar]<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px\\"><p>baz</blockquote><p>extra" queryCommandValue("indent") after
 [PASS] [["indent",""]] "<blockquote>f[oo<blockquote>b]ar</blockquote></blockquote><p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<blockquote>f[oo<blockquote>b]ar</blockquote></blockquote><p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<blockquote>f[oo<blockquote>b]ar</blockquote></blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote>foo<blockquote>bar</blockquote></blockquote></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><blockquote>foo</blockquote><blockquote><blockquote>bar</blockquote></blockquote></blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><blockquote>foo<blockquote>bar</blockquote></blockquote></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><blockquote>foo</blockquote><blockquote><blockquote>bar</blockquote></blockquote></blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<blockquote>f[oo<blockquote>b]ar</blockquote></blockquote><p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<blockquote>f[oo<blockquote>b]ar</blockquote></blockquote><p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<blockquote>f[oo<blockquote>b]ar</blockquote></blockquote><p>extra" queryCommandValue("indent") before
@@ -886,7 +886,7 @@
 [PASS] [["indent",""]] "<ol><li>foo</ol>[bar]": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<ol><li>foo</ol>[bar]" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<ol><li>foo</ol>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li></ol><blockquote>bar</blockquote>" but got "<ol><li>foo</li></ol><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">bar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li></ol><blockquote>bar</blockquote>" but got "<ol><li>foo</li></ol><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">bar</blockquote>"
 [PASS] [["indent",""]] "<ol><li>foo</ol>[bar]" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<ol><li>foo</ol>[bar]" queryCommandState("indent") before
 [PASS] [["indent",""]] "<ol><li>foo</ol>[bar]" queryCommandValue("indent") before
@@ -915,7 +915,7 @@
 [PASS] [["indent",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><ol><li><div>foo</div>bar</li></ol><li>baz</li></ol>" but got "<ol><li><div><blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foo</blockquote></div>bar</li><li>baz</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><ol><li><div>foo</div>bar</li></ol><li>baz</li></ol>" but got "<ol><li><div><blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foo</blockquote></div>bar</li><li>baz</li></ol>"
 [PASS] [["indent",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" queryCommandState("indent") before
 [PASS] [["indent",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" queryCommandValue("indent") before
@@ -1076,7 +1076,7 @@
 [PASS] [["indent",""]] "<ol><ol id=u1><li id=i1>foo</ol><li id=i2>[bar]</li><ol id=u3><li id=i3>baz</ol></ol>": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<ol><ol id=u1><li id=i1>foo</ol><li id=i2>[bar]</li><ol id=u3><li id=i3>baz</ol></ol>" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<ol><ol id=u1><li id=i1>foo</ol><li id=i2>[bar]</li><ol id=u3><li id=i3>baz</ol></ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><ol id=\"u1\"><li id=\"i1\">foo</li><li id=\"i2\">bar</li><li id=\"i3\">baz</li></ol></ol>" but got "<ol><ol id=\"u3\"><li id=\"i1\">foo</li><li id=\"i2\">bar</li><li id=\"i3\">baz</li></ol></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><ol id=\\"u1\\"><li id=\\"i1\\">foo</li><li id=\\"i2\\">bar</li><li id=\\"i3\\">baz</li></ol></ol>" but got "<ol><ol id=\\"u3\\"><li id=\\"i1\\">foo</li><li id=\\"i2\\">bar</li><li id=\\"i3\\">baz</li></ol></ol>"
 [PASS] [["indent",""]] "<ol><ol id=u1><li id=i1>foo</ol><li id=i2>[bar]</li><ol id=u3><li id=i3>baz</ol></ol>" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<ol><ol id=u1><li id=i1>foo</ol><li id=i2>[bar]</li><ol id=u3><li id=i3>baz</ol></ol>" queryCommandState("indent") before
 [PASS] [["indent",""]] "<ol><ol id=u1><li id=i1>foo</ol><li id=i2>[bar]</li><ol id=u3><li id=i3>baz</ol></ol>" queryCommandValue("indent") before
@@ -1086,7 +1086,7 @@
 [PASS] [["indent",""]] "<ol><ol><li id=i1>foo</ol><li id=i2>[bar]</li><ol id=u3><li id=i3>baz</ol></ol>": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<ol><ol><li id=i1>foo</ol><li id=i2>[bar]</li><ol id=u3><li id=i3>baz</ol></ol>" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<ol><ol><li id=i1>foo</ol><li id=i2>[bar]</li><ol id=u3><li id=i3>baz</ol></ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><ol><li id=\"i1\">foo</li><li id=\"i2\">bar</li><li id=\"i3\">baz</li></ol></ol>" but got "<ol><ol id=\"u3\"><li id=\"i1\">foo</li><li id=\"i2\">bar</li><li id=\"i3\">baz</li></ol></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><ol><li id=\\"i1\\">foo</li><li id=\\"i2\\">bar</li><li id=\\"i3\\">baz</li></ol></ol>" but got "<ol><ol id=\\"u3\\"><li id=\\"i1\\">foo</li><li id=\\"i2\\">bar</li><li id=\\"i3\\">baz</li></ol></ol>"
 [PASS] [["indent",""]] "<ol><ol><li id=i1>foo</ol><li id=i2>[bar]</li><ol id=u3><li id=i3>baz</ol></ol>" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<ol><ol><li id=i1>foo</ol><li id=i2>[bar]</li><ol id=u3><li id=i3>baz</ol></ol>" queryCommandState("indent") before
 [PASS] [["indent",""]] "<ol><ol><li id=i1>foo</ol><li id=i2>[bar]</li><ol id=u3><li id=i3>baz</ol></ol>" queryCommandValue("indent") before
@@ -1096,7 +1096,7 @@
 [PASS] [["indent",""]] "<ol><ol id=u1><li id=i1>foo</ol><li id=i2>[bar]</li><ol><li id=i3>baz</ol></ol>": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<ol><ol id=u1><li id=i1>foo</ol><li id=i2>[bar]</li><ol><li id=i3>baz</ol></ol>" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<ol><ol id=u1><li id=i1>foo</ol><li id=i2>[bar]</li><ol><li id=i3>baz</ol></ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><ol id=\"u1\"><li id=\"i1\">foo</li><li id=\"i2\">bar</li><li id=\"i3\">baz</li></ol></ol>" but got "<ol><ol><li id=\"i1\">foo</li><li id=\"i2\">bar</li><li id=\"i3\">baz</li></ol></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><ol id=\\"u1\\"><li id=\\"i1\\">foo</li><li id=\\"i2\\">bar</li><li id=\\"i3\\">baz</li></ol></ol>" but got "<ol><ol><li id=\\"i1\\">foo</li><li id=\\"i2\\">bar</li><li id=\\"i3\\">baz</li></ol></ol>"
 [PASS] [["indent",""]] "<ol><ol id=u1><li id=i1>foo</ol><li id=i2>[bar]</li><ol><li id=i3>baz</ol></ol>" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<ol><ol id=u1><li id=i1>foo</ol><li id=i2>[bar]</li><ol><li id=i3>baz</ol></ol>" queryCommandState("indent") before
 [PASS] [["indent",""]] "<ol><ol id=u1><li id=i1>foo</ol><li id=i2>[bar]</li><ol><li id=i3>baz</ol></ol>" queryCommandValue("indent") before
@@ -1115,7 +1115,7 @@
 [PASS] [["indent",""]] "<ol><ol id=u1><li id=i1>foo</ol><li id=i2>[bar]</ol>": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<ol><ol id=u1><li id=i1>foo</ol><li id=i2>[bar]</ol>" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<ol><ol id=u1><li id=i1>foo</ol><li id=i2>[bar]</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><ol id=\"u1\"><li id=\"i1\">foo</li><li id=\"i2\">bar</li></ol></ol>" but got "<ol><ol><li id=\"i1\">foo</li><li id=\"i2\">bar</li></ol></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><ol id=\\"u1\\"><li id=\\"i1\\">foo</li><li id=\\"i2\\">bar</li></ol></ol>" but got "<ol><ol><li id=\\"i1\\">foo</li><li id=\\"i2\\">bar</li></ol></ol>"
 [PASS] [["indent",""]] "<ol><ol id=u1><li id=i1>foo</ol><li id=i2>[bar]</ol>" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<ol><ol id=u1><li id=i1>foo</ol><li id=i2>[bar]</ol>" queryCommandState("indent") before
 [PASS] [["indent",""]] "<ol><ol id=u1><li id=i1>foo</ol><li id=i2>[bar]</ol>" queryCommandValue("indent") before
@@ -1232,7 +1232,7 @@
 [PASS] [["indent",""]] "foo<!--bar-->[baz]<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "foo<!--bar-->[baz]<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "foo<!--bar-->[baz]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<!--bar-->baz</blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foo<!--bar-->baz</blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<!--bar-->baz</blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foo<!--bar-->baz</blockquote><p>extra</p>"
 [PASS] [["indent",""]] "foo<!--bar-->[baz]<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "foo<!--bar-->[baz]<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "foo<!--bar-->[baz]<p>extra" queryCommandValue("indent") before
@@ -1242,7 +1242,7 @@
 [PASS] [["indent",""]] "[foo]<!--bar-->baz<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "[foo]<!--bar-->baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "[foo]<!--bar-->baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<!--bar-->baz</blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foo<!--bar-->baz</blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<!--bar-->baz</blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foo<!--bar-->baz</blockquote><p>extra</p>"
 [PASS] [["indent",""]] "[foo]<!--bar-->baz<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "[foo]<!--bar-->baz<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "[foo]<!--bar-->baz<p>extra" queryCommandValue("indent") before
@@ -1252,7 +1252,7 @@
 [PASS] [["indent",""]] "<p>foo<!--bar-->{}<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<p>foo<!--bar-->{}<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<p>foo<!--bar-->{}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo<!--bar--></p></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foo</p></blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo<!--bar--></p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foo</p></blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<p>foo<!--bar-->{}<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<p>foo<!--bar-->{}<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<p>foo<!--bar-->{}<p>extra" queryCommandValue("indent") before
@@ -1262,7 +1262,7 @@
 [PASS] [["indent",""]] "<p>{}<!--foo-->bar<p>extra": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<p>{}<!--foo-->bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<p>{}<!--foo-->bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p><!--foo-->bar</p></blockquote><p>extra</p>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>bar</p></blockquote><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p><!--foo-->bar</p></blockquote><p>extra</p>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>bar</p></blockquote><p>extra</p>"
 [PASS] [["indent",""]] "<p>{}<!--foo-->bar<p>extra" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<p>{}<!--foo-->bar<p>extra" queryCommandState("indent") before
 [PASS] [["indent",""]] "<p>{}<!--foo-->bar<p>extra" queryCommandValue("indent") before
@@ -1272,7 +1272,7 @@
 [PASS] [["indent",""]] "<blockquote><p>foo</blockquote> <p>[bar]": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<blockquote><p>foo</blockquote> <p>[bar]" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<blockquote><p>foo</blockquote> <p>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p> <p>bar</p></blockquote>" but got "<blockquote><p>foo</p></blockquote> <blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>bar</p></blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p> <p>bar</p></blockquote>" but got "<blockquote><p>foo</p></blockquote> <blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>bar</p></blockquote>"
 [PASS] [["indent",""]] "<blockquote><p>foo</blockquote> <p>[bar]" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<blockquote><p>foo</blockquote> <p>[bar]" queryCommandState("indent") before
 [PASS] [["indent",""]] "<blockquote><p>foo</blockquote> <p>[bar]" queryCommandValue("indent") before
@@ -1282,7 +1282,7 @@
 [PASS] [["indent",""]] "<p>[foo]</p> <blockquote><p>bar</blockquote>": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<p>[foo]</p> <blockquote><p>bar</blockquote>" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<p>[foo]</p> <blockquote><p>bar</blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p> <p>bar</p></blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>foo</p></blockquote> <blockquote><p>bar</p></blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p> <p>bar</p></blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>foo</p></blockquote> <blockquote><p>bar</p></blockquote>"
 [PASS] [["indent",""]] "<p>[foo]</p> <blockquote><p>bar</blockquote>" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<p>[foo]</p> <blockquote><p>bar</blockquote>" queryCommandState("indent") before
 [PASS] [["indent",""]] "<p>[foo]</p> <blockquote><p>bar</blockquote>" queryCommandValue("indent") before
@@ -1292,7 +1292,7 @@
 [PASS] [["indent",""]] "<blockquote><p>foo</blockquote> <p>[bar]</p> <blockquote><p>baz</blockquote>": execCommand("indent", false, "") return value
 [PASS] [["indent",""]] "<blockquote><p>foo</blockquote> <p>[bar]</p> <blockquote><p>baz</blockquote>" checks for modifications to non-editable content
 [FAIL] [["indent",""]] "<blockquote><p>foo</blockquote> <p>[bar]</p> <blockquote><p>baz</blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p> <p>bar</p> <p>baz</p></blockquote>" but got "<blockquote><p>foo</p></blockquote> <blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>bar</p></blockquote> <blockquote><p>baz</p></blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><p>foo</p> <p>bar</p> <p>baz</p></blockquote>" but got "<blockquote><p>foo</p></blockquote> <blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>bar</p></blockquote> <blockquote><p>baz</p></blockquote>"
 [PASS] [["indent",""]] "<blockquote><p>foo</blockquote> <p>[bar]</p> <blockquote><p>baz</blockquote>" queryCommandIndeterm("indent") before
 [PASS] [["indent",""]] "<blockquote><p>foo</blockquote> <p>[bar]</p> <blockquote><p>baz</blockquote>" queryCommandState("indent") before
 [PASS] [["indent",""]] "<blockquote><p>foo</blockquote> <p>[bar]</p> <blockquote><p>baz</blockquote>" queryCommandValue("indent") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/insert-list-items-in-table-cell-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/insert-list-items-in-table-cell-expected.txt
index f3c4339..9c5435c 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/insert-list-items-in-table-cell-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/insert-list-items-in-table-cell-expected.txt
@@ -1,118 +1,118 @@
 This is a testharness.js-based test.
 Found 112 tests; 110 PASS, 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fs<br>df]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fs<br>df]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fs<br>df]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fs<br>df]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fs<br>df]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fs<br>df]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fs<br>df]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fs<br>df]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fs<br>df]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[f<b>s<br>d</b>f]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[f<b>s<br>d</b>f]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
-[FAIL] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[f<b>s<br>d</b>f]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div contenteditable=\"true\"><table><tbody><tr><td><ol><li>f<b>s</b></li><li><b>d</b>f</li></ol></td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></tbody></table></div>" but got "<div contenteditable=\"true\"><table><tbody><tr><td><ol><li>f<b>s<br>d</b></li><li><b>d</b>f</li></ol></td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></tbody></table></div>"
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[f<b>s<br>d</b>f]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[f<b>s<br>d</b>f]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[f<b>s<br>d</b>f]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[f<b>s<br>d</b>f]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[f<b>s<br>d</b>f]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[f<b>s<br>d</b>f]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fs]<br>df</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fs]<br>df</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fs]<br>df</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fs]<br>df</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fs]<br>df</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fs]<br>df</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fs]<br>df</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fs]<br>df</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[fs]<br>df</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[f<b>s]<br>d</b>f</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[f<b>s]<br>d</b>f</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
-[FAIL] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[f<b>s]<br>d</b>f</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div contenteditable=\"true\"><table><tbody><tr><td><ol><li>f<b>s</b></li></ol><b>d</b>f</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></tbody></table></div>" but got "<div contenteditable=\"true\"><table><tbody><tr><td><ol><li>f<b>s<br>d</b></li></ol><b>d</b>f</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></tbody></table></div>"
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[f<b>s]<br>d</b>f</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[f<b>s]<br>d</b>f</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[f<b>s]<br>d</b>f</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[f<b>s]<br>d</b>f</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[f<b>s]<br>d</b>f</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr><td>[f<b>s]<br>d</b>f</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
-[PASS] [["insertOrderedList",""]] "<div contenteditable=\"true\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "1") return value
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "1") return value
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "1") return value
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "1") return value
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
-[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\"true\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fs<br>df]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fs<br>df]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fs<br>df]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fs<br>df]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fs<br>df]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fs<br>df]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fs<br>df]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fs<br>df]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fs<br>df]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[f<b>s<br>d</b>f]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[f<b>s<br>d</b>f]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
+[FAIL] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[f<b>s<br>d</b>f]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div contenteditable=\\"true\\"><table><tbody><tr><td><ol><li>f<b>s</b></li><li><b>d</b>f</li></ol></td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></tbody></table></div>" but got "<div contenteditable=\\"true\\"><table><tbody><tr><td><ol><li>f<b>s<br>d</b></li><li><b>d</b>f</li></ol></td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></tbody></table></div>"
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[f<b>s<br>d</b>f]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[f<b>s<br>d</b>f]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[f<b>s<br>d</b>f]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[f<b>s<br>d</b>f]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[f<b>s<br>d</b>f]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[f<b>s<br>d</b>f]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fs]<br>df</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fs]<br>df</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fs]<br>df</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fs]<br>df</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fs]<br>df</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fs]<br>df</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fs]<br>df</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fs]<br>df</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[fs]<br>df</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[f<b>s]<br>d</b>f</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[f<b>s]<br>d</b>f</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
+[FAIL] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[f<b>s]<br>d</b>f</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div contenteditable=\\"true\\"><table><tbody><tr><td><ol><li>f<b>s</b></li></ol><b>d</b>f</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></tbody></table></div>" but got "<div contenteditable=\\"true\\"><table><tbody><tr><td><ol><li>f<b>s<br>d</b></li></ol><b>d</b>f</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></tbody></table></div>"
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[f<b>s]<br>d</b>f</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[f<b>s]<br>d</b>f</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[f<b>s]<br>d</b>f</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[f<b>s]<br>d</b>f</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[f<b>s]<br>d</b>f</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr><td>[f<b>s]<br>d</b>f</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
+[PASS] [["insertOrderedList",""]] "<div contenteditable=\\"true\\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "1") return value
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr><td>[fsdf]</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "1") return value
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr data-start=0 data-end=2><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "1") return value
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table><tr data-start=0><td>fsdf</td><td>fsdf</td></tr><tr data-end=2><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "") return value
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>": execCommand("insertOrderedList", false, "1") return value
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" checks for modifications to non-editable content
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" compare innerHTML
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") before
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") before
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") before
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandIndeterm("insertOrderedList") after
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandState("insertOrderedList") after
+[PASS] [["insertOrderedList",""],["insertOrderedList","1"]] "<div contenteditable=\\"true\\"><table data-start=0 data-end=1><tr><td>fsdf</td><td>fsdf</td></tr><tr><td>gghfg</td><td>fsfg</td></tr></table></div>" queryCommandValue("insertOrderedList") after
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/inserthorizontalrule-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/inserthorizontalrule-expected.txt
index 849cffbe..4b887f50 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/inserthorizontalrule-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/inserthorizontalrule-expected.txt
@@ -125,7 +125,7 @@
 [PASS] [["stylewithcss","true"],["inserthorizontalrule",""]] "<b id=abc>foo[]bar</b>": execCommand("inserthorizontalrule", false, "") return value
 [PASS] [["stylewithcss","true"],["inserthorizontalrule",""]] "<b id=abc>foo[]bar</b>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["inserthorizontalrule",""]] "<b id=abc>foo[]bar</b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b id=\"abc\">foo</b><hr><b>bar</b>" but got "<b id=\"abc\">foo<hr>bar</b>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b id=\\"abc\\">foo</b><hr><b>bar</b>" but got "<b id=\\"abc\\">foo<hr>bar</b>"
 [PASS] [["stylewithcss","true"],["inserthorizontalrule",""]] "<b id=abc>foo[]bar</b>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["inserthorizontalrule",""]] "<b id=abc>foo[]bar</b>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["inserthorizontalrule",""]] "<b id=abc>foo[]bar</b>" queryCommandValue("stylewithcss") before
@@ -142,7 +142,7 @@
 [PASS] [["stylewithcss","false"],["inserthorizontalrule",""]] "<b id=abc>foo[]bar</b>": execCommand("inserthorizontalrule", false, "") return value
 [PASS] [["stylewithcss","false"],["inserthorizontalrule",""]] "<b id=abc>foo[]bar</b>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["inserthorizontalrule",""]] "<b id=abc>foo[]bar</b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b id=\"abc\">foo</b><hr><b>bar</b>" but got "<b id=\"abc\">foo<hr>bar</b>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b id=\\"abc\\">foo</b><hr><b>bar</b>" but got "<b id=\\"abc\\">foo<hr>bar</b>"
 [PASS] [["stylewithcss","false"],["inserthorizontalrule",""]] "<b id=abc>foo[]bar</b>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["inserthorizontalrule",""]] "<b id=abc>foo[]bar</b>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["inserthorizontalrule",""]] "<b id=abc>foo[]bar</b>" queryCommandValue("stylewithcss") before
@@ -158,7 +158,7 @@
 [PASS] [["inserthorizontalrule","abc"]] "foo[bar]baz": execCommand("inserthorizontalrule", false, "abc") return value
 [PASS] [["inserthorizontalrule","abc"]] "foo[bar]baz" checks for modifications to non-editable content
 [FAIL] [["inserthorizontalrule","abc"]] "foo[bar]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<hr>baz" but got "foo<hr id=\"abc\">baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<hr>baz" but got "foo<hr id=\\"abc\\">baz"
 [PASS] [["inserthorizontalrule","abc"]] "foo[bar]baz" queryCommandIndeterm("inserthorizontalrule") before
 [PASS] [["inserthorizontalrule","abc"]] "foo[bar]baz" queryCommandState("inserthorizontalrule") before
 [PASS] [["inserthorizontalrule","abc"]] "foo[bar]baz" queryCommandValue("inserthorizontalrule") before
@@ -535,7 +535,7 @@
 [PASS] [["inserthorizontalrule",""]] "<a href=/>foo[bar]baz</a>": execCommand("inserthorizontalrule", false, "") return value
 [PASS] [["inserthorizontalrule",""]] "<a href=/>foo[bar]baz</a>" checks for modifications to non-editable content
 [FAIL] [["inserthorizontalrule",""]] "<a href=/>foo[bar]baz</a>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\"/\">foo</a><hr><a href=\"/\">baz</a>" but got "<a href=\"/\">foo<hr>baz</a>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\"/\\">foo</a><hr><a href=\\"/\\">baz</a>" but got "<a href=\\"/\\">foo<hr>baz</a>"
 [PASS] [["inserthorizontalrule",""]] "<a href=/>foo[bar]baz</a>" queryCommandIndeterm("inserthorizontalrule") before
 [PASS] [["inserthorizontalrule",""]] "<a href=/>foo[bar]baz</a>" queryCommandState("inserthorizontalrule") before
 [PASS] [["inserthorizontalrule",""]] "<a href=/>foo[bar]baz</a>" queryCommandValue("inserthorizontalrule") before
@@ -624,7 +624,7 @@
 [PASS] [["inserthorizontalrule",""]] "<bdo dir=rtl>foo[bar]baz</bdo>": execCommand("inserthorizontalrule", false, "") return value
 [PASS] [["inserthorizontalrule",""]] "<bdo dir=rtl>foo[bar]baz</bdo>" checks for modifications to non-editable content
 [FAIL] [["inserthorizontalrule",""]] "<bdo dir=rtl>foo[bar]baz</bdo>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<bdo dir=\"rtl\">foo</bdo><hr><bdo dir=\"rtl\">baz</bdo>" but got "<bdo dir=\"rtl\">foo<hr>baz</bdo>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<bdo dir=\\"rtl\\">foo</bdo><hr><bdo dir=\\"rtl\\">baz</bdo>" but got "<bdo dir=\\"rtl\\">foo<hr>baz</bdo>"
 [PASS] [["inserthorizontalrule",""]] "<bdo dir=rtl>foo[bar]baz</bdo>" queryCommandIndeterm("inserthorizontalrule") before
 [PASS] [["inserthorizontalrule",""]] "<bdo dir=rtl>foo[bar]baz</bdo>" queryCommandState("inserthorizontalrule") before
 [PASS] [["inserthorizontalrule",""]] "<bdo dir=rtl>foo[bar]baz</bdo>" queryCommandValue("inserthorizontalrule") before
@@ -1387,7 +1387,7 @@
 [PASS] [["inserthorizontalrule",""]] "fo[o<span contenteditable=false>bar</span>b]az": execCommand("inserthorizontalrule", false, "") return value
 [PASS] [["inserthorizontalrule",""]] "fo[o<span contenteditable=false>bar</span>b]az" checks for modifications to non-editable content
 [FAIL] [["inserthorizontalrule",""]] "fo[o<span contenteditable=false>bar</span>b]az" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<hr><span contenteditable=\"false\">bar</span>az" but got "fo<hr>az"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<hr><span contenteditable=\\"false\\">bar</span>az" but got "fo<hr>az"
 [PASS] [["inserthorizontalrule",""]] "fo[o<span contenteditable=false>bar</span>b]az" queryCommandIndeterm("inserthorizontalrule") before
 [PASS] [["inserthorizontalrule",""]] "fo[o<span contenteditable=false>bar</span>b]az" queryCommandState("inserthorizontalrule") before
 [PASS] [["inserthorizontalrule",""]] "fo[o<span contenteditable=false>bar</span>b]az" queryCommandValue("inserthorizontalrule") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/inserthtml-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/inserthtml-expected.txt
index d57e568..7a13e4a6 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/inserthtml-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/inserthtml-expected.txt
@@ -330,24 +330,24 @@
 [PASS] [["inserthtml",""]] "foo[bar]baz" queryCommandIndeterm("inserthtml") after
 [PASS] [["inserthtml",""]] "foo[bar]baz" queryCommandState("inserthtml") after
 [PASS] [["inserthtml",""]] "foo[bar]baz" queryCommandValue("inserthtml") after
-[PASS] [["inserthtml","\u0000"]] "foo[bar]baz": execCommand("inserthtml", false, "\0") return value
-[PASS] [["inserthtml","\u0000"]] "foo[bar]baz" checks for modifications to non-editable content
-[PASS] [["inserthtml","\u0000"]] "foo[bar]baz" compare innerHTML
-[PASS] [["inserthtml","\u0000"]] "foo[bar]baz" queryCommandIndeterm("inserthtml") before
-[PASS] [["inserthtml","\u0000"]] "foo[bar]baz" queryCommandState("inserthtml") before
-[PASS] [["inserthtml","\u0000"]] "foo[bar]baz" queryCommandValue("inserthtml") before
-[PASS] [["inserthtml","\u0000"]] "foo[bar]baz" queryCommandIndeterm("inserthtml") after
-[PASS] [["inserthtml","\u0000"]] "foo[bar]baz" queryCommandState("inserthtml") after
-[PASS] [["inserthtml","\u0000"]] "foo[bar]baz" queryCommandValue("inserthtml") after
-[PASS] [["inserthtml","\u0007"]] "foo[bar]baz": execCommand("inserthtml", false, "\x07") return value
-[PASS] [["inserthtml","\u0007"]] "foo[bar]baz" checks for modifications to non-editable content
-[PASS] [["inserthtml","\u0007"]] "foo[bar]baz" compare innerHTML
-[PASS] [["inserthtml","\u0007"]] "foo[bar]baz" queryCommandIndeterm("inserthtml") before
-[PASS] [["inserthtml","\u0007"]] "foo[bar]baz" queryCommandState("inserthtml") before
-[PASS] [["inserthtml","\u0007"]] "foo[bar]baz" queryCommandValue("inserthtml") before
-[PASS] [["inserthtml","\u0007"]] "foo[bar]baz" queryCommandIndeterm("inserthtml") after
-[PASS] [["inserthtml","\u0007"]] "foo[bar]baz" queryCommandState("inserthtml") after
-[PASS] [["inserthtml","\u0007"]] "foo[bar]baz" queryCommandValue("inserthtml") after
+[PASS] [["inserthtml","\\u0000"]] "foo[bar]baz": execCommand("inserthtml", false, "\\0") return value
+[PASS] [["inserthtml","\\u0000"]] "foo[bar]baz" checks for modifications to non-editable content
+[PASS] [["inserthtml","\\u0000"]] "foo[bar]baz" compare innerHTML
+[PASS] [["inserthtml","\\u0000"]] "foo[bar]baz" queryCommandIndeterm("inserthtml") before
+[PASS] [["inserthtml","\\u0000"]] "foo[bar]baz" queryCommandState("inserthtml") before
+[PASS] [["inserthtml","\\u0000"]] "foo[bar]baz" queryCommandValue("inserthtml") before
+[PASS] [["inserthtml","\\u0000"]] "foo[bar]baz" queryCommandIndeterm("inserthtml") after
+[PASS] [["inserthtml","\\u0000"]] "foo[bar]baz" queryCommandState("inserthtml") after
+[PASS] [["inserthtml","\\u0000"]] "foo[bar]baz" queryCommandValue("inserthtml") after
+[PASS] [["inserthtml","\\u0007"]] "foo[bar]baz": execCommand("inserthtml", false, "\\x07") return value
+[PASS] [["inserthtml","\\u0007"]] "foo[bar]baz" checks for modifications to non-editable content
+[PASS] [["inserthtml","\\u0007"]] "foo[bar]baz" compare innerHTML
+[PASS] [["inserthtml","\\u0007"]] "foo[bar]baz" queryCommandIndeterm("inserthtml") before
+[PASS] [["inserthtml","\\u0007"]] "foo[bar]baz" queryCommandState("inserthtml") before
+[PASS] [["inserthtml","\\u0007"]] "foo[bar]baz" queryCommandValue("inserthtml") before
+[PASS] [["inserthtml","\\u0007"]] "foo[bar]baz" queryCommandIndeterm("inserthtml") after
+[PASS] [["inserthtml","\\u0007"]] "foo[bar]baz" queryCommandState("inserthtml") after
+[PASS] [["inserthtml","\\u0007"]] "foo[bar]baz" queryCommandValue("inserthtml") after
 [PASS] [["stylewithcss","true"],["inserthtml","<b>"]] "foo[bar]baz": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["inserthtml","<b>"]] "foo[bar]baz": execCommand("inserthtml", false, "<b>") return value
 [PASS] [["stylewithcss","true"],["inserthtml","<b>"]] "foo[bar]baz" checks for modifications to non-editable content
@@ -678,7 +678,7 @@
 [PASS] [["inserthtml","<a href=/>abc</a>"]] "<a href=.>f[o]o</a>": execCommand("inserthtml", false, "<a href=/>abc</a>") return value
 [PASS] [["inserthtml","<a href=/>abc</a>"]] "<a href=.>f[o]o</a>" checks for modifications to non-editable content
 [FAIL] [["inserthtml","<a href=/>abc</a>"]] "<a href=.>f[o]o</a>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\".\">f</a><a href=\"/\">abc</a><a href=\".\">o</a>" but got "<a href=\".\">f<a href=\"/\">abc</a>o</a>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\".\\">f</a><a href=\\"/\\">abc</a><a href=\\".\\">o</a>" but got "<a href=\\".\\">f<a href=\\"/\\">abc</a>o</a>"
 [PASS] [["inserthtml","<a href=/>abc</a>"]] "<a href=.>f[o]o</a>" queryCommandIndeterm("inserthtml") before
 [PASS] [["inserthtml","<a href=/>abc</a>"]] "<a href=.>f[o]o</a>" queryCommandState("inserthtml") before
 [PASS] [["inserthtml","<a href=/>abc</a>"]] "<a href=.>f[o]o</a>" queryCommandValue("inserthtml") before
@@ -973,42 +973,42 @@
 [PASS] [["inserthtml","<ul><li>abc</ul>"]] "<ul><li>f[o]o</ul>" queryCommandIndeterm("inserthtml") after
 [PASS] [["inserthtml","<ul><li>abc</ul>"]] "<ul><li>f[o]o</ul>" queryCommandState("inserthtml") after
 [PASS] [["inserthtml","<ul><li>abc</ul>"]] "<ul><li>f[o]o</ul>" queryCommandValue("inserthtml") after
-[PASS] [["inserthtml","<ul id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ul>"]] "<ul id=\"old\"><li id=\"li0\">{}<br></ul>": execCommand("inserthtml", false, "<ul id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ul>") return value
-[PASS] [["inserthtml","<ul id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ul>"]] "<ul id=\"old\"><li id=\"li0\">{}<br></ul>" checks for modifications to non-editable content
-[PASS] [["inserthtml","<ul id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ul>"]] "<ul id=\"old\"><li id=\"li0\">{}<br></ul>" compare innerHTML
-[PASS] [["inserthtml","<ul id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ul>"]] "<ul id=\"old\"><li id=\"li0\">{}<br></ul>" queryCommandIndeterm("inserthtml") before
-[PASS] [["inserthtml","<ul id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ul>"]] "<ul id=\"old\"><li id=\"li0\">{}<br></ul>" queryCommandState("inserthtml") before
-[PASS] [["inserthtml","<ul id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ul>"]] "<ul id=\"old\"><li id=\"li0\">{}<br></ul>" queryCommandValue("inserthtml") before
-[PASS] [["inserthtml","<ul id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ul>"]] "<ul id=\"old\"><li id=\"li0\">{}<br></ul>" queryCommandIndeterm("inserthtml") after
-[PASS] [["inserthtml","<ul id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ul>"]] "<ul id=\"old\"><li id=\"li0\">{}<br></ul>" queryCommandState("inserthtml") after
-[PASS] [["inserthtml","<ul id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ul>"]] "<ul id=\"old\"><li id=\"li0\">{}<br></ul>" queryCommandValue("inserthtml") after
-[PASS] [["inserthtml","<ol id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ol>"]] "<ol id=\"old\"><li id=\"li0\">{}<br></ol>": execCommand("inserthtml", false, "<ol id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ol>") return value
-[PASS] [["inserthtml","<ol id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ol>"]] "<ol id=\"old\"><li id=\"li0\">{}<br></ol>" checks for modifications to non-editable content
-[PASS] [["inserthtml","<ol id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ol>"]] "<ol id=\"old\"><li id=\"li0\">{}<br></ol>" compare innerHTML
-[PASS] [["inserthtml","<ol id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ol>"]] "<ol id=\"old\"><li id=\"li0\">{}<br></ol>" queryCommandIndeterm("inserthtml") before
-[PASS] [["inserthtml","<ol id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ol>"]] "<ol id=\"old\"><li id=\"li0\">{}<br></ol>" queryCommandState("inserthtml") before
-[PASS] [["inserthtml","<ol id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ol>"]] "<ol id=\"old\"><li id=\"li0\">{}<br></ol>" queryCommandValue("inserthtml") before
-[PASS] [["inserthtml","<ol id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ol>"]] "<ol id=\"old\"><li id=\"li0\">{}<br></ol>" queryCommandIndeterm("inserthtml") after
-[PASS] [["inserthtml","<ol id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ol>"]] "<ol id=\"old\"><li id=\"li0\">{}<br></ol>" queryCommandState("inserthtml") after
-[PASS] [["inserthtml","<ol id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ol>"]] "<ol id=\"old\"><li id=\"li0\">{}<br></ol>" queryCommandValue("inserthtml") after
-[PASS] [["inserthtml","<ol id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ol>"]] "<ul id=\"old\"><li id=\"li0\">{}<br></ul>": execCommand("inserthtml", false, "<ol id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ol>") return value
-[PASS] [["inserthtml","<ol id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ol>"]] "<ul id=\"old\"><li id=\"li0\">{}<br></ul>" checks for modifications to non-editable content
-[PASS] [["inserthtml","<ol id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ol>"]] "<ul id=\"old\"><li id=\"li0\">{}<br></ul>" compare innerHTML
-[PASS] [["inserthtml","<ol id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ol>"]] "<ul id=\"old\"><li id=\"li0\">{}<br></ul>" queryCommandIndeterm("inserthtml") before
-[PASS] [["inserthtml","<ol id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ol>"]] "<ul id=\"old\"><li id=\"li0\">{}<br></ul>" queryCommandState("inserthtml") before
-[PASS] [["inserthtml","<ol id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ol>"]] "<ul id=\"old\"><li id=\"li0\">{}<br></ul>" queryCommandValue("inserthtml") before
-[PASS] [["inserthtml","<ol id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ol>"]] "<ul id=\"old\"><li id=\"li0\">{}<br></ul>" queryCommandIndeterm("inserthtml") after
-[PASS] [["inserthtml","<ol id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ol>"]] "<ul id=\"old\"><li id=\"li0\">{}<br></ul>" queryCommandState("inserthtml") after
-[PASS] [["inserthtml","<ol id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ol>"]] "<ul id=\"old\"><li id=\"li0\">{}<br></ul>" queryCommandValue("inserthtml") after
-[PASS] [["inserthtml","<ul id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ul>"]] "<ol id=\"old\"><li id=\"li0\">{}<br></ol>": execCommand("inserthtml", false, "<ul id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ul>") return value
-[PASS] [["inserthtml","<ul id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ul>"]] "<ol id=\"old\"><li id=\"li0\">{}<br></ol>" checks for modifications to non-editable content
-[PASS] [["inserthtml","<ul id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ul>"]] "<ol id=\"old\"><li id=\"li0\">{}<br></ol>" compare innerHTML
-[PASS] [["inserthtml","<ul id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ul>"]] "<ol id=\"old\"><li id=\"li0\">{}<br></ol>" queryCommandIndeterm("inserthtml") before
-[PASS] [["inserthtml","<ul id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ul>"]] "<ol id=\"old\"><li id=\"li0\">{}<br></ol>" queryCommandState("inserthtml") before
-[PASS] [["inserthtml","<ul id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ul>"]] "<ol id=\"old\"><li id=\"li0\">{}<br></ol>" queryCommandValue("inserthtml") before
-[PASS] [["inserthtml","<ul id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ul>"]] "<ol id=\"old\"><li id=\"li0\">{}<br></ol>" queryCommandIndeterm("inserthtml") after
-[PASS] [["inserthtml","<ul id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ul>"]] "<ol id=\"old\"><li id=\"li0\">{}<br></ol>" queryCommandState("inserthtml") after
-[PASS] [["inserthtml","<ul id=\"new\"><li id=\"li1\">abc</li><li id=\"li2\">def</li></ul>"]] "<ol id=\"old\"><li id=\"li0\">{}<br></ol>" queryCommandValue("inserthtml") after
+[PASS] [["inserthtml","<ul id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ul>"]] "<ul id=\\"old\\"><li id=\\"li0\\">{}<br></ul>": execCommand("inserthtml", false, "<ul id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ul>") return value
+[PASS] [["inserthtml","<ul id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ul>"]] "<ul id=\\"old\\"><li id=\\"li0\\">{}<br></ul>" checks for modifications to non-editable content
+[PASS] [["inserthtml","<ul id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ul>"]] "<ul id=\\"old\\"><li id=\\"li0\\">{}<br></ul>" compare innerHTML
+[PASS] [["inserthtml","<ul id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ul>"]] "<ul id=\\"old\\"><li id=\\"li0\\">{}<br></ul>" queryCommandIndeterm("inserthtml") before
+[PASS] [["inserthtml","<ul id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ul>"]] "<ul id=\\"old\\"><li id=\\"li0\\">{}<br></ul>" queryCommandState("inserthtml") before
+[PASS] [["inserthtml","<ul id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ul>"]] "<ul id=\\"old\\"><li id=\\"li0\\">{}<br></ul>" queryCommandValue("inserthtml") before
+[PASS] [["inserthtml","<ul id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ul>"]] "<ul id=\\"old\\"><li id=\\"li0\\">{}<br></ul>" queryCommandIndeterm("inserthtml") after
+[PASS] [["inserthtml","<ul id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ul>"]] "<ul id=\\"old\\"><li id=\\"li0\\">{}<br></ul>" queryCommandState("inserthtml") after
+[PASS] [["inserthtml","<ul id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ul>"]] "<ul id=\\"old\\"><li id=\\"li0\\">{}<br></ul>" queryCommandValue("inserthtml") after
+[PASS] [["inserthtml","<ol id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ol>"]] "<ol id=\\"old\\"><li id=\\"li0\\">{}<br></ol>": execCommand("inserthtml", false, "<ol id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ol>") return value
+[PASS] [["inserthtml","<ol id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ol>"]] "<ol id=\\"old\\"><li id=\\"li0\\">{}<br></ol>" checks for modifications to non-editable content
+[PASS] [["inserthtml","<ol id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ol>"]] "<ol id=\\"old\\"><li id=\\"li0\\">{}<br></ol>" compare innerHTML
+[PASS] [["inserthtml","<ol id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ol>"]] "<ol id=\\"old\\"><li id=\\"li0\\">{}<br></ol>" queryCommandIndeterm("inserthtml") before
+[PASS] [["inserthtml","<ol id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ol>"]] "<ol id=\\"old\\"><li id=\\"li0\\">{}<br></ol>" queryCommandState("inserthtml") before
+[PASS] [["inserthtml","<ol id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ol>"]] "<ol id=\\"old\\"><li id=\\"li0\\">{}<br></ol>" queryCommandValue("inserthtml") before
+[PASS] [["inserthtml","<ol id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ol>"]] "<ol id=\\"old\\"><li id=\\"li0\\">{}<br></ol>" queryCommandIndeterm("inserthtml") after
+[PASS] [["inserthtml","<ol id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ol>"]] "<ol id=\\"old\\"><li id=\\"li0\\">{}<br></ol>" queryCommandState("inserthtml") after
+[PASS] [["inserthtml","<ol id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ol>"]] "<ol id=\\"old\\"><li id=\\"li0\\">{}<br></ol>" queryCommandValue("inserthtml") after
+[PASS] [["inserthtml","<ol id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ol>"]] "<ul id=\\"old\\"><li id=\\"li0\\">{}<br></ul>": execCommand("inserthtml", false, "<ol id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ol>") return value
+[PASS] [["inserthtml","<ol id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ol>"]] "<ul id=\\"old\\"><li id=\\"li0\\">{}<br></ul>" checks for modifications to non-editable content
+[PASS] [["inserthtml","<ol id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ol>"]] "<ul id=\\"old\\"><li id=\\"li0\\">{}<br></ul>" compare innerHTML
+[PASS] [["inserthtml","<ol id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ol>"]] "<ul id=\\"old\\"><li id=\\"li0\\">{}<br></ul>" queryCommandIndeterm("inserthtml") before
+[PASS] [["inserthtml","<ol id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ol>"]] "<ul id=\\"old\\"><li id=\\"li0\\">{}<br></ul>" queryCommandState("inserthtml") before
+[PASS] [["inserthtml","<ol id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ol>"]] "<ul id=\\"old\\"><li id=\\"li0\\">{}<br></ul>" queryCommandValue("inserthtml") before
+[PASS] [["inserthtml","<ol id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ol>"]] "<ul id=\\"old\\"><li id=\\"li0\\">{}<br></ul>" queryCommandIndeterm("inserthtml") after
+[PASS] [["inserthtml","<ol id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ol>"]] "<ul id=\\"old\\"><li id=\\"li0\\">{}<br></ul>" queryCommandState("inserthtml") after
+[PASS] [["inserthtml","<ol id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ol>"]] "<ul id=\\"old\\"><li id=\\"li0\\">{}<br></ul>" queryCommandValue("inserthtml") after
+[PASS] [["inserthtml","<ul id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ul>"]] "<ol id=\\"old\\"><li id=\\"li0\\">{}<br></ol>": execCommand("inserthtml", false, "<ul id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ul>") return value
+[PASS] [["inserthtml","<ul id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ul>"]] "<ol id=\\"old\\"><li id=\\"li0\\">{}<br></ol>" checks for modifications to non-editable content
+[PASS] [["inserthtml","<ul id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ul>"]] "<ol id=\\"old\\"><li id=\\"li0\\">{}<br></ol>" compare innerHTML
+[PASS] [["inserthtml","<ul id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ul>"]] "<ol id=\\"old\\"><li id=\\"li0\\">{}<br></ol>" queryCommandIndeterm("inserthtml") before
+[PASS] [["inserthtml","<ul id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ul>"]] "<ol id=\\"old\\"><li id=\\"li0\\">{}<br></ol>" queryCommandState("inserthtml") before
+[PASS] [["inserthtml","<ul id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ul>"]] "<ol id=\\"old\\"><li id=\\"li0\\">{}<br></ol>" queryCommandValue("inserthtml") before
+[PASS] [["inserthtml","<ul id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ul>"]] "<ol id=\\"old\\"><li id=\\"li0\\">{}<br></ol>" queryCommandIndeterm("inserthtml") after
+[PASS] [["inserthtml","<ul id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ul>"]] "<ol id=\\"old\\"><li id=\\"li0\\">{}<br></ol>" queryCommandState("inserthtml") after
+[PASS] [["inserthtml","<ul id=\\"new\\"><li id=\\"li1\\">abc</li><li id=\\"li2\\">def</li></ul>"]] "<ol id=\\"old\\"><li id=\\"li0\\">{}<br></ol>" queryCommandValue("inserthtml") after
 [PASS] [["defaultparagraphseparator","div"],["inserthtml","<li>abc</li>"]] "f[o]o": execCommand("defaultparagraphseparator", false, "div") return value
 [PASS] [["defaultparagraphseparator","div"],["inserthtml","<li>abc</li>"]] "f[o]o": execCommand("inserthtml", false, "<li>abc</li>") return value
 [PASS] [["defaultparagraphseparator","div"],["inserthtml","<li>abc</li>"]] "f[o]o" checks for modifications to non-editable content
@@ -1067,7 +1067,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>": execCommand("inserthtml", false, "<p>abc") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font color=\"blue\">foo</font><p><span style=\"color:rgb(0, 0, 255)\">abc</span></p><font color=\"blue\">bar</font>" but got "<font color=\"blue\">foo</font>abc<span style=\"color:rgb(0, 0, 255)\">bar</span><br>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font color=\\"blue\\">foo</font><p><span style=\\"color:rgb(0, 0, 255)\\">abc</span></p><font color=\\"blue\\">bar</font>" but got "<font color=\\"blue\\">foo</font>abc<span style=\\"color:rgb(0, 0, 255)\\">bar</span><br>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>" queryCommandValue("stylewithcss") before
@@ -1091,7 +1091,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>": execCommand("inserthtml", false, "<p>abc") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font color=\"blue\">foo</font><p><font color=\"#0000ff\">abc</font></p><font color=\"blue\">bar</font>" but got "<font color=\"blue\">foo</font>abc<span style=\"color:rgb(0, 0, 255)\">bar</span><br>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font color=\\"blue\\">foo</font><p><font color=\\"#0000ff\\">abc</font></p><font color=\\"blue\\">bar</font>" but got "<font color=\\"blue\\">foo</font>abc<span style=\\"color:rgb(0, 0, 255)\\">bar</span><br>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>" queryCommandValue("stylewithcss") before
@@ -1115,7 +1115,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>": execCommand("inserthtml", false, "<p>abc") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font color=\"blue\">foo</font><p><span style=\"color:rgb(0, 0, 255)\">abc</span></p><font color=\"blue\">bar</font>" but got "<font color=\"blue\">foo</font>abc<span style=\"color:rgb(0, 0, 255)\">bar</span><br>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font color=\\"blue\\">foo</font><p><span style=\\"color:rgb(0, 0, 255)\\">abc</span></p><font color=\\"blue\\">bar</font>" but got "<font color=\\"blue\\">foo</font>abc<span style=\\"color:rgb(0, 0, 255)\\">bar</span><br>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>" queryCommandValue("stylewithcss") before
@@ -1139,7 +1139,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>": execCommand("inserthtml", false, "<p>abc") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font color=\"blue\">foo</font><p><font color=\"#0000ff\">abc</font></p><font color=\"blue\">bar</font>" but got "<font color=\"blue\">foo</font>abc<span style=\"color:rgb(0, 0, 255)\">bar</span><br>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<font color=\\"blue\\">foo</font><p><font color=\\"#0000ff\\">abc</font></p><font color=\\"blue\\">bar</font>" but got "<font color=\\"blue\\">foo</font>abc<span style=\\"color:rgb(0, 0, 255)\\">bar</span><br>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<font color=blue>foo[]bar</font>" queryCommandValue("stylewithcss") before
@@ -1163,7 +1163,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>": execCommand("inserthtml", false, "<p>abc") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"color:rgb(0, 0, 255)\">foo</span><p><span style=\"color:rgb(0, 0, 255)\">abc</span></p><span style=\"color:rgb(0, 0, 255)\">bar</span>" but got "<span style=\"color:rgb(0, 0, 255)\">foo</span>abc<span style=\"color:rgb(0, 0, 255)\">bar</span><br>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><p><span style=\\"color:rgb(0, 0, 255)\\">abc</span></p><span style=\\"color:rgb(0, 0, 255)\\">bar</span>" but got "<span style=\\"color:rgb(0, 0, 255)\\">foo</span>abc<span style=\\"color:rgb(0, 0, 255)\\">bar</span><br>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>" queryCommandValue("stylewithcss") before
@@ -1187,7 +1187,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>": execCommand("inserthtml", false, "<p>abc") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"color:rgb(0, 0, 255)\">foo</span><p><font color=\"#0000ff\">abc</font></p><span style=\"color:rgb(0, 0, 255)\">bar</span>" but got "<span style=\"color:rgb(0, 0, 255)\">foo</span>abc<span style=\"color:rgb(0, 0, 255)\">bar</span><br>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><p><font color=\\"#0000ff\\">abc</font></p><span style=\\"color:rgb(0, 0, 255)\\">bar</span>" but got "<span style=\\"color:rgb(0, 0, 255)\\">foo</span>abc<span style=\\"color:rgb(0, 0, 255)\\">bar</span><br>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>" queryCommandValue("stylewithcss") before
@@ -1211,7 +1211,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>": execCommand("inserthtml", false, "<p>abc") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"color:rgb(0, 0, 255)\">foo</span><p><span style=\"color:rgb(0, 0, 255)\">abc</span></p><span style=\"color:rgb(0, 0, 255)\">bar</span>" but got "<span style=\"color:rgb(0, 0, 255)\">foo</span>abc<span style=\"color:rgb(0, 0, 255)\">bar</span><br>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><p><span style=\\"color:rgb(0, 0, 255)\\">abc</span></p><span style=\\"color:rgb(0, 0, 255)\\">bar</span>" but got "<span style=\\"color:rgb(0, 0, 255)\\">foo</span>abc<span style=\\"color:rgb(0, 0, 255)\\">bar</span><br>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>" queryCommandValue("stylewithcss") before
@@ -1235,7 +1235,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>": execCommand("inserthtml", false, "<p>abc") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"color:rgb(0, 0, 255)\">foo</span><p><font color=\"#0000ff\">abc</font></p><span style=\"color:rgb(0, 0, 255)\">bar</span>" but got "<span style=\"color:rgb(0, 0, 255)\">foo</span>abc<span style=\"color:rgb(0, 0, 255)\">bar</span><br>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><p><font color=\\"#0000ff\\">abc</font></p><span style=\\"color:rgb(0, 0, 255)\\">bar</span>" but got "<span style=\\"color:rgb(0, 0, 255)\\">foo</span>abc<span style=\\"color:rgb(0, 0, 255)\\">bar</span><br>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=color:blue>foo[]bar</span>" queryCommandValue("stylewithcss") before
@@ -1259,7 +1259,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>": execCommand("inserthtml", false, "<p>abc") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-variant:small-caps\">foo</span><p>abc</p><span style=\"font-variant:small-caps\">bar</span>" but got "<span style=\"font-variant:small-caps\">fooabcbar<br></span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-variant:small-caps\\">foo</span><p>abc</p><span style=\\"font-variant:small-caps\\">bar</span>" but got "<span style=\\"font-variant:small-caps\\">fooabcbar<br></span>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>" queryCommandValue("stylewithcss") before
@@ -1283,7 +1283,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>": execCommand("inserthtml", false, "<p>abc") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-variant:small-caps\">foo</span><p>abc</p><span style=\"font-variant:small-caps\">bar</span>" but got "<span style=\"font-variant:small-caps\">fooabcbar<br></span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-variant:small-caps\\">foo</span><p>abc</p><span style=\\"font-variant:small-caps\\">bar</span>" but got "<span style=\\"font-variant:small-caps\\">fooabcbar<br></span>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>" queryCommandValue("stylewithcss") before
@@ -1307,7 +1307,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>": execCommand("inserthtml", false, "<p>abc") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-variant:small-caps\">foo</span><p>abc</p><span style=\"font-variant:small-caps\">bar</span>" but got "<span style=\"font-variant:small-caps\">fooabcbar<br></span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-variant:small-caps\\">foo</span><p>abc</p><span style=\\"font-variant:small-caps\\">bar</span>" but got "<span style=\\"font-variant:small-caps\\">fooabcbar<br></span>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>" queryCommandValue("stylewithcss") before
@@ -1331,7 +1331,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>": execCommand("inserthtml", false, "<p>abc") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-variant:small-caps\">foo</span><p>abc</p><span style=\"font-variant:small-caps\">bar</span>" but got "<span style=\"font-variant:small-caps\">fooabcbar<br></span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-variant:small-caps\\">foo</span><p>abc</p><span style=\\"font-variant:small-caps\\">bar</span>" but got "<span style=\\"font-variant:small-caps\\">fooabcbar<br></span>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["inserthtml","<p>abc"]] "<span style=font-variant:small-caps>foo[]bar</span>" queryCommandValue("stylewithcss") before
@@ -1542,16 +1542,16 @@
 [PASS] [["inserthtml","<pre>abc</pre>"]] "<pre>[1234]</pre>" queryCommandIndeterm("inserthtml") after
 [PASS] [["inserthtml","<pre>abc</pre>"]] "<pre>[1234]</pre>" queryCommandState("inserthtml") after
 [PASS] [["inserthtml","<pre>abc</pre>"]] "<pre>[1234]</pre>" queryCommandValue("inserthtml") after
-[PASS] [["inserthtml","<pre>abc</pre>"]] "<pre contenteditable=\"false\"><span contenteditable>[1234]</span></pre>": execCommand("inserthtml", false, "<pre>abc</pre>") return value
-[PASS] [["inserthtml","<pre>abc</pre>"]] "<pre contenteditable=\"false\"><span contenteditable>[1234]</span></pre>" checks for modifications to non-editable content
-[FAIL] [["inserthtml","<pre>abc</pre>"]] "<pre contenteditable=\"false\"><span contenteditable>[1234]</span></pre>" compare innerHTML
-  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<pre contenteditable=\"false\"><span contenteditable=\"\"><pre>abc</pre></span></pre>" not in array ["<pre contenteditable=\"false\"><span contenteditable=\"\">abc</span></pre>", "<pre contenteditable=\"false\"><span contenteditable=\"\">abc<br></span></pre>"]
-[PASS] [["inserthtml","<pre>abc</pre>"]] "<pre contenteditable=\"false\"><span contenteditable>[1234]</span></pre>" queryCommandIndeterm("inserthtml") before
-[PASS] [["inserthtml","<pre>abc</pre>"]] "<pre contenteditable=\"false\"><span contenteditable>[1234]</span></pre>" queryCommandState("inserthtml") before
-[PASS] [["inserthtml","<pre>abc</pre>"]] "<pre contenteditable=\"false\"><span contenteditable>[1234]</span></pre>" queryCommandValue("inserthtml") before
-[PASS] [["inserthtml","<pre>abc</pre>"]] "<pre contenteditable=\"false\"><span contenteditable>[1234]</span></pre>" queryCommandIndeterm("inserthtml") after
-[PASS] [["inserthtml","<pre>abc</pre>"]] "<pre contenteditable=\"false\"><span contenteditable>[1234]</span></pre>" queryCommandState("inserthtml") after
-[PASS] [["inserthtml","<pre>abc</pre>"]] "<pre contenteditable=\"false\"><span contenteditable>[1234]</span></pre>" queryCommandValue("inserthtml") after
+[PASS] [["inserthtml","<pre>abc</pre>"]] "<pre contenteditable=\\"false\\"><span contenteditable>[1234]</span></pre>": execCommand("inserthtml", false, "<pre>abc</pre>") return value
+[PASS] [["inserthtml","<pre>abc</pre>"]] "<pre contenteditable=\\"false\\"><span contenteditable>[1234]</span></pre>" checks for modifications to non-editable content
+[FAIL] [["inserthtml","<pre>abc</pre>"]] "<pre contenteditable=\\"false\\"><span contenteditable>[1234]</span></pre>" compare innerHTML
+  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<pre contenteditable=\\"false\\"><span contenteditable=\\"\\"><pre>abc</pre></span></pre>" not in array ["<pre contenteditable=\\"false\\"><span contenteditable=\\"\\">abc</span></pre>", "<pre contenteditable=\\"false\\"><span contenteditable=\\"\\">abc<br></span></pre>"]
+[PASS] [["inserthtml","<pre>abc</pre>"]] "<pre contenteditable=\\"false\\"><span contenteditable>[1234]</span></pre>" queryCommandIndeterm("inserthtml") before
+[PASS] [["inserthtml","<pre>abc</pre>"]] "<pre contenteditable=\\"false\\"><span contenteditable>[1234]</span></pre>" queryCommandState("inserthtml") before
+[PASS] [["inserthtml","<pre>abc</pre>"]] "<pre contenteditable=\\"false\\"><span contenteditable>[1234]</span></pre>" queryCommandValue("inserthtml") before
+[PASS] [["inserthtml","<pre>abc</pre>"]] "<pre contenteditable=\\"false\\"><span contenteditable>[1234]</span></pre>" queryCommandIndeterm("inserthtml") after
+[PASS] [["inserthtml","<pre>abc</pre>"]] "<pre contenteditable=\\"false\\"><span contenteditable>[1234]</span></pre>" queryCommandState("inserthtml") after
+[PASS] [["inserthtml","<pre>abc</pre>"]] "<pre contenteditable=\\"false\\"><span contenteditable>[1234]</span></pre>" queryCommandValue("inserthtml") after
 [PASS] [["inserthtml","<span></span>"]] "<div>a[]b</div>": execCommand("inserthtml", false, "<span></span>") return value
 [PASS] [["inserthtml","<span></span>"]] "<div>a[]b</div>" checks for modifications to non-editable content
 [FAIL] [["inserthtml","<span></span>"]] "<div>a[]b</div>" compare innerHTML
@@ -1562,24 +1562,24 @@
 [PASS] [["inserthtml","<span></span>"]] "<div>a[]b</div>" queryCommandIndeterm("inserthtml") after
 [PASS] [["inserthtml","<span></span>"]] "<div>a[]b</div>" queryCommandState("inserthtml") after
 [PASS] [["inserthtml","<span></span>"]] "<div>a[]b</div>" queryCommandValue("inserthtml") after
-[PASS] [["inserthtml","<span class=\"s1\"></span>b<span class=\"s2\"></span>"]] "<div>a[]c</div>": execCommand("inserthtml", false, "<span class=\"s1\"></span>b<span class=\"s2\"></span>") return value
-[PASS] [["inserthtml","<span class=\"s1\"></span>b<span class=\"s2\"></span>"]] "<div>a[]c</div>" checks for modifications to non-editable content
-[FAIL] [["inserthtml","<span class=\"s1\"></span>b<span class=\"s2\"></span>"]] "<div>a[]c</div>" compare innerHTML
-  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div>ab</div><span class=\"s1\"></span><span class=\"s2\"></span><div>c<br></div>" not in array ["<div>a<span class=\"s1\"></span>b<span class=\"s2\"></span>c</div>", "<div>a<span class=\"s1\"></span>b<span class=\"s2\"></span>c<br></div>"]
-[PASS] [["inserthtml","<span class=\"s1\"></span>b<span class=\"s2\"></span>"]] "<div>a[]c</div>" queryCommandIndeterm("inserthtml") before
-[PASS] [["inserthtml","<span class=\"s1\"></span>b<span class=\"s2\"></span>"]] "<div>a[]c</div>" queryCommandState("inserthtml") before
-[PASS] [["inserthtml","<span class=\"s1\"></span>b<span class=\"s2\"></span>"]] "<div>a[]c</div>" queryCommandValue("inserthtml") before
-[PASS] [["inserthtml","<span class=\"s1\"></span>b<span class=\"s2\"></span>"]] "<div>a[]c</div>" queryCommandIndeterm("inserthtml") after
-[PASS] [["inserthtml","<span class=\"s1\"></span>b<span class=\"s2\"></span>"]] "<div>a[]c</div>" queryCommandState("inserthtml") after
-[PASS] [["inserthtml","<span class=\"s1\"></span>b<span class=\"s2\"></span>"]] "<div>a[]c</div>" queryCommandValue("inserthtml") after
-[PASS] [["inserthtml","<div class=\"d1\"></div><div class=\"d2\"><span class=\"s1\">some text</span><a href=\"foo.html\"></a></div>"]] "{}": execCommand("inserthtml", false, "<div class=\"d1\"></div><div class=\"d2\"><span class=\"s1\">some text</span><a href=\"foo.html\"></a></div>") return value
-[PASS] [["inserthtml","<div class=\"d1\"></div><div class=\"d2\"><span class=\"s1\">some text</span><a href=\"foo.html\"></a></div>"]] "{}" checks for modifications to non-editable content
-[PASS] [["inserthtml","<div class=\"d1\"></div><div class=\"d2\"><span class=\"s1\">some text</span><a href=\"foo.html\"></a></div>"]] "{}" compare innerHTML
-[PASS] [["inserthtml","<div class=\"d1\"></div><div class=\"d2\"><span class=\"s1\">some text</span><a href=\"foo.html\"></a></div>"]] "{}" queryCommandIndeterm("inserthtml") before
-[PASS] [["inserthtml","<div class=\"d1\"></div><div class=\"d2\"><span class=\"s1\">some text</span><a href=\"foo.html\"></a></div>"]] "{}" queryCommandState("inserthtml") before
-[PASS] [["inserthtml","<div class=\"d1\"></div><div class=\"d2\"><span class=\"s1\">some text</span><a href=\"foo.html\"></a></div>"]] "{}" queryCommandValue("inserthtml") before
-[PASS] [["inserthtml","<div class=\"d1\"></div><div class=\"d2\"><span class=\"s1\">some text</span><a href=\"foo.html\"></a></div>"]] "{}" queryCommandIndeterm("inserthtml") after
-[PASS] [["inserthtml","<div class=\"d1\"></div><div class=\"d2\"><span class=\"s1\">some text</span><a href=\"foo.html\"></a></div>"]] "{}" queryCommandState("inserthtml") after
-[PASS] [["inserthtml","<div class=\"d1\"></div><div class=\"d2\"><span class=\"s1\">some text</span><a href=\"foo.html\"></a></div>"]] "{}" queryCommandValue("inserthtml") after
+[PASS] [["inserthtml","<span class=\\"s1\\"></span>b<span class=\\"s2\\"></span>"]] "<div>a[]c</div>": execCommand("inserthtml", false, "<span class=\\"s1\\"></span>b<span class=\\"s2\\"></span>") return value
+[PASS] [["inserthtml","<span class=\\"s1\\"></span>b<span class=\\"s2\\"></span>"]] "<div>a[]c</div>" checks for modifications to non-editable content
+[FAIL] [["inserthtml","<span class=\\"s1\\"></span>b<span class=\\"s2\\"></span>"]] "<div>a[]c</div>" compare innerHTML
+  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div>ab</div><span class=\\"s1\\"></span><span class=\\"s2\\"></span><div>c<br></div>" not in array ["<div>a<span class=\\"s1\\"></span>b<span class=\\"s2\\"></span>c</div>", "<div>a<span class=\\"s1\\"></span>b<span class=\\"s2\\"></span>c<br></div>"]
+[PASS] [["inserthtml","<span class=\\"s1\\"></span>b<span class=\\"s2\\"></span>"]] "<div>a[]c</div>" queryCommandIndeterm("inserthtml") before
+[PASS] [["inserthtml","<span class=\\"s1\\"></span>b<span class=\\"s2\\"></span>"]] "<div>a[]c</div>" queryCommandState("inserthtml") before
+[PASS] [["inserthtml","<span class=\\"s1\\"></span>b<span class=\\"s2\\"></span>"]] "<div>a[]c</div>" queryCommandValue("inserthtml") before
+[PASS] [["inserthtml","<span class=\\"s1\\"></span>b<span class=\\"s2\\"></span>"]] "<div>a[]c</div>" queryCommandIndeterm("inserthtml") after
+[PASS] [["inserthtml","<span class=\\"s1\\"></span>b<span class=\\"s2\\"></span>"]] "<div>a[]c</div>" queryCommandState("inserthtml") after
+[PASS] [["inserthtml","<span class=\\"s1\\"></span>b<span class=\\"s2\\"></span>"]] "<div>a[]c</div>" queryCommandValue("inserthtml") after
+[PASS] [["inserthtml","<div class=\\"d1\\"></div><div class=\\"d2\\"><span class=\\"s1\\">some text</span><a href=\\"foo.html\\"></a></div>"]] "{}": execCommand("inserthtml", false, "<div class=\\"d1\\"></div><div class=\\"d2\\"><span class=\\"s1\\">some text</span><a href=\\"foo.html\\"></a></div>") return value
+[PASS] [["inserthtml","<div class=\\"d1\\"></div><div class=\\"d2\\"><span class=\\"s1\\">some text</span><a href=\\"foo.html\\"></a></div>"]] "{}" checks for modifications to non-editable content
+[PASS] [["inserthtml","<div class=\\"d1\\"></div><div class=\\"d2\\"><span class=\\"s1\\">some text</span><a href=\\"foo.html\\"></a></div>"]] "{}" compare innerHTML
+[PASS] [["inserthtml","<div class=\\"d1\\"></div><div class=\\"d2\\"><span class=\\"s1\\">some text</span><a href=\\"foo.html\\"></a></div>"]] "{}" queryCommandIndeterm("inserthtml") before
+[PASS] [["inserthtml","<div class=\\"d1\\"></div><div class=\\"d2\\"><span class=\\"s1\\">some text</span><a href=\\"foo.html\\"></a></div>"]] "{}" queryCommandState("inserthtml") before
+[PASS] [["inserthtml","<div class=\\"d1\\"></div><div class=\\"d2\\"><span class=\\"s1\\">some text</span><a href=\\"foo.html\\"></a></div>"]] "{}" queryCommandValue("inserthtml") before
+[PASS] [["inserthtml","<div class=\\"d1\\"></div><div class=\\"d2\\"><span class=\\"s1\\">some text</span><a href=\\"foo.html\\"></a></div>"]] "{}" queryCommandIndeterm("inserthtml") after
+[PASS] [["inserthtml","<div class=\\"d1\\"></div><div class=\\"d2\\"><span class=\\"s1\\">some text</span><a href=\\"foo.html\\"></a></div>"]] "{}" queryCommandState("inserthtml") after
+[PASS] [["inserthtml","<div class=\\"d1\\"></div><div class=\\"d2\\"><span class=\\"s1\\">some text</span><a href=\\"foo.html\\"></a></div>"]] "{}" queryCommandValue("inserthtml") after
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/insertimage-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/insertimage-expected.txt
index 76940829..1c776fa 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/insertimage-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/insertimage-expected.txt
@@ -21,7 +21,7 @@
 [PASS] [["insertimage","/img/lion.svg"]] "<span>foo[</span><span>]bar</span>": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["insertimage","/img/lion.svg"]] "<span>foo[</span><span>]bar</span>" checks for modifications to non-editable content
 [FAIL] [["insertimage","/img/lion.svg"]] "<span>foo[</span><span>]bar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span>foo<img src=\"/img/lion.svg\"></span><span>bar</span>" but got "<span>foo</span><img src=\"/img/lion.svg\"><span>bar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span>foo<img src=\\"/img/lion.svg\\"></span><span>bar</span>" but got "<span>foo</span><img src=\\"/img/lion.svg\\"><span>bar</span>"
 [PASS] [["insertimage","/img/lion.svg"]] "<span>foo[</span><span>]bar</span>" queryCommandIndeterm("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "<span>foo[</span><span>]bar</span>" queryCommandState("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "<span>foo[</span><span>]bar</span>" queryCommandValue("insertimage") before
@@ -51,7 +51,7 @@
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar]</span>baz": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar]</span>baz" checks for modifications to non-editable content
 [FAIL] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar]</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"color:rgb(171, 205, 239)\"><img src=\"/img/lion.svg\"></span>baz" but got "foo<img src=\"/img/lion.svg\">baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"color:rgb(171, 205, 239)\\"><img src=\\"/img/lion.svg\\"></span>baz" but got "foo<img src=\\"/img/lion.svg\\">baz"
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar]</span>baz" queryCommandIndeterm("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar]</span>baz" queryCommandState("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar]</span>baz" queryCommandValue("insertimage") before
@@ -61,7 +61,7 @@
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>{bar}</span>baz": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>{bar}</span>baz" checks for modifications to non-editable content
 [FAIL] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>{bar}</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"color:rgb(171, 205, 239)\"><img src=\"/img/lion.svg\"></span>baz" but got "foo<img src=\"/img/lion.svg\">baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"color:rgb(171, 205, 239)\\"><img src=\\"/img/lion.svg\\"></span>baz" but got "foo<img src=\\"/img/lion.svg\\">baz"
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>{bar}</span>baz" queryCommandIndeterm("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>{bar}</span>baz" queryCommandState("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>{bar}</span>baz" queryCommandValue("insertimage") before
@@ -71,7 +71,7 @@
 [PASS] [["insertimage","/img/lion.svg"]] "foo{<span style=color:#aBcDeF>bar</span>}baz": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["insertimage","/img/lion.svg"]] "foo{<span style=color:#aBcDeF>bar</span>}baz" checks for modifications to non-editable content
 [FAIL] [["insertimage","/img/lion.svg"]] "foo{<span style=color:#aBcDeF>bar</span>}baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"color:rgb(171, 205, 239)\"><img src=\"/img/lion.svg\"></span>baz" but got "foo<img src=\"/img/lion.svg\">baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"color:rgb(171, 205, 239)\\"><img src=\\"/img/lion.svg\\"></span>baz" but got "foo<img src=\\"/img/lion.svg\\">baz"
 [PASS] [["insertimage","/img/lion.svg"]] "foo{<span style=color:#aBcDeF>bar</span>}baz" queryCommandIndeterm("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "foo{<span style=color:#aBcDeF>bar</span>}baz" queryCommandState("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "foo{<span style=color:#aBcDeF>bar</span>}baz" queryCommandValue("insertimage") before
@@ -146,7 +146,7 @@
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar</span>baz]": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar</span>baz]" checks for modifications to non-editable content
 [FAIL] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar</span>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"color:rgb(171, 205, 239)\"><img src=\"/img/lion.svg\"></span>" but got "foo<img src=\"/img/lion.svg\">"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"color:rgb(171, 205, 239)\\"><img src=\\"/img/lion.svg\\"></span>" but got "foo<img src=\\"/img/lion.svg\\">"
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar</span>baz]" queryCommandIndeterm("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar</span>baz]" queryCommandState("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar</span>baz]" queryCommandValue("insertimage") before
@@ -156,7 +156,7 @@
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>{bar</span>baz}": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>{bar</span>baz}" checks for modifications to non-editable content
 [FAIL] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>{bar</span>baz}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"color:rgb(171, 205, 239)\"><img src=\"/img/lion.svg\"></span>" but got "foo<img src=\"/img/lion.svg\">"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"color:rgb(171, 205, 239)\\"><img src=\\"/img/lion.svg\\"></span>" but got "foo<img src=\\"/img/lion.svg\\">"
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>{bar</span>baz}" queryCommandIndeterm("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>{bar</span>baz}" queryCommandState("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>{bar</span>baz}" queryCommandValue("insertimage") before
@@ -167,7 +167,7 @@
 [PASS] [["stylewithcss","true"],["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["stylewithcss","true"],["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"color:rgb(171, 205, 239)\"><img src=\"/img/lion.svg\"></span>quz" but got "foo<img src=\"/img/lion.svg\">quz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"color:rgb(171, 205, 239)\\"><img src=\\"/img/lion.svg\\"></span>quz" but got "foo<img src=\\"/img/lion.svg\\">quz"
 [PASS] [["stylewithcss","true"],["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz" queryCommandValue("stylewithcss") before
@@ -184,7 +184,7 @@
 [PASS] [["stylewithcss","false"],["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["stylewithcss","false"],["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"color:rgb(171, 205, 239)\"><img src=\"/img/lion.svg\"></span>quz" but got "foo<img src=\"/img/lion.svg\">quz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"color:rgb(171, 205, 239)\\"><img src=\\"/img/lion.svg\\"></span>quz" but got "foo<img src=\\"/img/lion.svg\\">quz"
 [PASS] [["stylewithcss","false"],["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["insertimage","/img/lion.svg"]] "foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz" queryCommandValue("stylewithcss") before
@@ -200,7 +200,7 @@
 [PASS] [["insertimage","/img/lion.svg"]] "foo<b>[bar]</b>baz": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["insertimage","/img/lion.svg"]] "foo<b>[bar]</b>baz" checks for modifications to non-editable content
 [FAIL] [["insertimage","/img/lion.svg"]] "foo<b>[bar]</b>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<b><img src=\"/img/lion.svg\"></b>baz" but got "foo<img src=\"/img/lion.svg\">baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<b><img src=\\"/img/lion.svg\\"></b>baz" but got "foo<img src=\\"/img/lion.svg\\">baz"
 [PASS] [["insertimage","/img/lion.svg"]] "foo<b>[bar]</b>baz" queryCommandIndeterm("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "foo<b>[bar]</b>baz" queryCommandState("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "foo<b>[bar]</b>baz" queryCommandValue("insertimage") before
@@ -210,7 +210,7 @@
 [PASS] [["insertimage","/img/lion.svg"]] "foo<b>{bar}</b>baz": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["insertimage","/img/lion.svg"]] "foo<b>{bar}</b>baz" checks for modifications to non-editable content
 [FAIL] [["insertimage","/img/lion.svg"]] "foo<b>{bar}</b>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<b><img src=\"/img/lion.svg\"></b>baz" but got "foo<img src=\"/img/lion.svg\">baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<b><img src=\\"/img/lion.svg\\"></b>baz" but got "foo<img src=\\"/img/lion.svg\\">baz"
 [PASS] [["insertimage","/img/lion.svg"]] "foo<b>{bar}</b>baz" queryCommandIndeterm("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "foo<b>{bar}</b>baz" queryCommandState("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "foo<b>{bar}</b>baz" queryCommandValue("insertimage") before
@@ -220,7 +220,7 @@
 [PASS] [["insertimage","/img/lion.svg"]] "foo{<b>bar</b>}baz": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["insertimage","/img/lion.svg"]] "foo{<b>bar</b>}baz" checks for modifications to non-editable content
 [FAIL] [["insertimage","/img/lion.svg"]] "foo{<b>bar</b>}baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<b><img src=\"/img/lion.svg\"></b>baz" but got "foo<img src=\"/img/lion.svg\">baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<b><img src=\\"/img/lion.svg\\"></b>baz" but got "foo<img src=\\"/img/lion.svg\\">baz"
 [PASS] [["insertimage","/img/lion.svg"]] "foo{<b>bar</b>}baz" queryCommandIndeterm("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "foo{<b>bar</b>}baz" queryCommandState("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "foo{<b>bar</b>}baz" queryCommandValue("insertimage") before
@@ -230,7 +230,7 @@
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span>[bar]</span>baz": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span>[bar]</span>baz" checks for modifications to non-editable content
 [FAIL] [["insertimage","/img/lion.svg"]] "foo<span>[bar]</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span><img src=\"/img/lion.svg\"></span>baz" but got "foo<img src=\"/img/lion.svg\">baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span><img src=\\"/img/lion.svg\\"></span>baz" but got "foo<img src=\\"/img/lion.svg\\">baz"
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span>[bar]</span>baz" queryCommandIndeterm("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span>[bar]</span>baz" queryCommandState("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span>[bar]</span>baz" queryCommandValue("insertimage") before
@@ -240,7 +240,7 @@
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span>{bar}</span>baz": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span>{bar}</span>baz" checks for modifications to non-editable content
 [FAIL] [["insertimage","/img/lion.svg"]] "foo<span>{bar}</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span><img src=\"/img/lion.svg\"></span>baz" but got "foo<img src=\"/img/lion.svg\">baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span><img src=\\"/img/lion.svg\\"></span>baz" but got "foo<img src=\\"/img/lion.svg\\">baz"
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span>{bar}</span>baz" queryCommandIndeterm("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span>{bar}</span>baz" queryCommandState("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "foo<span>{bar}</span>baz" queryCommandValue("insertimage") before
@@ -250,7 +250,7 @@
 [PASS] [["insertimage","/img/lion.svg"]] "foo{<span>bar</span>}baz": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["insertimage","/img/lion.svg"]] "foo{<span>bar</span>}baz" checks for modifications to non-editable content
 [FAIL] [["insertimage","/img/lion.svg"]] "foo{<span>bar</span>}baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span><img src=\"/img/lion.svg\"></span>baz" but got "foo<img src=\"/img/lion.svg\">baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span><img src=\\"/img/lion.svg\\"></span>baz" but got "foo<img src=\\"/img/lion.svg\\">baz"
 [PASS] [["insertimage","/img/lion.svg"]] "foo{<span>bar</span>}baz" queryCommandIndeterm("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "foo{<span>bar</span>}baz" queryCommandState("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "foo{<span>bar</span>}baz" queryCommandValue("insertimage") before
@@ -260,7 +260,7 @@
 [PASS] [["insertimage","/img/lion.svg"]] "<b>foo[bar</b><i>baz]quz</i>": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["insertimage","/img/lion.svg"]] "<b>foo[bar</b><i>baz]quz</i>" checks for modifications to non-editable content
 [FAIL] [["insertimage","/img/lion.svg"]] "<b>foo[bar</b><i>baz]quz</i>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foo<img src=\"/img/lion.svg\"></b><i>quz</i>" but got "<b>foo</b><img src=\"/img/lion.svg\"><i>quz</i>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foo<img src=\\"/img/lion.svg\\"></b><i>quz</i>" but got "<b>foo</b><img src=\\"/img/lion.svg\\"><i>quz</i>"
 [PASS] [["insertimage","/img/lion.svg"]] "<b>foo[bar</b><i>baz]quz</i>" queryCommandIndeterm("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "<b>foo[bar</b><i>baz]quz</i>" queryCommandState("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "<b>foo[bar</b><i>baz]quz</i>" queryCommandValue("insertimage") before
@@ -270,7 +270,7 @@
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo</p><p>[bar]</p><p>baz</p>": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo</p><p>[bar]</p><p>baz</p>" checks for modifications to non-editable content
 [FAIL] [["insertimage","/img/lion.svg"]] "<p>foo</p><p>[bar]</p><p>baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><img src=\"/img/lion.svg\"></p><p>baz</p>" but got "<p>foo</p><p><img src=\"/img/lion.svg\"><br></p><p>baz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><img src=\\"/img/lion.svg\\"></p><p>baz</p>" but got "<p>foo</p><p><img src=\\"/img/lion.svg\\"><br></p><p>baz</p>"
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo</p><p>[bar]</p><p>baz</p>" queryCommandIndeterm("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo</p><p>[bar]</p><p>baz</p>" queryCommandState("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo</p><p>[bar]</p><p>baz</p>" queryCommandValue("insertimage") before
@@ -280,7 +280,7 @@
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo</p><p>{bar}</p><p>baz</p>": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo</p><p>{bar}</p><p>baz</p>" checks for modifications to non-editable content
 [FAIL] [["insertimage","/img/lion.svg"]] "<p>foo</p><p>{bar}</p><p>baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><img src=\"/img/lion.svg\"></p><p>baz</p>" but got "<p>foo</p><p><img src=\"/img/lion.svg\"><br></p><p>baz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><img src=\\"/img/lion.svg\\"></p><p>baz</p>" but got "<p>foo</p><p><img src=\\"/img/lion.svg\\"><br></p><p>baz</p>"
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo</p><p>{bar}</p><p>baz</p>" queryCommandIndeterm("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo</p><p>{bar}</p><p>baz</p>" queryCommandState("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo</p><p>{bar}</p><p>baz</p>" queryCommandValue("insertimage") before
@@ -291,7 +291,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<p>foo</p>{<p>bar</p>}<p>baz</p>": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<p>foo</p>{<p>bar</p>}<p>baz</p>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<p>foo</p>{<p>bar</p>}<p>baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><img src=\"/img/lion.svg\"><p>baz</p>" but got "<p>foo</p><p><img src=\"/img/lion.svg\">baz<br></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><img src=\\"/img/lion.svg\\"><p>baz</p>" but got "<p>foo</p><p><img src=\\"/img/lion.svg\\">baz<br></p>"
 [PASS] [["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<p>foo</p>{<p>bar</p>}<p>baz</p>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<p>foo</p>{<p>bar</p>}<p>baz</p>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<p>foo</p>{<p>bar</p>}<p>baz</p>" queryCommandValue("defaultparagraphseparator") before
@@ -308,7 +308,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<p>foo</p>{<p>bar</p>}<p>baz</p>": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<p>foo</p>{<p>bar</p>}<p>baz</p>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<p>foo</p>{<p>bar</p>}<p>baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><img src=\"/img/lion.svg\"><p>baz</p>" but got "<p>foo</p><p><img src=\"/img/lion.svg\">baz<br></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><img src=\\"/img/lion.svg\\"><p>baz</p>" but got "<p>foo</p><p><img src=\\"/img/lion.svg\\">baz<br></p>"
 [PASS] [["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<p>foo</p>{<p>bar</p>}<p>baz</p>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<p>foo</p>{<p>bar</p>}<p>baz</p>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<p>foo</p>{<p>bar</p>}<p>baz</p>" queryCommandValue("defaultparagraphseparator") before
@@ -559,7 +559,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<p>foo[bar<p style=color:blue>baz]quz": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<p>foo[bar<p style=color:blue>baz]quz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<p>foo[bar<p style=color:blue>baz]quz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<img src=\"/img/lion.svg\"><font color=\"#0000ff\">quz</font></p>" but got "<p>foo<img src=\"/img/lion.svg\"><span style=\"color:rgb(0, 0, 255)\">quz</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<img src=\\"/img/lion.svg\\"><font color=\\"#0000ff\\">quz</font></p>" but got "<p>foo<img src=\\"/img/lion.svg\\"><span style=\\"color:rgb(0, 0, 255)\\">quz</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<p>foo[bar<p style=color:blue>baz]quz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<p>foo[bar<p style=color:blue>baz]quz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<p>foo[bar<p style=color:blue>baz]quz" queryCommandValue("stylewithcss") before
@@ -606,7 +606,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<p>foo[bar<p style=color:blue>baz]quz": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<p>foo[bar<p style=color:blue>baz]quz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<p>foo[bar<p style=color:blue>baz]quz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<img src=\"/img/lion.svg\"><font color=\"#0000ff\">quz</font></p>" but got "<p>foo<img src=\"/img/lion.svg\"><span style=\"color:rgb(0, 0, 255)\">quz</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<img src=\\"/img/lion.svg\\"><font color=\\"#0000ff\\">quz</font></p>" but got "<p>foo<img src=\\"/img/lion.svg\\"><span style=\\"color:rgb(0, 0, 255)\\">quz</span></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<p>foo[bar<p style=color:blue>baz]quz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<p>foo[bar<p style=color:blue>baz]quz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<p>foo[bar<p style=color:blue>baz]quz" queryCommandValue("stylewithcss") before
@@ -661,7 +661,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<div><p>foo<p>[bar<p>baz]</div>": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<div><p>foo<p>[bar<p>baz]</div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<div><p>foo<p>[bar<p>baz]</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><p>foo</p><p><img src=\"/img/lion.svg\"></p></div>" but got "<p>foo</p><p><img src=\"/img/lion.svg\"><br></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><p>foo</p><p><img src=\\"/img/lion.svg\\"></p></div>" but got "<p>foo</p><p><img src=\\"/img/lion.svg\\"><br></p>"
 [PASS] [["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<div><p>foo<p>[bar<p>baz]</div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<div><p>foo<p>[bar<p>baz]</div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<div><p>foo<p>[bar<p>baz]</div>" queryCommandValue("defaultparagraphseparator") before
@@ -678,7 +678,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<div><p>foo<p>[bar<p>baz]</div>": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<div><p>foo<p>[bar<p>baz]</div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<div><p>foo<p>[bar<p>baz]</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><p>foo</p><p><img src=\"/img/lion.svg\"></p></div>" but got "<p>foo</p><p><img src=\"/img/lion.svg\"><br></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><p>foo</p><p><img src=\\"/img/lion.svg\\"></p></div>" but got "<p>foo</p><p><img src=\\"/img/lion.svg\\"><br></p>"
 [PASS] [["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<div><p>foo<p>[bar<p>baz]</div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<div><p>foo<p>[bar<p>baz]</div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<div><p>foo<p>[bar<p>baz]</div>" queryCommandValue("defaultparagraphseparator") before
@@ -736,7 +736,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<p>foo[</p><p>]bar<br>baz</p>": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<p>foo[</p><p>]bar<br>baz</p>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<p>foo[</p><p>]bar<br>baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<img src=\"/img/lion.svg\">bar<br>baz</p>" but got "<p>foo<img src=\"/img/lion.svg\">bar</p><p>baz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<img src=\\"/img/lion.svg\\">bar<br>baz</p>" but got "<p>foo<img src=\\"/img/lion.svg\\">bar</p><p>baz</p>"
 [PASS] [["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<p>foo[</p><p>]bar<br>baz</p>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<p>foo[</p><p>]bar<br>baz</p>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertimage","/img/lion.svg"]] "<p>foo[</p><p>]bar<br>baz</p>" queryCommandValue("defaultparagraphseparator") before
@@ -753,7 +753,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<p>foo[</p><p>]bar<br>baz</p>": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<p>foo[</p><p>]bar<br>baz</p>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<p>foo[</p><p>]bar<br>baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<img src=\"/img/lion.svg\">bar<br>baz</p>" but got "<p>foo<img src=\"/img/lion.svg\">bar</p><p>baz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<img src=\\"/img/lion.svg\\">bar<br>baz</p>" but got "<p>foo<img src=\\"/img/lion.svg\\">bar</p><p>baz</p>"
 [PASS] [["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<p>foo[</p><p>]bar<br>baz</p>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<p>foo[</p><p>]bar<br>baz</p>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertimage","/img/lion.svg"]] "<p>foo[</p><p>]bar<br>baz</p>" queryCommandValue("defaultparagraphseparator") before
@@ -842,7 +842,7 @@
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo[</p>]bar": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo[</p>]bar" checks for modifications to non-editable content
 [FAIL] [["insertimage","/img/lion.svg"]] "<p>foo[</p>]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<img src=\"/img/lion.svg\">bar</p>" but got "<p>foo<img src=\"/img/lion.svg\"></p>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<img src=\\"/img/lion.svg\\">bar</p>" but got "<p>foo<img src=\\"/img/lion.svg\\"></p>bar"
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo[</p>]bar" queryCommandIndeterm("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo[</p>]bar" queryCommandState("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo[</p>]bar" queryCommandValue("insertimage") before
@@ -852,7 +852,7 @@
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo[</p>]bar<br>baz": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo[</p>]bar<br>baz" checks for modifications to non-editable content
 [FAIL] [["insertimage","/img/lion.svg"]] "<p>foo[</p>]bar<br>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<img src=\"/img/lion.svg\">bar</p>baz" but got "<p>foo<img src=\"/img/lion.svg\"></p>bar<br>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<img src=\\"/img/lion.svg\\">bar</p>baz" but got "<p>foo<img src=\\"/img/lion.svg\\"></p>bar<br>baz"
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo[</p>]bar<br>baz" queryCommandIndeterm("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo[</p>]bar<br>baz" queryCommandState("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo[</p>]bar<br>baz" queryCommandValue("insertimage") before
@@ -862,7 +862,7 @@
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo[</p>]bar<p>baz</p>": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo[</p>]bar<p>baz</p>" checks for modifications to non-editable content
 [FAIL] [["insertimage","/img/lion.svg"]] "<p>foo[</p>]bar<p>baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<img src=\"/img/lion.svg\">bar</p><p>baz</p>" but got "<p>foo<img src=\"/img/lion.svg\"></p>bar<p>baz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<img src=\\"/img/lion.svg\\">bar</p><p>baz</p>" but got "<p>foo<img src=\\"/img/lion.svg\\"></p>bar<p>baz</p>"
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo[</p>]bar<p>baz</p>" queryCommandIndeterm("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo[</p>]bar<p>baz</p>" queryCommandState("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "<p>foo[</p>]bar<p>baz</p>" queryCommandValue("insertimage") before
@@ -954,7 +954,7 @@
 [PASS] [["insertimage","/img/lion.svg"]] "<div><p>foo</p>bar[</div>]baz": execCommand("insertimage", false, "/img/lion.svg") return value
 [PASS] [["insertimage","/img/lion.svg"]] "<div><p>foo</p>bar[</div>]baz" checks for modifications to non-editable content
 [FAIL] [["insertimage","/img/lion.svg"]] "<div><p>foo</p>bar[</div>]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><p>foo</p>bar<img src=\"/img/lion.svg\">baz</div>" but got "<div><p>foo</p>bar<img src=\"/img/lion.svg\"></div>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><p>foo</p>bar<img src=\\"/img/lion.svg\\">baz</div>" but got "<div><p>foo</p>bar<img src=\\"/img/lion.svg\\"></div>baz"
 [PASS] [["insertimage","/img/lion.svg"]] "<div><p>foo</p>bar[</div>]baz" queryCommandIndeterm("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "<div><p>foo</p>bar[</div>]baz" queryCommandState("insertimage") before
 [PASS] [["insertimage","/img/lion.svg"]] "<div><p>foo</p>bar[</div>]baz" queryCommandValue("insertimage") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/insertlinebreak-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/insertlinebreak-expected.txt
index 5e970c91..364ff42 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/insertlinebreak-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/insertlinebreak-expected.txt
@@ -393,7 +393,7 @@
 [PASS] [["insertlinebreak",""]] "<pre>[]foo</pre>": execCommand("insertlinebreak", false, "") return value
 [PASS] [["insertlinebreak",""]] "<pre>[]foo</pre>" checks for modifications to non-editable content
 [FAIL] [["insertlinebreak",""]] "<pre>[]foo</pre>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre><br>foo</pre>" but got "<pre>\nfoo</pre>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre><br>foo</pre>" but got "<pre>\\nfoo</pre>"
 [PASS] [["insertlinebreak",""]] "<pre>[]foo</pre>" queryCommandIndeterm("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<pre>[]foo</pre>" queryCommandState("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<pre>[]foo</pre>" queryCommandValue("insertlinebreak") before
@@ -403,7 +403,7 @@
 [PASS] [["insertlinebreak",""]] "<pre>foo[]</pre>": execCommand("insertlinebreak", false, "") return value
 [PASS] [["insertlinebreak",""]] "<pre>foo[]</pre>" checks for modifications to non-editable content
 [FAIL] [["insertlinebreak",""]] "<pre>foo[]</pre>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre>foo<br><br></pre>" but got "<pre>foo\n\n</pre>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre>foo<br><br></pre>" but got "<pre>foo\\n\\n</pre>"
 [PASS] [["insertlinebreak",""]] "<pre>foo[]</pre>" queryCommandIndeterm("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<pre>foo[]</pre>" queryCommandState("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<pre>foo[]</pre>" queryCommandValue("insertlinebreak") before
@@ -413,7 +413,7 @@
 [PASS] [["insertlinebreak",""]] "<pre>foo[]<br></pre>": execCommand("insertlinebreak", false, "") return value
 [PASS] [["insertlinebreak",""]] "<pre>foo[]<br></pre>" checks for modifications to non-editable content
 [FAIL] [["insertlinebreak",""]] "<pre>foo[]<br></pre>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre>foo<br><br></pre>" but got "<pre>foo\n<br></pre>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre>foo<br><br></pre>" but got "<pre>foo\\n<br></pre>"
 [PASS] [["insertlinebreak",""]] "<pre>foo[]<br></pre>" queryCommandIndeterm("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<pre>foo[]<br></pre>" queryCommandState("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<pre>foo[]<br></pre>" queryCommandValue("insertlinebreak") before
@@ -423,7 +423,7 @@
 [PASS] [["insertlinebreak",""]] "<pre>foo[]bar</pre>": execCommand("insertlinebreak", false, "") return value
 [PASS] [["insertlinebreak",""]] "<pre>foo[]bar</pre>" checks for modifications to non-editable content
 [FAIL] [["insertlinebreak",""]] "<pre>foo[]bar</pre>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre>foo<br>bar</pre>" but got "<pre>foo\nbar</pre>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre>foo<br>bar</pre>" but got "<pre>foo\\nbar</pre>"
 [PASS] [["insertlinebreak",""]] "<pre>foo[]bar</pre>" queryCommandIndeterm("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<pre>foo[]bar</pre>" queryCommandState("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<pre>foo[]bar</pre>" queryCommandValue("insertlinebreak") before
@@ -433,7 +433,7 @@
 [PASS] [["insertlinebreak",""]] "<pre>foo[]<br><br></pre>": execCommand("insertlinebreak", false, "") return value
 [PASS] [["insertlinebreak",""]] "<pre>foo[]<br><br></pre>" checks for modifications to non-editable content
 [FAIL] [["insertlinebreak",""]] "<pre>foo[]<br><br></pre>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre>foo<br><br><br></pre>" but got "<pre>foo\n<br><br></pre>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre>foo<br><br><br></pre>" but got "<pre>foo\\n<br><br></pre>"
 [PASS] [["insertlinebreak",""]] "<pre>foo[]<br><br></pre>" queryCommandIndeterm("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<pre>foo[]<br><br></pre>" queryCommandState("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<pre>foo[]<br><br></pre>" queryCommandValue("insertlinebreak") before
@@ -443,7 +443,7 @@
 [PASS] [["insertlinebreak",""]] "<pre>foo<br>{}<br></pre>": execCommand("insertlinebreak", false, "") return value
 [PASS] [["insertlinebreak",""]] "<pre>foo<br>{}<br></pre>" checks for modifications to non-editable content
 [FAIL] [["insertlinebreak",""]] "<pre>foo<br>{}<br></pre>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre>foo<br><br><br></pre>" but got "<pre>foo<br>\n<br></pre>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre>foo<br><br><br></pre>" but got "<pre>foo<br>\\n<br></pre>"
 [PASS] [["insertlinebreak",""]] "<pre>foo<br>{}<br></pre>" queryCommandIndeterm("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<pre>foo<br>{}<br></pre>" queryCommandState("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<pre>foo<br>{}<br></pre>" queryCommandValue("insertlinebreak") before
@@ -453,7 +453,7 @@
 [PASS] [["insertlinebreak",""]] "<pre>foo&#10;[]</pre>": execCommand("insertlinebreak", false, "") return value
 [PASS] [["insertlinebreak",""]] "<pre>foo&#10;[]</pre>" checks for modifications to non-editable content
 [FAIL] [["insertlinebreak",""]] "<pre>foo&#10;[]</pre>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre>foo\n<br><br></pre>" but got "<pre>foo\n\n</pre>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre>foo\\n<br><br></pre>" but got "<pre>foo\\n\\n</pre>"
 [PASS] [["insertlinebreak",""]] "<pre>foo&#10;[]</pre>" queryCommandIndeterm("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<pre>foo&#10;[]</pre>" queryCommandState("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<pre>foo&#10;[]</pre>" queryCommandValue("insertlinebreak") before
@@ -463,7 +463,7 @@
 [PASS] [["insertlinebreak",""]] "<pre>foo[]&#10;</pre>": execCommand("insertlinebreak", false, "") return value
 [PASS] [["insertlinebreak",""]] "<pre>foo[]&#10;</pre>" checks for modifications to non-editable content
 [FAIL] [["insertlinebreak",""]] "<pre>foo[]&#10;</pre>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre>foo<br>\n</pre>" but got "<pre>foo\n\n</pre>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre>foo<br>\\n</pre>" but got "<pre>foo\\n\\n</pre>"
 [PASS] [["insertlinebreak",""]] "<pre>foo[]&#10;</pre>" queryCommandIndeterm("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<pre>foo[]&#10;</pre>" queryCommandState("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<pre>foo[]&#10;</pre>" queryCommandValue("insertlinebreak") before
@@ -473,7 +473,7 @@
 [PASS] [["insertlinebreak",""]] "<pre>foo&#10;[]&#10;</pre>": execCommand("insertlinebreak", false, "") return value
 [PASS] [["insertlinebreak",""]] "<pre>foo&#10;[]&#10;</pre>" checks for modifications to non-editable content
 [FAIL] [["insertlinebreak",""]] "<pre>foo&#10;[]&#10;</pre>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre>foo\n<br>\n</pre>" but got "<pre>foo\n\n\n</pre>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre>foo\\n<br>\\n</pre>" but got "<pre>foo\\n\\n\\n</pre>"
 [PASS] [["insertlinebreak",""]] "<pre>foo&#10;[]&#10;</pre>" queryCommandIndeterm("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<pre>foo&#10;[]&#10;</pre>" queryCommandState("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<pre>foo&#10;[]&#10;</pre>" queryCommandValue("insertlinebreak") before
@@ -483,7 +483,7 @@
 [PASS] [["insertlinebreak",""]] "<xmp>foo[]bar</xmp>": execCommand("insertlinebreak", false, "") return value
 [PASS] [["insertlinebreak",""]] "<xmp>foo[]bar</xmp>" checks for modifications to non-editable content
 [FAIL] [["insertlinebreak",""]] "<xmp>foo[]bar</xmp>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<xmp>foobar</xmp>" but got "<xmp>foo\nbar</xmp>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<xmp>foobar</xmp>" but got "<xmp>foo\\nbar</xmp>"
 [PASS] [["insertlinebreak",""]] "<xmp>foo[]bar</xmp>" queryCommandIndeterm("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<xmp>foo[]bar</xmp>" queryCommandState("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<xmp>foo[]bar</xmp>" queryCommandValue("insertlinebreak") before
@@ -503,7 +503,7 @@
 [PASS] [["insertlinebreak",""]] "<listing>foo[]bar</listing>": execCommand("insertlinebreak", false, "") return value
 [PASS] [["insertlinebreak",""]] "<listing>foo[]bar</listing>" checks for modifications to non-editable content
 [FAIL] [["insertlinebreak",""]] "<listing>foo[]bar</listing>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<listing>foo<br>bar</listing>" but got "<listing>foo\nbar</listing>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<listing>foo<br>bar</listing>" but got "<listing>foo\\nbar</listing>"
 [PASS] [["insertlinebreak",""]] "<listing>foo[]bar</listing>" queryCommandIndeterm("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<listing>foo[]bar</listing>" queryCommandState("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<listing>foo[]bar</listing>" queryCommandValue("insertlinebreak") before
@@ -962,7 +962,7 @@
 [PASS] [["insertlinebreak",""]] "<a href=foo>foo[]</a>bar": execCommand("insertlinebreak", false, "") return value
 [PASS] [["insertlinebreak",""]] "<a href=foo>foo[]</a>bar" checks for modifications to non-editable content
 [FAIL] [["insertlinebreak",""]] "<a href=foo>foo[]</a>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\"foo\">foo<br></a>bar" but got "<a href=\"foo\">foo</a><br>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\"foo\\">foo<br></a>bar" but got "<a href=\\"foo\\">foo</a><br>bar"
 [PASS] [["insertlinebreak",""]] "<a href=foo>foo[]</a>bar" queryCommandIndeterm("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<a href=foo>foo[]</a>bar" queryCommandState("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<a href=foo>foo[]</a>bar" queryCommandValue("insertlinebreak") before
@@ -972,7 +972,7 @@
 [PASS] [["insertlinebreak",""]] "foo<a href=foo>[]bar</a>": execCommand("insertlinebreak", false, "") return value
 [PASS] [["insertlinebreak",""]] "foo<a href=foo>[]bar</a>" checks for modifications to non-editable content
 [FAIL] [["insertlinebreak",""]] "foo<a href=foo>[]bar</a>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\"foo\"><br>bar</a>" but got "foo<br><a href=\"foo\">bar</a>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\\"foo\\"><br>bar</a>" but got "foo<br><a href=\\"foo\\">bar</a>"
 [PASS] [["insertlinebreak",""]] "foo<a href=foo>[]bar</a>" queryCommandIndeterm("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "foo<a href=foo>[]bar</a>" queryCommandState("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "foo<a href=foo>[]bar</a>" queryCommandValue("insertlinebreak") before
@@ -1092,7 +1092,7 @@
 [PASS] [["insertlinebreak",""]] "<p>foo<span style=color:#aBcDeF>[bar</span>baz]": execCommand("insertlinebreak", false, "") return value
 [PASS] [["insertlinebreak",""]] "<p>foo<span style=color:#aBcDeF>[bar</span>baz]" checks for modifications to non-editable content
 [FAIL] [["insertlinebreak",""]] "<p>foo<span style=color:#aBcDeF>[bar</span>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<span style=\"color:rgb(171, 205, 239)\"><br><br></span></p>" but got "<p>foo<br><font color=\"#abcdef\"><br></font></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<span style=\\"color:rgb(171, 205, 239)\\"><br><br></span></p>" but got "<p>foo<br><font color=\\"#abcdef\\"><br></font></p>"
 [PASS] [["insertlinebreak",""]] "<p>foo<span style=color:#aBcDeF>[bar</span>baz]" queryCommandIndeterm("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<p>foo<span style=color:#aBcDeF>[bar</span>baz]" queryCommandState("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<p>foo<span style=color:#aBcDeF>[bar</span>baz]" queryCommandValue("insertlinebreak") before
@@ -1102,7 +1102,7 @@
 [PASS] [["insertlinebreak",""]] "<p>foo<span style=color:#aBcDeF>{bar</span>baz}": execCommand("insertlinebreak", false, "") return value
 [PASS] [["insertlinebreak",""]] "<p>foo<span style=color:#aBcDeF>{bar</span>baz}" checks for modifications to non-editable content
 [FAIL] [["insertlinebreak",""]] "<p>foo<span style=color:#aBcDeF>{bar</span>baz}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<span style=\"color:rgb(171, 205, 239)\"><br><br></span></p>" but got "<p>foo<br><font color=\"#abcdef\"><br></font></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<span style=\\"color:rgb(171, 205, 239)\\"><br><br></span></p>" but got "<p>foo<br><font color=\\"#abcdef\\"><br></font></p>"
 [PASS] [["insertlinebreak",""]] "<p>foo<span style=color:#aBcDeF>{bar</span>baz}" queryCommandIndeterm("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<p>foo<span style=color:#aBcDeF>{bar</span>baz}" queryCommandState("insertlinebreak") before
 [PASS] [["insertlinebreak",""]] "<p>foo<span style=color:#aBcDeF>{bar</span>baz}" queryCommandValue("insertlinebreak") before
@@ -1129,7 +1129,7 @@
 [PASS] [["stylewithcss","false"],["insertlinebreak",""]] "<p>foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz": execCommand("insertlinebreak", false, "") return value
 [PASS] [["stylewithcss","false"],["insertlinebreak",""]] "<p>foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["insertlinebreak",""]] "<p>foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<span style=\"color:rgb(171, 205, 239)\"><br></span>quz</p>" but got "<p>foo<font color=\"#abcdef\"><br></font>quz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<span style=\\"color:rgb(171, 205, 239)\\"><br></span>quz</p>" but got "<p>foo<font color=\\"#abcdef\\"><br></font>quz</p>"
 [PASS] [["stylewithcss","false"],["insertlinebreak",""]] "<p>foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["insertlinebreak",""]] "<p>foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["insertlinebreak",""]] "<p>foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/insertorderedlist_1-1000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/insertorderedlist_1-1000-expected.txt
index 5edada2..87d1af9 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/insertorderedlist_1-1000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/insertorderedlist_1-1000-expected.txt
@@ -539,7 +539,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertorderedlist",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>": execCommand("insertorderedlist", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertorderedlist",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertorderedlist",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo</div><div>bar</div><ol><li>baz</li></ol>" but got "<div style=\"display:inline !important\">foo</div>bar<br><ol><li>baz</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo</div><div>bar</div><ol><li>baz</li></ol>" but got "<div style=\\"display:inline !important\\">foo</div>bar<br><ol><li>baz</li></ol>"
 [PASS] [["defaultparagraphseparator","div"],["insertorderedlist",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertorderedlist",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertorderedlist",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" queryCommandValue("defaultparagraphseparator") before
@@ -558,7 +558,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertorderedlist",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>": execCommand("insertorderedlist", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertorderedlist",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertorderedlist",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo</div><p>bar</p><ol><li>baz</li></ol>" but got "<div style=\"display:inline !important\">foo</div>bar<br><ol><li>baz</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo</div><p>bar</p><ol><li>baz</li></ol>" but got "<div style=\\"display:inline !important\\">foo</div>bar<br><ol><li>baz</li></ol>"
 [PASS] [["defaultparagraphseparator","p"],["insertorderedlist",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertorderedlist",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertorderedlist",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" queryCommandValue("defaultparagraphseparator") before
@@ -1224,7 +1224,7 @@
 [PASS] [["insertorderedlist",""]] "<ul><li><div>[foo]</div>bar<li>baz</ul>": execCommand("insertorderedlist", false, "") return value
 [PASS] [["insertorderedlist",""]] "<ul><li><div>[foo]</div>bar<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["insertorderedlist",""]] "<ul><li><div>[foo]</div>bar<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li><div>foo</div>bar</li></ol><ul><li>baz</li></ul>" but got "<ol><li><div style=\"display:inline !important\">foo</div>bar</li></ol><ul><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li><div>foo</div>bar</li></ol><ul><li>baz</li></ul>" but got "<ol><li><div style=\\"display:inline !important\\">foo</div>bar</li></ol><ul><li>baz</li></ul>"
 [PASS] [["insertorderedlist",""]] "<ul><li><div>[foo]</div>bar<li>baz</ul>" queryCommandIndeterm("insertorderedlist") before
 [PASS] [["insertorderedlist",""]] "<ul><li><div>[foo]</div>bar<li>baz</ul>" queryCommandState("insertorderedlist") before
 [FAIL] [["insertorderedlist",""]] "<ul><li><div>[foo]</div>bar<li>baz</ul>" queryCommandValue("insertorderedlist") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/insertorderedlist_1001-last-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/insertorderedlist_1001-last-expected.txt
index de7aee8c..33e12f2 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/insertorderedlist_1001-last-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/insertorderedlist_1001-last-expected.txt
@@ -530,7 +530,7 @@
 [PASS] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>": execCommand("insertorderedlist", false, "") return value
 [PASS] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\"color:rgb(0, 0, 255)\"><li>foo</li></ul><ol><li><font color=\"#0000ff\">bar</font></li></ol><ul style=\"color:rgb(0, 0, 255)\"><li>baz</li></ul>" but got "<ul style=\"color:rgb(0, 0, 255)\"><li>foo</li></ul><ol><li><span style=\"color:rgb(0, 0, 255)\">bar</span></li></ol><ul style=\"color:rgb(0, 0, 255)\"><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\\"color:rgb(0, 0, 255)\\"><li>foo</li></ul><ol><li><font color=\\"#0000ff\\">bar</font></li></ol><ul style=\\"color:rgb(0, 0, 255)\\"><li>baz</li></ul>" but got "<ul style=\\"color:rgb(0, 0, 255)\\"><li>foo</li></ul><ol><li><span style=\\"color:rgb(0, 0, 255)\\">bar</span></li></ol><ul style=\\"color:rgb(0, 0, 255)\\"><li>baz</li></ul>"
 [PASS] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" queryCommandValue("stylewithcss") before
@@ -549,7 +549,7 @@
 [PASS] [["stylewithcss","true"],["insertorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>": execCommand("insertorderedlist", false, "") return value
 [PASS] [["stylewithcss","true"],["insertorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["insertorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\"text-indent:1em\"><li>foo</li></ul><ol><li>bar</li></ol><ul style=\"text-indent:1em\"><li>baz</li></ul>" but got "<ul style=\"text-indent:1em\"><li>foo</li></ul><ol><li><span style=\"text-indent:1em\">bar</span></li></ol><ul style=\"text-indent:1em\"><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\\"text-indent:1em\\"><li>foo</li></ul><ol><li>bar</li></ol><ul style=\\"text-indent:1em\\"><li>baz</li></ul>" but got "<ul style=\\"text-indent:1em\\"><li>foo</li></ul><ol><li><span style=\\"text-indent:1em\\">bar</span></li></ol><ul style=\\"text-indent:1em\\"><li>baz</li></ul>"
 [PASS] [["stylewithcss","true"],["insertorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["insertorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["insertorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" queryCommandValue("stylewithcss") before
@@ -568,7 +568,7 @@
 [PASS] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>": execCommand("insertorderedlist", false, "") return value
 [PASS] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\"text-indent:1em\"><li>foo</li></ul><ol><li>bar</li></ol><ul style=\"text-indent:1em\"><li>baz</li></ul>" but got "<ul style=\"text-indent:1em\"><li>foo</li></ul><ol><li><span style=\"text-indent:1em\">bar</span></li></ol><ul style=\"text-indent:1em\"><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\\"text-indent:1em\\"><li>foo</li></ul><ol><li>bar</li></ol><ul style=\\"text-indent:1em\\"><li>baz</li></ul>" but got "<ul style=\\"text-indent:1em\\"><li>foo</li></ul><ol><li><span style=\\"text-indent:1em\\">bar</span></li></ol><ul style=\\"text-indent:1em\\"><li>baz</li></ul>"
 [PASS] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" queryCommandValue("stylewithcss") before
@@ -616,7 +616,7 @@
 [PASS] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=color:blue><li>[foo]<li>bar<li>baz</ul>": execCommand("insertorderedlist", false, "") return value
 [PASS] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=color:blue><li>[foo]<li>bar<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=color:blue><li>[foo]<li>bar<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li><font color=\"#0000ff\">foo</font></li></ol><ul style=\"color:rgb(0, 0, 255)\"><li>bar</li><li>baz</li></ul>" but got "<ol><li><span style=\"color:rgb(0, 0, 255)\">foo</span></li></ol><ul style=\"color:rgb(0, 0, 255)\"><li>bar</li><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li><font color=\\"#0000ff\\">foo</font></li></ol><ul style=\\"color:rgb(0, 0, 255)\\"><li>bar</li><li>baz</li></ul>" but got "<ol><li><span style=\\"color:rgb(0, 0, 255)\\">foo</span></li></ol><ul style=\\"color:rgb(0, 0, 255)\\"><li>bar</li><li>baz</li></ul>"
 [PASS] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=color:blue><li>[foo]<li>bar<li>baz</ul>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=color:blue><li>[foo]<li>bar<li>baz</ul>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=color:blue><li>[foo]<li>bar<li>baz</ul>" queryCommandValue("stylewithcss") before
@@ -634,7 +634,7 @@
 [PASS] [["insertorderedlist",""]] "<ul style=text-indent:1em><li>[foo]<li>bar<li>baz</ul>": execCommand("insertorderedlist", false, "") return value
 [PASS] [["insertorderedlist",""]] "<ul style=text-indent:1em><li>[foo]<li>bar<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["insertorderedlist",""]] "<ul style=text-indent:1em><li>[foo]<li>bar<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li></ol><ul style=\"text-indent:1em\"><li>bar</li><li>baz</li></ul>" but got "<ol><li><span style=\"text-indent:1em\">foo</span></li></ol><ul style=\"text-indent:1em\"><li>bar</li><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li></ol><ul style=\\"text-indent:1em\\"><li>bar</li><li>baz</li></ul>" but got "<ol><li><span style=\\"text-indent:1em\\">foo</span></li></ol><ul style=\\"text-indent:1em\\"><li>bar</li><li>baz</li></ul>"
 [PASS] [["insertorderedlist",""]] "<ul style=text-indent:1em><li>[foo]<li>bar<li>baz</ul>" queryCommandIndeterm("insertorderedlist") before
 [PASS] [["insertorderedlist",""]] "<ul style=text-indent:1em><li>[foo]<li>bar<li>baz</ul>" queryCommandState("insertorderedlist") before
 [FAIL] [["insertorderedlist",""]] "<ul style=text-indent:1em><li>[foo]<li>bar<li>baz</ul>" queryCommandValue("insertorderedlist") before
@@ -676,7 +676,7 @@
 [PASS] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=color:blue><li>foo<li>bar<li>[baz]</ul>": execCommand("insertorderedlist", false, "") return value
 [PASS] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=color:blue><li>foo<li>bar<li>[baz]</ul>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=color:blue><li>foo<li>bar<li>[baz]</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\"color:rgb(0, 0, 255)\"><li>foo</li><li>bar</li></ul><ol><li><font color=\"#0000ff\">baz</font></li></ol>" but got "<ul style=\"color:rgb(0, 0, 255)\"><li>foo</li><li>bar</li></ul><ol><li><span style=\"color:rgb(0, 0, 255)\">baz</span></li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\\"color:rgb(0, 0, 255)\\"><li>foo</li><li>bar</li></ul><ol><li><font color=\\"#0000ff\\">baz</font></li></ol>" but got "<ul style=\\"color:rgb(0, 0, 255)\\"><li>foo</li><li>bar</li></ul><ol><li><span style=\\"color:rgb(0, 0, 255)\\">baz</span></li></ol>"
 [PASS] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=color:blue><li>foo<li>bar<li>[baz]</ul>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=color:blue><li>foo<li>bar<li>[baz]</ul>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["insertorderedlist",""]] "<ul style=color:blue><li>foo<li>bar<li>[baz]</ul>" queryCommandValue("stylewithcss") before
@@ -694,7 +694,7 @@
 [PASS] [["insertorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>bar<li>[baz]</ul>": execCommand("insertorderedlist", false, "") return value
 [PASS] [["insertorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>bar<li>[baz]</ul>" checks for modifications to non-editable content
 [FAIL] [["insertorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>bar<li>[baz]</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\"text-indent:1em\"><li>foo</li><li>bar</li></ul><ol><li>baz</li></ol>" but got "<ul style=\"text-indent:1em\"><li>foo</li><li>bar</li></ul><ol><li><span style=\"text-indent:1em\">baz</span></li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\\"text-indent:1em\\"><li>foo</li><li>bar</li></ul><ol><li>baz</li></ol>" but got "<ul style=\\"text-indent:1em\\"><li>foo</li><li>bar</li></ul><ol><li><span style=\\"text-indent:1em\\">baz</span></li></ol>"
 [PASS] [["insertorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>bar<li>[baz]</ul>" queryCommandIndeterm("insertorderedlist") before
 [PASS] [["insertorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>bar<li>[baz]</ul>" queryCommandState("insertorderedlist") before
 [FAIL] [["insertorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>bar<li>[baz]</ul>" queryCommandValue("insertorderedlist") before
@@ -905,26 +905,26 @@
 [PASS] [["insertorderedlist",""],["inserttext","abc"]] "<p>{}<br></p>" queryCommandIndeterm("insertorderedlist") after
 [PASS] [["insertorderedlist",""],["inserttext","abc"]] "<p>{}<br></p>" queryCommandState("insertorderedlist") after
 [PASS] [["insertorderedlist",""],["inserttext","abc"]] "<p>{}<br></p>" queryCommandValue("insertorderedlist") after
-[PASS] [["insertorderedlist",""]] "<div dir=\"rtl\">a[]bc</div><div dir=\"rtl\">def</div>": execCommand("insertorderedlist", false, "") return value
-[PASS] [["insertorderedlist",""]] "<div dir=\"rtl\">a[]bc</div><div dir=\"rtl\">def</div>" checks for modifications to non-editable content
-[PASS] [["insertorderedlist",""]] "<div dir=\"rtl\">a[]bc</div><div dir=\"rtl\">def</div>" compare innerHTML
-[PASS] [["insertorderedlist",""]] "<div dir=\"rtl\">a[bc</div><div dir=\"rtl\">de]f</div>": execCommand("insertorderedlist", false, "") return value
-[PASS] [["insertorderedlist",""]] "<div dir=\"rtl\">a[bc</div><div dir=\"rtl\">de]f</div>" checks for modifications to non-editable content
-[PASS] [["insertorderedlist",""]] "<div dir=\"rtl\">a[bc</div><div dir=\"rtl\">de]f</div>" compare innerHTML
-[PASS] [["insertorderedlist",""]] "<div dir=\"rtl\">a[bc</div><div dir=\"ltr\">de]f</div>": execCommand("insertorderedlist", false, "") return value
-[PASS] [["insertorderedlist",""]] "<div dir=\"rtl\">a[bc</div><div dir=\"ltr\">de]f</div>" checks for modifications to non-editable content
-[PASS] [["insertorderedlist",""]] "<div dir=\"rtl\">a[bc</div><div dir=\"ltr\">de]f</div>" compare innerHTML
-[PASS] [["insertorderedlist",""]] "<div id=\"a\">a[bc</div><div id=\"b\">de]f</div>": execCommand("insertorderedlist", false, "") return value
-[PASS] [["insertorderedlist",""]] "<div id=\"a\">a[bc</div><div id=\"b\">de]f</div>" checks for modifications to non-editable content
-[FAIL] [["insertorderedlist",""]] "<div id=\"a\">a[bc</div><div id=\"b\">de]f</div>" compare innerHTML
-  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div id=\"a\"><ol><li>abc</li><li>def</li></ol></div>" not in array ["<div><ol><li id=\"a\">abc</li><li id=\"b\">def</li></ol></div>", "<ol><li id=\"a\">abc</li><li id=\"b\">def</li></ol>"]
-[PASS] [["insertorderedlist",""]] "<div class=\"a\">a[bc</div><div class=\"b\">de]f</div>": execCommand("insertorderedlist", false, "") return value
-[PASS] [["insertorderedlist",""]] "<div class=\"a\">a[bc</div><div class=\"b\">de]f</div>" checks for modifications to non-editable content
-[FAIL] [["insertorderedlist",""]] "<div class=\"a\">a[bc</div><div class=\"b\">de]f</div>" compare innerHTML
-  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div class=\"a\"><ol><li>abc</li><li>def</li></ol></div>" not in array ["<div><ol><li class=\"a\">abc</li><li class=\"b\">def</li></ol></div>", "<ol><li class=\"a\">abc</li><li class=\"b\">def</li></ol>"]
-[PASS] [["insertorderedlist",""]] "<div title=\"a\">a[bc</div><div title=\"b\">de]f</div>": execCommand("insertorderedlist", false, "") return value
-[PASS] [["insertorderedlist",""]] "<div title=\"a\">a[bc</div><div title=\"b\">de]f</div>" checks for modifications to non-editable content
-[FAIL] [["insertorderedlist",""]] "<div title=\"a\">a[bc</div><div title=\"b\">de]f</div>" compare innerHTML
-  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div title=\"a\"><ol><li>abc</li><li>def</li></ol></div>" not in array ["<div><ol><li title=\"a\">abc</li><li title=\"b\">def</li></ol></div>", "<ol><li title=\"a\">abc</li><li title=\"b\">def</li></ol>"]
+[PASS] [["insertorderedlist",""]] "<div dir=\\"rtl\\">a[]bc</div><div dir=\\"rtl\\">def</div>": execCommand("insertorderedlist", false, "") return value
+[PASS] [["insertorderedlist",""]] "<div dir=\\"rtl\\">a[]bc</div><div dir=\\"rtl\\">def</div>" checks for modifications to non-editable content
+[PASS] [["insertorderedlist",""]] "<div dir=\\"rtl\\">a[]bc</div><div dir=\\"rtl\\">def</div>" compare innerHTML
+[PASS] [["insertorderedlist",""]] "<div dir=\\"rtl\\">a[bc</div><div dir=\\"rtl\\">de]f</div>": execCommand("insertorderedlist", false, "") return value
+[PASS] [["insertorderedlist",""]] "<div dir=\\"rtl\\">a[bc</div><div dir=\\"rtl\\">de]f</div>" checks for modifications to non-editable content
+[PASS] [["insertorderedlist",""]] "<div dir=\\"rtl\\">a[bc</div><div dir=\\"rtl\\">de]f</div>" compare innerHTML
+[PASS] [["insertorderedlist",""]] "<div dir=\\"rtl\\">a[bc</div><div dir=\\"ltr\\">de]f</div>": execCommand("insertorderedlist", false, "") return value
+[PASS] [["insertorderedlist",""]] "<div dir=\\"rtl\\">a[bc</div><div dir=\\"ltr\\">de]f</div>" checks for modifications to non-editable content
+[PASS] [["insertorderedlist",""]] "<div dir=\\"rtl\\">a[bc</div><div dir=\\"ltr\\">de]f</div>" compare innerHTML
+[PASS] [["insertorderedlist",""]] "<div id=\\"a\\">a[bc</div><div id=\\"b\\">de]f</div>": execCommand("insertorderedlist", false, "") return value
+[PASS] [["insertorderedlist",""]] "<div id=\\"a\\">a[bc</div><div id=\\"b\\">de]f</div>" checks for modifications to non-editable content
+[FAIL] [["insertorderedlist",""]] "<div id=\\"a\\">a[bc</div><div id=\\"b\\">de]f</div>" compare innerHTML
+  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div id=\\"a\\"><ol><li>abc</li><li>def</li></ol></div>" not in array ["<div><ol><li id=\\"a\\">abc</li><li id=\\"b\\">def</li></ol></div>", "<ol><li id=\\"a\\">abc</li><li id=\\"b\\">def</li></ol>"]
+[PASS] [["insertorderedlist",""]] "<div class=\\"a\\">a[bc</div><div class=\\"b\\">de]f</div>": execCommand("insertorderedlist", false, "") return value
+[PASS] [["insertorderedlist",""]] "<div class=\\"a\\">a[bc</div><div class=\\"b\\">de]f</div>" checks for modifications to non-editable content
+[FAIL] [["insertorderedlist",""]] "<div class=\\"a\\">a[bc</div><div class=\\"b\\">de]f</div>" compare innerHTML
+  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div class=\\"a\\"><ol><li>abc</li><li>def</li></ol></div>" not in array ["<div><ol><li class=\\"a\\">abc</li><li class=\\"b\\">def</li></ol></div>", "<ol><li class=\\"a\\">abc</li><li class=\\"b\\">def</li></ol>"]
+[PASS] [["insertorderedlist",""]] "<div title=\\"a\\">a[bc</div><div title=\\"b\\">de]f</div>": execCommand("insertorderedlist", false, "") return value
+[PASS] [["insertorderedlist",""]] "<div title=\\"a\\">a[bc</div><div title=\\"b\\">de]f</div>" checks for modifications to non-editable content
+[FAIL] [["insertorderedlist",""]] "<div title=\\"a\\">a[bc</div><div title=\\"b\\">de]f</div>" compare innerHTML
+  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div title=\\"a\\"><ol><li>abc</li><li>def</li></ol></div>" not in array ["<div><ol><li title=\\"a\\">abc</li><li title=\\"b\\">def</li></ol></div>", "<ol><li title=\\"a\\">abc</li><li title=\\"b\\">def</li></ol>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_1-1000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_1-1000-expected.txt
index ded6227..f3366982 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_1-1000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_1-1000-expected.txt
@@ -1019,7 +1019,7 @@
 [PASS] [["insertparagraph",""]] "<pre>foo&#10;[]</pre>": execCommand("insertparagraph", false, "") return value
 [PASS] [["insertparagraph",""]] "<pre>foo&#10;[]</pre>" checks for modifications to non-editable content
 [FAIL] [["insertparagraph",""]] "<pre>foo&#10;[]</pre>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre>foo\n<br><br></pre>" but got "<pre>foo\n</pre><pre><br></pre>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre>foo\\n<br><br></pre>" but got "<pre>foo\\n</pre><pre><br></pre>"
 [PASS] [["insertparagraph",""]] "<pre>foo&#10;[]</pre>" queryCommandIndeterm("insertparagraph") before
 [PASS] [["insertparagraph",""]] "<pre>foo&#10;[]</pre>" queryCommandState("insertparagraph") before
 [PASS] [["insertparagraph",""]] "<pre>foo&#10;[]</pre>" queryCommandValue("insertparagraph") before
@@ -1029,7 +1029,7 @@
 [PASS] [["insertparagraph",""]] "<pre>foo[]&#10;</pre>": execCommand("insertparagraph", false, "") return value
 [PASS] [["insertparagraph",""]] "<pre>foo[]&#10;</pre>" checks for modifications to non-editable content
 [FAIL] [["insertparagraph",""]] "<pre>foo[]&#10;</pre>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre>foo<br>\n</pre>" but got "<pre>foo\n</pre><pre><br></pre>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre>foo<br>\\n</pre>" but got "<pre>foo\\n</pre><pre><br></pre>"
 [PASS] [["insertparagraph",""]] "<pre>foo[]&#10;</pre>" queryCommandIndeterm("insertparagraph") before
 [PASS] [["insertparagraph",""]] "<pre>foo[]&#10;</pre>" queryCommandState("insertparagraph") before
 [PASS] [["insertparagraph",""]] "<pre>foo[]&#10;</pre>" queryCommandValue("insertparagraph") before
@@ -1039,7 +1039,7 @@
 [PASS] [["insertparagraph",""]] "<pre>foo&#10;[]&#10;</pre>": execCommand("insertparagraph", false, "") return value
 [PASS] [["insertparagraph",""]] "<pre>foo&#10;[]&#10;</pre>" checks for modifications to non-editable content
 [FAIL] [["insertparagraph",""]] "<pre>foo&#10;[]&#10;</pre>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre>foo\n<br>\n</pre>" but got "<pre>foo\n\n</pre><pre><br></pre>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<pre>foo\\n<br>\\n</pre>" but got "<pre>foo\\n\\n</pre><pre><br></pre>"
 [PASS] [["insertparagraph",""]] "<pre>foo&#10;[]&#10;</pre>" queryCommandIndeterm("insertparagraph") before
 [PASS] [["insertparagraph",""]] "<pre>foo&#10;[]&#10;</pre>" queryCommandState("insertparagraph") before
 [PASS] [["insertparagraph",""]] "<pre>foo&#10;[]&#10;</pre>" queryCommandValue("insertparagraph") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_1001-2000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_1001-2000-expected.txt
index 4918f4d..72eaf45 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_1001-2000-expected.txt
@@ -46,7 +46,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["insertparagraph",""]] "<div style=display:none>foo[]bar</div>baz": execCommand("insertparagraph", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["insertparagraph",""]] "<div style=display:none>foo[]bar</div>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["insertparagraph",""]] "<div style=display:none>foo[]bar</div>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"display:none\">foo<br></div><div style=\"display:none\">bar<br></div>baz" but got "<div><br></div><div style=\"display:none\">foobar</div>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"display:none\\">foo<br></div><div style=\\"display:none\\">bar<br></div>baz" but got "<div><br></div><div style=\\"display:none\\">foobar</div>baz"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["insertparagraph",""]] "<div style=display:none>foo[]bar</div>baz" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["insertparagraph",""]] "<div style=display:none>foo[]bar</div>baz" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -71,7 +71,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertparagraph",""]] "<div style=display:none>foo[]bar</div>baz": execCommand("insertparagraph", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertparagraph",""]] "<div style=display:none>foo[]bar</div>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertparagraph",""]] "<div style=display:none>foo[]bar</div>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"display:none\">foo<br></div><div style=\"display:none\">bar<br></div>baz" but got "<div><br></div><div style=\"display:none\">foobar</div>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"display:none\\">foo<br></div><div style=\\"display:none\\">bar<br></div>baz" but got "<div><br></div><div style=\\"display:none\\">foobar</div>baz"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertparagraph",""]] "<div style=display:none>foo[]bar</div>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertparagraph",""]] "<div style=display:none>foo[]bar</div>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertparagraph",""]] "<div style=display:none>foo[]bar</div>baz" queryCommandValue("stylewithcss") before
@@ -95,7 +95,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<div style=display:none>foo[]bar</div>baz": execCommand("insertparagraph", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<div style=display:none>foo[]bar</div>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<div style=display:none>foo[]bar</div>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"display:none\">foo<br></div><div style=\"display:none\">bar<br></div>baz" but got "<p><br></p><div style=\"display:none\">foobar</div>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"display:none\\">foo<br></div><div style=\\"display:none\\">bar<br></div>baz" but got "<p><br></p><div style=\\"display:none\\">foobar</div>baz"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<div style=display:none>foo[]bar</div>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<div style=display:none>foo[]bar</div>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<div style=display:none>foo[]bar</div>baz" queryCommandValue("stylewithcss") before
@@ -119,7 +119,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<div style=display:none>foo[]bar</div>baz": execCommand("insertparagraph", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<div style=display:none>foo[]bar</div>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<div style=display:none>foo[]bar</div>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"display:none\">foo<br></div><div style=\"display:none\">bar<br></div>baz" but got "<p><br></p><div style=\"display:none\">foobar</div>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"display:none\\">foo<br></div><div style=\\"display:none\\">bar<br></div>baz" but got "<p><br></p><div style=\\"display:none\\">foobar</div>baz"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<div style=display:none>foo[]bar</div>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<div style=display:none>foo[]bar</div>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<div style=display:none>foo[]bar</div>baz" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_2001-3000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_2001-3000-expected.txt
index 22aeee5..00ba226a 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_2001-3000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_2001-3000-expected.txt
@@ -624,7 +624,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>": execCommand("insertparagraph", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><b id=\"x\" class=\"y\">foo</b></div><div><b class=\"y\">bar</b></div>" but got "<b id=\"x\" class=\"y\">foo</b><div><b class=\"y\">bar</b></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><b id=\\"x\\" class=\\"y\\">foo</b></div><div><b class=\\"y\\">bar</b></div>" but got "<b id=\\"x\\" class=\\"y\\">foo</b><div><b class=\\"y\\">bar</b></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>" queryCommandValue("stylewithcss") before
@@ -648,7 +648,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>": execCommand("insertparagraph", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><b id=\"x\" class=\"y\">foo</b></div><div><b class=\"y\">bar</b></div>" but got "<b id=\"x\" class=\"y\">foo</b><div><b class=\"y\">bar</b></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><b id=\\"x\\" class=\\"y\\">foo</b></div><div><b class=\\"y\\">bar</b></div>" but got "<b id=\\"x\\" class=\\"y\\">foo</b><div><b class=\\"y\\">bar</b></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>" queryCommandValue("stylewithcss") before
@@ -672,7 +672,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>": execCommand("insertparagraph", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b id=\"x\" class=\"y\">foo</b></p><p><b class=\"y\">bar</b></p>" but got "<b id=\"x\" class=\"y\">foo</b><p><b class=\"y\">bar</b></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b id=\\"x\\" class=\\"y\\">foo</b></p><p><b class=\\"y\\">bar</b></p>" but got "<b id=\\"x\\" class=\\"y\\">foo</b><p><b class=\\"y\\">bar</b></p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>" queryCommandValue("stylewithcss") before
@@ -696,7 +696,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>": execCommand("insertparagraph", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b id=\"x\" class=\"y\">foo</b></p><p><b class=\"y\">bar</b></p>" but got "<b id=\"x\" class=\"y\">foo</b><p><b class=\"y\">bar</b></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b id=\\"x\\" class=\\"y\\">foo</b></p><p><b class=\\"y\\">bar</b></p>" but got "<b id=\\"x\\" class=\\"y\\">foo</b><p><b class=\\"y\\">bar</b></p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertparagraph",""]] "<b id=x class=y>foo[]bar</b>" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_3001-4000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_3001-4000-expected.txt
index e5dfc7d..9146135 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_3001-4000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_3001-4000-expected.txt
@@ -63,7 +63,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\"foo\">foo</a></div><div><a href=\"foo\">bar</a></div>" but got "<a href=\"foo\">foo</a><div><a href=\"foo\">bar</a></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\\"foo\\">foo</a></div><div><a href=\\"foo\\">bar</a></div>" but got "<a href=\\"foo\\">foo</a><div><a href=\\"foo\\">bar</a></div>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>" queryCommandValue("defaultparagraphseparator") before
@@ -80,7 +80,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\"foo\">foo</a></p><p><a href=\"foo\">bar</a></p>" but got "<a href=\"foo\">foo</a><p><a href=\"foo\">bar</a></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\\"foo\\">foo</a></p><p><a href=\\"foo\\">bar</a></p>" but got "<a href=\\"foo\\">foo</a><p><a href=\\"foo\\">bar</a></p>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>" queryCommandValue("defaultparagraphseparator") before
@@ -97,7 +97,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>baz": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>baz" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\"foo\">foo</a></div><div><a href=\"foo\">bar</a>baz</div>" but got "<a href=\"foo\">foo</a><div><a href=\"foo\">bar</a>baz</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\\"foo\\">foo</a></div><div><a href=\\"foo\\">bar</a>baz</div>" but got "<a href=\\"foo\\">foo</a><div><a href=\\"foo\\">bar</a>baz</div>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>baz" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>baz" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>baz" queryCommandValue("defaultparagraphseparator") before
@@ -114,7 +114,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>baz": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>baz" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\"foo\">foo</a></p><p><a href=\"foo\">bar</a>baz</p>" but got "<a href=\"foo\">foo</a><p><a href=\"foo\">bar</a>baz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\\"foo\\">foo</a></p><p><a href=\\"foo\\">bar</a>baz</p>" but got "<a href=\\"foo\\">foo</a><p><a href=\\"foo\\">bar</a>baz</p>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>baz" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>baz" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<a href=foo>foo[]bar</a>baz" queryCommandValue("defaultparagraphseparator") before
@@ -227,7 +227,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<a href=foo>foo[]</a>bar": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<a href=foo>foo[]</a>bar" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<a href=foo>foo[]</a>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\"foo\">foo</a></div><div>bar</div>" but got "<a href=\"foo\">foo</a><div>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\\"foo\\">foo</a></div><div>bar</div>" but got "<a href=\\"foo\\">foo</a><div>bar</div>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<a href=foo>foo[]</a>bar" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<a href=foo>foo[]</a>bar" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<a href=foo>foo[]</a>bar" queryCommandValue("defaultparagraphseparator") before
@@ -244,7 +244,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<a href=foo>foo[]</a>bar": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<a href=foo>foo[]</a>bar" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<a href=foo>foo[]</a>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\"foo\">foo</a></p><p>bar</p>" but got "<a href=\"foo\">foo</a><p>bar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\\"foo\\">foo</a></p><p>bar</p>" but got "<a href=\\"foo\\">foo</a><p>bar</p>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<a href=foo>foo[]</a>bar" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<a href=foo>foo[]</a>bar" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<a href=foo>foo[]</a>bar" queryCommandValue("defaultparagraphseparator") before
@@ -261,7 +261,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "foo<a href=foo>[]bar</a>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "foo<a href=foo>[]bar</a>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "foo<a href=foo>[]bar</a>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo</div><div><a href=\"foo\">bar</a></div>" but got "foo<div><a href=\"foo\">bar</a></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo</div><div><a href=\\"foo\\">bar</a></div>" but got "foo<div><a href=\\"foo\\">bar</a></div>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "foo<a href=foo>[]bar</a>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "foo<a href=foo>[]bar</a>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "foo<a href=foo>[]bar</a>" queryCommandValue("defaultparagraphseparator") before
@@ -278,7 +278,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "foo<a href=foo>[]bar</a>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "foo<a href=foo>[]bar</a>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "foo<a href=foo>[]bar</a>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><a href=\"foo\">bar</a></p>" but got "foo<p><a href=\"foo\">bar</a></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><a href=\\"foo\\">bar</a></p>" but got "foo<p><a href=\\"foo\\">bar</a></p>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "foo<a href=foo>[]bar</a>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "foo<a href=foo>[]bar</a>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "foo<a href=foo>[]bar</a>" queryCommandValue("defaultparagraphseparator") before
@@ -423,7 +423,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>foo[]</a></b></p>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>foo[]</a></b></p>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>foo[]</a></b></p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b><a href=\"foo\">foo</a></b></p><p><b><br></b></p>" but got "<p><b><a href=\"foo\">foo</a></b></p><p><br></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b><a href=\\"foo\\">foo</a></b></p><p><b><br></b></p>" but got "<p><b><a href=\\"foo\\">foo</a></b></p><p><br></p>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>foo[]</a></b></p>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>foo[]</a></b></p>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>foo[]</a></b></p>" queryCommandValue("defaultparagraphseparator") before
@@ -440,7 +440,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>foo[]</a></b></div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>foo[]</a></b></div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>foo[]</a></b></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><b><a href=\"foo\">foo</a></b></div><div><b><br></b></div>" but got "<div><b><a href=\"foo\">foo</a></b></div><div><br></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><b><a href=\\"foo\\">foo</a></b></div><div><b><br></b></div>" but got "<div><b><a href=\\"foo\\">foo</a></b></div><div><br></div>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>foo[]</a></b></div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>foo[]</a></b></div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>foo[]</a></b></div>" queryCommandValue("defaultparagraphseparator") before
@@ -457,7 +457,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>[]foo</a></b></p>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>[]foo</a></b></p>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>[]foo</a></b></p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b><br></b></p><p><b><a href=\"foo\">foo</a></b></p>" but got "<p><br></p><p><b><a href=\"foo\">foo</a></b></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b><br></b></p><p><b><a href=\\"foo\\">foo</a></b></p>" but got "<p><br></p><p><b><a href=\\"foo\\">foo</a></b></p>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>[]foo</a></b></p>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>[]foo</a></b></p>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>[]foo</a></b></p>" queryCommandValue("defaultparagraphseparator") before
@@ -474,7 +474,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>[]foo</a></b></div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>[]foo</a></b></div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>[]foo</a></b></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><b><br></b></div><div><b><a href=\"foo\">foo</a></b></div>" but got "<div><br></div><div><b><a href=\"foo\">foo</a></b></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><b><br></b></div><div><b><a href=\\"foo\\">foo</a></b></div>" but got "<div><br></div><div><b><a href=\\"foo\\">foo</a></b></div>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>[]foo</a></b></div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>[]foo</a></b></div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>[]foo</a></b></div>" queryCommandValue("defaultparagraphseparator") before
@@ -491,7 +491,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo []<br></a></p>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo []<br></a></p>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo []<br></a></p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\"foo\">foo <br></a></p><p><br></p>" but got "<p><a href=\"foo\">foo <br></a></p><p><a href=\"foo\"><br></a></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\\"foo\\">foo <br></a></p><p><br></p>" but got "<p><a href=\\"foo\\">foo <br></a></p><p><a href=\\"foo\\"><br></a></p>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo []<br></a></p>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo []<br></a></p>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo []<br></a></p>" queryCommandValue("defaultparagraphseparator") before
@@ -508,7 +508,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo []<br></a></div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo []<br></a></div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo []<br></a></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\"foo\">foo <br></a></div><div><br></div>" but got "<div><a href=\"foo\">foo <br></a></div><div><a href=\"foo\"><br></a></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\\"foo\\">foo <br></a></div><div><br></div>" but got "<div><a href=\\"foo\\">foo <br></a></div><div><a href=\\"foo\\"><br></a></div>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo []<br></a></div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo []<br></a></div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo []<br></a></div>" queryCommandValue("defaultparagraphseparator") before
@@ -525,7 +525,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo []<br></b></a></p>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo []<br></b></a></p>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo []<br></b></a></p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\"foo\"><b>foo <br></b></a></p><p><br></p>" but got "<p><a href=\"foo\"><b>foo <br></b></a></p><p><a href=\"foo\"><b><br></b></a></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\\"foo\\"><b>foo <br></b></a></p><p><br></p>" but got "<p><a href=\\"foo\\"><b>foo <br></b></a></p><p><a href=\\"foo\\"><b><br></b></a></p>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo []<br></b></a></p>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo []<br></b></a></p>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo []<br></b></a></p>" queryCommandValue("defaultparagraphseparator") before
@@ -542,7 +542,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo []<br></b></a></div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo []<br></b></a></div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo []<br></b></a></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\"foo\"><b>foo <br></b></a></div><div><br></div>" but got "<div><a href=\"foo\"><b>foo <br></b></a></div><div><a href=\"foo\"><b><br></b></a></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\\"foo\\"><b>foo <br></b></a></div><div><br></div>" but got "<div><a href=\\"foo\\"><b>foo <br></b></a></div><div><a href=\\"foo\\"><b><br></b></a></div>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo []<br></b></a></div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo []<br></b></a></div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo []<br></b></a></div>" queryCommandValue("defaultparagraphseparator") before
@@ -559,7 +559,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>foo []<br></a></b></p>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>foo []<br></a></b></p>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>foo []<br></a></b></p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b><a href=\"foo\">foo <br></a></b></p><p><b><br></b></p>" but got "<p><b><a href=\"foo\">foo <br></a></b></p><p><b><a href=\"foo\"><br></a></b></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b><a href=\\"foo\\">foo <br></a></b></p><p><b><br></b></p>" but got "<p><b><a href=\\"foo\\">foo <br></a></b></p><p><b><a href=\\"foo\\"><br></a></b></p>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>foo []<br></a></b></p>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>foo []<br></a></b></p>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>foo []<br></a></b></p>" queryCommandValue("defaultparagraphseparator") before
@@ -576,7 +576,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>foo []<br></a></b></div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>foo []<br></a></b></div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>foo []<br></a></b></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><b><a href=\"foo\">foo <br></a></b></div><div><b><br></b></div>" but got "<div><b><a href=\"foo\">foo <br></a></b></div><div><b><a href=\"foo\"><br></a></b></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><b><a href=\\"foo\\">foo <br></a></b></div><div><b><br></b></div>" but got "<div><b><a href=\\"foo\\">foo <br></a></b></div><div><b><a href=\\"foo\\"><br></a></b></div>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>foo []<br></a></b></div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>foo []<br></a></b></div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>foo []<br></a></b></div>" queryCommandValue("defaultparagraphseparator") before
@@ -593,7 +593,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo {}<br></a></p>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo {}<br></a></p>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo {}<br></a></p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\"foo\">foo <br></a></p><p><br></p>" but got "<p><a href=\"foo\">foo <br></a></p><p><a href=\"foo\"><br></a></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\\"foo\\">foo <br></a></p><p><br></p>" but got "<p><a href=\\"foo\\">foo <br></a></p><p><a href=\\"foo\\"><br></a></p>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo {}<br></a></p>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo {}<br></a></p>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo {}<br></a></p>" queryCommandValue("defaultparagraphseparator") before
@@ -610,7 +610,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo {}<br></a></div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo {}<br></a></div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo {}<br></a></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\"foo\">foo <br></a></div><div><br></div>" but got "<div><a href=\"foo\">foo <br></a></div><div><a href=\"foo\"><br></a></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\\"foo\\">foo <br></a></div><div><br></div>" but got "<div><a href=\\"foo\\">foo <br></a></div><div><a href=\\"foo\\"><br></a></div>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo {}<br></a></div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo {}<br></a></div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo {}<br></a></div>" queryCommandValue("defaultparagraphseparator") before
@@ -627,7 +627,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo {}<br></b></a></p>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo {}<br></b></a></p>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo {}<br></b></a></p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\"foo\"><b>foo <br></b></a></p><p><br></p>" but got "<p><a href=\"foo\"><b>foo <br></b></a></p><p><a href=\"foo\"><b><br></b></a></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\\"foo\\"><b>foo <br></b></a></p><p><br></p>" but got "<p><a href=\\"foo\\"><b>foo <br></b></a></p><p><a href=\\"foo\\"><b><br></b></a></p>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo {}<br></b></a></p>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo {}<br></b></a></p>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo {}<br></b></a></p>" queryCommandValue("defaultparagraphseparator") before
@@ -644,7 +644,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo {}<br></b></a></div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo {}<br></b></a></div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo {}<br></b></a></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\"foo\"><b>foo <br></b></a></div><div><br></div>" but got "<div><a href=\"foo\"><b>foo <br></b></a></div><div><a href=\"foo\"><b><br></b></a></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\\"foo\\"><b>foo <br></b></a></div><div><br></div>" but got "<div><a href=\\"foo\\"><b>foo <br></b></a></div><div><a href=\\"foo\\"><b><br></b></a></div>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo {}<br></b></a></div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo {}<br></b></a></div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo {}<br></b></a></div>" queryCommandValue("defaultparagraphseparator") before
@@ -661,7 +661,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>foo {}<br></a></b></p>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>foo {}<br></a></b></p>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>foo {}<br></a></b></p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b><a href=\"foo\">foo <br></a></b></p><p><b><br></b></p>" but got "<p><b><a href=\"foo\">foo <br></a></b></p><p><b><a href=\"foo\"><br></a></b></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b><a href=\\"foo\\">foo <br></a></b></p><p><b><br></b></p>" but got "<p><b><a href=\\"foo\\">foo <br></a></b></p><p><b><a href=\\"foo\\"><br></a></b></p>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>foo {}<br></a></b></p>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>foo {}<br></a></b></p>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><b><a href=foo>foo {}<br></a></b></p>" queryCommandValue("defaultparagraphseparator") before
@@ -678,7 +678,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>foo {}<br></a></b></div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>foo {}<br></a></b></div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>foo {}<br></a></b></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><b><a href=\"foo\">foo <br></a></b></div><div><b><br></b></div>" but got "<div><b><a href=\"foo\">foo <br></a></b></div><div><b><a href=\"foo\"><br></a></b></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><b><a href=\\"foo\\">foo <br></a></b></div><div><b><br></b></div>" but got "<div><b><a href=\\"foo\\">foo <br></a></b></div><div><b><a href=\\"foo\\"><br></a></b></div>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>foo {}<br></a></b></div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>foo {}<br></a></b></div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><b><a href=foo>foo {}<br></a></b></div>" queryCommandValue("defaultparagraphseparator") before
@@ -695,7 +695,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo []<br><br></a></p>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo []<br><br></a></p>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo []<br><br></a></p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\"foo\">foo <br></a></p><p><a href=\"foo\"><br><br></a></p>" but got "<p><a href=\"foo\">foo</a></p><p><a href=\"foo\"><br><br></a></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\\"foo\\">foo <br></a></p><p><a href=\\"foo\\"><br><br></a></p>" but got "<p><a href=\\"foo\\">foo</a></p><p><a href=\\"foo\\"><br><br></a></p>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo []<br><br></a></p>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo []<br><br></a></p>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo []<br><br></a></p>" queryCommandValue("defaultparagraphseparator") before
@@ -712,7 +712,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo []<br><br></a></div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo []<br><br></a></div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo []<br><br></a></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\"foo\">foo <br></a></div><div><a href=\"foo\"><br><br></a></div>" but got "<div><a href=\"foo\">foo</a></div><div><a href=\"foo\"><br><br></a></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\\"foo\\">foo <br></a></div><div><a href=\\"foo\\"><br><br></a></div>" but got "<div><a href=\\"foo\\">foo</a></div><div><a href=\\"foo\\"><br><br></a></div>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo []<br><br></a></div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo []<br><br></a></div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo []<br><br></a></div>" queryCommandValue("defaultparagraphseparator") before
@@ -729,7 +729,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo []<br><br></b></a></p>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo []<br><br></b></a></p>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo []<br><br></b></a></p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\"foo\"><b>foo <br></b></a></p><p><a href=\"foo\"><b><br><br></b></a></p>" but got "<p><a href=\"foo\"><b>foo</b></a></p><p><a href=\"foo\"><b><br><br></b></a></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\\"foo\\"><b>foo <br></b></a></p><p><a href=\\"foo\\"><b><br><br></b></a></p>" but got "<p><a href=\\"foo\\"><b>foo</b></a></p><p><a href=\\"foo\\"><b><br><br></b></a></p>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo []<br><br></b></a></p>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo []<br><br></b></a></p>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo []<br><br></b></a></p>" queryCommandValue("defaultparagraphseparator") before
@@ -746,7 +746,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo []<br><br></b></a></div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo []<br><br></b></a></div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo []<br><br></b></a></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\"foo\"><b>foo <br></b><br></a></div><div><a href=\"foo\"><b><br><br></b></a></div>" but got "<div><a href=\"foo\"><b>foo</b></a></div><div><a href=\"foo\"><b><br><br></b></a></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\\"foo\\"><b>foo <br></b><br></a></div><div><a href=\\"foo\\"><b><br><br></b></a></div>" but got "<div><a href=\\"foo\\"><b>foo</b></a></div><div><a href=\\"foo\\"><b><br><br></b></a></div>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo []<br><br></b></a></div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo []<br><br></b></a></div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo []<br><br></b></a></div>" queryCommandValue("defaultparagraphseparator") before
@@ -763,7 +763,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo []<br></b><br></a></p>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo []<br></b><br></a></p>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo []<br></b><br></a></p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\"foo\"><b>foo <br></b></a></p><p><a href=\"foo\"><b><br></b><br></a></p>" but got "<p><a href=\"foo\"><b>foo</b></a></p><p><a href=\"foo\"><b><br></b><br></a></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\\"foo\\"><b>foo <br></b></a></p><p><a href=\\"foo\\"><b><br></b><br></a></p>" but got "<p><a href=\\"foo\\"><b>foo</b></a></p><p><a href=\\"foo\\"><b><br></b><br></a></p>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo []<br></b><br></a></p>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo []<br></b><br></a></p>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo []<br></b><br></a></p>" queryCommandValue("defaultparagraphseparator") before
@@ -780,7 +780,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo []<br></b><br></a></div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo []<br></b><br></a></div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo []<br></b><br></a></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\"foo\"><b>foo <br></b></a></div><div><a href=\"foo\"><b><br></b><br></a></div>" but got "<div><a href=\"foo\"><b>foo</b></a></div><div><a href=\"foo\"><b><br></b><br></a></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\\"foo\\"><b>foo <br></b></a></div><div><a href=\\"foo\\"><b><br></b><br></a></div>" but got "<div><a href=\\"foo\\"><b>foo</b></a></div><div><a href=\\"foo\\"><b><br></b><br></a></div>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo []<br></b><br></a></div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo []<br></b><br></a></div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo []<br></b><br></a></div>" queryCommandValue("defaultparagraphseparator") before
@@ -797,7 +797,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo {}<br><br></a></p>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo {}<br><br></a></p>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo {}<br><br></a></p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\"foo\">foo <br><br></a></p><p><a href=\"foo\"><br></a></p>" but got "<p><a href=\"foo\">foo</a></p><p><a href=\"foo\"><br><br></a></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\\"foo\\">foo <br><br></a></p><p><a href=\\"foo\\"><br></a></p>" but got "<p><a href=\\"foo\\">foo</a></p><p><a href=\\"foo\\"><br><br></a></p>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo {}<br><br></a></p>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo {}<br><br></a></p>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo>foo {}<br><br></a></p>" queryCommandValue("defaultparagraphseparator") before
@@ -814,7 +814,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo {}<br><br></a></div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo {}<br><br></a></div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo {}<br><br></a></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\"foo\">foo <br></a></div><div><a href=\"foo\"><br></a></div>" but got "<div><a href=\"foo\">foo</a></div><div><a href=\"foo\"><br><br></a></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\\"foo\\">foo <br></a></div><div><a href=\\"foo\\"><br></a></div>" but got "<div><a href=\\"foo\\">foo</a></div><div><a href=\\"foo\\"><br><br></a></div>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo {}<br><br></a></div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo {}<br><br></a></div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo>foo {}<br><br></a></div>" queryCommandValue("defaultparagraphseparator") before
@@ -831,7 +831,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo {}<br><br></b></a></p>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo {}<br><br></b></a></p>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo {}<br><br></b></a></p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\"foo\"><b>foo <br></b><br></a></p><p><a href=\"foo\"><b><br><br></b></a></p>" but got "<p><a href=\"foo\"><b>foo</b></a></p><p><a href=\"foo\"><b><br><br></b></a></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\\"foo\\"><b>foo <br></b><br></a></p><p><a href=\\"foo\\"><b><br><br></b></a></p>" but got "<p><a href=\\"foo\\"><b>foo</b></a></p><p><a href=\\"foo\\"><b><br><br></b></a></p>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo {}<br><br></b></a></p>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo {}<br><br></b></a></p>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo {}<br><br></b></a></p>" queryCommandValue("defaultparagraphseparator") before
@@ -848,7 +848,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo {}<br><br></b></a></div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo {}<br><br></b></a></div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo {}<br><br></b></a></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\"foo\"><b>foo <br></b><br></a></div><div><a href=\"foo\"><b><br><br></b></a></div>" but got "<div><a href=\"foo\"><b>foo</b></a></div><div><a href=\"foo\"><b><br><br></b></a></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\\"foo\\"><b>foo <br></b><br></a></div><div><a href=\\"foo\\"><b><br><br></b></a></div>" but got "<div><a href=\\"foo\\"><b>foo</b></a></div><div><a href=\\"foo\\"><b><br><br></b></a></div>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo {}<br><br></b></a></div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo {}<br><br></b></a></div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo {}<br><br></b></a></div>" queryCommandValue("defaultparagraphseparator") before
@@ -865,7 +865,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo {}<br></b><br></a></p>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo {}<br></b><br></a></p>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo {}<br></b><br></a></p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\"foo\"><b>foo <br></b></a></p><p><a href=\"foo\"><b><br></b><br></a></p>" but got "<p><a href=\"foo\"><b>foo</b></a></p><p><a href=\"foo\"><b><br></b><br></a></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><a href=\\"foo\\"><b>foo <br></b></a></p><p><a href=\\"foo\\"><b><br></b><br></a></p>" but got "<p><a href=\\"foo\\"><b>foo</b></a></p><p><a href=\\"foo\\"><b><br></b><br></a></p>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo {}<br></b><br></a></p>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo {}<br></b><br></a></p>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<p><a href=foo><b>foo {}<br></b><br></a></p>" queryCommandValue("defaultparagraphseparator") before
@@ -882,7 +882,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo {}<br></b><br></a></div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo {}<br></b><br></a></div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo {}<br></b><br></a></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\"foo\"><b>foo <br></b></a></div><div><a href=\"foo\"><b><br></b><br></a></div>" but got "<div><a href=\"foo\"><b>foo</b></a></div><div><a href=\"foo\"><b><br></b><br></a></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><a href=\\"foo\\"><b>foo <br></b></a></div><div><a href=\\"foo\\"><b><br></b><br></a></div>" but got "<div><a href=\\"foo\\"><b>foo</b></a></div><div><a href=\\"foo\\"><b><br></b><br></a></div>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo {}<br></b><br></a></div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo {}<br></b><br></a></div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div><a href=foo><b>foo {}<br></b><br></a></div>" queryCommandValue("defaultparagraphseparator") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_4001-5000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_4001-5000-expected.txt
index 98557d3..975e5d0 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_4001-5000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_4001-5000-expected.txt
@@ -666,7 +666,7 @@
 [PASS] [["insertparagraph",""]] "<ul contenteditable><li>{}<br></ul>": execCommand("insertparagraph", false, "") return value
 [PASS] [["insertparagraph",""]] "<ul contenteditable><li>{}<br></ul>" checks for modifications to non-editable content
 [FAIL] [["insertparagraph",""]] "<ul contenteditable><li>{}<br></ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul contenteditable=\"\"><li><br></li></ul>" but got "<p><br></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul contenteditable=\\"\\"><li><br></li></ul>" but got "<p><br></p>"
 [PASS] [["insertparagraph",""]] "<ul contenteditable><li>{}<br></ul>" queryCommandIndeterm("insertparagraph") before
 [PASS] [["insertparagraph",""]] "<ul contenteditable><li>{}<br></ul>" queryCommandState("insertparagraph") before
 [PASS] [["insertparagraph",""]] "<ul contenteditable><li>{}<br></ul>" queryCommandValue("insertparagraph") before
@@ -685,7 +685,7 @@
 [PASS] [["insertparagraph",""]] "<div contenteditable=false><ul contenteditable><li>{}<br></ul></div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["insertparagraph",""]] "<div contenteditable=false><ul contenteditable><li>{}<br></ul></div>" checks for modifications to non-editable content
 [FAIL] [["insertparagraph",""]] "<div contenteditable=false><ul contenteditable><li>{}<br></ul></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div contenteditable=\"false\"><ul contenteditable=\"\"><li><br></li></ul></div>" but got "<div contenteditable=\"false\"><ul contenteditable=\"\"><li><br></li><li><br></li></ul></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div contenteditable=\\"false\\"><ul contenteditable=\\"\\"><li><br></li></ul></div>" but got "<div contenteditable=\\"false\\"><ul contenteditable=\\"\\"><li><br></li><li><br></li></ul></div>"
 [PASS] [["insertparagraph",""]] "<div contenteditable=false><ul contenteditable><li>{}<br></ul></div>" queryCommandIndeterm("insertparagraph") before
 [PASS] [["insertparagraph",""]] "<div contenteditable=false><ul contenteditable><li>{}<br></ul></div>" queryCommandState("insertparagraph") before
 [PASS] [["insertparagraph",""]] "<div contenteditable=false><ul contenteditable><li>{}<br></ul></div>" queryCommandValue("insertparagraph") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_5001-6000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_5001-6000-expected.txt
index 98d097e3..3b21b819 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_5001-6000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_5001-6000-expected.txt
@@ -855,7 +855,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]</ol>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]</ol>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li class=\"a\" id=\"x\"><p class=\"b\" id=\"y\">foo</p></li><li class=\"a\"><p class=\"b\"><br></p></li></ol>" but got "<ol><li class=\"a\" id=\"x\"><p class=\"b\" id=\"y\">foo</p></li><li class=\"a\" id=\"x\"><p class=\"b\" id=\"y\"><br></p></li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\">foo</p></li><li class=\\"a\\"><p class=\\"b\\"><br></p></li></ol>" but got "<ol><li class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\">foo</p></li><li class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\"><br></p></li></ol>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]</ol>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]</ol>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]</ol>" queryCommandValue("defaultparagraphseparator") before
@@ -872,7 +872,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]</ol>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]</ol>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li class=\"a\" id=\"x\"><p class=\"b\" id=\"y\">foo</p></li><li class=\"a\"><p class=\"b\"><br></p></li></ol>" but got "<ol><li class=\"a\" id=\"x\"><p class=\"b\" id=\"y\">foo</p></li><li class=\"a\" id=\"x\"><p class=\"b\" id=\"y\"><br></p></li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\">foo</p></li><li class=\\"a\\"><p class=\\"b\\"><br></p></li></ol>" but got "<ol><li class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\">foo</p></li><li class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\"><br></p></li></ol>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]</ol>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]</ol>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]</ol>" queryCommandValue("defaultparagraphseparator") before
@@ -889,7 +889,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]</div></div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]</div></div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]</div></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"a\" id=\"x\"><div class=\"b\" id=\"y\">foo</div><div class=\"b\"><br></div></div>" but got "<div class=\"a\" id=\"x\"><div class=\"b\" id=\"y\">foo</div><div class=\"b\" id=\"y\"><br></div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"a\\" id=\\"x\\"><div class=\\"b\\" id=\\"y\\">foo</div><div class=\\"b\\"><br></div></div>" but got "<div class=\\"a\\" id=\\"x\\"><div class=\\"b\\" id=\\"y\\">foo</div><div class=\\"b\\" id=\\"y\\"><br></div></div>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]</div></div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]</div></div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]</div></div>" queryCommandValue("defaultparagraphseparator") before
@@ -906,7 +906,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]</div></div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]</div></div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]</div></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"a\" id=\"x\"><div class=\"b\" id=\"y\">foo</div><div class=\"b\"><br></div></div>" but got "<div class=\"a\" id=\"x\"><div class=\"b\" id=\"y\">foo</div><div class=\"b\" id=\"y\"><br></div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"a\\" id=\\"x\\"><div class=\\"b\\" id=\\"y\\">foo</div><div class=\\"b\\"><br></div></div>" but got "<div class=\\"a\\" id=\\"x\\"><div class=\\"b\\" id=\\"y\\">foo</div><div class=\\"b\\" id=\\"y\\"><br></div></div>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]</div></div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]</div></div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]</div></div>" queryCommandValue("defaultparagraphseparator") before
@@ -923,7 +923,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]</div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]</div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"a\" id=\"x\"><p class=\"b\" id=\"y\">foo</p><p class=\"b\"><br></p></div>" but got "<div class=\"a\" id=\"x\"><p class=\"b\" id=\"y\">foo</p><p class=\"b\" id=\"y\"><br></p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\">foo</p><p class=\\"b\\"><br></p></div>" but got "<div class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\">foo</p><p class=\\"b\\" id=\\"y\\"><br></p></div>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]</div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]</div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]</div>" queryCommandValue("defaultparagraphseparator") before
@@ -940,7 +940,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]</div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]</div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"a\" id=\"x\"><p class=\"b\" id=\"y\">foo</p><p class=\"b\"><br></p></div>" but got "<div class=\"a\" id=\"x\"><p class=\"b\" id=\"y\">foo</p><p class=\"b\" id=\"y\"><br></p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\">foo</p><p class=\\"b\\"><br></p></div>" but got "<div class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\">foo</p><p class=\\"b\\" id=\\"y\\"><br></p></div>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]</div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]</div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]</div>" queryCommandValue("defaultparagraphseparator") before
@@ -957,7 +957,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>[]foo</ol>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>[]foo</ol>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>[]foo</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li class=\"a\" id=\"x\"><p class=\"b\" id=\"y\"><br></p></li><li class=\"a\"><p class=\"b\">foo</p></li></ol>" but got "<ol><li class=\"a\" id=\"x\"><p class=\"b\" id=\"y\"><br></p></li><li class=\"a\" id=\"x\"><p class=\"b\" id=\"y\">foo</p></li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\"><br></p></li><li class=\\"a\\"><p class=\\"b\\">foo</p></li></ol>" but got "<ol><li class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\"><br></p></li><li class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\">foo</p></li></ol>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>[]foo</ol>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>[]foo</ol>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>[]foo</ol>" queryCommandValue("defaultparagraphseparator") before
@@ -974,7 +974,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>[]foo</ol>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>[]foo</ol>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>[]foo</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li class=\"a\" id=\"x\"><p class=\"b\" id=\"y\"><br></p></li><li class=\"a\"><p class=\"b\">foo</p></li></ol>" but got "<ol><li class=\"a\" id=\"x\"><p class=\"b\" id=\"y\"><br></p></li><li class=\"a\" id=\"x\"><p class=\"b\" id=\"y\">foo</p></li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\"><br></p></li><li class=\\"a\\"><p class=\\"b\\">foo</p></li></ol>" but got "<ol><li class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\"><br></p></li><li class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\">foo</p></li></ol>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>[]foo</ol>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>[]foo</ol>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>[]foo</ol>" queryCommandValue("defaultparagraphseparator") before
@@ -991,7 +991,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>[]foo</div></div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>[]foo</div></div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>[]foo</div></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"a\" id=\"x\"><div class=\"b\" id=\"y\"><br></div><div class=\"b\">foo</div></div>" but got "<div class=\"a\" id=\"x\"><div class=\"b\" id=\"y\"><br></div><div class=\"b\" id=\"y\">foo</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"a\\" id=\\"x\\"><div class=\\"b\\" id=\\"y\\"><br></div><div class=\\"b\\">foo</div></div>" but got "<div class=\\"a\\" id=\\"x\\"><div class=\\"b\\" id=\\"y\\"><br></div><div class=\\"b\\" id=\\"y\\">foo</div></div>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>[]foo</div></div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>[]foo</div></div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>[]foo</div></div>" queryCommandValue("defaultparagraphseparator") before
@@ -1008,7 +1008,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>[]foo</div></div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>[]foo</div></div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>[]foo</div></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"a\" id=\"x\"><div class=\"b\" id=\"y\"><br></div><div class=\"b\">foo</div></div>" but got "<div class=\"a\" id=\"x\"><div class=\"b\" id=\"y\"><br></div><div class=\"b\" id=\"y\">foo</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"a\\" id=\\"x\\"><div class=\\"b\\" id=\\"y\\"><br></div><div class=\\"b\\">foo</div></div>" but got "<div class=\\"a\\" id=\\"x\\"><div class=\\"b\\" id=\\"y\\"><br></div><div class=\\"b\\" id=\\"y\\">foo</div></div>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>[]foo</div></div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>[]foo</div></div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>[]foo</div></div>" queryCommandValue("defaultparagraphseparator") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_6001-last-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_6001-last-expected.txt
index e2db4af..ea29ff9 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_6001-last-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/insertparagraph_6001-last-expected.txt
@@ -10,7 +10,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>[]foo</div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>[]foo</div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>[]foo</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"a\" id=\"x\"><p class=\"b\" id=\"y\"><br></p><p class=\"b\">foo</p></div>" but got "<div class=\"a\" id=\"x\"><p class=\"b\" id=\"y\"><br></p><p class=\"b\" id=\"y\">foo</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\"><br></p><p class=\\"b\\">foo</p></div>" but got "<div class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\"><br></p><p class=\\"b\\" id=\\"y\\">foo</p></div>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>[]foo</div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>[]foo</div>" queryCommandState("defaultparagraphseparator") before
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>[]foo</div>" queryCommandValue("defaultparagraphseparator") before
@@ -28,7 +28,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>[]foo</div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>[]foo</div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>[]foo</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"a\" id=\"x\"><p class=\"b\" id=\"y\"><br></p><p class=\"b\">foo</p></div>" but got "<div class=\"a\" id=\"x\"><p class=\"b\" id=\"y\"><br></p><p class=\"b\" id=\"y\">foo</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\"><br></p><p class=\\"b\\">foo</p></div>" but got "<div class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\"><br></p><p class=\\"b\\" id=\\"y\\">foo</p></div>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>[]foo</div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>[]foo</div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>[]foo</div>" queryCommandValue("defaultparagraphseparator") before
@@ -45,7 +45,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]bar</ol>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]bar</ol>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]bar</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li class=\"a\" id=\"x\"><p class=\"b\" id=\"y\">foo</p></li><li class=\"a\"><p class=\"b\">bar</p></li></ol>" but got "<ol><li class=\"a\" id=\"x\"><p class=\"b\" id=\"y\">foo</p></li><li class=\"a\" id=\"x\"><p class=\"b\" id=\"y\">bar</p></li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\">foo</p></li><li class=\\"a\\"><p class=\\"b\\">bar</p></li></ol>" but got "<ol><li class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\">foo</p></li><li class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\">bar</p></li></ol>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]bar</ol>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]bar</ol>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]bar</ol>" queryCommandValue("defaultparagraphseparator") before
@@ -62,7 +62,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]bar</ol>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]bar</ol>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]bar</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li class=\"a\" id=\"x\"><p class=\"b\" id=\"y\">foo</p></li><li class=\"a\"><p class=\"b\">bar</p></li></ol>" but got "<ol><li class=\"a\" id=\"x\"><p class=\"b\" id=\"y\">foo</p></li><li class=\"a\" id=\"x\"><p class=\"b\" id=\"y\">bar</p></li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\">foo</p></li><li class=\\"a\\"><p class=\\"b\\">bar</p></li></ol>" but got "<ol><li class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\">foo</p></li><li class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\">bar</p></li></ol>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]bar</ol>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]bar</ol>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<ol><li class=a id=x><p class=b id=y>foo[]bar</ol>" queryCommandValue("defaultparagraphseparator") before
@@ -79,7 +79,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]bar</div></div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]bar</div></div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]bar</div></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"a\" id=\"x\"><div class=\"b\" id=\"y\">foo</div><div class=\"b\">bar</div></div>" but got "<div class=\"a\" id=\"x\"><div class=\"b\" id=\"y\">foo</div><div class=\"b\" id=\"y\">bar</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"a\\" id=\\"x\\"><div class=\\"b\\" id=\\"y\\">foo</div><div class=\\"b\\">bar</div></div>" but got "<div class=\\"a\\" id=\\"x\\"><div class=\\"b\\" id=\\"y\\">foo</div><div class=\\"b\\" id=\\"y\\">bar</div></div>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]bar</div></div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]bar</div></div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]bar</div></div>" queryCommandValue("defaultparagraphseparator") before
@@ -96,7 +96,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]bar</div></div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]bar</div></div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]bar</div></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"a\" id=\"x\"><div class=\"b\" id=\"y\">foo</div><div class=\"b\">bar</div></div>" but got "<div class=\"a\" id=\"x\"><div class=\"b\" id=\"y\">foo</div><div class=\"b\" id=\"y\">bar</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"a\\" id=\\"x\\"><div class=\\"b\\" id=\\"y\\">foo</div><div class=\\"b\\">bar</div></div>" but got "<div class=\\"a\\" id=\\"x\\"><div class=\\"b\\" id=\\"y\\">foo</div><div class=\\"b\\" id=\\"y\\">bar</div></div>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]bar</div></div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]bar</div></div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><div class=b id=y>foo[]bar</div></div>" queryCommandValue("defaultparagraphseparator") before
@@ -113,7 +113,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]bar</div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]bar</div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]bar</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"a\" id=\"x\"><p class=\"b\" id=\"y\">foo</p><p class=\"b\">bar</p></div>" but got "<div class=\"a\" id=\"x\"><p class=\"b\" id=\"y\">foo</p><p class=\"b\" id=\"y\">bar</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\">foo</p><p class=\\"b\\">bar</p></div>" but got "<div class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\">foo</p><p class=\\"b\\" id=\\"y\\">bar</p></div>"
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]bar</div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]bar</div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]bar</div>" queryCommandValue("defaultparagraphseparator") before
@@ -130,7 +130,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]bar</div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]bar</div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]bar</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"a\" id=\"x\"><p class=\"b\" id=\"y\">foo</p><p class=\"b\">bar</p></div>" but got "<div class=\"a\" id=\"x\"><p class=\"b\" id=\"y\">foo</p><p class=\"b\" id=\"y\">bar</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\">foo</p><p class=\\"b\\">bar</p></div>" but got "<div class=\\"a\\" id=\\"x\\"><p class=\\"b\\" id=\\"y\\">foo</p><p class=\\"b\\" id=\\"y\\">bar</p></div>"
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]bar</div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]bar</div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<div class=a id=x><p class=b id=y>foo[]bar</div>" queryCommandValue("defaultparagraphseparator") before
@@ -321,7 +321,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div contenteditable=false><h1 contenteditable>ab[]cd</h1></div>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div contenteditable=false><h1 contenteditable>ab[]cd</h1></div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div contenteditable=false><h1 contenteditable>ab[]cd</h1></div>" compare innerHTML
-  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div contenteditable=\"false\"><h1 contenteditable=\"\">ab<div>cd</div></h1></div>" not in array ["<div contenteditable=\"false\"><h1 contenteditable=\"\">ab<br>cd</h1></div>", "<div contenteditable=\"false\"><h1 contenteditable=\"\">ab<br>cd<br></h1></div>"]
+  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div contenteditable=\\"false\\"><h1 contenteditable=\\"\\">ab<div>cd</div></h1></div>" not in array ["<div contenteditable=\\"false\\"><h1 contenteditable=\\"\\">ab<br>cd</h1></div>", "<div contenteditable=\\"false\\"><h1 contenteditable=\\"\\">ab<br>cd<br></h1></div>"]
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div contenteditable=false><h1 contenteditable>ab[]cd</h1></div>" queryCommandIndeterm("insertparagraph") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div contenteditable=false><h1 contenteditable>ab[]cd</h1></div>" queryCommandState("insertparagraph") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div contenteditable=false><h1 contenteditable>ab[]cd</h1></div>" queryCommandValue("insertparagraph") before
@@ -332,7 +332,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol contenteditable=false><li contenteditable>ab[]cd</li></ol>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol contenteditable=false><li contenteditable>ab[]cd</li></ol>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol contenteditable=false><li contenteditable>ab[]cd</li></ol>" compare innerHTML
-  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<ol contenteditable=\"false\"><li contenteditable=\"\">ab<div>cd</div></li></ol>" not in array ["<ol contenteditable=\"false\"><li contenteditable=\"\"><div>ab</div><div>cd</div></li></ol>", "<ol contenteditable=\"false\"><li contenteditable=\"\"><div>ab</div><div>cd<br></div></li></ol>"]
+  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<ol contenteditable=\\"false\\"><li contenteditable=\\"\\">ab<div>cd</div></li></ol>" not in array ["<ol contenteditable=\\"false\\"><li contenteditable=\\"\\"><div>ab</div><div>cd</div></li></ol>", "<ol contenteditable=\\"false\\"><li contenteditable=\\"\\"><div>ab</div><div>cd<br></div></li></ol>"]
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol contenteditable=false><li contenteditable>ab[]cd</li></ol>" queryCommandIndeterm("insertparagraph") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol contenteditable=false><li contenteditable>ab[]cd</li></ol>" queryCommandState("insertparagraph") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ol contenteditable=false><li contenteditable>ab[]cd</li></ol>" queryCommandValue("insertparagraph") before
@@ -343,7 +343,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<dl contenteditable=false><dt contenteditable>ab[]cd</dt></dl>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<dl contenteditable=false><dt contenteditable>ab[]cd</dt></dl>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<dl contenteditable=false><dt contenteditable>ab[]cd</dt></dl>" compare innerHTML
-  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<dl contenteditable=\"false\"><dt contenteditable=\"\">ab<div>cd</div></dt></dl>" not in array ["<dl contenteditable=\"false\"><dt contenteditable=\"\">ab<br>cd</dt></dl>", "<dl contenteditable=\"false\"><dt contenteditable=\"\">ab<br>cd<br></dt></dl>"]
+  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<dl contenteditable=\\"false\\"><dt contenteditable=\\"\\">ab<div>cd</div></dt></dl>" not in array ["<dl contenteditable=\\"false\\"><dt contenteditable=\\"\\">ab<br>cd</dt></dl>", "<dl contenteditable=\\"false\\"><dt contenteditable=\\"\\">ab<br>cd<br></dt></dl>"]
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<dl contenteditable=false><dt contenteditable>ab[]cd</dt></dl>" queryCommandIndeterm("insertparagraph") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<dl contenteditable=false><dt contenteditable>ab[]cd</dt></dl>" queryCommandState("insertparagraph") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<dl contenteditable=false><dt contenteditable>ab[]cd</dt></dl>" queryCommandValue("insertparagraph") before
@@ -354,7 +354,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<dl contenteditable=false><dd contenteditable>ab[]cd</dd></dl>": execCommand("insertparagraph", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<dl contenteditable=false><dd contenteditable>ab[]cd</dd></dl>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<dl contenteditable=false><dd contenteditable>ab[]cd</dd></dl>" compare innerHTML
-  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<dl contenteditable=\"false\"><dd contenteditable=\"\">ab<div>cd</div></dd></dl>" not in array ["<dl contenteditable=\"false\"><dd contenteditable=\"\"><div>ab</div><div>cd</div></dd></dl>", "<dl contenteditable=\"false\"><dd contenteditable=\"\"><div>ab</div><div>cd<br></div>/dd></dl>"]
+  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<dl contenteditable=\\"false\\"><dd contenteditable=\\"\\">ab<div>cd</div></dd></dl>" not in array ["<dl contenteditable=\\"false\\"><dd contenteditable=\\"\\"><div>ab</div><div>cd</div></dd></dl>", "<dl contenteditable=\\"false\\"><dd contenteditable=\\"\\"><div>ab</div><div>cd<br></div>/dd></dl>"]
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<dl contenteditable=false><dd contenteditable>ab[]cd</dd></dl>" queryCommandIndeterm("insertparagraph") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<dl contenteditable=false><dd contenteditable>ab[]cd</dd></dl>" queryCommandState("insertparagraph") before
 [PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<dl contenteditable=false><dd contenteditable>ab[]cd</dd></dl>" queryCommandValue("insertparagraph") before
@@ -778,205 +778,205 @@
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<h3>[abc]</h3><p>def</p>" queryCommandIndeterm("insertparagraph") after
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<h3>[abc]</h3><p>def</p>" queryCommandState("insertparagraph") after
 [PASS] [["defaultparagraphseparator","p"],["insertparagraph",""]] "<h3>[abc]</h3><p>def</p>" queryCommandValue("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]</span></div>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]</span></div>": execCommand("insertparagraph", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]</span></div>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]</span></div>" compare innerHTML
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]</span></div>" queryCommandIndeterm("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]</span></div>" queryCommandState("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]</span></div>" queryCommandValue("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]</span></div>" queryCommandIndeterm("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]</span></div>" queryCommandState("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]</span></div>" queryCommandValue("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></div>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></div>": execCommand("insertparagraph", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></div>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></div>" compare innerHTML
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></div>" queryCommandIndeterm("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></div>" queryCommandState("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></div>" queryCommandValue("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></div>" queryCommandIndeterm("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></div>" queryCommandState("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></div>" queryCommandValue("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span></div>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span></div>": execCommand("insertparagraph", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span></div>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span></div>" compare innerHTML
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span></div>" queryCommandIndeterm("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span></div>" queryCommandState("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span></div>" queryCommandValue("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span></div>" queryCommandIndeterm("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span></div>" queryCommandState("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span></div>" queryCommandValue("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></div>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></div>": execCommand("insertparagraph", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></div>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></div>" compare innerHTML
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></div>" queryCommandIndeterm("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></div>" queryCommandState("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></div>" queryCommandValue("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></div>" queryCommandIndeterm("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></div>" queryCommandState("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></div>" queryCommandValue("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></div>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></div>": execCommand("insertparagraph", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></div>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></div>" compare innerHTML
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></div>" queryCommandIndeterm("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></div>" queryCommandState("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></div>" queryCommandValue("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></div>" queryCommandIndeterm("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></div>" queryCommandState("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></div>" queryCommandValue("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></span></div>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></span></div>": execCommand("insertparagraph", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></span></div>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></span></div>" compare innerHTML
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></span></div>" queryCommandIndeterm("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></span></div>" queryCommandState("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></span></div>" queryCommandValue("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></span></div>" queryCommandIndeterm("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></span></div>" queryCommandState("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></span></div>" queryCommandValue("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></div>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></div>": execCommand("insertparagraph", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></div>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></div>" compare innerHTML
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></div>" queryCommandIndeterm("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></div>" queryCommandState("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></div>" queryCommandValue("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></div>" queryCommandIndeterm("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></div>" queryCommandState("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></div>" queryCommandValue("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></div>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></div>": execCommand("insertparagraph", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></div>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></div>" compare innerHTML
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></div>" queryCommandIndeterm("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></div>" queryCommandState("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></div>" queryCommandValue("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></div>" queryCommandIndeterm("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></div>" queryCommandState("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></div>" queryCommandValue("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span><br></div>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span><br></div>": execCommand("insertparagraph", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span><br></div>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span><br></div>" compare innerHTML
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span><br></div>" queryCommandIndeterm("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span><br></div>" queryCommandState("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span><br></div>" queryCommandValue("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span><br></div>" queryCommandIndeterm("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span><br></div>" queryCommandState("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span><br></div>" queryCommandValue("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></span></div>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></span></div>": execCommand("insertparagraph", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></span></div>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></span></div>" compare innerHTML
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></span></div>" queryCommandIndeterm("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></span></div>" queryCommandState("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></span></div>" queryCommandValue("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></span></div>" queryCommandIndeterm("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></span></div>" queryCommandState("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></span></div>" queryCommandValue("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]</span></li></ul>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]</span></li></ul>": execCommand("insertparagraph", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]</span></li></ul>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]</span></li></ul>" compare innerHTML
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]</span></li></ul>" queryCommandIndeterm("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]</span></li></ul>" queryCommandState("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]</span></li></ul>" queryCommandValue("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]</span></li></ul>" queryCommandIndeterm("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]</span></li></ul>" queryCommandState("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]</span></li></ul>" queryCommandValue("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></li></ul>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></li></ul>": execCommand("insertparagraph", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></li></ul>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></li></ul>" compare innerHTML
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></li></ul>" queryCommandIndeterm("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></li></ul>" queryCommandState("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></li></ul>" queryCommandValue("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></li></ul>" queryCommandIndeterm("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></li></ul>" queryCommandState("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></li></ul>" queryCommandValue("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span></li></ul>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span></li></ul>": execCommand("insertparagraph", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span></li></ul>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span></li></ul>" compare innerHTML
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span></li></ul>" queryCommandIndeterm("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span></li></ul>" queryCommandState("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span></li></ul>" queryCommandValue("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span></li></ul>" queryCommandIndeterm("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span></li></ul>" queryCommandState("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span></li></ul>" queryCommandValue("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></li></ul>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></li></ul>": execCommand("insertparagraph", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></li></ul>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></li></ul>" compare innerHTML
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></li></ul>" queryCommandIndeterm("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></li></ul>" queryCommandState("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></li></ul>" queryCommandValue("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></li></ul>" queryCommandIndeterm("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></li></ul>" queryCommandState("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></li></ul>" queryCommandValue("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></li></ul>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></li></ul>": execCommand("insertparagraph", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></li></ul>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></li></ul>" compare innerHTML
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></li></ul>" queryCommandIndeterm("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></li></ul>" queryCommandState("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></li></ul>" queryCommandValue("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></li></ul>" queryCommandIndeterm("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></li></ul>" queryCommandState("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></li></ul>" queryCommandValue("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></span></li></ul>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></span></li></ul>": execCommand("insertparagraph", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></span></li></ul>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></span></li></ul>" compare innerHTML
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></span></li></ul>" queryCommandIndeterm("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></span></li></ul>" queryCommandState("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></span></li></ul>" queryCommandValue("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></span></li></ul>" queryCommandIndeterm("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></span></li></ul>" queryCommandState("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]<br></span></span></li></ul>" queryCommandValue("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></li></ul>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></li></ul>": execCommand("insertparagraph", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></li></ul>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></li></ul>" compare innerHTML
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></li></ul>" queryCommandIndeterm("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></li></ul>" queryCommandState("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></li></ul>" queryCommandValue("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></li></ul>" queryCommandIndeterm("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></li></ul>" queryCommandState("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></li></ul>" queryCommandValue("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></li></ul>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></li></ul>": execCommand("insertparagraph", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></li></ul>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></li></ul>" compare innerHTML
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></li></ul>" queryCommandIndeterm("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></li></ul>" queryCommandState("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></li></ul>" queryCommandValue("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></li></ul>" queryCommandIndeterm("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></li></ul>" queryCommandState("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></li></ul>" queryCommandValue("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span><br></li></ul>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span><br></li></ul>": execCommand("insertparagraph", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span><br></li></ul>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span><br></li></ul>" compare innerHTML
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span><br></li></ul>" queryCommandIndeterm("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span><br></li></ul>" queryCommandState("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span><br></li></ul>" queryCommandValue("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span><br></li></ul>" queryCommandIndeterm("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span><br></li></ul>" queryCommandState("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span></span><br></li></ul>" queryCommandValue("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></span></li></ul>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></span></li></ul>": execCommand("insertparagraph", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></span></li></ul>" checks for modifications to non-editable content
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></span></li></ul>" compare innerHTML
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></span></li></ul>" queryCommandIndeterm("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></span></li></ul>" queryCommandState("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></span></li></ul>" queryCommandValue("insertparagraph") before
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></span></li></ul>" queryCommandIndeterm("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></span></li></ul>" queryCommandState("insertparagraph") after
-[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo[]</span><br></span></li></ul>" queryCommandValue("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></div>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></div>": execCommand("insertparagraph", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></div>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></div>" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></div>" queryCommandIndeterm("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></div>" queryCommandState("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></div>" queryCommandValue("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></div>" queryCommandIndeterm("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></div>" queryCommandState("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></div>" queryCommandValue("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></div>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></div>": execCommand("insertparagraph", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></div>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></div>" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></div>" queryCommandIndeterm("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></div>" queryCommandState("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></div>" queryCommandValue("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></div>" queryCommandIndeterm("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></div>" queryCommandState("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></div>" queryCommandValue("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span></div>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span></div>": execCommand("insertparagraph", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span></div>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span></div>" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span></div>" queryCommandIndeterm("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span></div>" queryCommandState("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span></div>" queryCommandValue("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span></div>" queryCommandIndeterm("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span></div>" queryCommandState("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span></div>" queryCommandValue("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></div>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></div>": execCommand("insertparagraph", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></div>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></div>" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></div>" queryCommandIndeterm("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></div>" queryCommandState("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></div>" queryCommandValue("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></div>" queryCommandIndeterm("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></div>" queryCommandState("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></div>" queryCommandValue("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></div>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></div>": execCommand("insertparagraph", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></div>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></div>" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></div>" queryCommandIndeterm("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></div>" queryCommandState("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></div>" queryCommandValue("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></div>" queryCommandIndeterm("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></div>" queryCommandState("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></div>" queryCommandValue("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></span></div>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></span></div>": execCommand("insertparagraph", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></span></div>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></span></div>" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></span></div>" queryCommandIndeterm("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></span></div>" queryCommandState("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></span></div>" queryCommandValue("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></span></div>" queryCommandIndeterm("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></span></div>" queryCommandState("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></span></div>" queryCommandValue("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></div>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></div>": execCommand("insertparagraph", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></div>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></div>" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></div>" queryCommandIndeterm("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></div>" queryCommandState("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></div>" queryCommandValue("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></div>" queryCommandIndeterm("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></div>" queryCommandState("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></div>" queryCommandValue("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></div>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></div>": execCommand("insertparagraph", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></div>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></div>" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></div>" queryCommandIndeterm("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></div>" queryCommandState("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></div>" queryCommandValue("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></div>" queryCommandIndeterm("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></div>" queryCommandState("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></div>" queryCommandValue("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span><br></div>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span><br></div>": execCommand("insertparagraph", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span><br></div>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span><br></div>" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span><br></div>" queryCommandIndeterm("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span><br></div>" queryCommandState("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span><br></div>" queryCommandValue("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span><br></div>" queryCommandIndeterm("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span><br></div>" queryCommandState("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span><br></div>" queryCommandValue("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></span></div>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></span></div>": execCommand("insertparagraph", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></span></div>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></span></div>" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></span></div>" queryCommandIndeterm("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></span></div>" queryCommandState("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></span></div>" queryCommandValue("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></span></div>" queryCommandIndeterm("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></span></div>" queryCommandState("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<div><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></span></div>" queryCommandValue("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></li></ul>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></li></ul>": execCommand("insertparagraph", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></li></ul>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></li></ul>" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></li></ul>" queryCommandIndeterm("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></li></ul>" queryCommandState("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></li></ul>" queryCommandValue("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></li></ul>" queryCommandIndeterm("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></li></ul>" queryCommandState("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></li></ul>" queryCommandValue("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></li></ul>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></li></ul>": execCommand("insertparagraph", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></li></ul>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></li></ul>" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></li></ul>" queryCommandIndeterm("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></li></ul>" queryCommandState("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></li></ul>" queryCommandValue("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></li></ul>" queryCommandIndeterm("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></li></ul>" queryCommandState("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></li></ul>" queryCommandValue("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span></li></ul>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span></li></ul>": execCommand("insertparagraph", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span></li></ul>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span></li></ul>" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span></li></ul>" queryCommandIndeterm("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span></li></ul>" queryCommandState("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span></li></ul>" queryCommandValue("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span></li></ul>" queryCommandIndeterm("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span></li></ul>" queryCommandState("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span></li></ul>" queryCommandValue("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></li></ul>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></li></ul>": execCommand("insertparagraph", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></li></ul>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></li></ul>" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></li></ul>" queryCommandIndeterm("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></li></ul>" queryCommandState("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></li></ul>" queryCommandValue("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></li></ul>" queryCommandIndeterm("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></li></ul>" queryCommandState("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></li></ul>" queryCommandValue("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></li></ul>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></li></ul>": execCommand("insertparagraph", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></li></ul>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></li></ul>" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></li></ul>" queryCommandIndeterm("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></li></ul>" queryCommandState("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></li></ul>" queryCommandValue("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></li></ul>" queryCommandIndeterm("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></li></ul>" queryCommandState("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></li></ul>" queryCommandValue("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></span></li></ul>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></span></li></ul>": execCommand("insertparagraph", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></span></li></ul>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></span></li></ul>" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></span></li></ul>" queryCommandIndeterm("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></span></li></ul>" queryCommandState("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></span></li></ul>" queryCommandValue("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></span></li></ul>" queryCommandIndeterm("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></span></li></ul>" queryCommandState("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]<br></span></span></li></ul>" queryCommandValue("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></li></ul>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></li></ul>": execCommand("insertparagraph", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></li></ul>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></li></ul>" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></li></ul>" queryCommandIndeterm("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></li></ul>" queryCommandState("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></li></ul>" queryCommandValue("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></li></ul>" queryCommandIndeterm("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></li></ul>" queryCommandState("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></li></ul>" queryCommandValue("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></li></ul>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></li></ul>": execCommand("insertparagraph", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></li></ul>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></li></ul>" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></li></ul>" queryCommandIndeterm("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></li></ul>" queryCommandState("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></li></ul>" queryCommandValue("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></li></ul>" queryCommandIndeterm("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></li></ul>" queryCommandState("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></li></ul>" queryCommandValue("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span><br></li></ul>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span><br></li></ul>": execCommand("insertparagraph", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span><br></li></ul>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span><br></li></ul>" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span><br></li></ul>" queryCommandIndeterm("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span><br></li></ul>" queryCommandState("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span><br></li></ul>" queryCommandValue("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span><br></li></ul>" queryCommandIndeterm("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span><br></li></ul>" queryCommandState("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span></span><br></li></ul>" queryCommandValue("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></span></li></ul>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></span></li></ul>": execCommand("insertparagraph", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></span></li></ul>" checks for modifications to non-editable content
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></span></li></ul>" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></span></li></ul>" queryCommandIndeterm("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></span></li></ul>" queryCommandState("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></span></li></ul>" queryCommandValue("insertparagraph") before
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></span></li></ul>" queryCommandIndeterm("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></span></li></ul>" queryCommandState("insertparagraph") after
+[PASS] [["defaultparagraphseparator","div"],["insertparagraph",""]] "<ul><li><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"background-color:rgb(0, 0, 255)\\">foo[]</span><br></span></li></ul>" queryCommandValue("insertparagraph") after
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/inserttext_1-1000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/inserttext_1-1000-expected.txt
index 89d8a734..f1a8fac 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/inserttext_1-1000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/inserttext_1-1000-expected.txt
@@ -18,16 +18,16 @@
 [PASS] [["inserttext",""]] "foo[bar]baz" queryCommandIndeterm("inserttext") after
 [PASS] [["inserttext",""]] "foo[bar]baz" queryCommandState("inserttext") after
 [PASS] [["inserttext",""]] "foo[bar]baz" queryCommandValue("inserttext") after
-[PASS] [["inserttext","\t"]] "foo[]bar": execCommand("inserttext", false, "\t") return value
-[PASS] [["inserttext","\t"]] "foo[]bar" checks for modifications to non-editable content
-[FAIL] [["inserttext","\t"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo\tbar" but got "foo<span style=\"white-space:pre\">\t</span>bar"
-[PASS] [["inserttext","\t"]] "foo[]bar" queryCommandIndeterm("inserttext") before
-[PASS] [["inserttext","\t"]] "foo[]bar" queryCommandState("inserttext") before
-[PASS] [["inserttext","\t"]] "foo[]bar" queryCommandValue("inserttext") before
-[PASS] [["inserttext","\t"]] "foo[]bar" queryCommandIndeterm("inserttext") after
-[PASS] [["inserttext","\t"]] "foo[]bar" queryCommandState("inserttext") after
-[PASS] [["inserttext","\t"]] "foo[]bar" queryCommandValue("inserttext") after
+[PASS] [["inserttext","\\t"]] "foo[]bar": execCommand("inserttext", false, "\\t") return value
+[PASS] [["inserttext","\\t"]] "foo[]bar" checks for modifications to non-editable content
+[FAIL] [["inserttext","\\t"]] "foo[]bar" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo\\tbar" but got "foo<span style=\\"white-space:pre\\">\\t</span>bar"
+[PASS] [["inserttext","\\t"]] "foo[]bar" queryCommandIndeterm("inserttext") before
+[PASS] [["inserttext","\\t"]] "foo[]bar" queryCommandState("inserttext") before
+[PASS] [["inserttext","\\t"]] "foo[]bar" queryCommandValue("inserttext") before
+[PASS] [["inserttext","\\t"]] "foo[]bar" queryCommandIndeterm("inserttext") after
+[PASS] [["inserttext","\\t"]] "foo[]bar" queryCommandState("inserttext") after
+[PASS] [["inserttext","\\t"]] "foo[]bar" queryCommandValue("inserttext") after
 [PASS] [["inserttext","&"]] "foo[]bar": execCommand("inserttext", false, "&") return value
 [PASS] [["inserttext","&"]] "foo[]bar" checks for modifications to non-editable content
 [PASS] [["inserttext","&"]] "foo[]bar" compare innerHTML
@@ -37,83 +37,83 @@
 [PASS] [["inserttext","&"]] "foo[]bar" queryCommandIndeterm("inserttext") after
 [PASS] [["inserttext","&"]] "foo[]bar" queryCommandState("inserttext") after
 [PASS] [["inserttext","&"]] "foo[]bar" queryCommandValue("inserttext") after
-[PASS] [["defaultparagraphseparator","div"],["inserttext","\n"]] "foo[]bar": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["inserttext","\n"]] "foo[]bar": execCommand("inserttext", false, "\n") return value
-[PASS] [["defaultparagraphseparator","div"],["inserttext","\n"]] "foo[]bar" checks for modifications to non-editable content
-[FAIL] [["defaultparagraphseparator","div"],["inserttext","\n"]] "foo[]bar" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["inserttext","\\n"]] "foo[]bar": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["inserttext","\\n"]] "foo[]bar": execCommand("inserttext", false, "\\n") return value
+[PASS] [["defaultparagraphseparator","div"],["inserttext","\\n"]] "foo[]bar" checks for modifications to non-editable content
+[FAIL] [["defaultparagraphseparator","div"],["inserttext","\\n"]] "foo[]bar" compare innerHTML
   assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo</div><div>bar</div>" but got "foo<div>bar</div>"
-[PASS] [["defaultparagraphseparator","div"],["inserttext","\n"]] "foo[]bar" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["inserttext","\n"]] "foo[]bar" queryCommandState("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["inserttext","\n"]] "foo[]bar" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["inserttext","\n"]] "foo[]bar" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["inserttext","\n"]] "foo[]bar" queryCommandState("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["inserttext","\n"]] "foo[]bar" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["inserttext","\n"]] "foo[]bar" queryCommandIndeterm("inserttext") before
-[PASS] [["defaultparagraphseparator","div"],["inserttext","\n"]] "foo[]bar" queryCommandState("inserttext") before
-[PASS] [["defaultparagraphseparator","div"],["inserttext","\n"]] "foo[]bar" queryCommandValue("inserttext") before
-[PASS] [["defaultparagraphseparator","div"],["inserttext","\n"]] "foo[]bar" queryCommandIndeterm("inserttext") after
-[PASS] [["defaultparagraphseparator","div"],["inserttext","\n"]] "foo[]bar" queryCommandState("inserttext") after
-[PASS] [["defaultparagraphseparator","div"],["inserttext","\n"]] "foo[]bar" queryCommandValue("inserttext") after
-[PASS] [["defaultparagraphseparator","p"],["inserttext","\n"]] "foo[]bar": execCommand("defaultparagraphseparator", false, "p") return value
-[PASS] [["defaultparagraphseparator","p"],["inserttext","\n"]] "foo[]bar": execCommand("inserttext", false, "\n") return value
-[PASS] [["defaultparagraphseparator","p"],["inserttext","\n"]] "foo[]bar" checks for modifications to non-editable content
-[FAIL] [["defaultparagraphseparator","p"],["inserttext","\n"]] "foo[]bar" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["inserttext","\\n"]] "foo[]bar" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["inserttext","\\n"]] "foo[]bar" queryCommandState("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["inserttext","\\n"]] "foo[]bar" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["inserttext","\\n"]] "foo[]bar" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["inserttext","\\n"]] "foo[]bar" queryCommandState("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["inserttext","\\n"]] "foo[]bar" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["inserttext","\\n"]] "foo[]bar" queryCommandIndeterm("inserttext") before
+[PASS] [["defaultparagraphseparator","div"],["inserttext","\\n"]] "foo[]bar" queryCommandState("inserttext") before
+[PASS] [["defaultparagraphseparator","div"],["inserttext","\\n"]] "foo[]bar" queryCommandValue("inserttext") before
+[PASS] [["defaultparagraphseparator","div"],["inserttext","\\n"]] "foo[]bar" queryCommandIndeterm("inserttext") after
+[PASS] [["defaultparagraphseparator","div"],["inserttext","\\n"]] "foo[]bar" queryCommandState("inserttext") after
+[PASS] [["defaultparagraphseparator","div"],["inserttext","\\n"]] "foo[]bar" queryCommandValue("inserttext") after
+[PASS] [["defaultparagraphseparator","p"],["inserttext","\\n"]] "foo[]bar": execCommand("defaultparagraphseparator", false, "p") return value
+[PASS] [["defaultparagraphseparator","p"],["inserttext","\\n"]] "foo[]bar": execCommand("inserttext", false, "\\n") return value
+[PASS] [["defaultparagraphseparator","p"],["inserttext","\\n"]] "foo[]bar" checks for modifications to non-editable content
+[FAIL] [["defaultparagraphseparator","p"],["inserttext","\\n"]] "foo[]bar" compare innerHTML
   assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p>" but got "foo<p>bar</p>"
-[PASS] [["defaultparagraphseparator","p"],["inserttext","\n"]] "foo[]bar" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["inserttext","\n"]] "foo[]bar" queryCommandState("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["inserttext","\n"]] "foo[]bar" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["inserttext","\n"]] "foo[]bar" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["inserttext","\n"]] "foo[]bar" queryCommandState("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["inserttext","\n"]] "foo[]bar" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["inserttext","\n"]] "foo[]bar" queryCommandIndeterm("inserttext") before
-[PASS] [["defaultparagraphseparator","p"],["inserttext","\n"]] "foo[]bar" queryCommandState("inserttext") before
-[PASS] [["defaultparagraphseparator","p"],["inserttext","\n"]] "foo[]bar" queryCommandValue("inserttext") before
-[PASS] [["defaultparagraphseparator","p"],["inserttext","\n"]] "foo[]bar" queryCommandIndeterm("inserttext") after
-[PASS] [["defaultparagraphseparator","p"],["inserttext","\n"]] "foo[]bar" queryCommandState("inserttext") after
-[PASS] [["defaultparagraphseparator","p"],["inserttext","\n"]] "foo[]bar" queryCommandValue("inserttext") after
-[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\ndef"]] "foo[]bar": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\ndef"]] "foo[]bar": execCommand("inserttext", false, "abc\ndef") return value
-[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\ndef"]] "foo[]bar" checks for modifications to non-editable content
-[FAIL] [["defaultparagraphseparator","div"],["inserttext","abc\ndef"]] "foo[]bar" compare innerHTML
+[PASS] [["defaultparagraphseparator","p"],["inserttext","\\n"]] "foo[]bar" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["inserttext","\\n"]] "foo[]bar" queryCommandState("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["inserttext","\\n"]] "foo[]bar" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["inserttext","\\n"]] "foo[]bar" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["inserttext","\\n"]] "foo[]bar" queryCommandState("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["inserttext","\\n"]] "foo[]bar" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["inserttext","\\n"]] "foo[]bar" queryCommandIndeterm("inserttext") before
+[PASS] [["defaultparagraphseparator","p"],["inserttext","\\n"]] "foo[]bar" queryCommandState("inserttext") before
+[PASS] [["defaultparagraphseparator","p"],["inserttext","\\n"]] "foo[]bar" queryCommandValue("inserttext") before
+[PASS] [["defaultparagraphseparator","p"],["inserttext","\\n"]] "foo[]bar" queryCommandIndeterm("inserttext") after
+[PASS] [["defaultparagraphseparator","p"],["inserttext","\\n"]] "foo[]bar" queryCommandState("inserttext") after
+[PASS] [["defaultparagraphseparator","p"],["inserttext","\\n"]] "foo[]bar" queryCommandValue("inserttext") after
+[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\\ndef"]] "foo[]bar": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\\ndef"]] "foo[]bar": execCommand("inserttext", false, "abc\\ndef") return value
+[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\\ndef"]] "foo[]bar" checks for modifications to non-editable content
+[FAIL] [["defaultparagraphseparator","div"],["inserttext","abc\\ndef"]] "foo[]bar" compare innerHTML
   assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>fooabc</div><div>defbar</div>" but got "fooabc<div>defbar</div>"
-[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandState("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandState("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandIndeterm("inserttext") before
-[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandState("inserttext") before
-[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandValue("inserttext") before
-[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandIndeterm("inserttext") after
-[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandState("inserttext") after
-[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandValue("inserttext") after
-[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\ndef"]] "foo[]bar": execCommand("defaultparagraphseparator", false, "p") return value
-[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\ndef"]] "foo[]bar": execCommand("inserttext", false, "abc\ndef") return value
-[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\ndef"]] "foo[]bar" checks for modifications to non-editable content
-[FAIL] [["defaultparagraphseparator","p"],["inserttext","abc\ndef"]] "foo[]bar" compare innerHTML
+[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandState("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandState("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandIndeterm("inserttext") before
+[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandState("inserttext") before
+[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandValue("inserttext") before
+[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandIndeterm("inserttext") after
+[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandState("inserttext") after
+[PASS] [["defaultparagraphseparator","div"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandValue("inserttext") after
+[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\\ndef"]] "foo[]bar": execCommand("defaultparagraphseparator", false, "p") return value
+[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\\ndef"]] "foo[]bar": execCommand("inserttext", false, "abc\\ndef") return value
+[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\\ndef"]] "foo[]bar" checks for modifications to non-editable content
+[FAIL] [["defaultparagraphseparator","p"],["inserttext","abc\\ndef"]] "foo[]bar" compare innerHTML
   assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>fooabc</p><p>defbar</p>" but got "fooabc<p>defbar</p>"
-[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandState("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandState("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandIndeterm("inserttext") before
-[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandState("inserttext") before
-[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandValue("inserttext") before
-[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandIndeterm("inserttext") after
-[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandState("inserttext") after
-[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\ndef"]] "foo[]bar" queryCommandValue("inserttext") after
-[PASS] [["inserttext","\u0007"]] "foo[]bar": execCommand("inserttext", false, "\x07") return value
-[PASS] [["inserttext","\u0007"]] "foo[]bar" checks for modifications to non-editable content
-[PASS] [["inserttext","\u0007"]] "foo[]bar" compare innerHTML
-[PASS] [["inserttext","\u0007"]] "foo[]bar" queryCommandIndeterm("inserttext") before
-[PASS] [["inserttext","\u0007"]] "foo[]bar" queryCommandState("inserttext") before
-[PASS] [["inserttext","\u0007"]] "foo[]bar" queryCommandValue("inserttext") before
-[PASS] [["inserttext","\u0007"]] "foo[]bar" queryCommandIndeterm("inserttext") after
-[PASS] [["inserttext","\u0007"]] "foo[]bar" queryCommandState("inserttext") after
-[PASS] [["inserttext","\u0007"]] "foo[]bar" queryCommandValue("inserttext") after
+[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandState("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandState("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandIndeterm("inserttext") before
+[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandState("inserttext") before
+[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandValue("inserttext") before
+[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandIndeterm("inserttext") after
+[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandState("inserttext") after
+[PASS] [["defaultparagraphseparator","p"],["inserttext","abc\\ndef"]] "foo[]bar" queryCommandValue("inserttext") after
+[PASS] [["inserttext","\\u0007"]] "foo[]bar": execCommand("inserttext", false, "\\x07") return value
+[PASS] [["inserttext","\\u0007"]] "foo[]bar" checks for modifications to non-editable content
+[PASS] [["inserttext","\\u0007"]] "foo[]bar" compare innerHTML
+[PASS] [["inserttext","\\u0007"]] "foo[]bar" queryCommandIndeterm("inserttext") before
+[PASS] [["inserttext","\\u0007"]] "foo[]bar" queryCommandState("inserttext") before
+[PASS] [["inserttext","\\u0007"]] "foo[]bar" queryCommandValue("inserttext") before
+[PASS] [["inserttext","\\u0007"]] "foo[]bar" queryCommandIndeterm("inserttext") after
+[PASS] [["inserttext","\\u0007"]] "foo[]bar" queryCommandState("inserttext") after
+[PASS] [["inserttext","\\u0007"]] "foo[]bar" queryCommandValue("inserttext") after
 [PASS] [["inserttext","<b>hi</b>"]] "foo[]bar": execCommand("inserttext", false, "<b>hi</b>") return value
 [PASS] [["inserttext","<b>hi</b>"]] "foo[]bar" checks for modifications to non-editable content
 [PASS] [["inserttext","<b>hi</b>"]] "foo[]bar" compare innerHTML
@@ -751,7 +751,7 @@
 [PASS] [["inserttext"," "]] "<div style=white-space:pre-line>foo &nbsp;[]bar</div>": execCommand("inserttext", false, " ") return value
 [PASS] [["inserttext"," "]] "<div style=white-space:pre-line>foo &nbsp;[]bar</div>" checks for modifications to non-editable content
 [FAIL] [["inserttext"," "]] "<div style=white-space:pre-line>foo &nbsp;[]bar</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"white-space:pre-line\">foo &nbsp; bar</div>" but got "<div style=\"white-space:pre-line\">foo&nbsp; &nbsp;bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"white-space:pre-line\\">foo &nbsp; bar</div>" but got "<div style=\\"white-space:pre-line\\">foo&nbsp; &nbsp;bar</div>"
 [PASS] [["inserttext"," "]] "<div style=white-space:pre-line>foo &nbsp;[]bar</div>" queryCommandIndeterm("inserttext") before
 [PASS] [["inserttext"," "]] "<div style=white-space:pre-line>foo &nbsp;[]bar</div>" queryCommandState("inserttext") before
 [PASS] [["inserttext"," "]] "<div style=white-space:pre-line>foo &nbsp;[]bar</div>" queryCommandValue("inserttext") before
@@ -779,7 +779,7 @@
 [PASS] [["inserttext"," "]] "<div style=white-space:pre-line>foo&nbsp;[]</div>": execCommand("inserttext", false, " ") return value
 [PASS] [["inserttext"," "]] "<div style=white-space:pre-line>foo&nbsp;[]</div>" checks for modifications to non-editable content
 [FAIL] [["inserttext"," "]] "<div style=white-space:pre-line>foo&nbsp;[]</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"white-space:pre-line\">foo &nbsp;</div>" but got "<div style=\"white-space:pre-line\">foo&nbsp;&nbsp;</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"white-space:pre-line\\">foo &nbsp;</div>" but got "<div style=\\"white-space:pre-line\\">foo&nbsp;&nbsp;</div>"
 [PASS] [["inserttext"," "]] "<div style=white-space:pre-line>foo&nbsp;[]</div>" queryCommandIndeterm("inserttext") before
 [PASS] [["inserttext"," "]] "<div style=white-space:pre-line>foo&nbsp;[]</div>" queryCommandState("inserttext") before
 [PASS] [["inserttext"," "]] "<div style=white-space:pre-line>foo&nbsp;[]</div>" queryCommandValue("inserttext") before
@@ -825,7 +825,7 @@
 [PASS] [["inserttext"," "]] "<div style=white-space:nowrap>foo &nbsp;[]bar</div>": execCommand("inserttext", false, " ") return value
 [PASS] [["inserttext"," "]] "<div style=white-space:nowrap>foo &nbsp;[]bar</div>" checks for modifications to non-editable content
 [FAIL] [["inserttext"," "]] "<div style=white-space:nowrap>foo &nbsp;[]bar</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"white-space:nowrap\">foo &nbsp; bar</div>" but got "<div style=\"white-space:nowrap\">foo&nbsp; &nbsp;bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"white-space:nowrap\\">foo &nbsp; bar</div>" but got "<div style=\\"white-space:nowrap\\">foo&nbsp; &nbsp;bar</div>"
 [PASS] [["inserttext"," "]] "<div style=white-space:nowrap>foo &nbsp;[]bar</div>" queryCommandIndeterm("inserttext") before
 [PASS] [["inserttext"," "]] "<div style=white-space:nowrap>foo &nbsp;[]bar</div>" queryCommandState("inserttext") before
 [PASS] [["inserttext"," "]] "<div style=white-space:nowrap>foo &nbsp;[]bar</div>" queryCommandValue("inserttext") before
@@ -853,7 +853,7 @@
 [PASS] [["inserttext"," "]] "<div style=white-space:nowrap>foo&nbsp;[]</div>": execCommand("inserttext", false, " ") return value
 [PASS] [["inserttext"," "]] "<div style=white-space:nowrap>foo&nbsp;[]</div>" checks for modifications to non-editable content
 [FAIL] [["inserttext"," "]] "<div style=white-space:nowrap>foo&nbsp;[]</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"white-space:nowrap\">foo &nbsp;</div>" but got "<div style=\"white-space:nowrap\">foo&nbsp;&nbsp;</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"white-space:nowrap\\">foo &nbsp;</div>" but got "<div style=\\"white-space:nowrap\\">foo&nbsp;&nbsp;</div>"
 [PASS] [["inserttext"," "]] "<div style=white-space:nowrap>foo&nbsp;[]</div>" queryCommandIndeterm("inserttext") before
 [PASS] [["inserttext"," "]] "<div style=white-space:nowrap>foo&nbsp;[]</div>" queryCommandState("inserttext") before
 [PASS] [["inserttext"," "]] "<div style=white-space:nowrap>foo&nbsp;[]</div>" queryCommandValue("inserttext") before
@@ -872,7 +872,7 @@
 [PASS] [["inserttext"," "]] "http://a[]": execCommand("inserttext", false, " ") return value
 [PASS] [["inserttext"," "]] "http://a[]" checks for modifications to non-editable content
 [FAIL] [["inserttext"," "]] "http://a[]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\"http://a\">http://a</a>&nbsp;" but got "http://a&nbsp;"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\"http://a\\">http://a</a>&nbsp;" but got "http://a&nbsp;"
 [PASS] [["inserttext"," "]] "http://a[]" queryCommandIndeterm("inserttext") before
 [PASS] [["inserttext"," "]] "http://a[]" queryCommandState("inserttext") before
 [PASS] [["inserttext"," "]] "http://a[]" queryCommandValue("inserttext") before
@@ -882,7 +882,7 @@
 [PASS] [["inserttext"," "]] "ftp://a[]": execCommand("inserttext", false, " ") return value
 [PASS] [["inserttext"," "]] "ftp://a[]" checks for modifications to non-editable content
 [FAIL] [["inserttext"," "]] "ftp://a[]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\"ftp://a\">ftp://a</a>&nbsp;" but got "ftp://a&nbsp;"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\"ftp://a\\">ftp://a</a>&nbsp;" but got "ftp://a&nbsp;"
 [PASS] [["inserttext"," "]] "ftp://a[]" queryCommandIndeterm("inserttext") before
 [PASS] [["inserttext"," "]] "ftp://a[]" queryCommandState("inserttext") before
 [PASS] [["inserttext"," "]] "ftp://a[]" queryCommandValue("inserttext") before
@@ -892,7 +892,7 @@
 [PASS] [["inserttext"," "]] "quasit://a[]": execCommand("inserttext", false, " ") return value
 [PASS] [["inserttext"," "]] "quasit://a[]" checks for modifications to non-editable content
 [FAIL] [["inserttext"," "]] "quasit://a[]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\"quasit://a\">quasit://a</a>&nbsp;" but got "quasit://a&nbsp;"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\"quasit://a\\">quasit://a</a>&nbsp;" but got "quasit://a&nbsp;"
 [PASS] [["inserttext"," "]] "quasit://a[]" queryCommandIndeterm("inserttext") before
 [PASS] [["inserttext"," "]] "quasit://a[]" queryCommandState("inserttext") before
 [PASS] [["inserttext"," "]] "quasit://a[]" queryCommandValue("inserttext") before
@@ -902,7 +902,7 @@
 [PASS] [["inserttext"," "]] ".x-++-.://a[]": execCommand("inserttext", false, " ") return value
 [PASS] [["inserttext"," "]] ".x-++-.://a[]" checks for modifications to non-editable content
 [FAIL] [["inserttext"," "]] ".x-++-.://a[]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected ".<a href=\"x-++-.://a\">x-++-.://a</a>&nbsp;" but got ".x-++-.://a&nbsp;"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected ".<a href=\\"x-++-.://a\\">x-++-.://a</a>&nbsp;" but got ".x-++-.://a&nbsp;"
 [PASS] [["inserttext"," "]] ".x-++-.://a[]" queryCommandIndeterm("inserttext") before
 [PASS] [["inserttext"," "]] ".x-++-.://a[]" queryCommandState("inserttext") before
 [PASS] [["inserttext"," "]] ".x-++-.://a[]" queryCommandValue("inserttext") before
@@ -912,7 +912,7 @@
 [PASS] [["inserttext"," "]] "(http://a)[]": execCommand("inserttext", false, " ") return value
 [PASS] [["inserttext"," "]] "(http://a)[]" checks for modifications to non-editable content
 [FAIL] [["inserttext"," "]] "(http://a)[]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "(<a href=\"http://a\">http://a</a>)&nbsp;" but got "(http://a)&nbsp;"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "(<a href=\\"http://a\\">http://a</a>)&nbsp;" but got "(http://a)&nbsp;"
 [PASS] [["inserttext"," "]] "(http://a)[]" queryCommandIndeterm("inserttext") before
 [PASS] [["inserttext"," "]] "(http://a)[]" queryCommandState("inserttext") before
 [PASS] [["inserttext"," "]] "(http://a)[]" queryCommandValue("inserttext") before
@@ -922,7 +922,7 @@
 [PASS] [["inserttext"," "]] "&lt;http://a>[]": execCommand("inserttext", false, " ") return value
 [PASS] [["inserttext"," "]] "&lt;http://a>[]" checks for modifications to non-editable content
 [FAIL] [["inserttext"," "]] "&lt;http://a>[]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "&lt;<a href=\"http://a\">http://a</a>&gt;&nbsp;" but got "&lt;http://a&gt;&nbsp;"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "&lt;<a href=\\"http://a\\">http://a</a>&gt;&nbsp;" but got "&lt;http://a&gt;&nbsp;"
 [PASS] [["inserttext"," "]] "&lt;http://a>[]" queryCommandIndeterm("inserttext") before
 [PASS] [["inserttext"," "]] "&lt;http://a>[]" queryCommandState("inserttext") before
 [PASS] [["inserttext"," "]] "&lt;http://a>[]" queryCommandValue("inserttext") before
@@ -932,37 +932,37 @@
 [PASS] [["inserttext"," "]] "http://a![]": execCommand("inserttext", false, " ") return value
 [PASS] [["inserttext"," "]] "http://a![]" checks for modifications to non-editable content
 [FAIL] [["inserttext"," "]] "http://a![]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\"http://a\">http://a</a>!&nbsp;" but got "http://a!&nbsp;"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\"http://a\\">http://a</a>!&nbsp;" but got "http://a!&nbsp;"
 [PASS] [["inserttext"," "]] "http://a![]" queryCommandIndeterm("inserttext") before
 [PASS] [["inserttext"," "]] "http://a![]" queryCommandState("inserttext") before
 [PASS] [["inserttext"," "]] "http://a![]" queryCommandValue("inserttext") before
 [PASS] [["inserttext"," "]] "http://a![]" queryCommandIndeterm("inserttext") after
 [PASS] [["inserttext"," "]] "http://a![]" queryCommandState("inserttext") after
 [PASS] [["inserttext"," "]] "http://a![]" queryCommandValue("inserttext") after
-[PASS] [["inserttext"," "]] "!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~http://a!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]": execCommand("inserttext", false, " ") return value
-[PASS] [["inserttext"," "]] "!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~http://a!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" checks for modifications to non-editable content
-[FAIL] [["inserttext"," "]] "!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~http://a!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "!\"#$%&amp;'()*+,-./:;&lt;=&gt;?^_`|~<a href=\"http://a!&quot;#$%&amp;'()*+,-./:;&lt;=&gt;?^_`|~\">http://a!\"#$%&amp;'()*+,-./:;&lt;=&gt;?^_`|~</a>&nbsp;" but got "!\"#$%&amp;'()*+,-./:;&lt;=&gt;?^_`|~http://a!\"#$%&amp;'()*+,-./:;&lt;=&gt;?^_`|~&nbsp;"
-[PASS] [["inserttext"," "]] "!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~http://a!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandIndeterm("inserttext") before
-[PASS] [["inserttext"," "]] "!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~http://a!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandState("inserttext") before
-[PASS] [["inserttext"," "]] "!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~http://a!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandValue("inserttext") before
-[PASS] [["inserttext"," "]] "!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~http://a!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandIndeterm("inserttext") after
-[PASS] [["inserttext"," "]] "!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~http://a!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandState("inserttext") after
-[PASS] [["inserttext"," "]] "!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~http://a!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandValue("inserttext") after
-[PASS] [["inserttext"," "]] "http://a!\"'(),-.:;&lt;>`[]": execCommand("inserttext", false, " ") return value
-[PASS] [["inserttext"," "]] "http://a!\"'(),-.:;&lt;>`[]" checks for modifications to non-editable content
-[FAIL] [["inserttext"," "]] "http://a!\"'(),-.:;&lt;>`[]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\"http://a\">http://a</a>!\"'(),-.:;&lt;&gt;`&nbsp;" but got "http://a!\"'(),-.:;&lt;&gt;`&nbsp;"
-[PASS] [["inserttext"," "]] "http://a!\"'(),-.:;&lt;>`[]" queryCommandIndeterm("inserttext") before
-[PASS] [["inserttext"," "]] "http://a!\"'(),-.:;&lt;>`[]" queryCommandState("inserttext") before
-[PASS] [["inserttext"," "]] "http://a!\"'(),-.:;&lt;>`[]" queryCommandValue("inserttext") before
-[PASS] [["inserttext"," "]] "http://a!\"'(),-.:;&lt;>`[]" queryCommandIndeterm("inserttext") after
-[PASS] [["inserttext"," "]] "http://a!\"'(),-.:;&lt;>`[]" queryCommandState("inserttext") after
-[PASS] [["inserttext"," "]] "http://a!\"'(),-.:;&lt;>`[]" queryCommandValue("inserttext") after
+[PASS] [["inserttext"," "]] "!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~http://a!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]": execCommand("inserttext", false, " ") return value
+[PASS] [["inserttext"," "]] "!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~http://a!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" checks for modifications to non-editable content
+[FAIL] [["inserttext"," "]] "!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~http://a!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "!\\"#$%&amp;'()*+,-./:;&lt;=&gt;?^_`|~<a href=\\"http://a!&quot;#$%&amp;'()*+,-./:;&lt;=&gt;?^_`|~\\">http://a!\\"#$%&amp;'()*+,-./:;&lt;=&gt;?^_`|~</a>&nbsp;" but got "!\\"#$%&amp;'()*+,-./:;&lt;=&gt;?^_`|~http://a!\\"#$%&amp;'()*+,-./:;&lt;=&gt;?^_`|~&nbsp;"
+[PASS] [["inserttext"," "]] "!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~http://a!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandIndeterm("inserttext") before
+[PASS] [["inserttext"," "]] "!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~http://a!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandState("inserttext") before
+[PASS] [["inserttext"," "]] "!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~http://a!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandValue("inserttext") before
+[PASS] [["inserttext"," "]] "!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~http://a!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandIndeterm("inserttext") after
+[PASS] [["inserttext"," "]] "!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~http://a!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandState("inserttext") after
+[PASS] [["inserttext"," "]] "!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~http://a!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandValue("inserttext") after
+[PASS] [["inserttext"," "]] "http://a!\\"'(),-.:;&lt;>`[]": execCommand("inserttext", false, " ") return value
+[PASS] [["inserttext"," "]] "http://a!\\"'(),-.:;&lt;>`[]" checks for modifications to non-editable content
+[FAIL] [["inserttext"," "]] "http://a!\\"'(),-.:;&lt;>`[]" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\"http://a\\">http://a</a>!\\"'(),-.:;&lt;&gt;`&nbsp;" but got "http://a!\\"'(),-.:;&lt;&gt;`&nbsp;"
+[PASS] [["inserttext"," "]] "http://a!\\"'(),-.:;&lt;>`[]" queryCommandIndeterm("inserttext") before
+[PASS] [["inserttext"," "]] "http://a!\\"'(),-.:;&lt;>`[]" queryCommandState("inserttext") before
+[PASS] [["inserttext"," "]] "http://a!\\"'(),-.:;&lt;>`[]" queryCommandValue("inserttext") before
+[PASS] [["inserttext"," "]] "http://a!\\"'(),-.:;&lt;>`[]" queryCommandIndeterm("inserttext") after
+[PASS] [["inserttext"," "]] "http://a!\\"'(),-.:;&lt;>`[]" queryCommandState("inserttext") after
+[PASS] [["inserttext"," "]] "http://a!\\"'(),-.:;&lt;>`[]" queryCommandValue("inserttext") after
 [PASS] [["inserttext"," "]] "http://a#$%&amp;*+/=?^_|~[]": execCommand("inserttext", false, " ") return value
 [PASS] [["inserttext"," "]] "http://a#$%&amp;*+/=?^_|~[]" checks for modifications to non-editable content
 [FAIL] [["inserttext"," "]] "http://a#$%&amp;*+/=?^_|~[]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\"http://a#$%&amp;*+/=?^_|~\">http://a#$%&amp;*+/=?^_|~</a>&nbsp;" but got "http://a#$%&amp;*+/=?^_|~&nbsp;"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\"http://a#$%&amp;*+/=?^_|~\\">http://a#$%&amp;*+/=?^_|~</a>&nbsp;" but got "http://a#$%&amp;*+/=?^_|~&nbsp;"
 [PASS] [["inserttext"," "]] "http://a#$%&amp;*+/=?^_|~[]" queryCommandIndeterm("inserttext") before
 [PASS] [["inserttext"," "]] "http://a#$%&amp;*+/=?^_|~[]" queryCommandState("inserttext") before
 [PASS] [["inserttext"," "]] "http://a#$%&amp;*+/=?^_|~[]" queryCommandValue("inserttext") before
@@ -972,7 +972,7 @@
 [PASS] [["inserttext"," "]] "mailto:a[]": execCommand("inserttext", false, " ") return value
 [PASS] [["inserttext"," "]] "mailto:a[]" checks for modifications to non-editable content
 [FAIL] [["inserttext"," "]] "mailto:a[]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\"mailto:a\">mailto:a</a>&nbsp;" but got "mailto:a&nbsp;"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\"mailto:a\\">mailto:a</a>&nbsp;" but got "mailto:a&nbsp;"
 [PASS] [["inserttext"," "]] "mailto:a[]" queryCommandIndeterm("inserttext") before
 [PASS] [["inserttext"," "]] "mailto:a[]" queryCommandState("inserttext") before
 [PASS] [["inserttext"," "]] "mailto:a[]" queryCommandValue("inserttext") before
@@ -982,7 +982,7 @@
 [PASS] [["inserttext"," "]] "a@b[]": execCommand("inserttext", false, " ") return value
 [PASS] [["inserttext"," "]] "a@b[]" checks for modifications to non-editable content
 [FAIL] [["inserttext"," "]] "a@b[]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\"mailto:a@b\">a@b</a>&nbsp;" but got "a@b&nbsp;"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\"mailto:a@b\\">a@b</a>&nbsp;" but got "a@b&nbsp;"
 [PASS] [["inserttext"," "]] "a@b[]" queryCommandIndeterm("inserttext") before
 [PASS] [["inserttext"," "]] "a@b[]" queryCommandState("inserttext") before
 [PASS] [["inserttext"," "]] "a@b[]" queryCommandValue("inserttext") before
@@ -1010,7 +1010,7 @@
 [PASS] [["inserttext"," "]] "#@x[]": execCommand("inserttext", false, " ") return value
 [PASS] [["inserttext"," "]] "#@x[]" checks for modifications to non-editable content
 [FAIL] [["inserttext"," "]] "#@x[]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\"mailto:#@x\">#@x</a>&nbsp;" but got "#@x&nbsp;"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\"mailto:#@x\\">#@x</a>&nbsp;" but got "#@x&nbsp;"
 [PASS] [["inserttext"," "]] "#@x[]" queryCommandIndeterm("inserttext") before
 [PASS] [["inserttext"," "]] "#@x[]" queryCommandState("inserttext") before
 [PASS] [["inserttext"," "]] "#@x[]" queryCommandValue("inserttext") before
@@ -1026,20 +1026,20 @@
 [PASS] [["inserttext"," "]] "a@.[]" queryCommandIndeterm("inserttext") after
 [PASS] [["inserttext"," "]] "a@.[]" queryCommandState("inserttext") after
 [PASS] [["inserttext"," "]] "a@.[]" queryCommandValue("inserttext") after
-[PASS] [["inserttext"," "]] "!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~a@b!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]": execCommand("inserttext", false, " ") return value
-[PASS] [["inserttext"," "]] "!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~a@b!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" checks for modifications to non-editable content
-[FAIL] [["inserttext"," "]] "!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~a@b!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "!\"#$%&amp;'()*+,-./:;&lt;=&gt;<a href=\"mailto:?^_`|~a@b\">?^_`|~a@b</a>!\"#$%&amp;'()*+,-./:;&lt;=&gt;?^_`|~&nbsp;" but got "!\"#$%&amp;'()*+,-./:;&lt;=&gt;?^_`|~a@b!\"#$%&amp;'()*+,-./:;&lt;=&gt;?^_`|~&nbsp;"
-[PASS] [["inserttext"," "]] "!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~a@b!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandIndeterm("inserttext") before
-[PASS] [["inserttext"," "]] "!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~a@b!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandState("inserttext") before
-[PASS] [["inserttext"," "]] "!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~a@b!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandValue("inserttext") before
-[PASS] [["inserttext"," "]] "!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~a@b!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandIndeterm("inserttext") after
-[PASS] [["inserttext"," "]] "!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~a@b!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandState("inserttext") after
-[PASS] [["inserttext"," "]] "!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~a@b!\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandValue("inserttext") after
+[PASS] [["inserttext"," "]] "!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~a@b!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]": execCommand("inserttext", false, " ") return value
+[PASS] [["inserttext"," "]] "!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~a@b!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" checks for modifications to non-editable content
+[FAIL] [["inserttext"," "]] "!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~a@b!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "!\\"#$%&amp;'()*+,-./:;&lt;=&gt;<a href=\\"mailto:?^_`|~a@b\\">?^_`|~a@b</a>!\\"#$%&amp;'()*+,-./:;&lt;=&gt;?^_`|~&nbsp;" but got "!\\"#$%&amp;'()*+,-./:;&lt;=&gt;?^_`|~a@b!\\"#$%&amp;'()*+,-./:;&lt;=&gt;?^_`|~&nbsp;"
+[PASS] [["inserttext"," "]] "!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~a@b!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandIndeterm("inserttext") before
+[PASS] [["inserttext"," "]] "!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~a@b!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandState("inserttext") before
+[PASS] [["inserttext"," "]] "!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~a@b!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandValue("inserttext") before
+[PASS] [["inserttext"," "]] "!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~a@b!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandIndeterm("inserttext") after
+[PASS] [["inserttext"," "]] "!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~a@b!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandState("inserttext") after
+[PASS] [["inserttext"," "]] "!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~a@b!\\"#$%&amp;'()*+,-./:;&lt;=>?^_`|~[]" queryCommandValue("inserttext") after
 [PASS] [["inserttext"," "]] "<b>a@b</b>{}": execCommand("inserttext", false, " ") return value
 [PASS] [["inserttext"," "]] "<b>a@b</b>{}" checks for modifications to non-editable content
 [FAIL] [["inserttext"," "]] "<b>a@b</b>{}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\"mailto:a@b\"><b>a@b</b></a> " but got "<b>a@b&nbsp;</b>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\"mailto:a@b\\"><b>a@b</b></a> " but got "<b>a@b&nbsp;</b>"
 [PASS] [["inserttext"," "]] "<b>a@b</b>{}" queryCommandIndeterm("inserttext") before
 [PASS] [["inserttext"," "]] "<b>a@b</b>{}" queryCommandState("inserttext") before
 [PASS] [["inserttext"," "]] "<b>a@b</b>{}" queryCommandValue("inserttext") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/inserttext_1001-2000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/inserttext_1001-2000-expected.txt
index f990a09..a6136d5 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/inserttext_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/inserttext_1001-2000-expected.txt
@@ -13,7 +13,7 @@
 [PASS] [["inserttext"," "]] "a@b<b>[]c</b>": execCommand("inserttext", false, " ") return value
 [PASS] [["inserttext"," "]] "a@b<b>[]c</b>" checks for modifications to non-editable content
 [FAIL] [["inserttext"," "]] "a@b<b>[]c</b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\"mailto:a@b\">a@b</a><b> c</b>" but got "a@b&nbsp;<b>c</b>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\"mailto:a@b\\">a@b</a><b> c</b>" but got "a@b&nbsp;<b>c</b>"
 [PASS] [["inserttext"," "]] "a@b<b>[]c</b>" queryCommandIndeterm("inserttext") before
 [PASS] [["inserttext"," "]] "a@b<b>[]c</b>" queryCommandState("inserttext") before
 [PASS] [["inserttext"," "]] "a@b<b>[]c</b>" queryCommandValue("inserttext") before
@@ -38,26 +38,26 @@
 [PASS] [["inserttext","a"]] "http://a[]" queryCommandIndeterm("inserttext") after
 [PASS] [["inserttext","a"]] "http://a[]" queryCommandState("inserttext") after
 [PASS] [["inserttext","a"]] "http://a[]" queryCommandValue("inserttext") after
-[PASS] [["inserttext","\t"]] "http://a[]": execCommand("inserttext", false, "\t") return value
-[PASS] [["inserttext","\t"]] "http://a[]" checks for modifications to non-editable content
-[FAIL] [["inserttext","\t"]] "http://a[]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\"http://a\">http://a</a>\t" but got "http://a<span style=\"white-space:pre\">\t</span>"
-[PASS] [["inserttext","\t"]] "http://a[]" queryCommandIndeterm("inserttext") before
-[PASS] [["inserttext","\t"]] "http://a[]" queryCommandState("inserttext") before
-[PASS] [["inserttext","\t"]] "http://a[]" queryCommandValue("inserttext") before
-[PASS] [["inserttext","\t"]] "http://a[]" queryCommandIndeterm("inserttext") after
-[PASS] [["inserttext","\t"]] "http://a[]" queryCommandState("inserttext") after
-[PASS] [["inserttext","\t"]] "http://a[]" queryCommandValue("inserttext") after
-[PASS] [["inserttext","\f"]] "http://a[]": execCommand("inserttext", false, "\f") return value
-[PASS] [["inserttext","\f"]] "http://a[]" checks for modifications to non-editable content
-[FAIL] [["inserttext","\f"]] "http://a[]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\"http://a\">http://a</a>\f" but got "http://a\f"
-[PASS] [["inserttext","\f"]] "http://a[]" queryCommandIndeterm("inserttext") before
-[PASS] [["inserttext","\f"]] "http://a[]" queryCommandState("inserttext") before
-[PASS] [["inserttext","\f"]] "http://a[]" queryCommandValue("inserttext") before
-[PASS] [["inserttext","\f"]] "http://a[]" queryCommandIndeterm("inserttext") after
-[PASS] [["inserttext","\f"]] "http://a[]" queryCommandState("inserttext") after
-[PASS] [["inserttext","\f"]] "http://a[]" queryCommandValue("inserttext") after
+[PASS] [["inserttext","\\t"]] "http://a[]": execCommand("inserttext", false, "\\t") return value
+[PASS] [["inserttext","\\t"]] "http://a[]" checks for modifications to non-editable content
+[FAIL] [["inserttext","\\t"]] "http://a[]" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\"http://a\\">http://a</a>\\t" but got "http://a<span style=\\"white-space:pre\\">\\t</span>"
+[PASS] [["inserttext","\\t"]] "http://a[]" queryCommandIndeterm("inserttext") before
+[PASS] [["inserttext","\\t"]] "http://a[]" queryCommandState("inserttext") before
+[PASS] [["inserttext","\\t"]] "http://a[]" queryCommandValue("inserttext") before
+[PASS] [["inserttext","\\t"]] "http://a[]" queryCommandIndeterm("inserttext") after
+[PASS] [["inserttext","\\t"]] "http://a[]" queryCommandState("inserttext") after
+[PASS] [["inserttext","\\t"]] "http://a[]" queryCommandValue("inserttext") after
+[PASS] [["inserttext","\\f"]] "http://a[]": execCommand("inserttext", false, "\\f") return value
+[PASS] [["inserttext","\\f"]] "http://a[]" checks for modifications to non-editable content
+[FAIL] [["inserttext","\\f"]] "http://a[]" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\"http://a\\">http://a</a>\\f" but got "http://a\\f"
+[PASS] [["inserttext","\\f"]] "http://a[]" queryCommandIndeterm("inserttext") before
+[PASS] [["inserttext","\\f"]] "http://a[]" queryCommandState("inserttext") before
+[PASS] [["inserttext","\\f"]] "http://a[]" queryCommandValue("inserttext") before
+[PASS] [["inserttext","\\f"]] "http://a[]" queryCommandIndeterm("inserttext") after
+[PASS] [["inserttext","\\f"]] "http://a[]" queryCommandState("inserttext") after
+[PASS] [["inserttext","\\f"]] "http://a[]" queryCommandValue("inserttext") after
 [PASS] [["inserttext"," "]] "http://a[]": execCommand("inserttext", false, " ") return value
 [PASS] [["inserttext"," "]] "http://a[]" checks for modifications to non-editable content
 [PASS] [["inserttext"," "]] "http://a[]" compare innerHTML
@@ -212,7 +212,7 @@
 [PASS] [["inserttext","a"]] "<a href=/>foo[]</a>bar": execCommand("inserttext", false, "a") return value
 [PASS] [["inserttext","a"]] "<a href=/>foo[]</a>bar" checks for modifications to non-editable content
 [FAIL] [["inserttext","a"]] "<a href=/>foo[]</a>bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\"/\">fooa</a>bar" but got "<a href=\"/\">foo</a>abar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a href=\\"/\\">fooa</a>bar" but got "<a href=\\"/\\">foo</a>abar"
 [PASS] [["inserttext","a"]] "<a href=/>foo[]</a>bar" queryCommandIndeterm("inserttext") before
 [PASS] [["inserttext","a"]] "<a href=/>foo[]</a>bar" queryCommandState("inserttext") before
 [PASS] [["inserttext","a"]] "<a href=/>foo[]</a>bar" queryCommandValue("inserttext") before
@@ -415,7 +415,7 @@
 [PASS] [["inserttext","a"]] "<p>foo<span style=color:#aBcDeF>[bar</span>baz]": execCommand("inserttext", false, "a") return value
 [PASS] [["inserttext","a"]] "<p>foo<span style=color:#aBcDeF>[bar</span>baz]" checks for modifications to non-editable content
 [FAIL] [["inserttext","a"]] "<p>foo<span style=color:#aBcDeF>[bar</span>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<span style=\"color:rgb(171, 205, 239)\">a</span></p>" but got "<p>foo<font color=\"#abcdef\">a</font></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<span style=\\"color:rgb(171, 205, 239)\\">a</span></p>" but got "<p>foo<font color=\\"#abcdef\\">a</font></p>"
 [PASS] [["inserttext","a"]] "<p>foo<span style=color:#aBcDeF>[bar</span>baz]" queryCommandIndeterm("inserttext") before
 [PASS] [["inserttext","a"]] "<p>foo<span style=color:#aBcDeF>[bar</span>baz]" queryCommandState("inserttext") before
 [PASS] [["inserttext","a"]] "<p>foo<span style=color:#aBcDeF>[bar</span>baz]" queryCommandValue("inserttext") before
@@ -425,7 +425,7 @@
 [PASS] [["inserttext","a"]] "<p>foo<span style=color:#aBcDeF>{bar</span>baz}": execCommand("inserttext", false, "a") return value
 [PASS] [["inserttext","a"]] "<p>foo<span style=color:#aBcDeF>{bar</span>baz}" checks for modifications to non-editable content
 [FAIL] [["inserttext","a"]] "<p>foo<span style=color:#aBcDeF>{bar</span>baz}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<span style=\"color:rgb(171, 205, 239)\">a</span></p>" but got "<p>foo<font color=\"#abcdef\">a</font></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<span style=\\"color:rgb(171, 205, 239)\\">a</span></p>" but got "<p>foo<font color=\\"#abcdef\\">a</font></p>"
 [PASS] [["inserttext","a"]] "<p>foo<span style=color:#aBcDeF>{bar</span>baz}" queryCommandIndeterm("inserttext") before
 [PASS] [["inserttext","a"]] "<p>foo<span style=color:#aBcDeF>{bar</span>baz}" queryCommandState("inserttext") before
 [PASS] [["inserttext","a"]] "<p>foo<span style=color:#aBcDeF>{bar</span>baz}" queryCommandValue("inserttext") before
@@ -452,7 +452,7 @@
 [PASS] [["stylewithcss","false"],["inserttext","a"]] "<p>foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz": execCommand("inserttext", false, "a") return value
 [PASS] [["stylewithcss","false"],["inserttext","a"]] "<p>foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["inserttext","a"]] "<p>foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<span style=\"color:rgb(171, 205, 239)\">a</span>quz</p>" but got "<p>foo<font color=\"#abcdef\">a</font>quz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo<span style=\\"color:rgb(171, 205, 239)\\">a</span>quz</p>" but got "<p>foo<font color=\\"#abcdef\\">a</font>quz</p>"
 [PASS] [["stylewithcss","false"],["inserttext","a"]] "<p>foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["inserttext","a"]] "<p>foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["inserttext","a"]] "<p>foo<span style=color:#aBcDeF>[bar</span><span style=color:#fEdCbA>baz]</span>quz" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/insertunorderedlist_1-1000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/insertunorderedlist_1-1000-expected.txt
index 1210d25..7ecdcea0 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/insertunorderedlist_1-1000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/insertunorderedlist_1-1000-expected.txt
@@ -461,7 +461,7 @@
 [PASS] [["insertunorderedlist",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["insertunorderedlist",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" checks for modifications to non-editable content
 [FAIL] [["insertunorderedlist",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul><li><div>foo</div>bar</li></ul><ol><li>baz</li></ol>" but got "<ul><li><div style=\"display:inline !important\">foo</div>bar</li></ul><ol><li>baz</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul><li><div>foo</div>bar</li></ul><ol><li>baz</li></ol>" but got "<ul><li><div style=\\"display:inline !important\\">foo</div>bar</li></ul><ol><li>baz</li></ol>"
 [PASS] [["insertunorderedlist",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" queryCommandIndeterm("insertunorderedlist") before
 [PASS] [["insertunorderedlist",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" queryCommandState("insertunorderedlist") before
 [FAIL] [["insertunorderedlist",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" queryCommandValue("insertunorderedlist") before
@@ -843,7 +843,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul><li><div>[foo]</div>bar<li>baz</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul><li><div>[foo]</div>bar<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul><li><div>[foo]</div>bar<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo</div><div>bar</div><ul><li>baz</li></ul>" but got "<div style=\"display:inline !important\">foo</div>bar<br><ul><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo</div><div>bar</div><ul><li>baz</li></ul>" but got "<div style=\\"display:inline !important\\">foo</div>bar<br><ul><li>baz</li></ul>"
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul><li><div>[foo]</div>bar<li>baz</ul>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul><li><div>[foo]</div>bar<li>baz</ul>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul><li><div>[foo]</div>bar<li>baz</ul>" queryCommandValue("defaultparagraphseparator") before
@@ -862,7 +862,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul><li><div>[foo]</div>bar<li>baz</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul><li><div>[foo]</div>bar<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul><li><div>[foo]</div>bar<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo</div><p>bar</p><ul><li>baz</li></ul>" but got "<div style=\"display:inline !important\">foo</div>bar<br><ul><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo</div><p>bar</p><ul><li>baz</li></ul>" but got "<div style=\\"display:inline !important\\">foo</div>bar<br><ul><li>baz</li></ul>"
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul><li><div>[foo]</div>bar<li>baz</ul>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul><li><div>[foo]</div>bar<li>baz</ul>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul><li><div>[foo]</div>bar<li>baz</ul>" queryCommandValue("defaultparagraphseparator") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/insertunorderedlist_1001-2000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/insertunorderedlist_1001-2000-expected.txt
index 5d0e51b..7a4741b5 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/insertunorderedlist_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/insertunorderedlist_1001-2000-expected.txt
@@ -548,7 +548,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>[bar]<li>baz</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>[bar]<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>[bar]<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul id=\"abc\"><li>foo</li></ul><div>bar</div><ul><li>baz</li></ul>" but got "<ul id=\"abc\"><li>foo</li></ul>bar<br><ul><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul id=\\"abc\\"><li>foo</li></ul><div>bar</div><ul><li>baz</li></ul>" but got "<ul id=\\"abc\\"><li>foo</li></ul>bar<br><ul><li>baz</li></ul>"
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>[bar]<li>baz</ul>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>[bar]<li>baz</ul>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>[bar]<li>baz</ul>" queryCommandValue("defaultparagraphseparator") before
@@ -567,7 +567,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>[bar]<li>baz</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>[bar]<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>[bar]<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul id=\"abc\"><li>foo</li></ul><p>bar</p><ul><li>baz</li></ul>" but got "<ul id=\"abc\"><li>foo</li></ul>bar<br><ul><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul id=\\"abc\\"><li>foo</li></ul><p>bar</p><ul><li>baz</li></ul>" but got "<ul id=\\"abc\\"><li>foo</li></ul>bar<br><ul><li>baz</li></ul>"
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>[bar]<li>baz</ul>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>[bar]<li>baz</ul>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>[bar]<li>baz</ul>" queryCommandValue("defaultparagraphseparator") before
@@ -587,7 +587,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\"color:rgb(0, 0, 255)\"><li>foo</li></ul><div>bar</div><ul style=\"color:rgb(0, 0, 255)\"><li>baz</li></ul>" but got "<ul style=\"color:rgb(0, 0, 255)\"><li>foo</li></ul><span style=\"color:rgb(0, 0, 255)\">bar</span><br><ul style=\"color:rgb(0, 0, 255)\"><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\\"color:rgb(0, 0, 255)\\"><li>foo</li></ul><div>bar</div><ul style=\\"color:rgb(0, 0, 255)\\"><li>baz</li></ul>" but got "<ul style=\\"color:rgb(0, 0, 255)\\"><li>foo</li></ul><span style=\\"color:rgb(0, 0, 255)\\">bar</span><br><ul style=\\"color:rgb(0, 0, 255)\\"><li>baz</li></ul>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -614,7 +614,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\"color:rgb(0, 0, 255)\"><li>foo</li></ul><div>bar</div><ul style=\"color:rgb(0, 0, 255)\"><li>baz</li></ul>" but got "<ul style=\"color:rgb(0, 0, 255)\"><li>foo</li></ul><span style=\"color:rgb(0, 0, 255)\">bar</span><br><ul style=\"color:rgb(0, 0, 255)\"><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\\"color:rgb(0, 0, 255)\\"><li>foo</li></ul><div>bar</div><ul style=\\"color:rgb(0, 0, 255)\\"><li>baz</li></ul>" but got "<ul style=\\"color:rgb(0, 0, 255)\\"><li>foo</li></ul><span style=\\"color:rgb(0, 0, 255)\\">bar</span><br><ul style=\\"color:rgb(0, 0, 255)\\"><li>baz</li></ul>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" queryCommandValue("stylewithcss") before
@@ -640,7 +640,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\"color:rgb(0, 0, 255)\"><li>foo</li></ul><p>bar</p><ul style=\"color:rgb(0, 0, 255)\"><li>baz</li></ul>" but got "<ul style=\"color:rgb(0, 0, 255)\"><li>foo</li></ul><span style=\"color:rgb(0, 0, 255)\">bar</span><br><ul style=\"color:rgb(0, 0, 255)\"><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\\"color:rgb(0, 0, 255)\\"><li>foo</li></ul><p>bar</p><ul style=\\"color:rgb(0, 0, 255)\\"><li>baz</li></ul>" but got "<ul style=\\"color:rgb(0, 0, 255)\\"><li>foo</li></ul><span style=\\"color:rgb(0, 0, 255)\\">bar</span><br><ul style=\\"color:rgb(0, 0, 255)\\"><li>baz</li></ul>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" queryCommandValue("stylewithcss") before
@@ -666,7 +666,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\"color:rgb(0, 0, 255)\"><li>foo</li></ul><p>bar</p><ul style=\"color:rgb(0, 0, 255)\"><li>baz</li></ul>" but got "<ul style=\"color:rgb(0, 0, 255)\"><li>foo</li></ul><span style=\"color:rgb(0, 0, 255)\">bar</span><br><ul style=\"color:rgb(0, 0, 255)\"><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\\"color:rgb(0, 0, 255)\\"><li>foo</li></ul><p>bar</p><ul style=\\"color:rgb(0, 0, 255)\\"><li>baz</li></ul>" but got "<ul style=\\"color:rgb(0, 0, 255)\\"><li>foo</li></ul><span style=\\"color:rgb(0, 0, 255)\\">bar</span><br><ul style=\\"color:rgb(0, 0, 255)\\"><li>baz</li></ul>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>[bar]<li>baz</ul>" queryCommandValue("stylewithcss") before
@@ -692,7 +692,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\"text-indent:1em\"><li>foo</li></ul><div>bar</div><ul style=\"text-indent:1em\"><li>baz</li></ul>" but got "<ul style=\"text-indent:1em\"><li>foo</li></ul><span style=\"text-indent:1em\">bar</span><br><ul style=\"text-indent:1em\"><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\\"text-indent:1em\\"><li>foo</li></ul><div>bar</div><ul style=\\"text-indent:1em\\"><li>baz</li></ul>" but got "<ul style=\\"text-indent:1em\\"><li>foo</li></ul><span style=\\"text-indent:1em\\">bar</span><br><ul style=\\"text-indent:1em\\"><li>baz</li></ul>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" queryCommandValue("stylewithcss") before
@@ -718,7 +718,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\"text-indent:1em\"><li>foo</li></ul><div>bar</div><ul style=\"text-indent:1em\"><li>baz</li></ul>" but got "<ul style=\"text-indent:1em\"><li>foo</li></ul><span style=\"text-indent:1em\">bar</span><br><ul style=\"text-indent:1em\"><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\\"text-indent:1em\\"><li>foo</li></ul><div>bar</div><ul style=\\"text-indent:1em\\"><li>baz</li></ul>" but got "<ul style=\\"text-indent:1em\\"><li>foo</li></ul><span style=\\"text-indent:1em\\">bar</span><br><ul style=\\"text-indent:1em\\"><li>baz</li></ul>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" queryCommandValue("stylewithcss") before
@@ -744,7 +744,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\"text-indent:1em\"><li>foo</li></ul><p>bar</p><ul style=\"text-indent:1em\"><li>baz</li></ul>" but got "<ul style=\"text-indent:1em\"><li>foo</li></ul><span style=\"text-indent:1em\">bar</span><br><ul style=\"text-indent:1em\"><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\\"text-indent:1em\\"><li>foo</li></ul><p>bar</p><ul style=\\"text-indent:1em\\"><li>baz</li></ul>" but got "<ul style=\\"text-indent:1em\\"><li>foo</li></ul><span style=\\"text-indent:1em\\">bar</span><br><ul style=\\"text-indent:1em\\"><li>baz</li></ul>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" queryCommandValue("stylewithcss") before
@@ -770,7 +770,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\"text-indent:1em\"><li>foo</li></ul><p>bar</p><ul style=\"text-indent:1em\"><li>baz</li></ul>" but got "<ul style=\"text-indent:1em\"><li>foo</li></ul><span style=\"text-indent:1em\">bar</span><br><ul style=\"text-indent:1em\"><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\\"text-indent:1em\\"><li>foo</li></ul><p>bar</p><ul style=\\"text-indent:1em\\"><li>baz</li></ul>" but got "<ul style=\\"text-indent:1em\\"><li>foo</li></ul><span style=\\"text-indent:1em\\">bar</span><br><ul style=\\"text-indent:1em\\"><li>baz</li></ul>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>[bar]<li>baz</ul>" queryCommandValue("stylewithcss") before
@@ -795,7 +795,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul id=abc><li>[foo]<li>bar<li>baz</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul id=abc><li>[foo]<li>bar<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul id=abc><li>[foo]<li>bar<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo</div><ul id=\"abc\"><li>bar</li><li>baz</li></ul>" but got "foo<br><ul id=\"abc\"><li>bar</li><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo</div><ul id=\\"abc\\"><li>bar</li><li>baz</li></ul>" but got "foo<br><ul id=\\"abc\\"><li>bar</li><li>baz</li></ul>"
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul id=abc><li>[foo]<li>bar<li>baz</ul>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul id=abc><li>[foo]<li>bar<li>baz</ul>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul id=abc><li>[foo]<li>bar<li>baz</ul>" queryCommandValue("defaultparagraphseparator") before
@@ -814,7 +814,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul id=abc><li>[foo]<li>bar<li>baz</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul id=abc><li>[foo]<li>bar<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul id=abc><li>[foo]<li>bar<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><ul id=\"abc\"><li>bar</li><li>baz</li></ul>" but got "foo<br><ul id=\"abc\"><li>bar</li><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><ul id=\\"abc\\"><li>bar</li><li>baz</li></ul>" but got "foo<br><ul id=\\"abc\\"><li>bar</li><li>baz</li></ul>"
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul id=abc><li>[foo]<li>bar<li>baz</ul>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul id=abc><li>[foo]<li>bar<li>baz</ul>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul id=abc><li>[foo]<li>bar<li>baz</ul>" queryCommandValue("defaultparagraphseparator") before
@@ -833,7 +833,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=color:blue><li>[foo]<li>bar<li>baz</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=color:blue><li>[foo]<li>bar<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=color:blue><li>[foo]<li>bar<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo</div><ul style=\"color:rgb(0, 0, 255)\"><li>bar</li><li>baz</li></ul>" but got "<span style=\"color:rgb(0, 0, 255)\">foo</span><br><ul style=\"color:rgb(0, 0, 255)\"><li>bar</li><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo</div><ul style=\\"color:rgb(0, 0, 255)\\"><li>bar</li><li>baz</li></ul>" but got "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><br><ul style=\\"color:rgb(0, 0, 255)\\"><li>bar</li><li>baz</li></ul>"
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=color:blue><li>[foo]<li>bar<li>baz</ul>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=color:blue><li>[foo]<li>bar<li>baz</ul>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=color:blue><li>[foo]<li>bar<li>baz</ul>" queryCommandValue("defaultparagraphseparator") before
@@ -852,7 +852,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>[foo]<li>bar<li>baz</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>[foo]<li>bar<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>[foo]<li>bar<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><ul style=\"color:rgb(0, 0, 255)\"><li>bar</li><li>baz</li></ul>" but got "<span style=\"color:rgb(0, 0, 255)\">foo</span><br><ul style=\"color:rgb(0, 0, 255)\"><li>bar</li><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><ul style=\\"color:rgb(0, 0, 255)\\"><li>bar</li><li>baz</li></ul>" but got "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><br><ul style=\\"color:rgb(0, 0, 255)\\"><li>bar</li><li>baz</li></ul>"
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>[foo]<li>bar<li>baz</ul>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>[foo]<li>bar<li>baz</ul>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>[foo]<li>bar<li>baz</ul>" queryCommandValue("defaultparagraphseparator") before
@@ -871,7 +871,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>[foo]<li>bar<li>baz</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>[foo]<li>bar<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>[foo]<li>bar<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo</div><ul style=\"text-indent:1em\"><li>bar</li><li>baz</li></ul>" but got "<span style=\"text-indent:1em\">foo</span><br><ul style=\"text-indent:1em\"><li>bar</li><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo</div><ul style=\\"text-indent:1em\\"><li>bar</li><li>baz</li></ul>" but got "<span style=\\"text-indent:1em\\">foo</span><br><ul style=\\"text-indent:1em\\"><li>bar</li><li>baz</li></ul>"
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>[foo]<li>bar<li>baz</ul>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>[foo]<li>bar<li>baz</ul>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>[foo]<li>bar<li>baz</ul>" queryCommandValue("defaultparagraphseparator") before
@@ -890,7 +890,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>[foo]<li>bar<li>baz</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>[foo]<li>bar<li>baz</ul>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>[foo]<li>bar<li>baz</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><ul style=\"text-indent:1em\"><li>bar</li><li>baz</li></ul>" but got "<span style=\"text-indent:1em\">foo</span><br><ul style=\"text-indent:1em\"><li>bar</li><li>baz</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><ul style=\\"text-indent:1em\\"><li>bar</li><li>baz</li></ul>" but got "<span style=\\"text-indent:1em\\">foo</span><br><ul style=\\"text-indent:1em\\"><li>bar</li><li>baz</li></ul>"
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>[foo]<li>bar<li>baz</ul>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>[foo]<li>bar<li>baz</ul>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>[foo]<li>bar<li>baz</ul>" queryCommandValue("defaultparagraphseparator") before
@@ -909,7 +909,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>bar<li>[baz]</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>bar<li>[baz]</ul>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>bar<li>[baz]</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul id=\"abc\"><li>foo</li><li>bar</li></ul><div>baz</div>" but got "<ul id=\"abc\"><li>foo</li><li>bar</li></ul>baz<br>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul id=\\"abc\\"><li>foo</li><li>bar</li></ul><div>baz</div>" but got "<ul id=\\"abc\\"><li>foo</li><li>bar</li></ul>baz<br>"
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>bar<li>[baz]</ul>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>bar<li>[baz]</ul>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>bar<li>[baz]</ul>" queryCommandValue("defaultparagraphseparator") before
@@ -928,7 +928,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>bar<li>[baz]</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>bar<li>[baz]</ul>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>bar<li>[baz]</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul id=\"abc\"><li>foo</li><li>bar</li></ul><p>baz</p>" but got "<ul id=\"abc\"><li>foo</li><li>bar</li></ul>baz<br>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul id=\\"abc\\"><li>foo</li><li>bar</li></ul><p>baz</p>" but got "<ul id=\\"abc\\"><li>foo</li><li>bar</li></ul>baz<br>"
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>bar<li>[baz]</ul>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>bar<li>[baz]</ul>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul id=abc><li>foo<li>bar<li>[baz]</ul>" queryCommandValue("defaultparagraphseparator") before
@@ -947,7 +947,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>bar<li>[baz]</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>bar<li>[baz]</ul>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>bar<li>[baz]</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\"color:rgb(0, 0, 255)\"><li>foo</li><li>bar</li></ul><div>baz</div>" but got "<ul style=\"color:rgb(0, 0, 255)\"><li>foo</li><li>bar</li></ul><span style=\"color:rgb(0, 0, 255)\">baz</span><br>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\\"color:rgb(0, 0, 255)\\"><li>foo</li><li>bar</li></ul><div>baz</div>" but got "<ul style=\\"color:rgb(0, 0, 255)\\"><li>foo</li><li>bar</li></ul><span style=\\"color:rgb(0, 0, 255)\\">baz</span><br>"
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>bar<li>[baz]</ul>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>bar<li>[baz]</ul>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>bar<li>[baz]</ul>" queryCommandValue("defaultparagraphseparator") before
@@ -966,7 +966,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>bar<li>[baz]</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>bar<li>[baz]</ul>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>bar<li>[baz]</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\"color:rgb(0, 0, 255)\"><li>foo</li><li>bar</li></ul><p>baz</p>" but got "<ul style=\"color:rgb(0, 0, 255)\"><li>foo</li><li>bar</li></ul><span style=\"color:rgb(0, 0, 255)\">baz</span><br>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\\"color:rgb(0, 0, 255)\\"><li>foo</li><li>bar</li></ul><p>baz</p>" but got "<ul style=\\"color:rgb(0, 0, 255)\\"><li>foo</li><li>bar</li></ul><span style=\\"color:rgb(0, 0, 255)\\">baz</span><br>"
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>bar<li>[baz]</ul>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>bar<li>[baz]</ul>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=color:blue><li>foo<li>bar<li>[baz]</ul>" queryCommandValue("defaultparagraphseparator") before
@@ -985,7 +985,7 @@
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>bar<li>[baz]</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>bar<li>[baz]</ul>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>bar<li>[baz]</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\"text-indent:1em\"><li>foo</li><li>bar</li></ul><div>baz</div>" but got "<ul style=\"text-indent:1em\"><li>foo</li><li>bar</li></ul><span style=\"text-indent:1em\">baz</span><br>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\\"text-indent:1em\\"><li>foo</li><li>bar</li></ul><div>baz</div>" but got "<ul style=\\"text-indent:1em\\"><li>foo</li><li>bar</li></ul><span style=\\"text-indent:1em\\">baz</span><br>"
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>bar<li>[baz]</ul>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>bar<li>[baz]</ul>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>bar<li>[baz]</ul>" queryCommandValue("defaultparagraphseparator") before
@@ -1004,7 +1004,7 @@
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>bar<li>[baz]</ul>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>bar<li>[baz]</ul>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>bar<li>[baz]</ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\"text-indent:1em\"><li>foo</li><li>bar</li></ul><p>baz</p>" but got "<ul style=\"text-indent:1em\"><li>foo</li><li>bar</li></ul><span style=\"text-indent:1em\">baz</span><br>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul style=\\"text-indent:1em\\"><li>foo</li><li>bar</li></ul><p>baz</p>" but got "<ul style=\\"text-indent:1em\\"><li>foo</li><li>bar</li></ul><span style=\\"text-indent:1em\\">baz</span><br>"
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>bar<li>[baz]</ul>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>bar<li>[baz]</ul>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul style=text-indent:1em><li>foo<li>bar<li>[baz]</ul>" queryCommandValue("defaultparagraphseparator") before
@@ -1133,43 +1133,43 @@
 [PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul><li>foo</ul> <p>[bar]</p> <ul><li>baz</ul>" queryCommandState("insertunorderedlist") after
 [FAIL] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "<ul><li>foo</ul> <p>[bar]</p> <ul><li>baz</ul>" queryCommandValue("insertunorderedlist") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}": execCommand("insertunorderedlist", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" checks for modifications to non-editable content
-[FAIL] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul><li style=\"font-size:1.3em\">1</li><li style=\"font-size:1.1em\">2</li></ul>" but got "<div style=\"font-size:1.3em\"><ul><li>1</li><li>2</li></ul></div>"
-[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandState("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandState("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandIndeterm("insertunorderedlist") before
-[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandState("insertunorderedlist") before
-[FAIL] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandValue("insertunorderedlist") before
+[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}": execCommand("insertunorderedlist", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" checks for modifications to non-editable content
+[FAIL] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul><li style=\\"font-size:1.3em\\">1</li><li style=\\"font-size:1.1em\\">2</li></ul>" but got "<div style=\\"font-size:1.3em\\"><ul><li>1</li><li>2</li></ul></div>"
+[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandState("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandState("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandIndeterm("insertunorderedlist") before
+[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandState("insertunorderedlist") before
+[FAIL] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandValue("insertunorderedlist") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandIndeterm("insertunorderedlist") after
-[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandState("insertunorderedlist") after
-[FAIL] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandValue("insertunorderedlist") after
+[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandIndeterm("insertunorderedlist") after
+[PASS] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandState("insertunorderedlist") after
+[FAIL] [["defaultparagraphseparator","div"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandValue("insertunorderedlist") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}": execCommand("defaultparagraphseparator", false, "p") return value
-[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}": execCommand("insertunorderedlist", false, "") return value
-[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" checks for modifications to non-editable content
-[FAIL] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul><li style=\"font-size:1.3em\">1</li><li style=\"font-size:1.1em\">2</li></ul>" but got "<div style=\"font-size:1.3em\"><ul><li>1</li><li>2</li></ul></div>"
-[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandState("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandState("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandIndeterm("insertunorderedlist") before
-[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandState("insertunorderedlist") before
-[FAIL] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandValue("insertunorderedlist") before
+[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}": execCommand("defaultparagraphseparator", false, "p") return value
+[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}": execCommand("insertunorderedlist", false, "") return value
+[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" checks for modifications to non-editable content
+[FAIL] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul><li style=\\"font-size:1.3em\\">1</li><li style=\\"font-size:1.1em\\">2</li></ul>" but got "<div style=\\"font-size:1.3em\\"><ul><li>1</li><li>2</li></ul></div>"
+[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandState("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandState("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandIndeterm("insertunorderedlist") before
+[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandState("insertunorderedlist") before
+[FAIL] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandValue("insertunorderedlist") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandIndeterm("insertunorderedlist") after
-[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandState("insertunorderedlist") after
-[FAIL] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\"font-size: 1.3em\">1</div><div style=\"font-size: 1.1em\">2</div>}" queryCommandValue("insertunorderedlist") after
+[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandIndeterm("insertunorderedlist") after
+[PASS] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandState("insertunorderedlist") after
+[FAIL] [["defaultparagraphseparator","p"],["insertunorderedlist",""]] "{<div style=\\"font-size: 1.3em\\">1</div><div style=\\"font-size: 1.1em\\">2</div>}" queryCommandValue("insertunorderedlist") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["insertunorderedlist",""],["inserttext","abc"]] "{}": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["insertunorderedlist",""],["inserttext","abc"]] "{}": execCommand("inserttext", false, "abc") return value
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/insertunorderedlist_2001-last-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/insertunorderedlist_2001-last-expected.txt
index 0f14c024..674649a 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/insertunorderedlist_2001-last-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/insertunorderedlist_2001-last-expected.txt
@@ -52,26 +52,26 @@
 [PASS] [["insertunorderedlist",""]] "<div>[abc</div><div>def</div><div>]ghi</div>": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["insertunorderedlist",""]] "<div>[abc</div><div>def</div><div>]ghi</div>" checks for modifications to non-editable content
 [PASS] [["insertunorderedlist",""]] "<div>[abc</div><div>def</div><div>]ghi</div>" compare innerHTML
-[PASS] [["insertunorderedlist",""]] "<div dir=\"rtl\">a[]bc</div><div dir=\"rtl\">def</div>": execCommand("insertunorderedlist", false, "") return value
-[PASS] [["insertunorderedlist",""]] "<div dir=\"rtl\">a[]bc</div><div dir=\"rtl\">def</div>" checks for modifications to non-editable content
-[PASS] [["insertunorderedlist",""]] "<div dir=\"rtl\">a[]bc</div><div dir=\"rtl\">def</div>" compare innerHTML
-[PASS] [["insertunorderedlist",""]] "<div dir=\"rtl\">a[bc</div><div dir=\"rtl\">de]f</div>": execCommand("insertunorderedlist", false, "") return value
-[PASS] [["insertunorderedlist",""]] "<div dir=\"rtl\">a[bc</div><div dir=\"rtl\">de]f</div>" checks for modifications to non-editable content
-[PASS] [["insertunorderedlist",""]] "<div dir=\"rtl\">a[bc</div><div dir=\"rtl\">de]f</div>" compare innerHTML
-[PASS] [["insertunorderedlist",""]] "<div dir=\"rtl\">a[bc</div><div dir=\"ltr\">de]f</div>": execCommand("insertunorderedlist", false, "") return value
-[PASS] [["insertunorderedlist",""]] "<div dir=\"rtl\">a[bc</div><div dir=\"ltr\">de]f</div>" checks for modifications to non-editable content
-[PASS] [["insertunorderedlist",""]] "<div dir=\"rtl\">a[bc</div><div dir=\"ltr\">de]f</div>" compare innerHTML
-[PASS] [["insertunorderedlist",""]] "<div id=\"a\">a[bc</div><div id=\"b\">de]f</div>": execCommand("insertunorderedlist", false, "") return value
-[PASS] [["insertunorderedlist",""]] "<div id=\"a\">a[bc</div><div id=\"b\">de]f</div>" checks for modifications to non-editable content
-[FAIL] [["insertunorderedlist",""]] "<div id=\"a\">a[bc</div><div id=\"b\">de]f</div>" compare innerHTML
-  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div id=\"a\"><ul><li>abc</li><li>def</li></ul></div>" not in array ["<div><ul><li id=\"a\">abc</li><li id=\"b\">def</li></ul></div>", "<ul><li id=\"a\">abc</li><li id=\"b\">def</li></ul>"]
-[PASS] [["insertunorderedlist",""]] "<div class=\"a\">a[bc</div><div class=\"b\">de]f</div>": execCommand("insertunorderedlist", false, "") return value
-[PASS] [["insertunorderedlist",""]] "<div class=\"a\">a[bc</div><div class=\"b\">de]f</div>" checks for modifications to non-editable content
-[FAIL] [["insertunorderedlist",""]] "<div class=\"a\">a[bc</div><div class=\"b\">de]f</div>" compare innerHTML
-  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div class=\"a\"><ul><li>abc</li><li>def</li></ul></div>" not in array ["<div><ul><li class=\"a\">abc</li><li class=\"b\">def</li></ul></div>", "<ul><li class=\"a\">abc</li><li class=\"b\">def</li></ul>"]
-[PASS] [["insertunorderedlist",""]] "<div title=\"a\">a[bc</div><div title=\"b\">de]f</div>": execCommand("insertunorderedlist", false, "") return value
-[PASS] [["insertunorderedlist",""]] "<div title=\"a\">a[bc</div><div title=\"b\">de]f</div>" checks for modifications to non-editable content
-[FAIL] [["insertunorderedlist",""]] "<div title=\"a\">a[bc</div><div title=\"b\">de]f</div>" compare innerHTML
-  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div title=\"a\"><ul><li>abc</li><li>def</li></ul></div>" not in array ["<div><ul><li title=\"a\">abc</li><li title=\"b\">def</li></ul></div>", "<ul><li title=\"a\">abc</li><li title=\"b\">def</li></ul>"]
+[PASS] [["insertunorderedlist",""]] "<div dir=\\"rtl\\">a[]bc</div><div dir=\\"rtl\\">def</div>": execCommand("insertunorderedlist", false, "") return value
+[PASS] [["insertunorderedlist",""]] "<div dir=\\"rtl\\">a[]bc</div><div dir=\\"rtl\\">def</div>" checks for modifications to non-editable content
+[PASS] [["insertunorderedlist",""]] "<div dir=\\"rtl\\">a[]bc</div><div dir=\\"rtl\\">def</div>" compare innerHTML
+[PASS] [["insertunorderedlist",""]] "<div dir=\\"rtl\\">a[bc</div><div dir=\\"rtl\\">de]f</div>": execCommand("insertunorderedlist", false, "") return value
+[PASS] [["insertunorderedlist",""]] "<div dir=\\"rtl\\">a[bc</div><div dir=\\"rtl\\">de]f</div>" checks for modifications to non-editable content
+[PASS] [["insertunorderedlist",""]] "<div dir=\\"rtl\\">a[bc</div><div dir=\\"rtl\\">de]f</div>" compare innerHTML
+[PASS] [["insertunorderedlist",""]] "<div dir=\\"rtl\\">a[bc</div><div dir=\\"ltr\\">de]f</div>": execCommand("insertunorderedlist", false, "") return value
+[PASS] [["insertunorderedlist",""]] "<div dir=\\"rtl\\">a[bc</div><div dir=\\"ltr\\">de]f</div>" checks for modifications to non-editable content
+[PASS] [["insertunorderedlist",""]] "<div dir=\\"rtl\\">a[bc</div><div dir=\\"ltr\\">de]f</div>" compare innerHTML
+[PASS] [["insertunorderedlist",""]] "<div id=\\"a\\">a[bc</div><div id=\\"b\\">de]f</div>": execCommand("insertunorderedlist", false, "") return value
+[PASS] [["insertunorderedlist",""]] "<div id=\\"a\\">a[bc</div><div id=\\"b\\">de]f</div>" checks for modifications to non-editable content
+[FAIL] [["insertunorderedlist",""]] "<div id=\\"a\\">a[bc</div><div id=\\"b\\">de]f</div>" compare innerHTML
+  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div id=\\"a\\"><ul><li>abc</li><li>def</li></ul></div>" not in array ["<div><ul><li id=\\"a\\">abc</li><li id=\\"b\\">def</li></ul></div>", "<ul><li id=\\"a\\">abc</li><li id=\\"b\\">def</li></ul>"]
+[PASS] [["insertunorderedlist",""]] "<div class=\\"a\\">a[bc</div><div class=\\"b\\">de]f</div>": execCommand("insertunorderedlist", false, "") return value
+[PASS] [["insertunorderedlist",""]] "<div class=\\"a\\">a[bc</div><div class=\\"b\\">de]f</div>" checks for modifications to non-editable content
+[FAIL] [["insertunorderedlist",""]] "<div class=\\"a\\">a[bc</div><div class=\\"b\\">de]f</div>" compare innerHTML
+  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div class=\\"a\\"><ul><li>abc</li><li>def</li></ul></div>" not in array ["<div><ul><li class=\\"a\\">abc</li><li class=\\"b\\">def</li></ul></div>", "<ul><li class=\\"a\\">abc</li><li class=\\"b\\">def</li></ul>"]
+[PASS] [["insertunorderedlist",""]] "<div title=\\"a\\">a[bc</div><div title=\\"b\\">de]f</div>": execCommand("insertunorderedlist", false, "") return value
+[PASS] [["insertunorderedlist",""]] "<div title=\\"a\\">a[bc</div><div title=\\"b\\">de]f</div>" checks for modifications to non-editable content
+[FAIL] [["insertunorderedlist",""]] "<div title=\\"a\\">a[bc</div><div title=\\"b\\">de]f</div>" compare innerHTML
+  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div title=\\"a\\"><ul><li>abc</li><li>def</li></ul></div>" not in array ["<div><ul><li title=\\"a\\">abc</li><li title=\\"b\\">def</li></ul></div>", "<ul><li title=\\"a\\">abc</li><li title=\\"b\\">def</li></ul>"]
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/italic_2001-last-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/italic_2001-last-expected.txt
index 734ed3b..01a6b25f 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/italic_2001-last-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/italic_2001-last-expected.txt
@@ -31,7 +31,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "<span style=font-style:oblique>fo[o</span><span style=font-style:italic>b]ar</span>": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "<span style=font-style:oblique>fo[o</span><span style=font-style:italic>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "<span style=font-style:oblique>fo[o</span><span style=font-style:italic>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-style:oblique\">fo</span>ob<i>ar</i>" but got "<span style=\"font-style:oblique\">fo</span>ob<span style=\"font-style:italic\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-style:oblique\\">fo</span>ob<i>ar</i>" but got "<span style=\\"font-style:oblique\\">fo</span>ob<span style=\\"font-style:italic\\">ar</span>"
 [PASS] [["stylewithcss","false"],["italic",""]] "<span style=font-style:oblique>fo[o</span><span style=font-style:italic>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "<span style=font-style:oblique>fo[o</span><span style=font-style:italic>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "<span style=font-style:oblique>fo[o</span><span style=font-style:italic>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -50,7 +50,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "<i>fo[o</i><address>b]ar</address>": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "<i>fo[o</i><address>b]ar</address>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "<i>fo[o</i><address>b]ar</address>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-style:italic\">fo</span>o<address><span style=\"font-style:normal\">b</span>ar</address>" but got "<i>fo</i>o<address><span style=\"font-style:normal\">b</span>ar</address>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-style:italic\\">fo</span>o<address><span style=\\"font-style:normal\\">b</span>ar</address>" but got "<i>fo</i>o<address><span style=\\"font-style:normal\\">b</span>ar</address>"
 [PASS] [["stylewithcss","true"],["italic",""]] "<i>fo[o</i><address>b]ar</address>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "<i>fo[o</i><address>b]ar</address>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "<i>fo[o</i><address>b]ar</address>" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_1-1000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_1-1000-expected.txt
index 48246ac..4bad8d28 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_1-1000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_1-1000-expected.txt
@@ -56,7 +56,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[]bar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[]bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[]bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foobar</div><p>extra</p>" but got "<p style=\"text-align:center\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foobar</div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[]bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[]bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[]bar<p>extra" queryCommandValue("stylewithcss") before
@@ -82,7 +82,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[]bar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[]bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[]bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foobar</div><p>extra</p>" but got "<p style=\"text-align:center\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foobar</div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[]bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[]bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[]bar<p>extra" queryCommandValue("stylewithcss") before
@@ -108,7 +108,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\"text-align:center\">foobar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:center\\">foobar</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -134,7 +134,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\"text-align:center\">foobar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:center\\">foobar</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -160,7 +160,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\"text-align:center\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -186,7 +186,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\"text-align:center\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -212,7 +212,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\"text-align:center\">foobar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:center\\">foobar</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -238,7 +238,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\"text-align:center\">foobar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:center\\">foobar</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -264,7 +264,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\"text-align:center\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -290,7 +290,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\"text-align:center\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -366,7 +366,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar]baz<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar]baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar]baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foobarbaz</div><p>extra</p>" but got "<p style=\"text-align:center\">foobarbaz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foobarbaz</div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobarbaz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar]baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar]baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar]baz<p>extra" queryCommandValue("stylewithcss") before
@@ -392,7 +392,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar]baz<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar]baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar]baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foobarbaz</div><p>extra</p>" but got "<p style=\"text-align:center\">foobarbaz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foobarbaz</div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobarbaz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar]baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar]baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar]baz<p>extra" queryCommandValue("stylewithcss") before
@@ -468,7 +468,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar<b>baz]qoz</b>quz<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foobar<b>bazqoz</b>quz</div><p>extra</p>" but got "<p style=\"text-align:center\">foobar<b>bazqoz</b>quz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foobar<b>bazqoz</b>quz</div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar<b>bazqoz</b>quz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("stylewithcss") before
@@ -494,7 +494,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar<b>baz]qoz</b>quz<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foobar<b>bazqoz</b>quz</div><p>extra</p>" but got "<p style=\"text-align:center\">foobar<b>bazqoz</b>quz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foobar<b>bazqoz</b>quz</div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar<b>bazqoz</b>quz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("stylewithcss") before
@@ -520,7 +520,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[]bar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[]bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[]bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foobar</p></div><p>extra</p>" but got "<p style=\"text-align:center\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[]bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[]bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[]bar<p>extra" queryCommandValue("stylewithcss") before
@@ -546,7 +546,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[]bar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[]bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[]bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foobar</p></div><p>extra</p>" but got "<p style=\"text-align:center\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[]bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[]bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[]bar<p>extra" queryCommandValue("stylewithcss") before
@@ -572,7 +572,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[]bar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[]bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[]bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foobar</p></div><p>extra</p>" but got "<p style=\"text-align:center\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[]bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[]bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[]bar<p>extra" queryCommandValue("stylewithcss") before
@@ -598,7 +598,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[]bar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[]bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[]bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foobar</p></div><p>extra</p>" but got "<p style=\"text-align:center\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[]bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[]bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[]bar<p>extra" queryCommandValue("stylewithcss") before
@@ -624,7 +624,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[bar]baz<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\"text-align:center\">foobarbaz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobarbaz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("stylewithcss") before
@@ -650,7 +650,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[bar]baz<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\"text-align:center\">foobarbaz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobarbaz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("stylewithcss") before
@@ -676,7 +676,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[bar]baz<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\"text-align:center\">foobarbaz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobarbaz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("stylewithcss") before
@@ -702,7 +702,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[bar]baz<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\"text-align:center\">foobarbaz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobarbaz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("stylewithcss") before
@@ -728,7 +728,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\"text-align:center\">foobarbaz</h1><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:center\\">foobarbaz</h1><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("stylewithcss") before
@@ -754,7 +754,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\"text-align:center\">foobarbaz</h1><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:center\\">foobarbaz</h1><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("stylewithcss") before
@@ -780,7 +780,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\"text-align:center\">foobarbaz</h1><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:center\\">foobarbaz</h1><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("stylewithcss") before
@@ -806,7 +806,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\"text-align:center\">foobarbaz</h1><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:center\\">foobarbaz</h1><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("stylewithcss") before
@@ -832,7 +832,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\"text-align:center\">foobarbaz</pre><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:center\\">foobarbaz</pre><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("stylewithcss") before
@@ -858,7 +858,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\"text-align:center\">foobarbaz</pre><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:center\\">foobarbaz</pre><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("stylewithcss") before
@@ -884,7 +884,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\"text-align:center\">foobarbaz</pre><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:center\\">foobarbaz</pre><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("stylewithcss") before
@@ -910,7 +910,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\"text-align:center\">foobarbaz</pre><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:center\\">foobarbaz</pre><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("stylewithcss") before
@@ -936,7 +936,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\"text-align:center\">foobarbaz</xmp><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:center\\">foobarbaz</xmp><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("stylewithcss") before
@@ -962,7 +962,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\"text-align:center\">foobarbaz</xmp><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:center\\">foobarbaz</xmp><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("stylewithcss") before
@@ -988,7 +988,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\"text-align:center\">foobarbaz</xmp><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:center\\">foobarbaz</xmp><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("stylewithcss") before
@@ -1014,7 +1014,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\"text-align:center\">foobarbaz</xmp><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:center\\">foobarbaz</xmp><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("stylewithcss") before
@@ -1051,7 +1051,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p>foo</p><p>bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p>foo</p><p>bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("stylewithcss") before
@@ -1077,7 +1077,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p>foo</p><p>bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p>foo</p><p>bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("stylewithcss") before
@@ -1103,7 +1103,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p>foo</p><p>bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p>foo</p><p>bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_3001-4000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_3001-4000-expected.txt
index dafee9c..9f6ade4 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_3001-4000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_3001-4000-expected.txt
@@ -12,7 +12,7 @@
 [PASS] [["justifycenter",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:justify\"><p style=\"text-align:center\">foo</p><p style=\"text-align:center\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:center\\">foo</p><p style=\\"text-align:center\\">bar</p></div><p>extra</p>"
 [PASS] [["justifycenter",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("justifycenter") before
 [PASS] [["justifycenter",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandState("justifycenter") before
 [FAIL] [["justifycenter",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifycenter") before
@@ -26,7 +26,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"left\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"left\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -54,7 +54,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"left\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"left\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -80,7 +80,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"left\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"left\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -106,7 +106,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"left\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"left\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -131,7 +131,7 @@
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=left><p>[foo<p>bar}</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"left\"><p style=\"text-align:center\">foo</p><p style=\"text-align:center\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:center\\">foo</p><p style=\\"text-align:center\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -150,7 +150,7 @@
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=left><p>[foo<p>bar}</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"left\"><p style=\"text-align:center\">foo</p><p style=\"text-align:center\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:center\\">foo</p><p style=\\"text-align:center\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -170,7 +170,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:left\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:left\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -196,7 +196,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:left\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:left\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -222,7 +222,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:left\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:left\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -248,7 +248,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:left\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:left\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -272,7 +272,7 @@
 [PASS] [["justifycenter",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:left\"><p style=\"text-align:center\">foo</p><p style=\"text-align:center\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:center\\">foo</p><p style=\\"text-align:center\\">bar</p></div><p>extra</p>"
 [PASS] [["justifycenter",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("justifycenter") before
 [PASS] [["justifycenter",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandState("justifycenter") before
 [FAIL] [["justifycenter",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifycenter") before
@@ -286,7 +286,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"right\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -312,7 +312,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"right\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -338,7 +338,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"right\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -364,7 +364,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"right\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -389,7 +389,7 @@
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=right><p>[foo<p>bar}</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"right\"><p style=\"text-align:center\">foo</p><p style=\"text-align:center\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:center\\">foo</p><p style=\\"text-align:center\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -408,7 +408,7 @@
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=right><p>[foo<p>bar}</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"right\"><p style=\"text-align:center\">foo</p><p style=\"text-align:center\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:center\\">foo</p><p style=\\"text-align:center\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -428,7 +428,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:right\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -454,7 +454,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:right\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -480,7 +480,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:right\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -506,7 +506,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:right\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -530,7 +530,7 @@
 [PASS] [["justifycenter",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:right\"><p style=\"text-align:center\">foo</p><p style=\"text-align:center\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:center\\">foo</p><p style=\\"text-align:center\\">bar</p></div><p>extra</p>"
 [PASS] [["justifycenter",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("justifycenter") before
 [PASS] [["justifycenter",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandState("justifycenter") before
 [FAIL] [["justifycenter",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifycenter") before
@@ -594,7 +594,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center>foo</center><div style=\"text-align:center\">bar</div><p>extra</p>" but got "<center>foo</center><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center>foo</center><div style=\\"text-align:center\\">bar</div><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -620,7 +620,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center>foo</center><div style=\"text-align:center\">bar</div><p>extra</p>" but got "<center>foo</center><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center>foo</center><div style=\\"text-align:center\\">bar</div><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -696,7 +696,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "[foo]<center>bar</center><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "[foo]<center>bar</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "[foo]<center>bar</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div><center>bar</center><p>extra</p>" but got "<p style=\"text-align:center\">foo</p><center>bar</center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><center>bar</center><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><center>bar</center><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "[foo]<center>bar</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "[foo]<center>bar</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "[foo]<center>bar</center><p>extra" queryCommandValue("stylewithcss") before
@@ -722,7 +722,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "[foo]<center>bar</center><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "[foo]<center>bar</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "[foo]<center>bar</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div><center>bar</center><p>extra</p>" but got "<p style=\"text-align:center\">foo</p><center>bar</center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><center>bar</center><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><center>bar</center><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "[foo]<center>bar</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "[foo]<center>bar</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "[foo]<center>bar</center><p>extra" queryCommandValue("stylewithcss") before
@@ -798,7 +798,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<center>baz</center><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<center>baz</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<center>baz</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center>foo</center><div style=\"text-align:center\">bar</div><center>baz</center><p>extra</p>" but got "<center>foo</center><p style=\"text-align:center\">bar</p><center>baz</center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center>foo</center><div style=\\"text-align:center\\">bar</div><center>baz</center><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><center>baz</center><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<center>baz</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<center>baz</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<center>baz</center><p>extra" queryCommandValue("stylewithcss") before
@@ -824,7 +824,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<center>baz</center><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<center>baz</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<center>baz</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center>foo</center><div style=\"text-align:center\">bar</div><center>baz</center><p>extra</p>" but got "<center>foo</center><p style=\"text-align:center\">bar</p><center>baz</center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center>foo</center><div style=\\"text-align:center\\">bar</div><center>baz</center><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><center>baz</center><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<center>baz</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<center>baz</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<center>baz</center><p>extra" queryCommandValue("stylewithcss") before
@@ -848,7 +848,7 @@
 [PASS] [["justifycenter",""]] "<div align=center>foo</div>[bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "<div align=center>foo</div>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "<div align=center>foo</div>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\">foo<br>bar</div><p>extra</p>" but got "<div align=\"center\">foo</div><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["justifycenter",""]] "<div align=center>foo</div>[bar]<p>extra" queryCommandIndeterm("justifycenter") before
 [PASS] [["justifycenter",""]] "<div align=center>foo</div>[bar]<p>extra" queryCommandState("justifycenter") before
 [FAIL] [["justifycenter",""]] "<div align=center>foo</div>[bar]<p>extra" queryCommandValue("justifycenter") before
@@ -860,7 +860,7 @@
 [PASS] [["justifycenter",""]] "[foo]<div align=center>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "[foo]<div align=center>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "[foo]<div align=center>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\">foo<br>bar</div><p>extra</p>" but got "<p style=\"text-align:center\">foo</p><div align=\"center\">bar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\">foo<br>bar</div><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><div align=\\"center\\">bar</div><p>extra</p>"
 [PASS] [["justifycenter",""]] "[foo]<div align=center>bar</div><p>extra" queryCommandIndeterm("justifycenter") before
 [PASS] [["justifycenter",""]] "[foo]<div align=center>bar</div><p>extra" queryCommandState("justifycenter") before
 [FAIL] [["justifycenter",""]] "[foo]<div align=center>bar</div><p>extra" queryCommandValue("justifycenter") before
@@ -873,7 +873,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>foo</div>[bar]<div align=center>baz</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>foo</div>[bar]<div align=center>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>foo</div>[bar]<div align=center>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div align=\"center\">foo</div><div style=\"text-align:center\">bar</div><div align=\"center\">baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div align=\\"center\\">foo</div><div style=\\"text-align:center\\">bar</div><div align=\\"center\\">baz</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>foo</div>[bar]<div align=center>baz</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>foo</div>[bar]<div align=center>baz</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>foo</div>[bar]<div align=center>baz</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -892,7 +892,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>foo</div>[bar]<div align=center>baz</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>foo</div>[bar]<div align=center>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>foo</div>[bar]<div align=center>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div align=\"center\">foo</div><p style=\"text-align:center\">bar</p><div align=\"center\">baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p><div align=\\"center\\">baz</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>foo</div>[bar]<div align=center>baz</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>foo</div>[bar]<div align=center>baz</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>foo</div>[bar]<div align=center>baz</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -910,7 +910,7 @@
 [PASS] [["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p>foo</p></div><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p>foo</p></div><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<p>extra" queryCommandIndeterm("justifycenter") before
 [PASS] [["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<p>extra" queryCommandState("justifycenter") before
 [FAIL] [["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<p>extra" queryCommandValue("justifycenter") before
@@ -922,7 +922,7 @@
 [PASS] [["justifycenter",""]] "<p>[foo]<div align=center><p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "<p>[foo]<div align=center><p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "<p>[foo]<div align=center><p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<p style=\"text-align:center\">foo</p><div align=\"center\"><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><div align=\\"center\\"><p>bar</p></div><p>extra</p>"
 [PASS] [["justifycenter",""]] "<p>[foo]<div align=center><p>bar</div><p>extra" queryCommandIndeterm("justifycenter") before
 [PASS] [["justifycenter",""]] "<p>[foo]<div align=center><p>bar</div><p>extra" queryCommandState("justifycenter") before
 [FAIL] [["justifycenter",""]] "<p>[foo]<div align=center><p>bar</div><p>extra" queryCommandValue("justifycenter") before
@@ -935,7 +935,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<div align=center><p>baz</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<div align=center><p>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<div align=center><p>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div align=\"center\"><p>foo</p></div><p style=\"text-align:center\">bar</p><div align=\"center\"><p>baz</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div align=\\"center\\"><p>foo</p></div><p style=\\"text-align:center\\">bar</p><div align=\\"center\\"><p>baz</p></div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<div align=center><p>baz</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<div align=center><p>baz</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<div align=center><p>baz</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -954,7 +954,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<div align=center><p>baz</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<div align=center><p>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<div align=center><p>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div align=\"center\"><p>foo</p></div><p style=\"text-align:center\">bar</p><div align=\"center\"><p>baz</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div align=\\"center\\"><p>foo</p></div><p style=\\"text-align:center\\">bar</p><div align=\\"center\\"><p>baz</p></div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<div align=center><p>baz</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<div align=center><p>baz</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<div align=center><p>baz</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -972,7 +972,7 @@
 [PASS] [["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<div style=\"text-align:center\">foo</div><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<p>extra" queryCommandIndeterm("justifycenter") before
 [PASS] [["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<p>extra" queryCommandState("justifycenter") before
 [FAIL] [["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<p>extra" queryCommandValue("justifycenter") before
@@ -984,7 +984,7 @@
 [PASS] [["justifycenter",""]] "[foo]<div style=text-align:center>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "[foo]<div style=text-align:center>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "[foo]<div style=text-align:center>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<p style=\"text-align:center\">foo</p><div style=\"text-align:center\">bar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><div style=\\"text-align:center\\">bar</div><p>extra</p>"
 [PASS] [["justifycenter",""]] "[foo]<div style=text-align:center>bar</div><p>extra" queryCommandIndeterm("justifycenter") before
 [PASS] [["justifycenter",""]] "[foo]<div style=text-align:center>bar</div><p>extra" queryCommandState("justifycenter") before
 [FAIL] [["justifycenter",""]] "[foo]<div style=text-align:center>bar</div><p>extra" queryCommandValue("justifycenter") before
@@ -998,7 +998,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\"text-align:center\">foo</div><div style=\"text-align:center\">bar</div><div style=\"text-align:center\">baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo</div><div style=\\"text-align:center\\">bar</div><div style=\\"text-align:center\\">baz</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1024,7 +1024,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\"text-align:center\">foo</div><div style=\"text-align:center\">bar</div><div style=\"text-align:center\">baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo</div><div style=\\"text-align:center\\">bar</div><div style=\\"text-align:center\\">baz</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1050,7 +1050,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\"text-align:center\">foo</div><p style=\"text-align:center\">bar</p><div style=\"text-align:center\">baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo</div><p style=\\"text-align:center\\">bar</p><div style=\\"text-align:center\\">baz</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1076,7 +1076,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\"text-align:center\">foo</div><p style=\"text-align:center\">bar</p><div style=\"text-align:center\">baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo</div><p style=\\"text-align:center\\">bar</p><div style=\\"text-align:center\\">baz</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1100,7 +1100,7 @@
 [PASS] [["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p>foo</p></div><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p>foo</p></div><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<p>extra" queryCommandIndeterm("justifycenter") before
 [PASS] [["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<p>extra" queryCommandState("justifycenter") before
 [FAIL] [["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<p>extra" queryCommandValue("justifycenter") before
@@ -1112,7 +1112,7 @@
 [PASS] [["justifycenter",""]] "<p>[foo]<div style=text-align:center><p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "<p>[foo]<div style=text-align:center><p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "<p>[foo]<div style=text-align:center><p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<p style=\"text-align:center\">foo</p><div style=\"text-align:center\"><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p>extra</p>"
 [PASS] [["justifycenter",""]] "<p>[foo]<div style=text-align:center><p>bar</div><p>extra" queryCommandIndeterm("justifycenter") before
 [PASS] [["justifycenter",""]] "<p>[foo]<div style=text-align:center><p>bar</div><p>extra" queryCommandState("justifycenter") before
 [FAIL] [["justifycenter",""]] "<p>[foo]<div style=text-align:center><p>bar</div><p>extra" queryCommandValue("justifycenter") before
@@ -1126,7 +1126,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p>foo</p></div><p style=\"text-align:center\">bar</p><div style=\"text-align:center\"><p>baz</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p>foo</p></div><p style=\\"text-align:center\\">bar</p><div style=\\"text-align:center\\"><p>baz</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1152,7 +1152,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p>foo</p></div><p style=\"text-align:center\">bar</p><div style=\"text-align:center\"><p>baz</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p>foo</p></div><p style=\\"text-align:center\\">bar</p><div style=\\"text-align:center\\"><p>baz</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_6001-last-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_6001-last-expected.txt
index 8f7faea9..9823701 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_6001-last-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_6001-last-expected.txt
@@ -4,7 +4,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\"text-align:center\"><p>foo</p></div> <p style=\"text-align:center\">bar</p> <div style=\"text-align:center\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p> <div style=\\"text-align:center\\"><p>baz</p></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandValue("stylewithcss") before
@@ -31,7 +31,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]</p> <div align=center><p>baz</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]</p> <div align=center><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]</p> <div align=center><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\"center\"><p>foo</p></div> <p style=\"text-align:center\">bar</p> <div align=\"center\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\\"center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p> <div align=\\"center\\"><p>baz</p></div>"
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]</p> <div align=center><p>baz</div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]</p> <div align=center><p>baz</div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]</p> <div align=center><p>baz</div>" queryCommandValue("defaultparagraphseparator") before
@@ -50,7 +50,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]</p> <div align=center><p>baz</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]</p> <div align=center><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]</p> <div align=center><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\"center\"><p>foo</p></div> <p style=\"text-align:center\">bar</p> <div align=\"center\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\\"center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p> <div align=\\"center\\"><p>baz</p></div>"
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]</p> <div align=center><p>baz</div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]</p> <div align=center><p>baz</div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]</p> <div align=center><p>baz</div>" queryCommandValue("defaultparagraphseparator") before
@@ -70,7 +70,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\"text-align:center\"> <p>bar</p> </div><center><p>baz</p></center>" but got "<center><p>foo</p></center> <p style=\"text-align:center\">bar</p> <center><p>baz</p></center>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p> </div><center><p>baz</p></center>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p> <center><p>baz</p></center>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -97,7 +97,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\"text-align:center\"> <p>bar</p> </div><center><p>baz</p></center>" but got "<center><p>foo</p></center> <p style=\"text-align:center\">bar</p> <center><p>baz</p></center>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p> </div><center><p>baz</p></center>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p> <center><p>baz</p></center>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" queryCommandValue("stylewithcss") before
@@ -123,7 +123,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\"text-align:center\"> <p>bar</p> </div><center><p>baz</p></center>" but got "<center><p>foo</p></center> <p style=\"text-align:center\">bar</p> <center><p>baz</p></center>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p> </div><center><p>baz</p></center>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p> <center><p>baz</p></center>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" queryCommandValue("stylewithcss") before
@@ -149,7 +149,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\"text-align:center\"> <p>bar</p> </div><center><p>baz</p></center>" but got "<center><p>foo</p></center> <p style=\"text-align:center\">bar</p> <center><p>baz</p></center>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p> </div><center><p>baz</p></center>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p> <center><p>baz</p></center>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/justifyfull_1-1000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/justifyfull_1-1000-expected.txt
index a6e6ce5a..453522577 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/justifyfull_1-1000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/justifyfull_1-1000-expected.txt
@@ -56,7 +56,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[]bar<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[]bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[]bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foobar</div><p>extra</p>" but got "<p style=\"text-align:justify\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foobar</div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[]bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[]bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[]bar<p>extra" queryCommandValue("stylewithcss") before
@@ -82,7 +82,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[]bar<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[]bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[]bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foobar</div><p>extra</p>" but got "<p style=\"text-align:justify\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foobar</div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[]bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[]bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[]bar<p>extra" queryCommandValue("stylewithcss") before
@@ -108,7 +108,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\"text-align:justify\">foobar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foobar</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -134,7 +134,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\"text-align:justify\">foobar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foobar</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -160,7 +160,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\"text-align:justify\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -186,7 +186,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\"text-align:justify\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -212,7 +212,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\"text-align:justify\">foobar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foobar</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -238,7 +238,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\"text-align:justify\">foobar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foobar</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -264,7 +264,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\"text-align:justify\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -290,7 +290,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\"text-align:justify\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -366,7 +366,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar]baz<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar]baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar]baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foobarbaz</div><p>extra</p>" but got "<p style=\"text-align:justify\">foobarbaz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foobarbaz</div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobarbaz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar]baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar]baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar]baz<p>extra" queryCommandValue("stylewithcss") before
@@ -392,7 +392,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar]baz<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar]baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar]baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foobarbaz</div><p>extra</p>" but got "<p style=\"text-align:justify\">foobarbaz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foobarbaz</div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobarbaz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar]baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar]baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar]baz<p>extra" queryCommandValue("stylewithcss") before
@@ -468,7 +468,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar<b>baz]qoz</b>quz<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foobar<b>bazqoz</b>quz</div><p>extra</p>" but got "<p style=\"text-align:justify\">foobar<b>bazqoz</b>quz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foobar<b>bazqoz</b>quz</div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar<b>bazqoz</b>quz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("stylewithcss") before
@@ -494,7 +494,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar<b>baz]qoz</b>quz<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foobar<b>bazqoz</b>quz</div><p>extra</p>" but got "<p style=\"text-align:justify\">foobar<b>bazqoz</b>quz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foobar<b>bazqoz</b>quz</div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar<b>bazqoz</b>quz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("stylewithcss") before
@@ -520,7 +520,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[]bar<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[]bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[]bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foobar</p></div><p>extra</p>" but got "<p style=\"text-align:justify\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[]bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[]bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[]bar<p>extra" queryCommandValue("stylewithcss") before
@@ -546,7 +546,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[]bar<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[]bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[]bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foobar</p></div><p>extra</p>" but got "<p style=\"text-align:justify\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[]bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[]bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[]bar<p>extra" queryCommandValue("stylewithcss") before
@@ -572,7 +572,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[]bar<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[]bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[]bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foobar</p></div><p>extra</p>" but got "<p style=\"text-align:justify\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[]bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[]bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[]bar<p>extra" queryCommandValue("stylewithcss") before
@@ -598,7 +598,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[]bar<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[]bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[]bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foobar</p></div><p>extra</p>" but got "<p style=\"text-align:justify\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[]bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[]bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[]bar<p>extra" queryCommandValue("stylewithcss") before
@@ -624,7 +624,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[bar]baz<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\"text-align:justify\">foobarbaz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobarbaz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("stylewithcss") before
@@ -650,7 +650,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[bar]baz<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\"text-align:justify\">foobarbaz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobarbaz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("stylewithcss") before
@@ -676,7 +676,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[bar]baz<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\"text-align:justify\">foobarbaz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobarbaz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("stylewithcss") before
@@ -702,7 +702,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[bar]baz<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\"text-align:justify\">foobarbaz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobarbaz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("stylewithcss") before
@@ -728,7 +728,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\"text-align:justify\">foobarbaz</h1><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:justify\\">foobarbaz</h1><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("stylewithcss") before
@@ -754,7 +754,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\"text-align:justify\">foobarbaz</h1><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:justify\\">foobarbaz</h1><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("stylewithcss") before
@@ -780,7 +780,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\"text-align:justify\">foobarbaz</h1><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:justify\\">foobarbaz</h1><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("stylewithcss") before
@@ -806,7 +806,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\"text-align:justify\">foobarbaz</h1><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:justify\\">foobarbaz</h1><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("stylewithcss") before
@@ -832,7 +832,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\"text-align:justify\">foobarbaz</pre><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:justify\\">foobarbaz</pre><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("stylewithcss") before
@@ -858,7 +858,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\"text-align:justify\">foobarbaz</pre><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:justify\\">foobarbaz</pre><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("stylewithcss") before
@@ -884,7 +884,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\"text-align:justify\">foobarbaz</pre><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:justify\\">foobarbaz</pre><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("stylewithcss") before
@@ -910,7 +910,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\"text-align:justify\">foobarbaz</pre><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:justify\\">foobarbaz</pre><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("stylewithcss") before
@@ -936,7 +936,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\"text-align:justify\">foobarbaz</xmp><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:justify\\">foobarbaz</xmp><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("stylewithcss") before
@@ -962,7 +962,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\"text-align:justify\">foobarbaz</xmp><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:justify\\">foobarbaz</xmp><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("stylewithcss") before
@@ -988,7 +988,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\"text-align:justify\">foobarbaz</xmp><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:justify\\">foobarbaz</xmp><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("stylewithcss") before
@@ -1014,7 +1014,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\"text-align:justify\">foobarbaz</xmp><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:justify\\">foobarbaz</xmp><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("stylewithcss") before
@@ -1040,7 +1040,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\"text-align:justify\">foo</p><p>bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p>bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("stylewithcss") before
@@ -1066,7 +1066,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\"text-align:justify\">foo</p><p>bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p>bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("stylewithcss") before
@@ -1092,7 +1092,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\"text-align:justify\">foo</p><p>bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p>bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("stylewithcss") before
@@ -1118,7 +1118,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\"text-align:justify\">foo</p><p>bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p>bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/justifyfull_3001-4000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/justifyfull_3001-4000-expected.txt
index d4c4f26..0cfaea8 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/justifyfull_3001-4000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/justifyfull_3001-4000-expected.txt
@@ -16,7 +16,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -41,7 +41,7 @@
 [PASS] [["justifyfull",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:justify\">foo</p><p style=\"text-align:justify\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></div><p>extra</p>"
 [PASS] [["justifyfull",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("justifyfull") before
 [PASS] [["justifyfull",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandState("justifyfull") before
 [FAIL] [["justifyfull",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyfull") before
@@ -65,7 +65,7 @@
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p>foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p>foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -84,7 +84,7 @@
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p>foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p>foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -126,7 +126,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"left\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"left\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -152,7 +152,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"left\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"left\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -178,7 +178,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"left\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"left\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -204,7 +204,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"left\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"left\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -229,7 +229,7 @@
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=left><p>[foo<p>bar}</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"left\"><p style=\"text-align:justify\">foo</p><p style=\"text-align:justify\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -248,7 +248,7 @@
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=left><p>[foo<p>bar}</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"left\"><p style=\"text-align:justify\">foo</p><p style=\"text-align:justify\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -268,7 +268,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:left\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:left\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -294,7 +294,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:left\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:left\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -320,7 +320,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:left\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:left\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -346,7 +346,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:left\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:left\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -370,7 +370,7 @@
 [PASS] [["justifyfull",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:left\"><p style=\"text-align:justify\">foo</p><p style=\"text-align:justify\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></div><p>extra</p>"
 [PASS] [["justifyfull",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("justifyfull") before
 [PASS] [["justifyfull",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandState("justifyfull") before
 [FAIL] [["justifyfull",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyfull") before
@@ -384,7 +384,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"right\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -410,7 +410,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"right\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -436,7 +436,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"right\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -462,7 +462,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"right\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -487,7 +487,7 @@
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=right><p>[foo<p>bar}</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"right\"><p style=\"text-align:justify\">foo</p><p style=\"text-align:justify\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -506,7 +506,7 @@
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=right><p>[foo<p>bar}</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"right\"><p style=\"text-align:justify\">foo</p><p style=\"text-align:justify\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -526,7 +526,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:right\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -552,7 +552,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:right\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -578,7 +578,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:right\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -604,7 +604,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:right\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -628,7 +628,7 @@
 [PASS] [["justifyfull",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:right\"><p style=\"text-align:justify\">foo</p><p style=\"text-align:justify\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></div><p>extra</p>"
 [PASS] [["justifyfull",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("justifyfull") before
 [PASS] [["justifyfull",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandState("justifyfull") before
 [FAIL] [["justifyfull",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyfull") before
@@ -640,7 +640,7 @@
 [PASS] [["justifyfull",""]] "<div align=justify>foo</div>[bar]<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "<div align=justify>foo</div>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "<div align=justify>foo</div>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\">foo<br>bar</div><p>extra</p>" but got "<div align=\"justify\">foo</div><p style=\"text-align:justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>"
 [PASS] [["justifyfull",""]] "<div align=justify>foo</div>[bar]<p>extra" queryCommandIndeterm("justifyfull") before
 [PASS] [["justifyfull",""]] "<div align=justify>foo</div>[bar]<p>extra" queryCommandState("justifyfull") before
 [FAIL] [["justifyfull",""]] "<div align=justify>foo</div>[bar]<p>extra" queryCommandValue("justifyfull") before
@@ -652,7 +652,7 @@
 [PASS] [["justifyfull",""]] "[foo]<div align=justify>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "[foo]<div align=justify>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "[foo]<div align=justify>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\">foo<br>bar</div><p>extra</p>" but got "<p style=\"text-align:justify\">foo</p><div align=\"justify\">bar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\">foo<br>bar</div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foo</p><div align=\\"justify\\">bar</div><p>extra</p>"
 [PASS] [["justifyfull",""]] "[foo]<div align=justify>bar</div><p>extra" queryCommandIndeterm("justifyfull") before
 [PASS] [["justifyfull",""]] "[foo]<div align=justify>bar</div><p>extra" queryCommandState("justifyfull") before
 [FAIL] [["justifyfull",""]] "[foo]<div align=justify>bar</div><p>extra" queryCommandValue("justifyfull") before
@@ -665,7 +665,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify>foo</div>[bar]<div align=justify>baz</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify>foo</div>[bar]<div align=justify>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify>foo</div>[bar]<div align=justify>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div align=\"justify\">foo</div><div style=\"text-align:justify\">bar</div><div align=\"justify\">baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div align=\\"justify\\">foo</div><div style=\\"text-align:justify\\">bar</div><div align=\\"justify\\">baz</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify>foo</div>[bar]<div align=justify>baz</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify>foo</div>[bar]<div align=justify>baz</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify>foo</div>[bar]<div align=justify>baz</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -684,7 +684,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify>foo</div>[bar]<div align=justify>baz</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify>foo</div>[bar]<div align=justify>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify>foo</div>[bar]<div align=justify>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div align=\"justify\">foo</div><p style=\"text-align:justify\">bar</p><div align=\"justify\">baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div align=\\"justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><div align=\\"justify\\">baz</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify>foo</div>[bar]<div align=justify>baz</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify>foo</div>[bar]<div align=justify>baz</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify>foo</div>[bar]<div align=justify>baz</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -702,7 +702,7 @@
 [PASS] [["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p>foo</p></div><p style=\"text-align:justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p>foo</p></div><p style=\\"text-align:justify\\">bar</p><p>extra</p>"
 [PASS] [["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<p>extra" queryCommandIndeterm("justifyfull") before
 [PASS] [["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<p>extra" queryCommandState("justifyfull") before
 [FAIL] [["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<p>extra" queryCommandValue("justifyfull") before
@@ -714,7 +714,7 @@
 [PASS] [["justifyfull",""]] "<p>[foo]<div align=justify><p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "<p>[foo]<div align=justify><p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "<p>[foo]<div align=justify><p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<p style=\"text-align:justify\">foo</p><div align=\"justify\"><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foo</p><div align=\\"justify\\"><p>bar</p></div><p>extra</p>"
 [PASS] [["justifyfull",""]] "<p>[foo]<div align=justify><p>bar</div><p>extra" queryCommandIndeterm("justifyfull") before
 [PASS] [["justifyfull",""]] "<p>[foo]<div align=justify><p>bar</div><p>extra" queryCommandState("justifyfull") before
 [FAIL] [["justifyfull",""]] "<p>[foo]<div align=justify><p>bar</div><p>extra" queryCommandValue("justifyfull") before
@@ -727,7 +727,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<div align=justify><p>baz</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<div align=justify><p>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<div align=justify><p>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div align=\"justify\"><p>foo</p></div><p style=\"text-align:justify\">bar</p><div align=\"justify\"><p>baz</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p>foo</p></div><p style=\\"text-align:justify\\">bar</p><div align=\\"justify\\"><p>baz</p></div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<div align=justify><p>baz</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<div align=justify><p>baz</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<div align=justify><p>baz</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -746,7 +746,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<div align=justify><p>baz</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<div align=justify><p>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<div align=justify><p>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div align=\"justify\"><p>foo</p></div><p style=\"text-align:justify\">bar</p><div align=\"justify\"><p>baz</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p>foo</p></div><p style=\\"text-align:justify\\">bar</p><div align=\\"justify\\"><p>baz</p></div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<div align=justify><p>baz</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<div align=justify><p>baz</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<div align=justify><p>baz</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -764,7 +764,7 @@
 [PASS] [["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<br>bar</div><p>extra</p>" but got "<div style=\"text-align:justify\">foo</div><p style=\"text-align:justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>"
 [PASS] [["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<p>extra" queryCommandIndeterm("justifyfull") before
 [PASS] [["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<p>extra" queryCommandState("justifyfull") before
 [FAIL] [["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<p>extra" queryCommandValue("justifyfull") before
@@ -776,7 +776,7 @@
 [PASS] [["justifyfull",""]] "[foo]<div style=text-align:justify>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "[foo]<div style=text-align:justify>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "[foo]<div style=text-align:justify>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<br>bar</div><p>extra</p>" but got "<p style=\"text-align:justify\">foo</p><div style=\"text-align:justify\">bar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foo</p><div style=\\"text-align:justify\\">bar</div><p>extra</p>"
 [PASS] [["justifyfull",""]] "[foo]<div style=text-align:justify>bar</div><p>extra" queryCommandIndeterm("justifyfull") before
 [PASS] [["justifyfull",""]] "[foo]<div style=text-align:justify>bar</div><p>extra" queryCommandState("justifyfull") before
 [FAIL] [["justifyfull",""]] "[foo]<div style=text-align:justify>bar</div><p>extra" queryCommandValue("justifyfull") before
@@ -790,7 +790,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\"text-align:justify\">foo</div><div style=\"text-align:justify\">bar</div><div style=\"text-align:justify\">baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo</div><div style=\\"text-align:justify\\">bar</div><div style=\\"text-align:justify\\">baz</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" queryCommandValue("stylewithcss") before
@@ -816,7 +816,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\"text-align:justify\">foo</div><div style=\"text-align:justify\">bar</div><div style=\"text-align:justify\">baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo</div><div style=\\"text-align:justify\\">bar</div><div style=\\"text-align:justify\\">baz</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" queryCommandValue("stylewithcss") before
@@ -842,7 +842,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\"text-align:justify\">foo</div><p style=\"text-align:justify\">bar</p><div style=\"text-align:justify\">baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><div style=\\"text-align:justify\\">baz</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" queryCommandValue("stylewithcss") before
@@ -868,7 +868,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\"text-align:justify\">foo</div><p style=\"text-align:justify\">bar</p><div style=\"text-align:justify\">baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><div style=\\"text-align:justify\\">baz</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" queryCommandValue("stylewithcss") before
@@ -892,7 +892,7 @@
 [PASS] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:justify\"><p>foo</p></div><p style=\"text-align:justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div><p style=\\"text-align:justify\\">bar</p><p>extra</p>"
 [PASS] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<p>extra" queryCommandIndeterm("justifyfull") before
 [PASS] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<p>extra" queryCommandState("justifyfull") before
 [FAIL] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<p>extra" queryCommandValue("justifyfull") before
@@ -904,7 +904,7 @@
 [PASS] [["justifyfull",""]] "<p>[foo]<div style=text-align:justify><p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "<p>[foo]<div style=text-align:justify><p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "<p>[foo]<div style=text-align:justify><p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<p style=\"text-align:justify\">foo</p><div style=\"text-align:justify\"><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p>extra</p>"
 [PASS] [["justifyfull",""]] "<p>[foo]<div style=text-align:justify><p>bar</div><p>extra" queryCommandIndeterm("justifyfull") before
 [PASS] [["justifyfull",""]] "<p>[foo]<div style=text-align:justify><p>bar</div><p>extra" queryCommandState("justifyfull") before
 [FAIL] [["justifyfull",""]] "<p>[foo]<div style=text-align:justify><p>bar</div><p>extra" queryCommandValue("justifyfull") before
@@ -918,7 +918,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\"text-align:justify\"><p>foo</p></div><p style=\"text-align:justify\">bar</p><div style=\"text-align:justify\"><p>baz</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div><p style=\\"text-align:justify\\">bar</p><div style=\\"text-align:justify\\"><p>baz</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" queryCommandValue("stylewithcss") before
@@ -944,7 +944,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\"text-align:justify\"><p>foo</p></div><p style=\"text-align:justify\">bar</p><div style=\"text-align:justify\"><p>baz</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div><p style=\\"text-align:justify\\">bar</p><div style=\\"text-align:justify\\"><p>baz</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" queryCommandValue("stylewithcss") before
@@ -970,7 +970,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\"text-align:justify\"><p>foo</p></div><p style=\"text-align:justify\">bar</p><div style=\"text-align:justify\"><p>baz</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div><p style=\\"text-align:justify\\">bar</p><div style=\\"text-align:justify\\"><p>baz</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" queryCommandValue("stylewithcss") before
@@ -996,7 +996,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\"text-align:justify\"><p>foo</p></div><p style=\"text-align:justify\">bar</p><div style=\"text-align:justify\"><p>baz</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div><p style=\\"text-align:justify\\">bar</p><div style=\\"text-align:justify\\"><p>baz</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1022,7 +1022,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"justify\">foo</p><div style=\"text-align:justify\"><p>bar</p></div><p>extra</p>" but got "<p align=\"justify\">foo</p><p style=\"text-align:justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -1048,7 +1048,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"justify\">foo</p><div style=\"text-align:justify\"><p>bar</p></div><p>extra</p>" but got "<p align=\"justify\">foo</p><p style=\"text-align:justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -1074,7 +1074,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"justify\">foo</p><div style=\"text-align:justify\"><p>bar</p></div><p>extra</p>" but got "<p align=\"justify\">foo</p><p style=\"text-align:justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -1100,7 +1100,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"justify\">foo</p><div style=\"text-align:justify\"><p>bar</p></div><p>extra</p>" but got "<p align=\"justify\">foo</p><p style=\"text-align:justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -1126,7 +1126,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p></div><p align=\"justify\">bar</p><p>extra</p>" but got "<p style=\"text-align:justify\">foo</p><p align=\"justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p align=\\"justify\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:justify\\">foo</p><p align=\\"justify\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandValue("stylewithcss") before
@@ -1152,7 +1152,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p></div><p align=\"justify\">bar</p><p>extra</p>" but got "<p style=\"text-align:justify\">foo</p><p align=\"justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p align=\\"justify\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:justify\\">foo</p><p align=\\"justify\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_1-1000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_1-1000-expected.txt
index d60f0df51..13789f75a 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_1-1000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_1-1000-expected.txt
@@ -115,7 +115,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\"text-align:left\">foo</p><p>bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:left\\">foo</p><p>bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -142,7 +142,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\"text-align:left\">foo</p><p>bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:left\\">foo</p><p>bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("stylewithcss") before
@@ -168,7 +168,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\"text-align:left\">foo</p><p>bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:left\\">foo</p><p>bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("stylewithcss") before
@@ -194,7 +194,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\"text-align:left\">foo</p><p>bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:left\\">foo</p><p>bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("stylewithcss") before
@@ -218,7 +218,7 @@
 [PASS] [["justifyleft",""]] "<center><p>[foo<p>bar]</center><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["justifyleft",""]] "<center><p>[foo<p>bar]</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyleft",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<center><p style=\"text-align:left\">foo</p><p style=\"text-align:left\">bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<center><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></center><p>extra</p>"
 [PASS] [["justifyleft",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandIndeterm("justifyleft") before
 [PASS] [["justifyleft",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("justifyleft") before
 [FAIL] [["justifyleft",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyleft") before
@@ -329,7 +329,7 @@
 [PASS] [["justifyleft",""]] "<table align=left><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["justifyleft",""]] "<table align=left><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyleft",""]] "<table align=left><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"left\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"left\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["justifyleft",""]] "<table align=left><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyleft") before
 [PASS] [["justifyleft",""]] "<table align=left><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyleft") before
 [FAIL] [["justifyleft",""]] "<table align=left><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") before
@@ -341,7 +341,7 @@
 [PASS] [["justifyleft",""]] "<table align=left data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["justifyleft",""]] "<table align=left data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyleft",""]] "<table align=left data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"left\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"left\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["justifyleft",""]] "<table align=left data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyleft") before
 [PASS] [["justifyleft",""]] "<table align=left data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyleft") before
 [FAIL] [["justifyleft",""]] "<table align=left data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") before
@@ -353,7 +353,7 @@
 [PASS] [["justifyleft",""]] "{<table align=left><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["justifyleft",""]] "{<table align=left><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyleft",""]] "{<table align=left><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"left\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"left\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["justifyleft",""]] "{<table align=left><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifyleft") before
 [PASS] [["justifyleft",""]] "{<table align=left><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyleft") before
 [FAIL] [["justifyleft",""]] "{<table align=left><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyleft") before
@@ -398,7 +398,7 @@
 [PASS] [["justifyleft",""]] "<table><tbody align=left data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["justifyleft",""]] "<table><tbody align=left data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyleft",""]] "<table><tbody align=left data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody align=\"left\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody align=\\"left\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["justifyleft",""]] "<table><tbody align=left data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyleft") before
 [PASS] [["justifyleft",""]] "<table><tbody align=left data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyleft") before
 [FAIL] [["justifyleft",""]] "<table><tbody align=left data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") before
@@ -410,7 +410,7 @@
 [PASS] [["justifyleft",""]] "<table data-start=0 data-end=1><tbody align=left><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["justifyleft",""]] "<table data-start=0 data-end=1><tbody align=left><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyleft",""]] "<table data-start=0 data-end=1><tbody align=left><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody align=\"left\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody align=\\"left\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["justifyleft",""]] "<table data-start=0 data-end=1><tbody align=left><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyleft") before
 [PASS] [["justifyleft",""]] "<table data-start=0 data-end=1><tbody align=left><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyleft") before
 [FAIL] [["justifyleft",""]] "<table data-start=0 data-end=1><tbody align=left><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") before
@@ -422,7 +422,7 @@
 [PASS] [["justifyleft",""]] "{<table><tbody align=left><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["justifyleft",""]] "{<table><tbody align=left><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyleft",""]] "{<table><tbody align=left><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody align=\"left\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody align=\\"left\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["justifyleft",""]] "{<table><tbody align=left><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifyleft") before
 [PASS] [["justifyleft",""]] "{<table><tbody align=left><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyleft") before
 [FAIL] [["justifyleft",""]] "{<table><tbody align=left><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyleft") before
@@ -467,7 +467,7 @@
 [PASS] [["justifyleft",""]] "<table><tbody data-start=0 data-end=1><tr align=left><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["justifyleft",""]] "<table><tbody data-start=0 data-end=1><tr align=left><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyleft",""]] "<table><tbody data-start=0 data-end=1><tr align=left><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr align=\"left\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr align=\\"left\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["justifyleft",""]] "<table><tbody data-start=0 data-end=1><tr align=left><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyleft") before
 [PASS] [["justifyleft",""]] "<table><tbody data-start=0 data-end=1><tr align=left><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyleft") before
 [FAIL] [["justifyleft",""]] "<table><tbody data-start=0 data-end=1><tr align=left><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") before
@@ -479,7 +479,7 @@
 [PASS] [["justifyleft",""]] "<table data-start=0 data-end=1><tbody><tr align=left><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["justifyleft",""]] "<table data-start=0 data-end=1><tbody><tr align=left><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyleft",""]] "<table data-start=0 data-end=1><tbody><tr align=left><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr align=\"left\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr align=\\"left\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["justifyleft",""]] "<table data-start=0 data-end=1><tbody><tr align=left><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyleft") before
 [PASS] [["justifyleft",""]] "<table data-start=0 data-end=1><tbody><tr align=left><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyleft") before
 [FAIL] [["justifyleft",""]] "<table data-start=0 data-end=1><tbody><tr align=left><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") before
@@ -491,7 +491,7 @@
 [PASS] [["justifyleft",""]] "{<table><tr align=left><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["justifyleft",""]] "{<table><tr align=left><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyleft",""]] "{<table><tr align=left><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr align=\"left\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr align=\\"left\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["justifyleft",""]] "{<table><tr align=left><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifyleft") before
 [PASS] [["justifyleft",""]] "{<table><tr align=left><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyleft") before
 [FAIL] [["justifyleft",""]] "{<table><tr align=left><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyleft") before
@@ -505,7 +505,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -531,7 +531,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -557,7 +557,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -583,7 +583,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -608,7 +608,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo<p>bar}</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:left\">foo</p><p style=\"text-align:left\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -627,7 +627,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo<p>bar}</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:left\">foo</p><p style=\"text-align:left\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -647,7 +647,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -673,7 +673,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -699,7 +699,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -725,7 +725,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -751,7 +751,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:left\">foo</p><p style=\"text-align:left\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -777,7 +777,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:left\">foo</p><p style=\"text-align:left\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -803,7 +803,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:left\">foo</p><p style=\"text-align:left\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -829,7 +829,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:left\">foo</p><p style=\"text-align:left\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -855,7 +855,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -881,7 +881,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -907,7 +907,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -933,7 +933,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -958,7 +958,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:left\">foo</p><p style=\"text-align:left\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -977,7 +977,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:left\">foo</p><p style=\"text-align:left\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -997,7 +997,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:justify\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1023,7 +1023,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:justify\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1049,7 +1049,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:justify\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1075,7 +1075,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:justify\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1101,7 +1101,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\"text-align:justify\"><p style=\"text-align:left\">foo</p><p style=\"text-align:left\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1127,7 +1127,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\"text-align:justify\"><p style=\"text-align:left\">foo</p><p style=\"text-align:left\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1153,7 +1153,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\"text-align:justify\"><p style=\"text-align:left\">foo</p><p style=\"text-align:left\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_1001-2000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_1001-2000-expected.txt
index 59f2efa9..49fefff 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_1001-2000-expected.txt
@@ -5,7 +5,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\"text-align:justify\"><p style=\"text-align:left\">foo</p><p style=\"text-align:left\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -42,7 +42,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left><p>[foo<p>bar}</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\"left\"><p>foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\\"left\\"><p>foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -61,7 +61,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left><p>[foo<p>bar}</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\"left\"><p>foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\\"left\\"><p>foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -92,7 +92,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\"text-align:left\"><p>foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:left\\"><p>foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -118,7 +118,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\"text-align:left\"><p>foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:left\\"><p>foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -144,7 +144,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\"text-align:left\"><p>foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:left\\"><p>foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -170,7 +170,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\"text-align:left\"><p>foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:left\\"><p>foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -196,7 +196,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"right\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -222,7 +222,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"right\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -248,7 +248,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"right\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -274,7 +274,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"right\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -299,7 +299,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo<p>bar}</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\"right\"><p style=\"text-align:left\">foo</p><p style=\"text-align:left\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -318,7 +318,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo<p>bar}</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\"right\"><p style=\"text-align:left\">foo</p><p style=\"text-align:left\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -338,7 +338,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:right\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -364,7 +364,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:right\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -390,7 +390,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:right\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -416,7 +416,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><div style=\"text-align:left\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:right\"><p style=\"text-align:left\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -442,7 +442,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\"text-align:right\"><p style=\"text-align:left\">foo</p><p style=\"text-align:left\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -468,7 +468,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\"text-align:right\"><p style=\"text-align:left\">foo</p><p style=\"text-align:left\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -494,7 +494,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\"text-align:right\"><p style=\"text-align:left\">foo</p><p style=\"text-align:left\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -520,7 +520,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\"text-align:right\"><p style=\"text-align:left\">foo</p><p style=\"text-align:left\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -710,7 +710,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left>[foo</div>bar]<p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div align=\"left\">foo</div>bar<p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div align=\\"left\\">foo</div>bar<p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left>[foo</div>bar]<p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left>[foo</div>bar]<p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left>[foo</div>bar]<p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -729,7 +729,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left>[foo</div>bar]<p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div align=\"left\">foo</div>bar<p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div align=\\"left\\">foo</div>bar<p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left>[foo</div>bar]<p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left>[foo</div>bar]<p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left>[foo</div>bar]<p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -748,7 +748,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left>fo[o</div>b]ar<p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div align=\"left\">foo</div>bar<p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div align=\\"left\\">foo</div>bar<p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left>fo[o</div>b]ar<p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left>fo[o</div>b]ar<p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left>fo[o</div>b]ar<p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -767,7 +767,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left>fo[o</div>b]ar<p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div align=\"left\">foo</div>bar<p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div align=\\"left\\">foo</div>bar<p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left>fo[o</div>b]ar<p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left>fo[o</div>b]ar<p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left>fo[o</div>b]ar<p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -787,7 +787,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\"text-align:left\">foo</div>bar<p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div>bar<p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -813,7 +813,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\"text-align:left\">foo</div>bar<p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div>bar<p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -839,7 +839,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\"text-align:left\">foo</div>bar<p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div>bar<p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -865,7 +865,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\"text-align:left\">foo</div>bar<p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div>bar<p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -891,7 +891,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\"text-align:left\">foo</div>bar<p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div>bar<p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -917,7 +917,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\"text-align:left\">foo</div>bar<p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div>bar<p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -943,7 +943,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\"text-align:left\">foo</div>bar<p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div>bar<p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -969,7 +969,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\"text-align:left\">foo</div>bar<p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div>bar<p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -994,7 +994,7 @@
 [PASS] [["stylewithcss","true"],["justifyleft",""]] "<span style=text-align:left>[foo]</span><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyleft",""]] "<span style=text-align:left>[foo]</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyleft",""]] "<span style=text-align:left>[foo]</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<span style=\"text-align:left\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<span style=\\"text-align:left\\">foo</span><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyleft",""]] "<span style=text-align:left>[foo]</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyleft",""]] "<span style=text-align:left>[foo]</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyleft",""]] "<span style=text-align:left>[foo]</span><p>extra" queryCommandValue("stylewithcss") before
@@ -1013,7 +1013,7 @@
 [PASS] [["stylewithcss","false"],["justifyleft",""]] "<span style=text-align:left>[foo]</span><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyleft",""]] "<span style=text-align:left>[foo]</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyleft",""]] "<span style=text-align:left>[foo]</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<span style=\"text-align:left\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<span style=\\"text-align:left\\">foo</span><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyleft",""]] "<span style=text-align:left>[foo]</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyleft",""]] "<span style=text-align:left>[foo]</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyleft",""]] "<span style=text-align:left>[foo]</span><p>extra" queryCommandValue("stylewithcss") before
@@ -1032,7 +1032,7 @@
 [PASS] [["stylewithcss","true"],["justifyleft",""]] "<span style=text-align:left>f[o]o</span><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyleft",""]] "<span style=text-align:left>f[o]o</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyleft",""]] "<span style=text-align:left>f[o]o</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<span style=\"text-align:left\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<span style=\\"text-align:left\\">foo</span><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyleft",""]] "<span style=text-align:left>f[o]o</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyleft",""]] "<span style=text-align:left>f[o]o</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyleft",""]] "<span style=text-align:left>f[o]o</span><p>extra" queryCommandValue("stylewithcss") before
@@ -1051,7 +1051,7 @@
 [PASS] [["stylewithcss","false"],["justifyleft",""]] "<span style=text-align:left>f[o]o</span><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyleft",""]] "<span style=text-align:left>f[o]o</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyleft",""]] "<span style=text-align:left>f[o]o</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<span style=\"text-align:left\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<span style=\\"text-align:left\\">foo</span><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyleft",""]] "<span style=text-align:left>f[o]o</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyleft",""]] "<span style=text-align:left>f[o]o</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyleft",""]] "<span style=text-align:left>f[o]o</span><p>extra" queryCommandValue("stylewithcss") before
@@ -1071,7 +1071,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\"text-align:left\" contenteditable=\"false\">bar</div>baz<p>extra</p>" but got "<div style=\"text-align:left\">foo<div style=\"text-align:left\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div>baz<p>extra</p>" but got "<div style=\\"text-align:left\\">foo<div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1097,7 +1097,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\"text-align:left\" contenteditable=\"false\">bar</div>baz<p>extra</p>" but got "<div style=\"text-align:left\">foo<div style=\"text-align:left\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div>baz<p>extra</p>" but got "<div style=\\"text-align:left\\">foo<div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1123,7 +1123,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\"text-align:left\" contenteditable=\"false\">bar</div>baz<p>extra</p>" but got "<div style=\"text-align:left\">foo<div style=\"text-align:left\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div>baz<p>extra</p>" but got "<div style=\\"text-align:left\\">foo<div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1149,7 +1149,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\"text-align:left\" contenteditable=\"false\">bar</div>baz<p>extra</p>" but got "<div style=\"text-align:left\">foo<div style=\"text-align:left\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div>baz<p>extra</p>" but got "<div style=\\"text-align:left\\">foo<div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_2001-last-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_2001-last-expected.txt
index 3c2e526fd..ccd002dd 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_2001-last-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_2001-last-expected.txt
@@ -20,7 +20,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=nonsense><p>[foo]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=nonsense><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>extra</p>" but got "<div align=\"nonsense\"><p>foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>extra</p>" but got "<div align=\\"nonsense\\"><p>foo</p></div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -40,7 +40,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=nonsense><p>[foo]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=nonsense><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>extra</p>" but got "<div align=\"nonsense\"><p>foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>extra</p>" but got "<div align=\\"nonsense\\"><p>foo</p></div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -60,7 +60,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>extra</p>" but got "<div style=\"text-align:inherit\"><p>foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>extra</p>" but got "<div style=\\"text-align:inherit\\"><p>foo</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -87,7 +87,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>extra</p>" but got "<div style=\"text-align:inherit\"><p>foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>extra</p>" but got "<div style=\\"text-align:inherit\\"><p>foo</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -113,7 +113,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>extra</p>" but got "<div style=\"text-align:inherit\"><p>foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>extra</p>" but got "<div style=\\"text-align:inherit\\"><p>foo</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -139,7 +139,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>extra</p>" but got "<div style=\"text-align:inherit\"><p>foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>extra</p>" but got "<div style=\\"text-align:inherit\\"><p>foo</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -163,7 +163,7 @@
 [PASS] [["justifyleft",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["justifyleft",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyleft",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<quasit><p>foo</p></quasit><p>extra</p>" but got "<quasit align=\"center\"><p>foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<quasit><p>foo</p></quasit><p>extra</p>" but got "<quasit align=\\"center\\"><p>foo</p></quasit><p>extra</p>"
 [PASS] [["justifyleft",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("justifyleft") before
 [PASS] [["justifyleft",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandState("justifyleft") before
 [FAIL] [["justifyleft",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyleft") before
@@ -177,7 +177,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\"text-align:start\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\\"text-align:start\\">foo</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -203,7 +203,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\"text-align:start\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\\"text-align:start\\">foo</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -229,7 +229,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\"text-align:start\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\\"text-align:start\\">foo</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -255,7 +255,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\"text-align:start\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\\"text-align:start\\">foo</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -281,7 +281,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\"text-align:left\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -307,7 +307,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\"text-align:left\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -333,7 +333,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\"text-align:left\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -359,7 +359,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\"text-align:left\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -384,7 +384,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:left\"><div dir=\"rtl\">foo</div></div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:left\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:left\\">foo</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -403,7 +403,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:left\"><div dir=\"rtl\">foo</div></div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:left\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:left\\">foo</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -422,7 +422,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:left\"><div dir=\"rtl\">foo</div></div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:end\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:end\\">foo</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -441,7 +441,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra": execCommand("justifyleft", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:left\"><div dir=\"rtl\">foo</div></div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:end\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:end\\">foo</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("defaultparagraphseparator") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/justifyright_1-1000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/justifyright_1-1000-expected.txt
index 033f1fe6..3f3a390 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/justifyright_1-1000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/justifyright_1-1000-expected.txt
@@ -56,7 +56,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[]bar<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[]bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[]bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foobar</div><p>extra</p>" but got "<p style=\"text-align:right\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foobar</div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[]bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[]bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[]bar<p>extra" queryCommandValue("stylewithcss") before
@@ -82,7 +82,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[]bar<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[]bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[]bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foobar</div><p>extra</p>" but got "<p style=\"text-align:right\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foobar</div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[]bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[]bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[]bar<p>extra" queryCommandValue("stylewithcss") before
@@ -108,7 +108,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\"text-align:right\">foobar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:right\\">foobar</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -134,7 +134,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\"text-align:right\">foobar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:right\\">foobar</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -160,7 +160,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\"text-align:right\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -186,7 +186,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\"text-align:right\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -212,7 +212,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\"text-align:right\">foobar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:right\\">foobar</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -238,7 +238,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\"text-align:right\">foobar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:right\\">foobar</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -264,7 +264,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\"text-align:right\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -290,7 +290,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\"text-align:right\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("stylewithcss") before
@@ -366,7 +366,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar]baz<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar]baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar]baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foobarbaz</div><p>extra</p>" but got "<p style=\"text-align:right\">foobarbaz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foobarbaz</div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobarbaz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar]baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar]baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar]baz<p>extra" queryCommandValue("stylewithcss") before
@@ -392,7 +392,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar]baz<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar]baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar]baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foobarbaz</div><p>extra</p>" but got "<p style=\"text-align:right\">foobarbaz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foobarbaz</div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobarbaz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar]baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar]baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar]baz<p>extra" queryCommandValue("stylewithcss") before
@@ -468,7 +468,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar<b>baz]qoz</b>quz<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foobar<b>bazqoz</b>quz</div><p>extra</p>" but got "<p style=\"text-align:right\">foobar<b>bazqoz</b>quz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foobar<b>bazqoz</b>quz</div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar<b>bazqoz</b>quz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("stylewithcss") before
@@ -494,7 +494,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar<b>baz]qoz</b>quz<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foobar<b>bazqoz</b>quz</div><p>extra</p>" but got "<p style=\"text-align:right\">foobar<b>bazqoz</b>quz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foobar<b>bazqoz</b>quz</div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar<b>bazqoz</b>quz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("stylewithcss") before
@@ -520,7 +520,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[]bar<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[]bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[]bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foobar</p></div><p>extra</p>" but got "<p style=\"text-align:right\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[]bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[]bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[]bar<p>extra" queryCommandValue("stylewithcss") before
@@ -546,7 +546,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[]bar<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[]bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[]bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foobar</p></div><p>extra</p>" but got "<p style=\"text-align:right\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[]bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[]bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[]bar<p>extra" queryCommandValue("stylewithcss") before
@@ -572,7 +572,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[]bar<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[]bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[]bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foobar</p></div><p>extra</p>" but got "<p style=\"text-align:right\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[]bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[]bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[]bar<p>extra" queryCommandValue("stylewithcss") before
@@ -598,7 +598,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[]bar<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[]bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[]bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foobar</p></div><p>extra</p>" but got "<p style=\"text-align:right\">foobar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[]bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[]bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[]bar<p>extra" queryCommandValue("stylewithcss") before
@@ -624,7 +624,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[bar]baz<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[bar]baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[bar]baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\"text-align:right\">foobarbaz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobarbaz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[bar]baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[bar]baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("stylewithcss") before
@@ -650,7 +650,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[bar]baz<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[bar]baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[bar]baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\"text-align:right\">foobarbaz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobarbaz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[bar]baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[bar]baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("stylewithcss") before
@@ -676,7 +676,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[bar]baz<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[bar]baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[bar]baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\"text-align:right\">foobarbaz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobarbaz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[bar]baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[bar]baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("stylewithcss") before
@@ -702,7 +702,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[bar]baz<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[bar]baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[bar]baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\"text-align:right\">foobarbaz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobarbaz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[bar]baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[bar]baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("stylewithcss") before
@@ -728,7 +728,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\"text-align:right\">foobarbaz</h1><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:right\\">foobarbaz</h1><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("stylewithcss") before
@@ -754,7 +754,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\"text-align:right\">foobarbaz</h1><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:right\\">foobarbaz</h1><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("stylewithcss") before
@@ -780,7 +780,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\"text-align:right\">foobarbaz</h1><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:right\\">foobarbaz</h1><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("stylewithcss") before
@@ -806,7 +806,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\"text-align:right\">foobarbaz</h1><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:right\\">foobarbaz</h1><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("stylewithcss") before
@@ -832,7 +832,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\"text-align:right\">foobarbaz</pre><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:right\\">foobarbaz</pre><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("stylewithcss") before
@@ -858,7 +858,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\"text-align:right\">foobarbaz</pre><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:right\\">foobarbaz</pre><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("stylewithcss") before
@@ -884,7 +884,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\"text-align:right\">foobarbaz</pre><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:right\\">foobarbaz</pre><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("stylewithcss") before
@@ -910,7 +910,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\"text-align:right\">foobarbaz</pre><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:right\\">foobarbaz</pre><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("stylewithcss") before
@@ -936,7 +936,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\"text-align:right\">foobarbaz</xmp><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:right\\">foobarbaz</xmp><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("stylewithcss") before
@@ -962,7 +962,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\"text-align:right\">foobarbaz</xmp><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:right\\">foobarbaz</xmp><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("stylewithcss") before
@@ -988,7 +988,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\"text-align:right\">foobarbaz</xmp><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:right\\">foobarbaz</xmp><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("stylewithcss") before
@@ -1014,7 +1014,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\"text-align:right\">foobarbaz</xmp><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:right\\">foobarbaz</xmp><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("stylewithcss") before
@@ -1040,7 +1040,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\"text-align:right\">foo</p><p>bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p>bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("stylewithcss") before
@@ -1066,7 +1066,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\"text-align:right\">foo</p><p>bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p>bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("stylewithcss") before
@@ -1092,7 +1092,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\"text-align:right\">foo</p><p>bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p>bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("stylewithcss") before
@@ -1118,7 +1118,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\"text-align:right\">foo</p><p>bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p>bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/justifyright_3001-4000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/justifyright_3001-4000-expected.txt
index f7cd955b..3a6cb7da 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/justifyright_3001-4000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/justifyright_3001-4000-expected.txt
@@ -16,7 +16,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -41,7 +41,7 @@
 [PASS] [["justifyright",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:right\">foo</p><p style=\"text-align:right\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></div><p>extra</p>"
 [PASS] [["justifyright",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyright") before
@@ -55,7 +55,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -81,7 +81,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -107,7 +107,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -133,7 +133,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -158,7 +158,7 @@
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:right\">foo</p><p style=\"text-align:right\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -177,7 +177,7 @@
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:right\">foo</p><p style=\"text-align:right\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -197,7 +197,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:justify\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -223,7 +223,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:justify\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -249,7 +249,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:justify\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -275,7 +275,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:justify\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -299,7 +299,7 @@
 [PASS] [["justifyright",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:justify\"><p style=\"text-align:right\">foo</p><p style=\"text-align:right\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></div><p>extra</p>"
 [PASS] [["justifyright",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyright") before
@@ -313,7 +313,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"left\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"left\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -339,7 +339,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"left\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"left\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -365,7 +365,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"left\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"left\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -391,7 +391,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"left\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"left\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -416,7 +416,7 @@
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=left><p>[foo<p>bar}</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"left\"><p style=\"text-align:right\">foo</p><p style=\"text-align:right\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -435,7 +435,7 @@
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=left><p>[foo<p>bar}</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"left\"><p style=\"text-align:right\">foo</p><p style=\"text-align:right\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -455,7 +455,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:left\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:left\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -481,7 +481,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:left\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:left\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -507,7 +507,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:left\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:left\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -533,7 +533,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:left\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:left\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -557,7 +557,7 @@
 [PASS] [["justifyright",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:left\"><p style=\"text-align:right\">foo</p><p style=\"text-align:right\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></div><p>extra</p>"
 [PASS] [["justifyright",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyright") before
@@ -581,7 +581,7 @@
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right><p>[foo<p>bar}</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"right\"><p>foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p>foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -600,7 +600,7 @@
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right><p>[foo<p>bar}</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"right\"><p>foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p>foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -640,7 +640,7 @@
 [PASS] [["justifyright",""]] "<div align=right>foo</div>[bar]<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<div align=right>foo</div>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<div align=right>foo</div>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\">foo<br>bar</div><p>extra</p>" but got "<div align=\"right\">foo</div><p style=\"text-align:right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>"
 [PASS] [["justifyright",""]] "<div align=right>foo</div>[bar]<p>extra" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "<div align=right>foo</div>[bar]<p>extra" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "<div align=right>foo</div>[bar]<p>extra" queryCommandValue("justifyright") before
@@ -652,7 +652,7 @@
 [PASS] [["justifyright",""]] "[foo]<div align=right>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "[foo]<div align=right>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "[foo]<div align=right>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\">foo<br>bar</div><p>extra</p>" but got "<p style=\"text-align:right\">foo</p><div align=\"right\">bar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\">foo<br>bar</div><p>extra</p>" but got "<p style=\\"text-align:right\\">foo</p><div align=\\"right\\">bar</div><p>extra</p>"
 [PASS] [["justifyright",""]] "[foo]<div align=right>bar</div><p>extra" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "[foo]<div align=right>bar</div><p>extra" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "[foo]<div align=right>bar</div><p>extra" queryCommandValue("justifyright") before
@@ -665,7 +665,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right>foo</div>[bar]<div align=right>baz</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right>foo</div>[bar]<div align=right>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right>foo</div>[bar]<div align=right>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div align=\"right\">foo</div><div style=\"text-align:right\">bar</div><div align=\"right\">baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div align=\\"right\\">foo</div><div style=\\"text-align:right\\">bar</div><div align=\\"right\\">baz</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right>foo</div>[bar]<div align=right>baz</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right>foo</div>[bar]<div align=right>baz</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right>foo</div>[bar]<div align=right>baz</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -684,7 +684,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right>foo</div>[bar]<div align=right>baz</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right>foo</div>[bar]<div align=right>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right>foo</div>[bar]<div align=right>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div align=\"right\">foo</div><p style=\"text-align:right\">bar</p><div align=\"right\">baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div align=\\"right\\">foo</div><p style=\\"text-align:right\\">bar</p><div align=\\"right\\">baz</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right>foo</div>[bar]<div align=right>baz</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right>foo</div>[bar]<div align=right>baz</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right>foo</div>[bar]<div align=right>baz</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -702,7 +702,7 @@
 [PASS] [["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"right\"><p>foo</p></div><p style=\"text-align:right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p>foo</p></div><p style=\\"text-align:right\\">bar</p><p>extra</p>"
 [PASS] [["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<p>extra" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<p>extra" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<p>extra" queryCommandValue("justifyright") before
@@ -714,7 +714,7 @@
 [PASS] [["justifyright",""]] "<p>[foo]<div align=right><p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<p>[foo]<div align=right><p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<p>[foo]<div align=right><p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<p style=\"text-align:right\">foo</p><div align=\"right\"><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foo</p><div align=\\"right\\"><p>bar</p></div><p>extra</p>"
 [PASS] [["justifyright",""]] "<p>[foo]<div align=right><p>bar</div><p>extra" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "<p>[foo]<div align=right><p>bar</div><p>extra" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "<p>[foo]<div align=right><p>bar</div><p>extra" queryCommandValue("justifyright") before
@@ -727,7 +727,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<div align=right><p>baz</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<div align=right><p>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<div align=right><p>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div align=\"right\"><p>foo</p></div><p style=\"text-align:right\">bar</p><div align=\"right\"><p>baz</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div align=\\"right\\"><p>foo</p></div><p style=\\"text-align:right\\">bar</p><div align=\\"right\\"><p>baz</p></div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<div align=right><p>baz</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<div align=right><p>baz</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<div align=right><p>baz</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -746,7 +746,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<div align=right><p>baz</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<div align=right><p>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<div align=right><p>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div align=\"right\"><p>foo</p></div><p style=\"text-align:right\">bar</p><div align=\"right\"><p>baz</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div align=\\"right\\"><p>foo</p></div><p style=\\"text-align:right\\">bar</p><div align=\\"right\\"><p>baz</p></div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<div align=right><p>baz</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<div align=right><p>baz</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<div align=right><p>baz</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -764,7 +764,7 @@
 [PASS] [["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<br>bar</div><p>extra</p>" but got "<div style=\"text-align:right\">foo</div><p style=\"text-align:right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>"
 [PASS] [["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<p>extra" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<p>extra" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<p>extra" queryCommandValue("justifyright") before
@@ -776,7 +776,7 @@
 [PASS] [["justifyright",""]] "[foo]<div style=text-align:right>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "[foo]<div style=text-align:right>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "[foo]<div style=text-align:right>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<br>bar</div><p>extra</p>" but got "<p style=\"text-align:right\">foo</p><div style=\"text-align:right\">bar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<p style=\\"text-align:right\\">foo</p><div style=\\"text-align:right\\">bar</div><p>extra</p>"
 [PASS] [["justifyright",""]] "[foo]<div style=text-align:right>bar</div><p>extra" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "[foo]<div style=text-align:right>bar</div><p>extra" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "[foo]<div style=text-align:right>bar</div><p>extra" queryCommandValue("justifyright") before
@@ -790,7 +790,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\"text-align:right\">foo</div><div style=\"text-align:right\">bar</div><div style=\"text-align:right\">baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo</div><div style=\\"text-align:right\\">bar</div><div style=\\"text-align:right\\">baz</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" queryCommandValue("stylewithcss") before
@@ -816,7 +816,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\"text-align:right\">foo</div><div style=\"text-align:right\">bar</div><div style=\"text-align:right\">baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo</div><div style=\\"text-align:right\\">bar</div><div style=\\"text-align:right\\">baz</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" queryCommandValue("stylewithcss") before
@@ -842,7 +842,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\"text-align:right\">foo</div><p style=\"text-align:right\">bar</p><div style=\"text-align:right\">baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo</div><p style=\\"text-align:right\\">bar</p><div style=\\"text-align:right\\">baz</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" queryCommandValue("stylewithcss") before
@@ -868,7 +868,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\"text-align:right\">foo</div><p style=\"text-align:right\">bar</p><div style=\"text-align:right\">baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo</div><p style=\\"text-align:right\\">bar</p><div style=\\"text-align:right\\">baz</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" queryCommandValue("stylewithcss") before
@@ -892,7 +892,7 @@
 [PASS] [["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:right\"><p>foo</p></div><p style=\"text-align:right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p>foo</p></div><p style=\\"text-align:right\\">bar</p><p>extra</p>"
 [PASS] [["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<p>extra" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<p>extra" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<p>extra" queryCommandValue("justifyright") before
@@ -904,7 +904,7 @@
 [PASS] [["justifyright",""]] "<p>[foo]<div style=text-align:right><p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<p>[foo]<div style=text-align:right><p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<p>[foo]<div style=text-align:right><p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<p style=\"text-align:right\">foo</p><div style=\"text-align:right\"><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p>extra</p>"
 [PASS] [["justifyright",""]] "<p>[foo]<div style=text-align:right><p>bar</div><p>extra" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "<p>[foo]<div style=text-align:right><p>bar</div><p>extra" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "<p>[foo]<div style=text-align:right><p>bar</div><p>extra" queryCommandValue("justifyright") before
@@ -918,7 +918,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\"text-align:right\"><p>foo</p></div><p style=\"text-align:right\">bar</p><div style=\"text-align:right\"><p>baz</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p>foo</p></div><p style=\\"text-align:right\\">bar</p><div style=\\"text-align:right\\"><p>baz</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" queryCommandValue("stylewithcss") before
@@ -944,7 +944,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\"text-align:right\"><p>foo</p></div><p style=\"text-align:right\">bar</p><div style=\"text-align:right\"><p>baz</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p>foo</p></div><p style=\\"text-align:right\\">bar</p><div style=\\"text-align:right\\"><p>baz</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" queryCommandValue("stylewithcss") before
@@ -970,7 +970,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\"text-align:right\"><p>foo</p></div><p style=\"text-align:right\">bar</p><div style=\"text-align:right\"><p>baz</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p>foo</p></div><p style=\\"text-align:right\\">bar</p><div style=\\"text-align:right\\"><p>baz</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" queryCommandValue("stylewithcss") before
@@ -996,7 +996,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\"text-align:right\"><p>foo</p></div><p style=\"text-align:right\">bar</p><div style=\"text-align:right\"><p>baz</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p>foo</p></div><p style=\\"text-align:right\\">bar</p><div style=\\"text-align:right\\"><p>baz</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1022,7 +1022,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"right\">foo</p><div style=\"text-align:right\"><p>bar</p></div><p>extra</p>" but got "<p align=\"right\">foo</p><p style=\"text-align:right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -1048,7 +1048,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"right\">foo</p><div style=\"text-align:right\"><p>bar</p></div><p>extra</p>" but got "<p align=\"right\">foo</p><p style=\"text-align:right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -1074,7 +1074,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"right\">foo</p><div style=\"text-align:right\"><p>bar</p></div><p>extra</p>" but got "<p align=\"right\">foo</p><p style=\"text-align:right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -1100,7 +1100,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"right\">foo</p><div style=\"text-align:right\"><p>bar</p></div><p>extra</p>" but got "<p align=\"right\">foo</p><p style=\"text-align:right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -1126,7 +1126,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p></div><p align=\"right\">bar</p><p>extra</p>" but got "<p style=\"text-align:right\">foo</p><p align=\"right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p align=\\"right\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:right\\">foo</p><p align=\\"right\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandValue("stylewithcss") before
@@ -1152,7 +1152,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p></div><p align=\"right\">bar</p><p>extra</p>" but got "<p style=\"text-align:right\">foo</p><p align=\"right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p align=\\"right\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:right\\">foo</p><p align=\\"right\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/multitest_1-1000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/multitest_1-1000-expected.txt
index 7c486f3..f7860ef6 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/multitest_1-1000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/multitest_1-1000-expected.txt
@@ -4,7 +4,7 @@
 [PASS] [["bold",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["bold",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["bold",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<b>a</b>bar" but got "foo<span style=\"font-weight:bold\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<b>a</b>bar" but got "foo<span style=\\"font-weight:bold\\">a</span>bar"
 [PASS] [["bold",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("bold") before
 [PASS] [["bold",""],["inserttext","a"]] "foo[]bar" queryCommandState("bold") before
 [FAIL] [["bold",""],["inserttext","a"]] "foo[]bar" queryCommandValue("bold") before
@@ -161,7 +161,7 @@
 [PASS] [["bold",""],["indent",""]] "foo[]bar": execCommand("indent", false, "") return value
 [PASS] [["bold",""],["indent",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["bold",""],["indent",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foobar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foobar</blockquote>"
 [PASS] [["bold",""],["indent",""]] "foo[]bar" queryCommandIndeterm("bold") before
 [PASS] [["bold",""],["indent",""]] "foo[]bar" queryCommandState("bold") before
 [FAIL] [["bold",""],["indent",""]] "foo[]bar" queryCommandValue("bold") before
@@ -182,7 +182,7 @@
 [PASS] [["bold",""],["indent",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["bold",""],["indent",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["bold",""],["indent",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<b>a</b>bar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">fooabar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<b>a</b>bar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">fooabar</blockquote>"
 [PASS] [["bold",""],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("bold") before
 [PASS] [["bold",""],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandState("bold") before
 [FAIL] [["bold",""],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandValue("bold") before
@@ -320,7 +320,7 @@
 [PASS] [["bold",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["bold",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["bold",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\"/img/lion.svg\"><b>a</b>bar" but got "foo<img src=\"/img/lion.svg\">abar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\\"/img/lion.svg\\"><b>a</b>bar" but got "foo<img src=\\"/img/lion.svg\\">abar"
 [PASS] [["bold",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("bold") before
 [PASS] [["bold",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandState("bold") before
 [FAIL] [["bold",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandValue("bold") before
@@ -346,7 +346,7 @@
 [PASS] [["bold",""],["insertlinebreak",""]] "foo[]bar": execCommand("insertlinebreak", false, "") return value
 [PASS] [["bold",""],["insertlinebreak",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["bold",""],["insertlinebreak",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar" but got "foo<span style=\"font-weight:bold\"><br></span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar" but got "foo<span style=\\"font-weight:bold\\"><br></span>bar"
 [PASS] [["bold",""],["insertlinebreak",""]] "foo[]bar" queryCommandIndeterm("bold") before
 [PASS] [["bold",""],["insertlinebreak",""]] "foo[]bar" queryCommandState("bold") before
 [FAIL] [["bold",""],["insertlinebreak",""]] "foo[]bar" queryCommandValue("bold") before
@@ -366,7 +366,7 @@
 [PASS] [["bold",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["bold",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["bold",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><b>a</b>bar" but got "foo<span style=\"font-weight:bold\"><br>a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><b>a</b>bar" but got "foo<span style=\\"font-weight:bold\\"><br>a</span>bar"
 [PASS] [["bold",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("bold") before
 [PASS] [["bold",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandState("bold") before
 [FAIL] [["bold",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandValue("bold") before
@@ -461,7 +461,7 @@
 [PASS] [["bold",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["bold",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["bold",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><b>a</b>bar</p>" but got "foo<div><span style=\"font-weight:bold\">a</span>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><b>a</b>bar</p>" but got "foo<div><span style=\\"font-weight:bold\\">a</span>bar</div>"
 [PASS] [["bold",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("bold") before
 [PASS] [["bold",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandState("bold") before
 [FAIL] [["bold",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandValue("bold") before
@@ -558,7 +558,7 @@
 [PASS] [["bold",""],["justifycenter",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["bold",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["bold",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<b>a</b>bar</div>" but got "<div style=\"text-align:center\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<b>a</b>bar</div>" but got "<div style=\\"text-align:center\\">fooabar</div>"
 [PASS] [["bold",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("bold") before
 [PASS] [["bold",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandState("bold") before
 [FAIL] [["bold",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("bold") before
@@ -608,7 +608,7 @@
 [PASS] [["bold",""],["justifyfull",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["bold",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["bold",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<b>a</b>bar</div>" but got "<div style=\"text-align:justify\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<b>a</b>bar</div>" but got "<div style=\\"text-align:justify\\">fooabar</div>"
 [PASS] [["bold",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("bold") before
 [PASS] [["bold",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandState("bold") before
 [FAIL] [["bold",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("bold") before
@@ -708,7 +708,7 @@
 [PASS] [["bold",""],["justifyright",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["bold",""],["justifyright",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["bold",""],["justifyright",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<b>a</b>bar</div>" but got "<div style=\"text-align:right\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<b>a</b>bar</div>" but got "<div style=\\"text-align:right\\">fooabar</div>"
 [PASS] [["bold",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("bold") before
 [PASS] [["bold",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandState("bold") before
 [FAIL] [["bold",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("bold") before
@@ -755,7 +755,7 @@
 [PASS] [["bold",""],["outdent",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["bold",""],["outdent",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["bold",""],["outdent",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<b>a</b>bar" but got "foo<span style=\"font-weight:bold\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<b>a</b>bar" but got "foo<span style=\\"font-weight:bold\\">a</span>bar"
 [PASS] [["bold",""],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("bold") before
 [PASS] [["bold",""],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandState("bold") before
 [FAIL] [["bold",""],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandValue("bold") before
@@ -780,7 +780,7 @@
 [PASS] [["italic",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["italic",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["italic",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<i>a</i>bar" but got "foo<span style=\"font-style:italic\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<i>a</i>bar" but got "foo<span style=\\"font-style:italic\\">a</span>bar"
 [PASS] [["italic",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("italic") before
 [PASS] [["italic",""],["inserttext","a"]] "foo[]bar" queryCommandState("italic") before
 [FAIL] [["italic",""],["inserttext","a"]] "foo[]bar" queryCommandValue("italic") before
@@ -937,7 +937,7 @@
 [PASS] [["italic",""],["indent",""]] "foo[]bar": execCommand("indent", false, "") return value
 [PASS] [["italic",""],["indent",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["italic",""],["indent",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foobar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foobar</blockquote>"
 [PASS] [["italic",""],["indent",""]] "foo[]bar" queryCommandIndeterm("italic") before
 [PASS] [["italic",""],["indent",""]] "foo[]bar" queryCommandState("italic") before
 [FAIL] [["italic",""],["indent",""]] "foo[]bar" queryCommandValue("italic") before
@@ -958,7 +958,7 @@
 [PASS] [["italic",""],["indent",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["italic",""],["indent",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["italic",""],["indent",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<i>a</i>bar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">fooabar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<i>a</i>bar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">fooabar</blockquote>"
 [PASS] [["italic",""],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("italic") before
 [PASS] [["italic",""],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandState("italic") before
 [FAIL] [["italic",""],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandValue("italic") before
@@ -1096,7 +1096,7 @@
 [PASS] [["italic",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["italic",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["italic",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\"/img/lion.svg\"><i>a</i>bar" but got "foo<img src=\"/img/lion.svg\">abar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\\"/img/lion.svg\\"><i>a</i>bar" but got "foo<img src=\\"/img/lion.svg\\">abar"
 [PASS] [["italic",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("italic") before
 [PASS] [["italic",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandState("italic") before
 [FAIL] [["italic",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandValue("italic") before
@@ -1122,7 +1122,7 @@
 [PASS] [["italic",""],["insertlinebreak",""]] "foo[]bar": execCommand("insertlinebreak", false, "") return value
 [PASS] [["italic",""],["insertlinebreak",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["italic",""],["insertlinebreak",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar" but got "foo<span style=\"font-style:italic\"><br></span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar" but got "foo<span style=\\"font-style:italic\\"><br></span>bar"
 [PASS] [["italic",""],["insertlinebreak",""]] "foo[]bar" queryCommandIndeterm("italic") before
 [PASS] [["italic",""],["insertlinebreak",""]] "foo[]bar" queryCommandState("italic") before
 [FAIL] [["italic",""],["insertlinebreak",""]] "foo[]bar" queryCommandValue("italic") before
@@ -1142,7 +1142,7 @@
 [PASS] [["italic",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["italic",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["italic",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><i>a</i>bar" but got "foo<span style=\"font-style:italic\"><br>a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><i>a</i>bar" but got "foo<span style=\\"font-style:italic\\"><br>a</span>bar"
 [PASS] [["italic",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("italic") before
 [PASS] [["italic",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandState("italic") before
 [FAIL] [["italic",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandValue("italic") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/multitest_1001-2000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/multitest_1001-2000-expected.txt
index eb792604..c5b2ed0 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/multitest_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/multitest_1001-2000-expected.txt
@@ -32,7 +32,7 @@
 [PASS] [["italic",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["italic",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["italic",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><i>a</i>bar</p>" but got "foo<div><span style=\"font-style:italic\">a</span>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><i>a</i>bar</p>" but got "foo<div><span style=\\"font-style:italic\\">a</span>bar</div>"
 [PASS] [["italic",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("italic") before
 [PASS] [["italic",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandState("italic") before
 [FAIL] [["italic",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandValue("italic") before
@@ -129,7 +129,7 @@
 [PASS] [["italic",""],["justifycenter",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["italic",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["italic",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<i>a</i>bar</div>" but got "<div style=\"text-align:center\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<i>a</i>bar</div>" but got "<div style=\\"text-align:center\\">fooabar</div>"
 [PASS] [["italic",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("italic") before
 [PASS] [["italic",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandState("italic") before
 [FAIL] [["italic",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("italic") before
@@ -179,7 +179,7 @@
 [PASS] [["italic",""],["justifyfull",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["italic",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["italic",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<i>a</i>bar</div>" but got "<div style=\"text-align:justify\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<i>a</i>bar</div>" but got "<div style=\\"text-align:justify\\">fooabar</div>"
 [PASS] [["italic",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("italic") before
 [PASS] [["italic",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandState("italic") before
 [FAIL] [["italic",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("italic") before
@@ -279,7 +279,7 @@
 [PASS] [["italic",""],["justifyright",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["italic",""],["justifyright",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["italic",""],["justifyright",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<i>a</i>bar</div>" but got "<div style=\"text-align:right\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<i>a</i>bar</div>" but got "<div style=\\"text-align:right\\">fooabar</div>"
 [PASS] [["italic",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("italic") before
 [PASS] [["italic",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandState("italic") before
 [FAIL] [["italic",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("italic") before
@@ -326,7 +326,7 @@
 [PASS] [["italic",""],["outdent",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["italic",""],["outdent",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["italic",""],["outdent",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<i>a</i>bar" but got "foo<span style=\"font-style:italic\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<i>a</i>bar" but got "foo<span style=\\"font-style:italic\\">a</span>bar"
 [PASS] [["italic",""],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("italic") before
 [PASS] [["italic",""],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandState("italic") before
 [FAIL] [["italic",""],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandValue("italic") before
@@ -351,7 +351,7 @@
 [PASS] [["strikethrough",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["strikethrough",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["strikethrough",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<s>a</s>bar" but got "foo<span style=\"text-decoration-line:line-through\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<s>a</s>bar" but got "foo<span style=\\"text-decoration-line:line-through\\">a</span>bar"
 [PASS] [["strikethrough",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("strikethrough") before
 [PASS] [["strikethrough",""],["inserttext","a"]] "foo[]bar" queryCommandState("strikethrough") before
 [FAIL] [["strikethrough",""],["inserttext","a"]] "foo[]bar" queryCommandValue("strikethrough") before
@@ -508,7 +508,7 @@
 [PASS] [["strikethrough",""],["indent",""]] "foo[]bar": execCommand("indent", false, "") return value
 [PASS] [["strikethrough",""],["indent",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["strikethrough",""],["indent",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foobar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foobar</blockquote>"
 [PASS] [["strikethrough",""],["indent",""]] "foo[]bar" queryCommandIndeterm("strikethrough") before
 [PASS] [["strikethrough",""],["indent",""]] "foo[]bar" queryCommandState("strikethrough") before
 [FAIL] [["strikethrough",""],["indent",""]] "foo[]bar" queryCommandValue("strikethrough") before
@@ -529,7 +529,7 @@
 [PASS] [["strikethrough",""],["indent",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["strikethrough",""],["indent",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["strikethrough",""],["indent",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<s>a</s>bar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">fooabar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<s>a</s>bar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">fooabar</blockquote>"
 [PASS] [["strikethrough",""],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("strikethrough") before
 [PASS] [["strikethrough",""],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandState("strikethrough") before
 [FAIL] [["strikethrough",""],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandValue("strikethrough") before
@@ -667,7 +667,7 @@
 [PASS] [["strikethrough",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["strikethrough",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["strikethrough",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\"/img/lion.svg\"><s>a</s>bar" but got "foo<img src=\"/img/lion.svg\">abar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\\"/img/lion.svg\\"><s>a</s>bar" but got "foo<img src=\\"/img/lion.svg\\">abar"
 [PASS] [["strikethrough",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("strikethrough") before
 [PASS] [["strikethrough",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandState("strikethrough") before
 [FAIL] [["strikethrough",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandValue("strikethrough") before
@@ -693,7 +693,7 @@
 [PASS] [["strikethrough",""],["insertlinebreak",""]] "foo[]bar": execCommand("insertlinebreak", false, "") return value
 [PASS] [["strikethrough",""],["insertlinebreak",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["strikethrough",""],["insertlinebreak",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar" but got "foo<span style=\"text-decoration-line:line-through\"><br></span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar" but got "foo<span style=\\"text-decoration-line:line-through\\"><br></span>bar"
 [PASS] [["strikethrough",""],["insertlinebreak",""]] "foo[]bar" queryCommandIndeterm("strikethrough") before
 [PASS] [["strikethrough",""],["insertlinebreak",""]] "foo[]bar" queryCommandState("strikethrough") before
 [FAIL] [["strikethrough",""],["insertlinebreak",""]] "foo[]bar" queryCommandValue("strikethrough") before
@@ -713,7 +713,7 @@
 [PASS] [["strikethrough",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["strikethrough",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["strikethrough",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><s>a</s>bar" but got "foo<span style=\"text-decoration-line:line-through\"><br>a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><s>a</s>bar" but got "foo<span style=\\"text-decoration-line:line-through\\"><br>a</span>bar"
 [PASS] [["strikethrough",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("strikethrough") before
 [PASS] [["strikethrough",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandState("strikethrough") before
 [FAIL] [["strikethrough",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandValue("strikethrough") before
@@ -808,7 +808,7 @@
 [PASS] [["strikethrough",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["strikethrough",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["strikethrough",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><s>a</s>bar</p>" but got "foo<div><span style=\"text-decoration-line:line-through\">a</span>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><s>a</s>bar</p>" but got "foo<div><span style=\\"text-decoration-line:line-through\\">a</span>bar</div>"
 [PASS] [["strikethrough",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("strikethrough") before
 [PASS] [["strikethrough",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandState("strikethrough") before
 [FAIL] [["strikethrough",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandValue("strikethrough") before
@@ -905,7 +905,7 @@
 [PASS] [["strikethrough",""],["justifycenter",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["strikethrough",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["strikethrough",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<s>a</s>bar</div>" but got "<div style=\"text-align:center\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<s>a</s>bar</div>" but got "<div style=\\"text-align:center\\">fooabar</div>"
 [PASS] [["strikethrough",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("strikethrough") before
 [PASS] [["strikethrough",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandState("strikethrough") before
 [FAIL] [["strikethrough",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("strikethrough") before
@@ -955,7 +955,7 @@
 [PASS] [["strikethrough",""],["justifyfull",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["strikethrough",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["strikethrough",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<s>a</s>bar</div>" but got "<div style=\"text-align:justify\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<s>a</s>bar</div>" but got "<div style=\\"text-align:justify\\">fooabar</div>"
 [PASS] [["strikethrough",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("strikethrough") before
 [PASS] [["strikethrough",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandState("strikethrough") before
 [FAIL] [["strikethrough",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("strikethrough") before
@@ -1055,7 +1055,7 @@
 [PASS] [["strikethrough",""],["justifyright",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["strikethrough",""],["justifyright",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["strikethrough",""],["justifyright",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<s>a</s>bar</div>" but got "<div style=\"text-align:right\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<s>a</s>bar</div>" but got "<div style=\\"text-align:right\\">fooabar</div>"
 [PASS] [["strikethrough",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("strikethrough") before
 [PASS] [["strikethrough",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandState("strikethrough") before
 [FAIL] [["strikethrough",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("strikethrough") before
@@ -1102,7 +1102,7 @@
 [PASS] [["strikethrough",""],["outdent",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["strikethrough",""],["outdent",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["strikethrough",""],["outdent",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<s>a</s>bar" but got "foo<span style=\"text-decoration-line:line-through\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<s>a</s>bar" but got "foo<span style=\\"text-decoration-line:line-through\\">a</span>bar"
 [PASS] [["strikethrough",""],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("strikethrough") before
 [PASS] [["strikethrough",""],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandState("strikethrough") before
 [FAIL] [["strikethrough",""],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandValue("strikethrough") before
@@ -1127,7 +1127,7 @@
 [PASS] [["subscript",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["subscript",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["subscript",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>a</sub>bar" but got "foo<span style=\"vertical-align:sub\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>a</sub>bar" but got "foo<span style=\\"vertical-align:sub\\">a</span>bar"
 [PASS] [["subscript",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("subscript") before
 [PASS] [["subscript",""],["inserttext","a"]] "foo[]bar" queryCommandState("subscript") before
 [FAIL] [["subscript",""],["inserttext","a"]] "foo[]bar" queryCommandValue("subscript") before
@@ -1166,7 +1166,7 @@
 [PASS] [["subscript",""],["delete",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["subscript",""],["delete",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["subscript",""],["delete",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<sub><font size=\"3\">a</font></sub>bar" but got "foabar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<sub><font size=\\"3\\">a</font></sub>bar" but got "foabar"
 [PASS] [["subscript",""],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("subscript") before
 [PASS] [["subscript",""],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandState("subscript") before
 [FAIL] [["subscript",""],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandValue("subscript") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/multitest_2001-3000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/multitest_2001-3000-expected.txt
index fb21dfc..dbf4a46 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/multitest_2001-3000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/multitest_2001-3000-expected.txt
@@ -41,7 +41,7 @@
 [PASS] [["subscript",""],["forwarddelete",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["subscript",""],["forwarddelete",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["subscript",""],["forwarddelete",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub><font size=\"3\">a</font></sub>ar" but got "fooaar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub><font size=\\"3\\">a</font></sub>ar" but got "fooaar"
 [PASS] [["subscript",""],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("subscript") before
 [PASS] [["subscript",""],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandState("subscript") before
 [FAIL] [["subscript",""],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandValue("subscript") before
@@ -67,7 +67,7 @@
 [PASS] [["subscript",""],["indent",""]] "foo[]bar": execCommand("indent", false, "") return value
 [PASS] [["subscript",""],["indent",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["subscript",""],["indent",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foobar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foobar</blockquote>"
 [PASS] [["subscript",""],["indent",""]] "foo[]bar" queryCommandIndeterm("subscript") before
 [PASS] [["subscript",""],["indent",""]] "foo[]bar" queryCommandState("subscript") before
 [FAIL] [["subscript",""],["indent",""]] "foo[]bar" queryCommandValue("subscript") before
@@ -88,7 +88,7 @@
 [PASS] [["subscript",""],["indent",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["subscript",""],["indent",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["subscript",""],["indent",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<sub>a</sub>bar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">fooabar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<sub>a</sub>bar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">fooabar</blockquote>"
 [PASS] [["subscript",""],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("subscript") before
 [PASS] [["subscript",""],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandState("subscript") before
 [FAIL] [["subscript",""],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandValue("subscript") before
@@ -226,7 +226,7 @@
 [PASS] [["subscript",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["subscript",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["subscript",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\"/img/lion.svg\"><sub>a</sub>bar" but got "foo<img src=\"/img/lion.svg\">abar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\\"/img/lion.svg\\"><sub>a</sub>bar" but got "foo<img src=\\"/img/lion.svg\\">abar"
 [PASS] [["subscript",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("subscript") before
 [PASS] [["subscript",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandState("subscript") before
 [FAIL] [["subscript",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandValue("subscript") before
@@ -252,7 +252,7 @@
 [PASS] [["subscript",""],["insertlinebreak",""]] "foo[]bar": execCommand("insertlinebreak", false, "") return value
 [PASS] [["subscript",""],["insertlinebreak",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["subscript",""],["insertlinebreak",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar" but got "foo<span style=\"vertical-align:sub\"><br></span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar" but got "foo<span style=\\"vertical-align:sub\\"><br></span>bar"
 [PASS] [["subscript",""],["insertlinebreak",""]] "foo[]bar" queryCommandIndeterm("subscript") before
 [PASS] [["subscript",""],["insertlinebreak",""]] "foo[]bar" queryCommandState("subscript") before
 [FAIL] [["subscript",""],["insertlinebreak",""]] "foo[]bar" queryCommandValue("subscript") before
@@ -272,7 +272,7 @@
 [PASS] [["subscript",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["subscript",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["subscript",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><sub>a</sub>bar" but got "foo<span style=\"vertical-align:sub\"><br>a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><sub>a</sub>bar" but got "foo<span style=\\"vertical-align:sub\\"><br>a</span>bar"
 [PASS] [["subscript",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("subscript") before
 [PASS] [["subscript",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandState("subscript") before
 [FAIL] [["subscript",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandValue("subscript") before
@@ -367,7 +367,7 @@
 [PASS] [["subscript",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["subscript",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["subscript",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><sub>a</sub>bar</p>" but got "foo<div><span style=\"vertical-align:sub\">a</span>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><sub>a</sub>bar</p>" but got "foo<div><span style=\\"vertical-align:sub\\">a</span>bar</div>"
 [PASS] [["subscript",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("subscript") before
 [PASS] [["subscript",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandState("subscript") before
 [FAIL] [["subscript",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandValue("subscript") before
@@ -464,7 +464,7 @@
 [PASS] [["subscript",""],["justifycenter",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["subscript",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["subscript",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<sub>a</sub>bar</div>" but got "<div style=\"text-align:center\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<sub>a</sub>bar</div>" but got "<div style=\\"text-align:center\\">fooabar</div>"
 [PASS] [["subscript",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("subscript") before
 [PASS] [["subscript",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandState("subscript") before
 [FAIL] [["subscript",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("subscript") before
@@ -514,7 +514,7 @@
 [PASS] [["subscript",""],["justifyfull",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["subscript",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["subscript",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<sub>a</sub>bar</div>" but got "<div style=\"text-align:justify\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<sub>a</sub>bar</div>" but got "<div style=\\"text-align:justify\\">fooabar</div>"
 [PASS] [["subscript",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("subscript") before
 [PASS] [["subscript",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandState("subscript") before
 [FAIL] [["subscript",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("subscript") before
@@ -614,7 +614,7 @@
 [PASS] [["subscript",""],["justifyright",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["subscript",""],["justifyright",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["subscript",""],["justifyright",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<sub>a</sub>bar</div>" but got "<div style=\"text-align:right\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<sub>a</sub>bar</div>" but got "<div style=\\"text-align:right\\">fooabar</div>"
 [PASS] [["subscript",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("subscript") before
 [PASS] [["subscript",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandState("subscript") before
 [FAIL] [["subscript",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("subscript") before
@@ -661,7 +661,7 @@
 [PASS] [["subscript",""],["outdent",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["subscript",""],["outdent",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["subscript",""],["outdent",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>a</sub>bar" but got "foo<span style=\"vertical-align:sub\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>a</sub>bar" but got "foo<span style=\\"vertical-align:sub\\">a</span>bar"
 [PASS] [["subscript",""],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("subscript") before
 [PASS] [["subscript",""],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandState("subscript") before
 [FAIL] [["subscript",""],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandValue("subscript") before
@@ -686,7 +686,7 @@
 [PASS] [["superscript",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["superscript",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["superscript",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>a</sup>bar" but got "foo<span style=\"vertical-align:super\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>a</sup>bar" but got "foo<span style=\\"vertical-align:super\\">a</span>bar"
 [PASS] [["superscript",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("superscript") before
 [PASS] [["superscript",""],["inserttext","a"]] "foo[]bar" queryCommandState("superscript") before
 [FAIL] [["superscript",""],["inserttext","a"]] "foo[]bar" queryCommandValue("superscript") before
@@ -725,7 +725,7 @@
 [PASS] [["superscript",""],["delete",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["superscript",""],["delete",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["superscript",""],["delete",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<sup><font size=\"3\">a</font></sup>bar" but got "foabar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<sup><font size=\\"3\\">a</font></sup>bar" but got "foabar"
 [PASS] [["superscript",""],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("superscript") before
 [PASS] [["superscript",""],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandState("superscript") before
 [FAIL] [["superscript",""],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandValue("superscript") before
@@ -817,7 +817,7 @@
 [PASS] [["superscript",""],["forwarddelete",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["superscript",""],["forwarddelete",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["superscript",""],["forwarddelete",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup><font size=\"3\">a</font></sup>ar" but got "fooaar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup><font size=\\"3\\">a</font></sup>ar" but got "fooaar"
 [PASS] [["superscript",""],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("superscript") before
 [PASS] [["superscript",""],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandState("superscript") before
 [FAIL] [["superscript",""],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandValue("superscript") before
@@ -843,7 +843,7 @@
 [PASS] [["superscript",""],["indent",""]] "foo[]bar": execCommand("indent", false, "") return value
 [PASS] [["superscript",""],["indent",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["superscript",""],["indent",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foobar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foobar</blockquote>"
 [PASS] [["superscript",""],["indent",""]] "foo[]bar" queryCommandIndeterm("superscript") before
 [PASS] [["superscript",""],["indent",""]] "foo[]bar" queryCommandState("superscript") before
 [FAIL] [["superscript",""],["indent",""]] "foo[]bar" queryCommandValue("superscript") before
@@ -864,7 +864,7 @@
 [PASS] [["superscript",""],["indent",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["superscript",""],["indent",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["superscript",""],["indent",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<sup>a</sup>bar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">fooabar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<sup>a</sup>bar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">fooabar</blockquote>"
 [PASS] [["superscript",""],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("superscript") before
 [PASS] [["superscript",""],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandState("superscript") before
 [FAIL] [["superscript",""],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandValue("superscript") before
@@ -1002,7 +1002,7 @@
 [PASS] [["superscript",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["superscript",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["superscript",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\"/img/lion.svg\"><sup>a</sup>bar" but got "foo<img src=\"/img/lion.svg\">abar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\\"/img/lion.svg\\"><sup>a</sup>bar" but got "foo<img src=\\"/img/lion.svg\\">abar"
 [PASS] [["superscript",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("superscript") before
 [PASS] [["superscript",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandState("superscript") before
 [FAIL] [["superscript",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandValue("superscript") before
@@ -1028,7 +1028,7 @@
 [PASS] [["superscript",""],["insertlinebreak",""]] "foo[]bar": execCommand("insertlinebreak", false, "") return value
 [PASS] [["superscript",""],["insertlinebreak",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["superscript",""],["insertlinebreak",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar" but got "foo<span style=\"vertical-align:super\"><br></span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar" but got "foo<span style=\\"vertical-align:super\\"><br></span>bar"
 [PASS] [["superscript",""],["insertlinebreak",""]] "foo[]bar" queryCommandIndeterm("superscript") before
 [PASS] [["superscript",""],["insertlinebreak",""]] "foo[]bar" queryCommandState("superscript") before
 [FAIL] [["superscript",""],["insertlinebreak",""]] "foo[]bar" queryCommandValue("superscript") before
@@ -1048,7 +1048,7 @@
 [PASS] [["superscript",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["superscript",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["superscript",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><sup>a</sup>bar" but got "foo<span style=\"vertical-align:super\"><br>a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><sup>a</sup>bar" but got "foo<span style=\\"vertical-align:super\\"><br>a</span>bar"
 [PASS] [["superscript",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("superscript") before
 [PASS] [["superscript",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandState("superscript") before
 [FAIL] [["superscript",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandValue("superscript") before
@@ -1143,7 +1143,7 @@
 [PASS] [["superscript",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["superscript",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["superscript",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><sup>a</sup>bar</p>" but got "foo<div><span style=\"vertical-align:super\">a</span>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><sup>a</sup>bar</p>" but got "foo<div><span style=\\"vertical-align:super\\">a</span>bar</div>"
 [PASS] [["superscript",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("superscript") before
 [PASS] [["superscript",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandState("superscript") before
 [FAIL] [["superscript",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandValue("superscript") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/multitest_3001-4000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/multitest_3001-4000-expected.txt
index 6de4aba..f5956eee 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/multitest_3001-4000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/multitest_3001-4000-expected.txt
@@ -31,7 +31,7 @@
 [PASS] [["superscript",""],["justifycenter",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["superscript",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["superscript",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<sup>a</sup>bar</div>" but got "<div style=\"text-align:center\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<sup>a</sup>bar</div>" but got "<div style=\\"text-align:center\\">fooabar</div>"
 [PASS] [["superscript",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("superscript") before
 [PASS] [["superscript",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandState("superscript") before
 [FAIL] [["superscript",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("superscript") before
@@ -81,7 +81,7 @@
 [PASS] [["superscript",""],["justifyfull",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["superscript",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["superscript",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<sup>a</sup>bar</div>" but got "<div style=\"text-align:justify\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<sup>a</sup>bar</div>" but got "<div style=\\"text-align:justify\\">fooabar</div>"
 [PASS] [["superscript",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("superscript") before
 [PASS] [["superscript",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandState("superscript") before
 [FAIL] [["superscript",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("superscript") before
@@ -181,7 +181,7 @@
 [PASS] [["superscript",""],["justifyright",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["superscript",""],["justifyright",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["superscript",""],["justifyright",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<sup>a</sup>bar</div>" but got "<div style=\"text-align:right\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<sup>a</sup>bar</div>" but got "<div style=\\"text-align:right\\">fooabar</div>"
 [PASS] [["superscript",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("superscript") before
 [PASS] [["superscript",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandState("superscript") before
 [FAIL] [["superscript",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("superscript") before
@@ -228,7 +228,7 @@
 [PASS] [["superscript",""],["outdent",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["superscript",""],["outdent",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["superscript",""],["outdent",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>a</sup>bar" but got "foo<span style=\"vertical-align:super\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>a</sup>bar" but got "foo<span style=\\"vertical-align:super\\">a</span>bar"
 [PASS] [["superscript",""],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("superscript") before
 [PASS] [["superscript",""],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandState("superscript") before
 [FAIL] [["superscript",""],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandValue("superscript") before
@@ -253,7 +253,7 @@
 [PASS] [["underline",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["underline",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["underline",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u>a</u>bar" but got "foo<span style=\"text-decoration-line:underline\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u>a</u>bar" but got "foo<span style=\\"text-decoration-line:underline\\">a</span>bar"
 [PASS] [["underline",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("underline") before
 [PASS] [["underline",""],["inserttext","a"]] "foo[]bar" queryCommandState("underline") before
 [FAIL] [["underline",""],["inserttext","a"]] "foo[]bar" queryCommandValue("underline") before
@@ -410,7 +410,7 @@
 [PASS] [["underline",""],["indent",""]] "foo[]bar": execCommand("indent", false, "") return value
 [PASS] [["underline",""],["indent",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["underline",""],["indent",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foobar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foobar</blockquote>"
 [PASS] [["underline",""],["indent",""]] "foo[]bar" queryCommandIndeterm("underline") before
 [PASS] [["underline",""],["indent",""]] "foo[]bar" queryCommandState("underline") before
 [FAIL] [["underline",""],["indent",""]] "foo[]bar" queryCommandValue("underline") before
@@ -431,7 +431,7 @@
 [PASS] [["underline",""],["indent",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["underline",""],["indent",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["underline",""],["indent",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<u>a</u>bar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">fooabar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<u>a</u>bar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">fooabar</blockquote>"
 [PASS] [["underline",""],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("underline") before
 [PASS] [["underline",""],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandState("underline") before
 [FAIL] [["underline",""],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandValue("underline") before
@@ -569,7 +569,7 @@
 [PASS] [["underline",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["underline",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["underline",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\"/img/lion.svg\"><u>a</u>bar" but got "foo<img src=\"/img/lion.svg\">abar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\\"/img/lion.svg\\"><u>a</u>bar" but got "foo<img src=\\"/img/lion.svg\\">abar"
 [PASS] [["underline",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("underline") before
 [PASS] [["underline",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandState("underline") before
 [FAIL] [["underline",""],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandValue("underline") before
@@ -595,7 +595,7 @@
 [PASS] [["underline",""],["insertlinebreak",""]] "foo[]bar": execCommand("insertlinebreak", false, "") return value
 [PASS] [["underline",""],["insertlinebreak",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["underline",""],["insertlinebreak",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar" but got "foo<span style=\"text-decoration-line:underline\"><br></span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar" but got "foo<span style=\\"text-decoration-line:underline\\"><br></span>bar"
 [PASS] [["underline",""],["insertlinebreak",""]] "foo[]bar" queryCommandIndeterm("underline") before
 [PASS] [["underline",""],["insertlinebreak",""]] "foo[]bar" queryCommandState("underline") before
 [FAIL] [["underline",""],["insertlinebreak",""]] "foo[]bar" queryCommandValue("underline") before
@@ -615,7 +615,7 @@
 [PASS] [["underline",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["underline",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["underline",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><u>a</u>bar" but got "foo<span style=\"text-decoration-line:underline\"><br>a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><u>a</u>bar" but got "foo<span style=\\"text-decoration-line:underline\\"><br>a</span>bar"
 [PASS] [["underline",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("underline") before
 [PASS] [["underline",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandState("underline") before
 [FAIL] [["underline",""],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandValue("underline") before
@@ -710,7 +710,7 @@
 [PASS] [["underline",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["underline",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["underline",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><u>a</u>bar</p>" but got "foo<div><span style=\"text-decoration-line:underline\">a</span>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><u>a</u>bar</p>" but got "foo<div><span style=\\"text-decoration-line:underline\\">a</span>bar</div>"
 [PASS] [["underline",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("underline") before
 [PASS] [["underline",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandState("underline") before
 [FAIL] [["underline",""],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandValue("underline") before
@@ -807,7 +807,7 @@
 [PASS] [["underline",""],["justifycenter",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["underline",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["underline",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<u>a</u>bar</div>" but got "<div style=\"text-align:center\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<u>a</u>bar</div>" but got "<div style=\\"text-align:center\\">fooabar</div>"
 [PASS] [["underline",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("underline") before
 [PASS] [["underline",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandState("underline") before
 [FAIL] [["underline",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("underline") before
@@ -857,7 +857,7 @@
 [PASS] [["underline",""],["justifyfull",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["underline",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["underline",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<u>a</u>bar</div>" but got "<div style=\"text-align:justify\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<u>a</u>bar</div>" but got "<div style=\\"text-align:justify\\">fooabar</div>"
 [PASS] [["underline",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("underline") before
 [PASS] [["underline",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandState("underline") before
 [FAIL] [["underline",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("underline") before
@@ -957,7 +957,7 @@
 [PASS] [["underline",""],["justifyright",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["underline",""],["justifyright",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["underline",""],["justifyright",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<u>a</u>bar</div>" but got "<div style=\"text-align:right\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<u>a</u>bar</div>" but got "<div style=\\"text-align:right\\">fooabar</div>"
 [PASS] [["underline",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("underline") before
 [PASS] [["underline",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandState("underline") before
 [FAIL] [["underline",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("underline") before
@@ -1004,7 +1004,7 @@
 [PASS] [["underline",""],["outdent",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["underline",""],["outdent",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["underline",""],["outdent",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u>a</u>bar" but got "foo<span style=\"text-decoration-line:underline\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u>a</u>bar" but got "foo<span style=\\"text-decoration-line:underline\\">a</span>bar"
 [PASS] [["underline",""],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("underline") before
 [PASS] [["underline",""],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandState("underline") before
 [FAIL] [["underline",""],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandValue("underline") before
@@ -1063,7 +1063,7 @@
 [PASS] [["backcolor","#00FFFF"],["delete",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["backcolor","#00FFFF"],["delete",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["backcolor","#00FFFF"],["delete",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\"background-color:rgb(0, 255, 255)\">a</span>bar" but got "foabar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar" but got "foabar"
 [PASS] [["backcolor","#00FFFF"],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandState("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandValue("backcolor") before
@@ -1105,7 +1105,7 @@
 [PASS] [["backcolor","#00FFFF"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["backcolor","#00FFFF"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["backcolor","#00FFFF"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo<span style=\"background-color:rgb(0, 255, 255)\">a</span>bar</div>" but got "<div>fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</div>" but got "<div>fooabar</div>"
 [PASS] [["backcolor","#00FFFF"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" queryCommandState("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" queryCommandValue("backcolor") before
@@ -1147,7 +1147,7 @@
 [PASS] [["backcolor","#00FFFF"],["forwarddelete",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["backcolor","#00FFFF"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["backcolor","#00FFFF"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"background-color:rgb(0, 255, 255)\">a</span>ar" but got "fooaar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>ar" but got "fooaar"
 [PASS] [["backcolor","#00FFFF"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandState("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandValue("backcolor") before
@@ -1171,7 +1171,7 @@
 [PASS] [["backcolor","#00FFFF"],["indent",""]] "foo[]bar": execCommand("indent", false, "") return value
 [PASS] [["backcolor","#00FFFF"],["indent",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["backcolor","#00FFFF"],["indent",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foobar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foobar</blockquote>"
 [PASS] [["backcolor","#00FFFF"],["indent",""]] "foo[]bar" queryCommandIndeterm("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["indent",""]] "foo[]bar" queryCommandState("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["indent",""]] "foo[]bar" queryCommandValue("backcolor") before
@@ -1190,7 +1190,7 @@
 [PASS] [["backcolor","#00FFFF"],["indent",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["backcolor","#00FFFF"],["indent",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["backcolor","#00FFFF"],["indent",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<span style=\"background-color:rgb(0, 255, 255)\">a</span>bar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">fooabar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">fooabar</blockquote>"
 [PASS] [["backcolor","#00FFFF"],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandState("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandValue("backcolor") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/multitest_4001-5000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/multitest_4001-5000-expected.txt
index 4ea7a951..ec34495 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/multitest_4001-5000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/multitest_4001-5000-expected.txt
@@ -34,7 +34,7 @@
 [PASS] [["backcolor","#00FFFF"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["backcolor","#00FFFF"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["backcolor","#00FFFF"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<hr><span style=\"background-color:rgb(0, 255, 255)\">a</span>bar" but got "foo<hr>abar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<hr><span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar" but got "foo<hr>abar"
 [PASS] [["backcolor","#00FFFF"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" queryCommandState("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" queryCommandValue("backcolor") before
@@ -76,7 +76,7 @@
 [PASS] [["backcolor","#00FFFF"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["backcolor","#00FFFF"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["backcolor","#00FFFF"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fooab<b>c</b>d<span style=\"background-color:rgb(0, 255, 255)\">a</span>bar" but got "fooab<b>c</b>dabar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fooab<b>c</b>d<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar" but got "fooab<b>c</b>dabar"
 [PASS] [["backcolor","#00FFFF"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" queryCommandState("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" queryCommandValue("backcolor") before
@@ -118,7 +118,7 @@
 [PASS] [["backcolor","#00FFFF"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["backcolor","#00FFFF"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["backcolor","#00FFFF"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\"/img/lion.svg\"><span style=\"background-color:rgb(0, 255, 255)\">a</span>bar" but got "foo<img src=\"/img/lion.svg\">abar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\\"/img/lion.svg\\"><span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar" but got "foo<img src=\\"/img/lion.svg\\">abar"
 [PASS] [["backcolor","#00FFFF"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandState("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandValue("backcolor") before
@@ -142,7 +142,7 @@
 [PASS] [["backcolor","#00FFFF"],["insertlinebreak",""]] "foo[]bar": execCommand("insertlinebreak", false, "") return value
 [PASS] [["backcolor","#00FFFF"],["insertlinebreak",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["backcolor","#00FFFF"],["insertlinebreak",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar" but got "foo<span style=\"background-color:rgb(0, 255, 255)\"><br></span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar" but got "foo<span style=\\"background-color:rgb(0, 255, 255)\\"><br></span>bar"
 [PASS] [["backcolor","#00FFFF"],["insertlinebreak",""]] "foo[]bar" queryCommandIndeterm("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["insertlinebreak",""]] "foo[]bar" queryCommandState("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["insertlinebreak",""]] "foo[]bar" queryCommandValue("backcolor") before
@@ -160,7 +160,7 @@
 [PASS] [["backcolor","#00FFFF"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["backcolor","#00FFFF"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["backcolor","#00FFFF"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><span style=\"background-color:rgb(0, 255, 255)\">a</span>bar" but got "foo<span style=\"background-color:rgb(0, 255, 255)\"><br>a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar" but got "foo<span style=\\"background-color:rgb(0, 255, 255)\\"><br>a</span>bar"
 [PASS] [["backcolor","#00FFFF"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandState("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandValue("backcolor") before
@@ -203,7 +203,7 @@
 [PASS] [["backcolor","#00FFFF"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["backcolor","#00FFFF"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["backcolor","#00FFFF"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo<span style=\"background-color:rgb(0, 255, 255)\">a</span>bar</li></ol>" but got "<ol><li>afoobar</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</li></ol>" but got "<ol><li>afoobar</li></ol>"
 [PASS] [["backcolor","#00FFFF"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandState("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandValue("backcolor") before
@@ -247,7 +247,7 @@
 [PASS] [["backcolor","#00FFFF"],["insertparagraph",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["backcolor","#00FFFF"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["backcolor","#00FFFF"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><span style=\"background-color:rgb(0, 255, 255)\">a</span>bar</p>" but got "foo<div><span style=\"background-color:rgb(0, 255, 255)\">a</span>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</p>" but got "foo<div><span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</div>"
 [PASS] [["backcolor","#00FFFF"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandState("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandValue("backcolor") before
@@ -290,7 +290,7 @@
 [PASS] [["backcolor","#00FFFF"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["backcolor","#00FFFF"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["backcolor","#00FFFF"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul><li>foo<span style=\"background-color:rgb(0, 255, 255)\">a</span>bar</li></ul>" but got "<ul><li>afoobar</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul><li>foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</li></ul>" but got "<ul><li>afoobar</li></ul>"
 [PASS] [["backcolor","#00FFFF"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandState("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandValue("backcolor") before
@@ -336,7 +336,7 @@
 [PASS] [["backcolor","#00FFFF"],["justifycenter",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["backcolor","#00FFFF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["backcolor","#00FFFF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<span style=\"background-color:rgb(0, 255, 255)\">a</span>bar</div>" but got "<div style=\"text-align:center\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</div>" but got "<div style=\\"text-align:center\\">fooabar</div>"
 [PASS] [["backcolor","#00FFFF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandState("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("backcolor") before
@@ -382,7 +382,7 @@
 [PASS] [["backcolor","#00FFFF"],["justifyfull",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["backcolor","#00FFFF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["backcolor","#00FFFF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<span style=\"background-color:rgb(0, 255, 255)\">a</span>bar</div>" but got "<div style=\"text-align:justify\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</div>" but got "<div style=\\"text-align:justify\\">fooabar</div>"
 [PASS] [["backcolor","#00FFFF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandState("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("backcolor") before
@@ -428,7 +428,7 @@
 [PASS] [["backcolor","#00FFFF"],["justifyleft",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["backcolor","#00FFFF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["backcolor","#00FFFF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"background-color:rgb(0, 255, 255)\">a</span>bar" but got "fooabar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar" but got "fooabar"
 [PASS] [["backcolor","#00FFFF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandState("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("backcolor") before
@@ -474,7 +474,7 @@
 [PASS] [["backcolor","#00FFFF"],["justifyright",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["backcolor","#00FFFF"],["justifyright",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["backcolor","#00FFFF"],["justifyright",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<span style=\"background-color:rgb(0, 255, 255)\">a</span>bar</div>" but got "<div style=\"text-align:right\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</div>" but got "<div style=\\"text-align:right\\">fooabar</div>"
 [PASS] [["backcolor","#00FFFF"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandState("backcolor") before
 [PASS] [["backcolor","#00FFFF"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("backcolor") before
@@ -573,7 +573,7 @@
 [PASS] [["createlink","http://www.google.com/"],["delete",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["createlink","http://www.google.com/"],["delete",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"],["delete",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<a href=\"http://www.google.com/\"><font color=\"#000000\">a</font></a>bar" but got "fooabar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<a href=\\"http://www.google.com/\\"><font color=\\"#000000\\">a</font></a>bar" but got "fooabar"
 [PASS] [["createlink","http://www.google.com/"],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandValue("createlink") before
@@ -596,7 +596,7 @@
 [PASS] [["createlink","http://www.google.com/"],["formatblock","<div>"]] "foo[]bar": execCommand("formatblock", false, "<div>") return value
 [PASS] [["createlink","http://www.google.com/"],["formatblock","<div>"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"],["formatblock","<div>"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foobar</div>" but got "<div>foo<a href=\"http://www.google.com/\">http://www.google.com/</a>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foobar</div>" but got "<div>foo<a href=\\"http://www.google.com/\\">http://www.google.com/</a>bar</div>"
 [PASS] [["createlink","http://www.google.com/"],["formatblock","<div>"]] "foo[]bar" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["formatblock","<div>"]] "foo[]bar" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["formatblock","<div>"]] "foo[]bar" queryCommandValue("createlink") before
@@ -654,7 +654,7 @@
 [PASS] [["createlink","http://www.google.com/"],["forwarddelete",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["createlink","http://www.google.com/"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\"http://www.google.com/\"><font color=\"#000000\">a</font></a>ar" but got "fooabar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\\"http://www.google.com/\\"><font color=\\"#000000\\">a</font></a>ar" but got "fooabar"
 [PASS] [["createlink","http://www.google.com/"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandValue("createlink") before
@@ -677,7 +677,7 @@
 [PASS] [["createlink","http://www.google.com/"],["indent",""]] "foo[]bar": execCommand("indent", false, "") return value
 [PASS] [["createlink","http://www.google.com/"],["indent",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"],["indent",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foo<a href=\"http://www.google.com/\">http://www.google.com/</a>bar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foo<a href=\\"http://www.google.com/\\">http://www.google.com/</a>bar</blockquote>"
 [PASS] [["createlink","http://www.google.com/"],["indent",""]] "foo[]bar" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["indent",""]] "foo[]bar" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["indent",""]] "foo[]bar" queryCommandValue("createlink") before
@@ -695,7 +695,7 @@
 [PASS] [["createlink","http://www.google.com/"],["indent",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["createlink","http://www.google.com/"],["indent",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"],["indent",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<a href=\"http://www.google.com/\">a</a>bar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foo<a href=\"http://www.google.com/\">a</a>bar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<a href=\\"http://www.google.com/\\">a</a>bar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foo<a href=\\"http://www.google.com/\\">a</a>bar</blockquote>"
 [PASS] [["createlink","http://www.google.com/"],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandValue("createlink") before
@@ -735,7 +735,7 @@
 [PASS] [["createlink","http://www.google.com/"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["createlink","http://www.google.com/"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<hr><a href=\"http://www.google.com/\">a</a>bar" but got "foo<hr>abar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<hr><a href=\\"http://www.google.com/\\">a</a>bar" but got "foo<hr>abar"
 [PASS] [["createlink","http://www.google.com/"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" queryCommandValue("createlink") before
@@ -775,7 +775,7 @@
 [PASS] [["createlink","http://www.google.com/"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["createlink","http://www.google.com/"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fooab<b>c</b>d<a href=\"http://www.google.com/\">a</a>bar" but got "fooab<b>c</b>dabar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fooab<b>c</b>d<a href=\\"http://www.google.com/\\">a</a>bar" but got "fooab<b>c</b>dabar"
 [PASS] [["createlink","http://www.google.com/"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" queryCommandValue("createlink") before
@@ -815,7 +815,7 @@
 [PASS] [["createlink","http://www.google.com/"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["createlink","http://www.google.com/"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\"/img/lion.svg\"><a href=\"http://www.google.com/\">a</a>bar" but got "foo<img src=\"/img/lion.svg\">abar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\\"/img/lion.svg\\"><a href=\\"http://www.google.com/\\">a</a>bar" but got "foo<img src=\\"/img/lion.svg\\">abar"
 [PASS] [["createlink","http://www.google.com/"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandValue("createlink") before
@@ -855,7 +855,7 @@
 [PASS] [["createlink","http://www.google.com/"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["createlink","http://www.google.com/"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><a href=\"http://www.google.com/\">a</a>bar" but got "foo<br>abar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><a href=\\"http://www.google.com/\\">a</a>bar" but got "foo<br>abar"
 [PASS] [["createlink","http://www.google.com/"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandValue("createlink") before
@@ -878,7 +878,7 @@
 [PASS] [["createlink","http://www.google.com/"],["insertorderedlist",""]] "foo[]bar": execCommand("insertorderedlist", false, "") return value
 [PASS] [["createlink","http://www.google.com/"],["insertorderedlist",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"],["insertorderedlist",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foobar</li></ol>" but got "<ol><li>foo<a href=\"http://www.google.com/\">http://www.google.com/</a>bar</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foobar</li></ol>" but got "<ol><li>foo<a href=\\"http://www.google.com/\\">http://www.google.com/</a>bar</li></ol>"
 [PASS] [["createlink","http://www.google.com/"],["insertorderedlist",""]] "foo[]bar" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["insertorderedlist",""]] "foo[]bar" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["insertorderedlist",""]] "foo[]bar" queryCommandValue("createlink") before
@@ -940,7 +940,7 @@
 [PASS] [["createlink","http://www.google.com/"],["insertparagraph",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["createlink","http://www.google.com/"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><a href=\"http://www.google.com/\">a</a>bar</p>" but got "foo<div>abar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><a href=\\"http://www.google.com/\\">a</a>bar</p>" but got "foo<div>abar</div>"
 [PASS] [["createlink","http://www.google.com/"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandValue("createlink") before
@@ -963,7 +963,7 @@
 [PASS] [["createlink","http://www.google.com/"],["insertunorderedlist",""]] "foo[]bar": execCommand("insertunorderedlist", false, "") return value
 [PASS] [["createlink","http://www.google.com/"],["insertunorderedlist",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"],["insertunorderedlist",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul><li>foobar</li></ul>" but got "<ul><li>foo<a href=\"http://www.google.com/\">http://www.google.com/</a>bar</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul><li>foobar</li></ul>" but got "<ul><li>foo<a href=\\"http://www.google.com/\\">http://www.google.com/</a>bar</li></ul>"
 [PASS] [["createlink","http://www.google.com/"],["insertunorderedlist",""]] "foo[]bar" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["insertunorderedlist",""]] "foo[]bar" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["insertunorderedlist",""]] "foo[]bar" queryCommandValue("createlink") before
@@ -1007,7 +1007,7 @@
 [PASS] [["createlink","http://www.google.com/"],["justifycenter",""]] "foo[]bar": execCommand("justifycenter", false, "") return value
 [PASS] [["createlink","http://www.google.com/"],["justifycenter",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"],["justifycenter",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foobar</div>" but got "<div style=\"text-align:center\">foo<a href=\"http://www.google.com/\">http://www.google.com/</a>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foobar</div>" but got "<div style=\\"text-align:center\\">foo<a href=\\"http://www.google.com/\\">http://www.google.com/</a>bar</div>"
 [PASS] [["createlink","http://www.google.com/"],["justifycenter",""]] "foo[]bar" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["justifycenter",""]] "foo[]bar" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["justifycenter",""]] "foo[]bar" queryCommandValue("createlink") before
@@ -1051,7 +1051,7 @@
 [PASS] [["createlink","http://www.google.com/"],["justifyfull",""]] "foo[]bar": execCommand("justifyfull", false, "") return value
 [PASS] [["createlink","http://www.google.com/"],["justifyfull",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"],["justifyfull",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foobar</div>" but got "<div style=\"text-align:justify\">foo<a href=\"http://www.google.com/\">http://www.google.com/</a>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foobar</div>" but got "<div style=\\"text-align:justify\\">foo<a href=\\"http://www.google.com/\\">http://www.google.com/</a>bar</div>"
 [PASS] [["createlink","http://www.google.com/"],["justifyfull",""]] "foo[]bar" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["justifyfull",""]] "foo[]bar" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["justifyfull",""]] "foo[]bar" queryCommandValue("createlink") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/multitest_5001-6000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/multitest_5001-6000-expected.txt
index 1d6cfe3..75fffb1 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/multitest_5001-6000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/multitest_5001-6000-expected.txt
@@ -7,7 +7,7 @@
 [PASS] [["createlink","http://www.google.com/"],["justifyleft",""]] "foo[]bar": execCommand("justifyleft", false, "") return value
 [PASS] [["createlink","http://www.google.com/"],["justifyleft",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"],["justifyleft",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar" but got "foo<a href=\"http://www.google.com/\">http://www.google.com/</a>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar" but got "foo<a href=\\"http://www.google.com/\\">http://www.google.com/</a>bar"
 [PASS] [["createlink","http://www.google.com/"],["justifyleft",""]] "foo[]bar" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["justifyleft",""]] "foo[]bar" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["justifyleft",""]] "foo[]bar" queryCommandValue("createlink") before
@@ -51,7 +51,7 @@
 [PASS] [["createlink","http://www.google.com/"],["justifyright",""]] "foo[]bar": execCommand("justifyright", false, "") return value
 [PASS] [["createlink","http://www.google.com/"],["justifyright",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"],["justifyright",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foobar</div>" but got "<div style=\"text-align:right\">foo<a href=\"http://www.google.com/\">http://www.google.com/</a>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foobar</div>" but got "<div style=\\"text-align:right\\">foo<a href=\\"http://www.google.com/\\">http://www.google.com/</a>bar</div>"
 [PASS] [["createlink","http://www.google.com/"],["justifyright",""]] "foo[]bar" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["justifyright",""]] "foo[]bar" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["justifyright",""]] "foo[]bar" queryCommandValue("createlink") before
@@ -95,7 +95,7 @@
 [PASS] [["createlink","http://www.google.com/"],["outdent",""]] "foo[]bar": execCommand("outdent", false, "") return value
 [PASS] [["createlink","http://www.google.com/"],["outdent",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"],["outdent",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar" but got "foo<a href=\"http://www.google.com/\">http://www.google.com/</a>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar" but got "foo<a href=\\"http://www.google.com/\\">http://www.google.com/</a>bar"
 [PASS] [["createlink","http://www.google.com/"],["outdent",""]] "foo[]bar" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["outdent",""]] "foo[]bar" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["outdent",""]] "foo[]bar" queryCommandValue("createlink") before
@@ -135,7 +135,7 @@
 [PASS] [["fontname","sans-serif"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontname","sans-serif"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontname","sans-serif"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font face=\"sans-serif\">a</font>bar" but got "foo<span style=\"font-family:sans-serif\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font face=\\"sans-serif\\">a</font>bar" but got "foo<span style=\\"font-family:sans-serif\\">a</span>bar"
 [PASS] [["fontname","sans-serif"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontname") before
 [PASS] [["fontname","sans-serif"],["inserttext","a"]] "foo[]bar" queryCommandState("fontname") before
 [PASS] [["fontname","sans-serif"],["inserttext","a"]] "foo[]bar" queryCommandValue("fontname") before
@@ -170,7 +170,7 @@
 [PASS] [["fontname","sans-serif"],["delete",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontname","sans-serif"],["delete",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontname","sans-serif"],["delete",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<font face=\"sans-serif\">a</font>bar" but got "foabar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<font face=\\"sans-serif\\">a</font>bar" but got "foabar"
 [PASS] [["fontname","sans-serif"],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontname") before
 [PASS] [["fontname","sans-serif"],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontname") before
 [PASS] [["fontname","sans-serif"],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontname") before
@@ -212,7 +212,7 @@
 [PASS] [["fontname","sans-serif"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontname","sans-serif"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontname","sans-serif"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo<font face=\"sans-serif\">a</font>bar</div>" but got "<div>fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo<font face=\\"sans-serif\\">a</font>bar</div>" but got "<div>fooabar</div>"
 [PASS] [["fontname","sans-serif"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontname") before
 [PASS] [["fontname","sans-serif"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" queryCommandState("fontname") before
 [PASS] [["fontname","sans-serif"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" queryCommandValue("fontname") before
@@ -254,7 +254,7 @@
 [PASS] [["fontname","sans-serif"],["forwarddelete",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontname","sans-serif"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontname","sans-serif"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font face=\"sans-serif\">a</font>ar" but got "fooaar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font face=\\"sans-serif\\">a</font>ar" but got "fooaar"
 [PASS] [["fontname","sans-serif"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontname") before
 [PASS] [["fontname","sans-serif"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontname") before
 [PASS] [["fontname","sans-serif"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontname") before
@@ -278,7 +278,7 @@
 [PASS] [["fontname","sans-serif"],["indent",""]] "foo[]bar": execCommand("indent", false, "") return value
 [PASS] [["fontname","sans-serif"],["indent",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontname","sans-serif"],["indent",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foobar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foobar</blockquote>"
 [PASS] [["fontname","sans-serif"],["indent",""]] "foo[]bar" queryCommandIndeterm("fontname") before
 [PASS] [["fontname","sans-serif"],["indent",""]] "foo[]bar" queryCommandState("fontname") before
 [PASS] [["fontname","sans-serif"],["indent",""]] "foo[]bar" queryCommandValue("fontname") before
@@ -297,7 +297,7 @@
 [PASS] [["fontname","sans-serif"],["indent",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontname","sans-serif"],["indent",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontname","sans-serif"],["indent",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<font face=\"sans-serif\">a</font>bar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">fooabar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<font face=\\"sans-serif\\">a</font>bar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">fooabar</blockquote>"
 [PASS] [["fontname","sans-serif"],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontname") before
 [PASS] [["fontname","sans-serif"],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontname") before
 [PASS] [["fontname","sans-serif"],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontname") before
@@ -339,7 +339,7 @@
 [PASS] [["fontname","sans-serif"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontname","sans-serif"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontname","sans-serif"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<hr><font face=\"sans-serif\">a</font>bar" but got "foo<hr>abar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<hr><font face=\\"sans-serif\\">a</font>bar" but got "foo<hr>abar"
 [PASS] [["fontname","sans-serif"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontname") before
 [PASS] [["fontname","sans-serif"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontname") before
 [PASS] [["fontname","sans-serif"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontname") before
@@ -381,7 +381,7 @@
 [PASS] [["fontname","sans-serif"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontname","sans-serif"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontname","sans-serif"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fooab<b>c</b>d<font face=\"sans-serif\">a</font>bar" but got "fooab<b>c</b>dabar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fooab<b>c</b>d<font face=\\"sans-serif\\">a</font>bar" but got "fooab<b>c</b>dabar"
 [PASS] [["fontname","sans-serif"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontname") before
 [PASS] [["fontname","sans-serif"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" queryCommandState("fontname") before
 [PASS] [["fontname","sans-serif"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" queryCommandValue("fontname") before
@@ -423,7 +423,7 @@
 [PASS] [["fontname","sans-serif"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontname","sans-serif"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontname","sans-serif"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\"/img/lion.svg\"><font face=\"sans-serif\">a</font>bar" but got "foo<img src=\"/img/lion.svg\">abar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\\"/img/lion.svg\\"><font face=\\"sans-serif\\">a</font>bar" but got "foo<img src=\\"/img/lion.svg\\">abar"
 [PASS] [["fontname","sans-serif"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontname") before
 [PASS] [["fontname","sans-serif"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandState("fontname") before
 [PASS] [["fontname","sans-serif"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandValue("fontname") before
@@ -447,7 +447,7 @@
 [PASS] [["fontname","sans-serif"],["insertlinebreak",""]] "foo[]bar": execCommand("insertlinebreak", false, "") return value
 [PASS] [["fontname","sans-serif"],["insertlinebreak",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontname","sans-serif"],["insertlinebreak",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar" but got "foo<span style=\"font-family:sans-serif\"><br></span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar" but got "foo<span style=\\"font-family:sans-serif\\"><br></span>bar"
 [PASS] [["fontname","sans-serif"],["insertlinebreak",""]] "foo[]bar" queryCommandIndeterm("fontname") before
 [PASS] [["fontname","sans-serif"],["insertlinebreak",""]] "foo[]bar" queryCommandState("fontname") before
 [PASS] [["fontname","sans-serif"],["insertlinebreak",""]] "foo[]bar" queryCommandValue("fontname") before
@@ -465,7 +465,7 @@
 [PASS] [["fontname","sans-serif"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontname","sans-serif"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontname","sans-serif"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><font face=\"sans-serif\">a</font>bar" but got "foo<span style=\"font-family:sans-serif\"><br>a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><font face=\\"sans-serif\\">a</font>bar" but got "foo<span style=\\"font-family:sans-serif\\"><br>a</span>bar"
 [PASS] [["fontname","sans-serif"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontname") before
 [PASS] [["fontname","sans-serif"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontname") before
 [PASS] [["fontname","sans-serif"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontname") before
@@ -508,7 +508,7 @@
 [PASS] [["fontname","sans-serif"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontname","sans-serif"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontname","sans-serif"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo<font face=\"sans-serif\">a</font>bar</li></ol>" but got "<ol><li>afoobar</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo<font face=\\"sans-serif\\">a</font>bar</li></ol>" but got "<ol><li>afoobar</li></ol>"
 [PASS] [["fontname","sans-serif"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontname") before
 [PASS] [["fontname","sans-serif"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontname") before
 [PASS] [["fontname","sans-serif"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontname") before
@@ -552,7 +552,7 @@
 [PASS] [["fontname","sans-serif"],["insertparagraph",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontname","sans-serif"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontname","sans-serif"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><font face=\"sans-serif\">a</font>bar</p>" but got "foo<div><span style=\"font-family:sans-serif\">a</span>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><font face=\\"sans-serif\\">a</font>bar</p>" but got "foo<div><span style=\\"font-family:sans-serif\\">a</span>bar</div>"
 [PASS] [["fontname","sans-serif"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontname") before
 [PASS] [["fontname","sans-serif"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontname") before
 [PASS] [["fontname","sans-serif"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontname") before
@@ -595,7 +595,7 @@
 [PASS] [["fontname","sans-serif"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontname","sans-serif"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontname","sans-serif"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul><li>foo<font face=\"sans-serif\">a</font>bar</li></ul>" but got "<ul><li>afoobar</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul><li>foo<font face=\\"sans-serif\\">a</font>bar</li></ul>" but got "<ul><li>afoobar</li></ul>"
 [PASS] [["fontname","sans-serif"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontname") before
 [PASS] [["fontname","sans-serif"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontname") before
 [PASS] [["fontname","sans-serif"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontname") before
@@ -641,7 +641,7 @@
 [PASS] [["fontname","sans-serif"],["justifycenter",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontname","sans-serif"],["justifycenter",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontname","sans-serif"],["justifycenter",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<font face=\"sans-serif\">a</font>bar</div>" but got "<div style=\"text-align:center\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<font face=\\"sans-serif\\">a</font>bar</div>" but got "<div style=\\"text-align:center\\">fooabar</div>"
 [PASS] [["fontname","sans-serif"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontname") before
 [PASS] [["fontname","sans-serif"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontname") before
 [PASS] [["fontname","sans-serif"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontname") before
@@ -687,7 +687,7 @@
 [PASS] [["fontname","sans-serif"],["justifyfull",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontname","sans-serif"],["justifyfull",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontname","sans-serif"],["justifyfull",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<font face=\"sans-serif\">a</font>bar</div>" but got "<div style=\"text-align:justify\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<font face=\\"sans-serif\\">a</font>bar</div>" but got "<div style=\\"text-align:justify\\">fooabar</div>"
 [PASS] [["fontname","sans-serif"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontname") before
 [PASS] [["fontname","sans-serif"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontname") before
 [PASS] [["fontname","sans-serif"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontname") before
@@ -733,7 +733,7 @@
 [PASS] [["fontname","sans-serif"],["justifyleft",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontname","sans-serif"],["justifyleft",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontname","sans-serif"],["justifyleft",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font face=\"sans-serif\">a</font>bar" but got "fooabar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font face=\\"sans-serif\\">a</font>bar" but got "fooabar"
 [PASS] [["fontname","sans-serif"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontname") before
 [PASS] [["fontname","sans-serif"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontname") before
 [PASS] [["fontname","sans-serif"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontname") before
@@ -779,7 +779,7 @@
 [PASS] [["fontname","sans-serif"],["justifyright",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontname","sans-serif"],["justifyright",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontname","sans-serif"],["justifyright",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<font face=\"sans-serif\">a</font>bar</div>" but got "<div style=\"text-align:right\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<font face=\\"sans-serif\\">a</font>bar</div>" but got "<div style=\\"text-align:right\\">fooabar</div>"
 [PASS] [["fontname","sans-serif"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontname") before
 [PASS] [["fontname","sans-serif"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontname") before
 [PASS] [["fontname","sans-serif"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontname") before
@@ -822,7 +822,7 @@
 [PASS] [["fontname","sans-serif"],["outdent",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontname","sans-serif"],["outdent",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontname","sans-serif"],["outdent",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font face=\"sans-serif\">a</font>bar" but got "foo<span style=\"font-family:sans-serif\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font face=\\"sans-serif\\">a</font>bar" but got "foo<span style=\\"font-family:sans-serif\\">a</span>bar"
 [PASS] [["fontname","sans-serif"],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontname") before
 [PASS] [["fontname","sans-serif"],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontname") before
 [PASS] [["fontname","sans-serif"],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontname") before
@@ -845,7 +845,7 @@
 [PASS] [["fontsize","4"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontsize","4"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontsize","4"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\"4\">a</font>bar" but got "foo<span style=\"font-size:large\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\\"4\\">a</font>bar" but got "foo<span style=\\"font-size:large\\">a</span>bar"
 [PASS] [["fontsize","4"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","4"],["inserttext","a"]] "foo[]bar" queryCommandState("fontsize") before
 [PASS] [["fontsize","4"],["inserttext","a"]] "foo[]bar" queryCommandValue("fontsize") before
@@ -880,7 +880,7 @@
 [PASS] [["fontsize","4"],["delete",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontsize","4"],["delete",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontsize","4"],["delete",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<font size=\"4\">a</font>bar" but got "foabar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<font size=\\"4\\">a</font>bar" but got "foabar"
 [PASS] [["fontsize","4"],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","4"],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontsize") before
 [PASS] [["fontsize","4"],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontsize") before
@@ -922,7 +922,7 @@
 [PASS] [["fontsize","4"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontsize","4"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontsize","4"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo<font size=\"4\">a</font>bar</div>" but got "<div>fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo<font size=\\"4\\">a</font>bar</div>" but got "<div>fooabar</div>"
 [PASS] [["fontsize","4"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","4"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" queryCommandState("fontsize") before
 [PASS] [["fontsize","4"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" queryCommandValue("fontsize") before
@@ -964,7 +964,7 @@
 [PASS] [["fontsize","4"],["forwarddelete",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontsize","4"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontsize","4"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\"4\">a</font>ar" but got "fooaar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\\"4\\">a</font>ar" but got "fooaar"
 [PASS] [["fontsize","4"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","4"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontsize") before
 [PASS] [["fontsize","4"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontsize") before
@@ -988,7 +988,7 @@
 [PASS] [["fontsize","4"],["indent",""]] "foo[]bar": execCommand("indent", false, "") return value
 [PASS] [["fontsize","4"],["indent",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontsize","4"],["indent",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foobar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foobar</blockquote>"
 [PASS] [["fontsize","4"],["indent",""]] "foo[]bar" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","4"],["indent",""]] "foo[]bar" queryCommandState("fontsize") before
 [PASS] [["fontsize","4"],["indent",""]] "foo[]bar" queryCommandValue("fontsize") before
@@ -1007,7 +1007,7 @@
 [PASS] [["fontsize","4"],["indent",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontsize","4"],["indent",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontsize","4"],["indent",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<font size=\"4\">a</font>bar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">fooabar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<font size=\\"4\\">a</font>bar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">fooabar</blockquote>"
 [PASS] [["fontsize","4"],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","4"],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontsize") before
 [PASS] [["fontsize","4"],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontsize") before
@@ -1049,7 +1049,7 @@
 [PASS] [["fontsize","4"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontsize","4"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontsize","4"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<hr><font size=\"4\">a</font>bar" but got "foo<hr>abar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<hr><font size=\\"4\\">a</font>bar" but got "foo<hr>abar"
 [PASS] [["fontsize","4"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","4"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontsize") before
 [PASS] [["fontsize","4"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontsize") before
@@ -1091,7 +1091,7 @@
 [PASS] [["fontsize","4"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontsize","4"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontsize","4"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fooab<b>c</b>d<font size=\"4\">a</font>bar" but got "fooab<b>c</b>dabar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fooab<b>c</b>d<font size=\\"4\\">a</font>bar" but got "fooab<b>c</b>dabar"
 [PASS] [["fontsize","4"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","4"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" queryCommandState("fontsize") before
 [PASS] [["fontsize","4"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" queryCommandValue("fontsize") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/multitest_6001-7000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/multitest_6001-7000-expected.txt
index 2b4b879..7edef9a 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/multitest_6001-7000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/multitest_6001-7000-expected.txt
@@ -32,7 +32,7 @@
 [PASS] [["fontsize","4"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontsize","4"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontsize","4"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\"/img/lion.svg\"><font size=\"4\">a</font>bar" but got "foo<img src=\"/img/lion.svg\">abar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\\"/img/lion.svg\\"><font size=\\"4\\">a</font>bar" but got "foo<img src=\\"/img/lion.svg\\">abar"
 [PASS] [["fontsize","4"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","4"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandState("fontsize") before
 [PASS] [["fontsize","4"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandValue("fontsize") before
@@ -56,7 +56,7 @@
 [PASS] [["fontsize","4"],["insertlinebreak",""]] "foo[]bar": execCommand("insertlinebreak", false, "") return value
 [PASS] [["fontsize","4"],["insertlinebreak",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontsize","4"],["insertlinebreak",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar" but got "foo<span style=\"font-size:large\"><br></span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar" but got "foo<span style=\\"font-size:large\\"><br></span>bar"
 [PASS] [["fontsize","4"],["insertlinebreak",""]] "foo[]bar" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","4"],["insertlinebreak",""]] "foo[]bar" queryCommandState("fontsize") before
 [PASS] [["fontsize","4"],["insertlinebreak",""]] "foo[]bar" queryCommandValue("fontsize") before
@@ -74,7 +74,7 @@
 [PASS] [["fontsize","4"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontsize","4"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontsize","4"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><font size=\"4\">a</font>bar" but got "foo<span style=\"font-size:large\"><br>a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><font size=\\"4\\">a</font>bar" but got "foo<span style=\\"font-size:large\\"><br>a</span>bar"
 [PASS] [["fontsize","4"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","4"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontsize") before
 [PASS] [["fontsize","4"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontsize") before
@@ -117,7 +117,7 @@
 [PASS] [["fontsize","4"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontsize","4"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontsize","4"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo<font size=\"4\">a</font>bar</li></ol>" but got "<ol><li>afoobar</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo<font size=\\"4\\">a</font>bar</li></ol>" but got "<ol><li>afoobar</li></ol>"
 [PASS] [["fontsize","4"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","4"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontsize") before
 [PASS] [["fontsize","4"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontsize") before
@@ -161,7 +161,7 @@
 [PASS] [["fontsize","4"],["insertparagraph",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontsize","4"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontsize","4"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><font size=\"4\">a</font>bar</p>" but got "foo<div><span style=\"font-size:large\">a</span>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><font size=\\"4\\">a</font>bar</p>" but got "foo<div><span style=\\"font-size:large\\">a</span>bar</div>"
 [PASS] [["fontsize","4"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","4"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontsize") before
 [PASS] [["fontsize","4"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontsize") before
@@ -204,7 +204,7 @@
 [PASS] [["fontsize","4"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontsize","4"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontsize","4"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul><li>foo<font size=\"4\">a</font>bar</li></ul>" but got "<ul><li>afoobar</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul><li>foo<font size=\\"4\\">a</font>bar</li></ul>" but got "<ul><li>afoobar</li></ul>"
 [PASS] [["fontsize","4"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","4"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontsize") before
 [PASS] [["fontsize","4"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontsize") before
@@ -250,7 +250,7 @@
 [PASS] [["fontsize","4"],["justifycenter",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontsize","4"],["justifycenter",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontsize","4"],["justifycenter",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<font size=\"4\">a</font>bar</div>" but got "<div style=\"text-align:center\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<font size=\\"4\\">a</font>bar</div>" but got "<div style=\\"text-align:center\\">fooabar</div>"
 [PASS] [["fontsize","4"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","4"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontsize") before
 [PASS] [["fontsize","4"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontsize") before
@@ -296,7 +296,7 @@
 [PASS] [["fontsize","4"],["justifyfull",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontsize","4"],["justifyfull",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontsize","4"],["justifyfull",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<font size=\"4\">a</font>bar</div>" but got "<div style=\"text-align:justify\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<font size=\\"4\\">a</font>bar</div>" but got "<div style=\\"text-align:justify\\">fooabar</div>"
 [PASS] [["fontsize","4"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","4"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontsize") before
 [PASS] [["fontsize","4"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontsize") before
@@ -342,7 +342,7 @@
 [PASS] [["fontsize","4"],["justifyleft",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontsize","4"],["justifyleft",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontsize","4"],["justifyleft",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\"4\">a</font>bar" but got "fooabar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\\"4\\">a</font>bar" but got "fooabar"
 [PASS] [["fontsize","4"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","4"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontsize") before
 [PASS] [["fontsize","4"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontsize") before
@@ -388,7 +388,7 @@
 [PASS] [["fontsize","4"],["justifyright",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontsize","4"],["justifyright",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontsize","4"],["justifyright",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<font size=\"4\">a</font>bar</div>" but got "<div style=\"text-align:right\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<font size=\\"4\\">a</font>bar</div>" but got "<div style=\\"text-align:right\\">fooabar</div>"
 [PASS] [["fontsize","4"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","4"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontsize") before
 [PASS] [["fontsize","4"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontsize") before
@@ -431,7 +431,7 @@
 [PASS] [["fontsize","4"],["outdent",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontsize","4"],["outdent",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontsize","4"],["outdent",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\"4\">a</font>bar" but got "foo<span style=\"font-size:large\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\\"4\\">a</font>bar" but got "foo<span style=\\"font-size:large\\">a</span>bar"
 [PASS] [["fontsize","4"],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","4"],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontsize") before
 [PASS] [["fontsize","4"],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontsize") before
@@ -454,7 +454,7 @@
 [PASS] [["forecolor","#0000FF"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["forecolor","#0000FF"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["forecolor","#0000FF"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\"#0000ff\">a</font>bar" but got "foo<span style=\"color:rgb(0, 0, 255)\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\\"#0000ff\\">a</font>bar" but got "foo<span style=\\"color:rgb(0, 0, 255)\\">a</span>bar"
 [PASS] [["forecolor","#0000FF"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("forecolor") before
 [PASS] [["forecolor","#0000FF"],["inserttext","a"]] "foo[]bar" queryCommandState("forecolor") before
 [PASS] [["forecolor","#0000FF"],["inserttext","a"]] "foo[]bar" queryCommandValue("forecolor") before
@@ -489,7 +489,7 @@
 [PASS] [["forecolor","#0000FF"],["delete",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["forecolor","#0000FF"],["delete",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["forecolor","#0000FF"],["delete",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<font color=\"#0000ff\">a</font>bar" but got "foabar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<font color=\\"#0000ff\\">a</font>bar" but got "foabar"
 [PASS] [["forecolor","#0000FF"],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("forecolor") before
 [PASS] [["forecolor","#0000FF"],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandState("forecolor") before
 [PASS] [["forecolor","#0000FF"],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandValue("forecolor") before
@@ -531,7 +531,7 @@
 [PASS] [["forecolor","#0000FF"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["forecolor","#0000FF"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["forecolor","#0000FF"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo<font color=\"#0000ff\">a</font>bar</div>" but got "<div>fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo<font color=\\"#0000ff\\">a</font>bar</div>" but got "<div>fooabar</div>"
 [PASS] [["forecolor","#0000FF"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("forecolor") before
 [PASS] [["forecolor","#0000FF"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" queryCommandState("forecolor") before
 [PASS] [["forecolor","#0000FF"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" queryCommandValue("forecolor") before
@@ -573,7 +573,7 @@
 [PASS] [["forecolor","#0000FF"],["forwarddelete",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["forecolor","#0000FF"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["forecolor","#0000FF"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\"#0000ff\">a</font>ar" but got "fooaar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\\"#0000ff\\">a</font>ar" but got "fooaar"
 [PASS] [["forecolor","#0000FF"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("forecolor") before
 [PASS] [["forecolor","#0000FF"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandState("forecolor") before
 [PASS] [["forecolor","#0000FF"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandValue("forecolor") before
@@ -597,7 +597,7 @@
 [PASS] [["forecolor","#0000FF"],["indent",""]] "foo[]bar": execCommand("indent", false, "") return value
 [PASS] [["forecolor","#0000FF"],["indent",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["forecolor","#0000FF"],["indent",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foobar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foobar</blockquote>"
 [PASS] [["forecolor","#0000FF"],["indent",""]] "foo[]bar" queryCommandIndeterm("forecolor") before
 [PASS] [["forecolor","#0000FF"],["indent",""]] "foo[]bar" queryCommandState("forecolor") before
 [PASS] [["forecolor","#0000FF"],["indent",""]] "foo[]bar" queryCommandValue("forecolor") before
@@ -616,7 +616,7 @@
 [PASS] [["forecolor","#0000FF"],["indent",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["forecolor","#0000FF"],["indent",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["forecolor","#0000FF"],["indent",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<font color=\"#0000ff\">a</font>bar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">fooabar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<font color=\\"#0000ff\\">a</font>bar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">fooabar</blockquote>"
 [PASS] [["forecolor","#0000FF"],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("forecolor") before
 [PASS] [["forecolor","#0000FF"],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandState("forecolor") before
 [PASS] [["forecolor","#0000FF"],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandValue("forecolor") before
@@ -658,7 +658,7 @@
 [PASS] [["forecolor","#0000FF"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["forecolor","#0000FF"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["forecolor","#0000FF"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<hr><font color=\"#0000ff\">a</font>bar" but got "foo<hr>abar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<hr><font color=\\"#0000ff\\">a</font>bar" but got "foo<hr>abar"
 [PASS] [["forecolor","#0000FF"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("forecolor") before
 [PASS] [["forecolor","#0000FF"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" queryCommandState("forecolor") before
 [PASS] [["forecolor","#0000FF"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" queryCommandValue("forecolor") before
@@ -700,7 +700,7 @@
 [PASS] [["forecolor","#0000FF"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["forecolor","#0000FF"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["forecolor","#0000FF"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fooab<b>c</b>d<font color=\"#0000ff\">a</font>bar" but got "fooab<b>c</b>dabar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fooab<b>c</b>d<font color=\\"#0000ff\\">a</font>bar" but got "fooab<b>c</b>dabar"
 [PASS] [["forecolor","#0000FF"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("forecolor") before
 [PASS] [["forecolor","#0000FF"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" queryCommandState("forecolor") before
 [PASS] [["forecolor","#0000FF"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" queryCommandValue("forecolor") before
@@ -742,7 +742,7 @@
 [PASS] [["forecolor","#0000FF"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["forecolor","#0000FF"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["forecolor","#0000FF"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\"/img/lion.svg\"><font color=\"#0000ff\">a</font>bar" but got "foo<img src=\"/img/lion.svg\">abar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\\"/img/lion.svg\\"><font color=\\"#0000ff\\">a</font>bar" but got "foo<img src=\\"/img/lion.svg\\">abar"
 [PASS] [["forecolor","#0000FF"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("forecolor") before
 [PASS] [["forecolor","#0000FF"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandState("forecolor") before
 [PASS] [["forecolor","#0000FF"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandValue("forecolor") before
@@ -766,7 +766,7 @@
 [PASS] [["forecolor","#0000FF"],["insertlinebreak",""]] "foo[]bar": execCommand("insertlinebreak", false, "") return value
 [PASS] [["forecolor","#0000FF"],["insertlinebreak",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["forecolor","#0000FF"],["insertlinebreak",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar" but got "foo<span style=\"color:rgb(0, 0, 255)\"><br></span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar" but got "foo<span style=\\"color:rgb(0, 0, 255)\\"><br></span>bar"
 [PASS] [["forecolor","#0000FF"],["insertlinebreak",""]] "foo[]bar" queryCommandIndeterm("forecolor") before
 [PASS] [["forecolor","#0000FF"],["insertlinebreak",""]] "foo[]bar" queryCommandState("forecolor") before
 [PASS] [["forecolor","#0000FF"],["insertlinebreak",""]] "foo[]bar" queryCommandValue("forecolor") before
@@ -784,7 +784,7 @@
 [PASS] [["forecolor","#0000FF"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["forecolor","#0000FF"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["forecolor","#0000FF"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><font color=\"#0000ff\">a</font>bar" but got "foo<span style=\"color:rgb(0, 0, 255)\"><br>a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><font color=\\"#0000ff\\">a</font>bar" but got "foo<span style=\\"color:rgb(0, 0, 255)\\"><br>a</span>bar"
 [PASS] [["forecolor","#0000FF"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("forecolor") before
 [PASS] [["forecolor","#0000FF"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandState("forecolor") before
 [PASS] [["forecolor","#0000FF"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandValue("forecolor") before
@@ -827,7 +827,7 @@
 [PASS] [["forecolor","#0000FF"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["forecolor","#0000FF"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["forecolor","#0000FF"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo<font color=\"#0000ff\">a</font>bar</li></ol>" but got "<ol><li>afoobar</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo<font color=\\"#0000ff\\">a</font>bar</li></ol>" but got "<ol><li>afoobar</li></ol>"
 [PASS] [["forecolor","#0000FF"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("forecolor") before
 [PASS] [["forecolor","#0000FF"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandState("forecolor") before
 [PASS] [["forecolor","#0000FF"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandValue("forecolor") before
@@ -871,7 +871,7 @@
 [PASS] [["forecolor","#0000FF"],["insertparagraph",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["forecolor","#0000FF"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["forecolor","#0000FF"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><font color=\"#0000ff\">a</font>bar</p>" but got "foo<div><span style=\"color:rgb(0, 0, 255)\">a</span>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><font color=\\"#0000ff\\">a</font>bar</p>" but got "foo<div><span style=\\"color:rgb(0, 0, 255)\\">a</span>bar</div>"
 [PASS] [["forecolor","#0000FF"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("forecolor") before
 [PASS] [["forecolor","#0000FF"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandState("forecolor") before
 [PASS] [["forecolor","#0000FF"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandValue("forecolor") before
@@ -914,7 +914,7 @@
 [PASS] [["forecolor","#0000FF"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["forecolor","#0000FF"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["forecolor","#0000FF"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul><li>foo<font color=\"#0000ff\">a</font>bar</li></ul>" but got "<ul><li>afoobar</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul><li>foo<font color=\\"#0000ff\\">a</font>bar</li></ul>" but got "<ul><li>afoobar</li></ul>"
 [PASS] [["forecolor","#0000FF"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("forecolor") before
 [PASS] [["forecolor","#0000FF"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandState("forecolor") before
 [PASS] [["forecolor","#0000FF"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandValue("forecolor") before
@@ -960,7 +960,7 @@
 [PASS] [["forecolor","#0000FF"],["justifycenter",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["forecolor","#0000FF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["forecolor","#0000FF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<font color=\"#0000ff\">a</font>bar</div>" but got "<div style=\"text-align:center\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<font color=\\"#0000ff\\">a</font>bar</div>" but got "<div style=\\"text-align:center\\">fooabar</div>"
 [PASS] [["forecolor","#0000FF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("forecolor") before
 [PASS] [["forecolor","#0000FF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandState("forecolor") before
 [PASS] [["forecolor","#0000FF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("forecolor") before
@@ -1006,7 +1006,7 @@
 [PASS] [["forecolor","#0000FF"],["justifyfull",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["forecolor","#0000FF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["forecolor","#0000FF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<font color=\"#0000ff\">a</font>bar</div>" but got "<div style=\"text-align:justify\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<font color=\\"#0000ff\\">a</font>bar</div>" but got "<div style=\\"text-align:justify\\">fooabar</div>"
 [PASS] [["forecolor","#0000FF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("forecolor") before
 [PASS] [["forecolor","#0000FF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandState("forecolor") before
 [PASS] [["forecolor","#0000FF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("forecolor") before
@@ -1052,7 +1052,7 @@
 [PASS] [["forecolor","#0000FF"],["justifyleft",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["forecolor","#0000FF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["forecolor","#0000FF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\"#0000ff\">a</font>bar" but got "fooabar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\\"#0000ff\\">a</font>bar" but got "fooabar"
 [PASS] [["forecolor","#0000FF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("forecolor") before
 [PASS] [["forecolor","#0000FF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandState("forecolor") before
 [PASS] [["forecolor","#0000FF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("forecolor") before
@@ -1098,7 +1098,7 @@
 [PASS] [["forecolor","#0000FF"],["justifyright",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["forecolor","#0000FF"],["justifyright",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["forecolor","#0000FF"],["justifyright",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<font color=\"#0000ff\">a</font>bar</div>" but got "<div style=\"text-align:right\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<font color=\\"#0000ff\\">a</font>bar</div>" but got "<div style=\\"text-align:right\\">fooabar</div>"
 [PASS] [["forecolor","#0000FF"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("forecolor") before
 [PASS] [["forecolor","#0000FF"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandState("forecolor") before
 [PASS] [["forecolor","#0000FF"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("forecolor") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/multitest_7001-8000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/multitest_7001-8000-expected.txt
index ee3365ef..bd645a3 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/multitest_7001-8000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/multitest_7001-8000-expected.txt
@@ -22,7 +22,7 @@
 [PASS] [["forecolor","#0000FF"],["outdent",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["forecolor","#0000FF"],["outdent",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["forecolor","#0000FF"],["outdent",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\"#0000ff\">a</font>bar" but got "foo<span style=\"color:rgb(0, 0, 255)\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\\"#0000ff\\">a</font>bar" but got "foo<span style=\\"color:rgb(0, 0, 255)\\">a</span>bar"
 [PASS] [["forecolor","#0000FF"],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("forecolor") before
 [PASS] [["forecolor","#0000FF"],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandState("forecolor") before
 [PASS] [["forecolor","#0000FF"],["outdent",""],["inserttext","a"]] "foo[]bar" queryCommandValue("forecolor") before
@@ -82,7 +82,7 @@
 [PASS] [["hilitecolor","#00FFFF"],["delete",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["hilitecolor","#00FFFF"],["delete",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["hilitecolor","#00FFFF"],["delete",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\"background-color:rgb(0, 255, 255)\">a</span>bar" but got "foabar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar" but got "foabar"
 [PASS] [["hilitecolor","#00FFFF"],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("hilitecolor") before
 [PASS] [["hilitecolor","#00FFFF"],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandState("hilitecolor") before
 [FAIL] [["hilitecolor","#00FFFF"],["delete",""],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") before
@@ -126,7 +126,7 @@
 [PASS] [["hilitecolor","#00FFFF"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["hilitecolor","#00FFFF"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["hilitecolor","#00FFFF"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo<span style=\"background-color:rgb(0, 255, 255)\">a</span>bar</div>" but got "<div>fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</div>" but got "<div>fooabar</div>"
 [PASS] [["hilitecolor","#00FFFF"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("hilitecolor") before
 [PASS] [["hilitecolor","#00FFFF"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" queryCommandState("hilitecolor") before
 [FAIL] [["hilitecolor","#00FFFF"],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") before
@@ -170,7 +170,7 @@
 [PASS] [["hilitecolor","#00FFFF"],["forwarddelete",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["hilitecolor","#00FFFF"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["hilitecolor","#00FFFF"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"background-color:rgb(0, 255, 255)\">a</span>ar" but got "fooaar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>ar" but got "fooaar"
 [PASS] [["hilitecolor","#00FFFF"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("hilitecolor") before
 [PASS] [["hilitecolor","#00FFFF"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandState("hilitecolor") before
 [FAIL] [["hilitecolor","#00FFFF"],["forwarddelete",""],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") before
@@ -195,7 +195,7 @@
 [PASS] [["hilitecolor","#00FFFF"],["indent",""]] "foo[]bar": execCommand("indent", false, "") return value
 [PASS] [["hilitecolor","#00FFFF"],["indent",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["hilitecolor","#00FFFF"],["indent",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">foobar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foobar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">foobar</blockquote>"
 [PASS] [["hilitecolor","#00FFFF"],["indent",""]] "foo[]bar" queryCommandIndeterm("hilitecolor") before
 [PASS] [["hilitecolor","#00FFFF"],["indent",""]] "foo[]bar" queryCommandState("hilitecolor") before
 [FAIL] [["hilitecolor","#00FFFF"],["indent",""]] "foo[]bar" queryCommandValue("hilitecolor") before
@@ -215,7 +215,7 @@
 [PASS] [["hilitecolor","#00FFFF"],["indent",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["hilitecolor","#00FFFF"],["indent",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["hilitecolor","#00FFFF"],["indent",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<span style=\"background-color:rgb(0, 255, 255)\">a</span>bar</blockquote>" but got "<blockquote style=\"margin:0 0 0 40px; border:none; padding:0px\">fooabar</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote>foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</blockquote>" but got "<blockquote style=\\"margin:0 0 0 40px; border:none; padding:0px\\">fooabar</blockquote>"
 [PASS] [["hilitecolor","#00FFFF"],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("hilitecolor") before
 [PASS] [["hilitecolor","#00FFFF"],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandState("hilitecolor") before
 [FAIL] [["hilitecolor","#00FFFF"],["indent",""],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") before
@@ -259,7 +259,7 @@
 [PASS] [["hilitecolor","#00FFFF"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["hilitecolor","#00FFFF"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["hilitecolor","#00FFFF"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<hr><span style=\"background-color:rgb(0, 255, 255)\">a</span>bar" but got "foo<hr>abar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<hr><span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar" but got "foo<hr>abar"
 [PASS] [["hilitecolor","#00FFFF"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("hilitecolor") before
 [PASS] [["hilitecolor","#00FFFF"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" queryCommandState("hilitecolor") before
 [FAIL] [["hilitecolor","#00FFFF"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") before
@@ -303,7 +303,7 @@
 [PASS] [["hilitecolor","#00FFFF"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["hilitecolor","#00FFFF"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["hilitecolor","#00FFFF"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fooab<b>c</b>d<span style=\"background-color:rgb(0, 255, 255)\">a</span>bar" but got "fooab<b>c</b>dabar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fooab<b>c</b>d<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar" but got "fooab<b>c</b>dabar"
 [PASS] [["hilitecolor","#00FFFF"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("hilitecolor") before
 [PASS] [["hilitecolor","#00FFFF"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" queryCommandState("hilitecolor") before
 [FAIL] [["hilitecolor","#00FFFF"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") before
@@ -347,7 +347,7 @@
 [PASS] [["hilitecolor","#00FFFF"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["hilitecolor","#00FFFF"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["hilitecolor","#00FFFF"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\"/img/lion.svg\"><span style=\"background-color:rgb(0, 255, 255)\">a</span>bar" but got "foo<img src=\"/img/lion.svg\">abar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<img src=\\"/img/lion.svg\\"><span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar" but got "foo<img src=\\"/img/lion.svg\\">abar"
 [PASS] [["hilitecolor","#00FFFF"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("hilitecolor") before
 [PASS] [["hilitecolor","#00FFFF"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandState("hilitecolor") before
 [FAIL] [["hilitecolor","#00FFFF"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") before
@@ -372,7 +372,7 @@
 [PASS] [["hilitecolor","#00FFFF"],["insertlinebreak",""]] "foo[]bar": execCommand("insertlinebreak", false, "") return value
 [PASS] [["hilitecolor","#00FFFF"],["insertlinebreak",""]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["hilitecolor","#00FFFF"],["insertlinebreak",""]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar" but got "foo<span style=\"background-color:rgb(0, 255, 255)\"><br></span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar" but got "foo<span style=\\"background-color:rgb(0, 255, 255)\\"><br></span>bar"
 [PASS] [["hilitecolor","#00FFFF"],["insertlinebreak",""]] "foo[]bar" queryCommandIndeterm("hilitecolor") before
 [PASS] [["hilitecolor","#00FFFF"],["insertlinebreak",""]] "foo[]bar" queryCommandState("hilitecolor") before
 [FAIL] [["hilitecolor","#00FFFF"],["insertlinebreak",""]] "foo[]bar" queryCommandValue("hilitecolor") before
@@ -392,7 +392,7 @@
 [PASS] [["hilitecolor","#00FFFF"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["hilitecolor","#00FFFF"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["hilitecolor","#00FFFF"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><span style=\"background-color:rgb(0, 255, 255)\">a</span>bar" but got "foo<span style=\"background-color:rgb(0, 255, 255)\"><br>a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br><span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar" but got "foo<span style=\\"background-color:rgb(0, 255, 255)\\"><br>a</span>bar"
 [PASS] [["hilitecolor","#00FFFF"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("hilitecolor") before
 [PASS] [["hilitecolor","#00FFFF"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandState("hilitecolor") before
 [FAIL] [["hilitecolor","#00FFFF"],["insertlinebreak",""],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") before
@@ -438,7 +438,7 @@
 [PASS] [["hilitecolor","#00FFFF"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["hilitecolor","#00FFFF"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["hilitecolor","#00FFFF"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo<span style=\"background-color:rgb(0, 255, 255)\">a</span>bar</li></ol>" but got "<ol><li>afoobar</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</li></ol>" but got "<ol><li>afoobar</li></ol>"
 [PASS] [["hilitecolor","#00FFFF"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("hilitecolor") before
 [PASS] [["hilitecolor","#00FFFF"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandState("hilitecolor") before
 [FAIL] [["hilitecolor","#00FFFF"],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") before
@@ -485,7 +485,7 @@
 [PASS] [["hilitecolor","#00FFFF"],["insertparagraph",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["hilitecolor","#00FFFF"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["hilitecolor","#00FFFF"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><span style=\"background-color:rgb(0, 255, 255)\">a</span>bar</p>" but got "foo<div><span style=\"background-color:rgb(0, 255, 255)\">a</span>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p><span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</p>" but got "foo<div><span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</div>"
 [PASS] [["hilitecolor","#00FFFF"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("hilitecolor") before
 [PASS] [["hilitecolor","#00FFFF"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandState("hilitecolor") before
 [FAIL] [["hilitecolor","#00FFFF"],["insertparagraph",""],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") before
@@ -531,7 +531,7 @@
 [PASS] [["hilitecolor","#00FFFF"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["hilitecolor","#00FFFF"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["hilitecolor","#00FFFF"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul><li>foo<span style=\"background-color:rgb(0, 255, 255)\">a</span>bar</li></ul>" but got "<ul><li>afoobar</li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul><li>foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</li></ul>" but got "<ul><li>afoobar</li></ul>"
 [PASS] [["hilitecolor","#00FFFF"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("hilitecolor") before
 [PASS] [["hilitecolor","#00FFFF"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandState("hilitecolor") before
 [FAIL] [["hilitecolor","#00FFFF"],["insertunorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") before
@@ -579,7 +579,7 @@
 [PASS] [["hilitecolor","#00FFFF"],["justifycenter",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["hilitecolor","#00FFFF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["hilitecolor","#00FFFF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<span style=\"background-color:rgb(0, 255, 255)\">a</span>bar</div>" but got "<div style=\"text-align:center\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</div>" but got "<div style=\\"text-align:center\\">fooabar</div>"
 [PASS] [["hilitecolor","#00FFFF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("hilitecolor") before
 [PASS] [["hilitecolor","#00FFFF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandState("hilitecolor") before
 [FAIL] [["hilitecolor","#00FFFF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") before
@@ -627,7 +627,7 @@
 [PASS] [["hilitecolor","#00FFFF"],["justifyfull",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["hilitecolor","#00FFFF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["hilitecolor","#00FFFF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<span style=\"background-color:rgb(0, 255, 255)\">a</span>bar</div>" but got "<div style=\"text-align:justify\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</div>" but got "<div style=\\"text-align:justify\\">fooabar</div>"
 [PASS] [["hilitecolor","#00FFFF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("hilitecolor") before
 [PASS] [["hilitecolor","#00FFFF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandState("hilitecolor") before
 [FAIL] [["hilitecolor","#00FFFF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") before
@@ -675,7 +675,7 @@
 [PASS] [["hilitecolor","#00FFFF"],["justifyleft",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["hilitecolor","#00FFFF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["hilitecolor","#00FFFF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"background-color:rgb(0, 255, 255)\">a</span>bar" but got "fooabar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar" but got "fooabar"
 [PASS] [["hilitecolor","#00FFFF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("hilitecolor") before
 [PASS] [["hilitecolor","#00FFFF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandState("hilitecolor") before
 [FAIL] [["hilitecolor","#00FFFF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") before
@@ -723,7 +723,7 @@
 [PASS] [["hilitecolor","#00FFFF"],["justifyright",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["hilitecolor","#00FFFF"],["justifyright",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["hilitecolor","#00FFFF"],["justifyright",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<span style=\"background-color:rgb(0, 255, 255)\">a</span>bar</div>" but got "<div style=\"text-align:right\">fooabar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</div>" but got "<div style=\\"text-align:right\\">fooabar</div>"
 [PASS] [["hilitecolor","#00FFFF"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("hilitecolor") before
 [PASS] [["hilitecolor","#00FFFF"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandState("hilitecolor") before
 [FAIL] [["hilitecolor","#00FFFF"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") before
@@ -794,7 +794,7 @@
 [PASS] [["superscript",""],["subscript",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["superscript",""],["subscript",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["superscript",""],["subscript",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>a</sub>bar" but got "foo<span style=\"vertical-align:sub\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>a</sub>bar" but got "foo<span style=\\"vertical-align:sub\\">a</span>bar"
 [PASS] [["superscript",""],["subscript",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("superscript") before
 [PASS] [["superscript",""],["subscript",""],["inserttext","a"]] "foo[]bar" queryCommandState("superscript") before
 [FAIL] [["superscript",""],["subscript",""],["inserttext","a"]] "foo[]bar" queryCommandValue("superscript") before
@@ -822,7 +822,7 @@
 [PASS] [["subscript",""],["superscript",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["subscript",""],["superscript",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["subscript",""],["superscript",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>a</sup>bar" but got "foo<span style=\"vertical-align:super\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>a</sup>bar" but got "foo<span style=\\"vertical-align:super\\">a</span>bar"
 [PASS] [["subscript",""],["superscript",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("subscript") before
 [PASS] [["subscript",""],["superscript",""],["inserttext","a"]] "foo[]bar" queryCommandState("subscript") before
 [FAIL] [["subscript",""],["superscript",""],["inserttext","a"]] "foo[]bar" queryCommandValue("subscript") before
@@ -942,7 +942,7 @@
 [PASS] [["createlink","http://www.google.com/"],["forecolor","brown"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["createlink","http://www.google.com/"],["forecolor","brown"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"],["forecolor","brown"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\"http://www.google.com/\"><font color=\"#a52a2a\">a</font></a>bar" but got "foo<a href=\"http://www.google.com/\" style=\"color:rgb(165, 42, 42)\">a</a>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\\"http://www.google.com/\\"><font color=\\"#a52a2a\\">a</font></a>bar" but got "foo<a href=\\"http://www.google.com/\\" style=\\"color:rgb(165, 42, 42)\\">a</a>bar"
 [PASS] [["createlink","http://www.google.com/"],["forecolor","brown"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["forecolor","brown"],["inserttext","a"]] "foo[]bar" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["forecolor","brown"],["inserttext","a"]] "foo[]bar" queryCommandValue("createlink") before
@@ -966,7 +966,7 @@
 [PASS] [["forecolor","brown"],["createlink","http://www.google.com/"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["forecolor","brown"],["createlink","http://www.google.com/"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["forecolor","brown"],["createlink","http://www.google.com/"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\"http://www.google.com/\"><font color=\"#a52a2a\">a</font></a>bar" but got "foo<a href=\"http://www.google.com/\">a</a>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\\"http://www.google.com/\\"><font color=\\"#a52a2a\\">a</font></a>bar" but got "foo<a href=\\"http://www.google.com/\\">a</a>bar"
 [PASS] [["forecolor","brown"],["createlink","http://www.google.com/"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("forecolor") before
 [PASS] [["forecolor","brown"],["createlink","http://www.google.com/"],["inserttext","a"]] "foo[]bar" queryCommandState("forecolor") before
 [PASS] [["forecolor","brown"],["createlink","http://www.google.com/"],["inserttext","a"]] "foo[]bar" queryCommandValue("forecolor") before
@@ -991,7 +991,7 @@
 [PASS] [["createlink","http://www.google.com/"],["forecolor","black"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["createlink","http://www.google.com/"],["forecolor","black"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["createlink","http://www.google.com/"],["forecolor","black"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\"http://www.google.com/\"><font color=\"#000000\">a</font></a>bar" but got "foo<a href=\"http://www.google.com/\" style=\"color:rgb(0, 0, 0)\">a</a>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\\"http://www.google.com/\\"><font color=\\"#000000\\">a</font></a>bar" but got "foo<a href=\\"http://www.google.com/\\" style=\\"color:rgb(0, 0, 0)\\">a</a>bar"
 [PASS] [["createlink","http://www.google.com/"],["forecolor","black"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["forecolor","black"],["inserttext","a"]] "foo[]bar" queryCommandState("createlink") before
 [PASS] [["createlink","http://www.google.com/"],["forecolor","black"],["inserttext","a"]] "foo[]bar" queryCommandValue("createlink") before
@@ -1015,7 +1015,7 @@
 [PASS] [["forecolor","black"],["createlink","http://www.google.com/"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["forecolor","black"],["createlink","http://www.google.com/"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["forecolor","black"],["createlink","http://www.google.com/"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\"http://www.google.com/\"><font color=\"#000000\">a</font></a>bar" but got "foo<a href=\"http://www.google.com/\">a</a>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\\"http://www.google.com/\\"><font color=\\"#000000\\">a</font></a>bar" but got "foo<a href=\\"http://www.google.com/\\">a</a>bar"
 [PASS] [["forecolor","black"],["createlink","http://www.google.com/"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("forecolor") before
 [PASS] [["forecolor","black"],["createlink","http://www.google.com/"],["inserttext","a"]] "foo[]bar" queryCommandState("forecolor") before
 [PASS] [["forecolor","black"],["createlink","http://www.google.com/"],["inserttext","a"]] "foo[]bar" queryCommandValue("forecolor") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/multitest_8001-9000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/multitest_8001-9000-expected.txt
index 4c75d3b..faff60ce 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/multitest_8001-9000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/multitest_8001-9000-expected.txt
@@ -9,7 +9,7 @@
 [PASS] [["subscript",""],["fontsize","2"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["subscript",""],["fontsize","2"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["subscript",""],["fontsize","2"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>a</sub>bar" but got "foo<span style=\"vertical-align:sub; font-size:small\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>a</sub>bar" but got "foo<span style=\\"vertical-align:sub; font-size:small\\">a</span>bar"
 [PASS] [["subscript",""],["fontsize","2"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("subscript") before
 [PASS] [["subscript",""],["fontsize","2"],["inserttext","a"]] "foo[]bar" queryCommandState("subscript") before
 [FAIL] [["subscript",""],["fontsize","2"],["inserttext","a"]] "foo[]bar" queryCommandValue("subscript") before
@@ -35,7 +35,7 @@
 [PASS] [["fontsize","2"],["subscript",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontsize","2"],["subscript",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontsize","2"],["subscript",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>a</sub>bar" but got "foo<span style=\"font-size:small; vertical-align:sub\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>a</sub>bar" but got "foo<span style=\\"font-size:small; vertical-align:sub\\">a</span>bar"
 [PASS] [["fontsize","2"],["subscript",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","2"],["subscript",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontsize") before
 [PASS] [["fontsize","2"],["subscript",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontsize") before
@@ -61,7 +61,7 @@
 [PASS] [["subscript",""],["fontsize","3"],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["subscript",""],["fontsize","3"],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["subscript",""],["fontsize","3"],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\"3\"><sub>a</sub></font>bar" but got "foo<span style=\"vertical-align:sub\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\\"3\\"><sub>a</sub></font>bar" but got "foo<span style=\\"vertical-align:sub\\">a</span>bar"
 [PASS] [["subscript",""],["fontsize","3"],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("subscript") before
 [PASS] [["subscript",""],["fontsize","3"],["inserttext","a"]] "foo[]bar" queryCommandState("subscript") before
 [FAIL] [["subscript",""],["fontsize","3"],["inserttext","a"]] "foo[]bar" queryCommandValue("subscript") before
@@ -87,7 +87,7 @@
 [PASS] [["fontsize","3"],["subscript",""],["inserttext","a"]] "foo[]bar": execCommand("inserttext", false, "a") return value
 [PASS] [["fontsize","3"],["subscript",""],["inserttext","a"]] "foo[]bar" checks for modifications to non-editable content
 [FAIL] [["fontsize","3"],["subscript",""],["inserttext","a"]] "foo[]bar" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\"3\"><sub>a</sub></font>bar" but got "foo<span style=\"vertical-align:sub\">a</span>bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\\"3\\"><sub>a</sub></font>bar" but got "foo<span style=\\"vertical-align:sub\\">a</span>bar"
 [PASS] [["fontsize","3"],["subscript",""],["inserttext","a"]] "foo[]bar" queryCommandIndeterm("fontsize") before
 [PASS] [["fontsize","3"],["subscript",""],["inserttext","a"]] "foo[]bar" queryCommandState("fontsize") before
 [PASS] [["fontsize","3"],["subscript",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontsize") before
@@ -162,7 +162,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<b>[bar]</b>baz": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<b>[bar]</b>baz" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<b>[bar]</b>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<b>a</b>baz" but got "foo<span style=\"font-weight:700\">a</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<b>a</b>baz" but got "foo<span style=\\"font-weight:700\\">a</span>baz"
 [PASS] [["delete",""],["inserttext","a"]] "foo<b>[bar]</b>baz" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<b>[bar]</b>baz" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<b>[bar]</b>baz" queryCommandValue("delete") before
@@ -179,7 +179,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<i>[bar]</i>baz": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<i>[bar]</i>baz" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<i>[bar]</i>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<i>a</i>baz" but got "foo<span style=\"font-style:italic\">a</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<i>a</i>baz" but got "foo<span style=\\"font-style:italic\\">a</span>baz"
 [PASS] [["delete",""],["inserttext","a"]] "foo<i>[bar]</i>baz" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<i>[bar]</i>baz" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<i>[bar]</i>baz" queryCommandValue("delete") before
@@ -196,7 +196,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<s>[bar]</s>baz": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<s>[bar]</s>baz" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<s>[bar]</s>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<s>a</s>baz" but got "foo<span style=\"text-decoration-line:line-through\">a</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<s>a</s>baz" but got "foo<span style=\\"text-decoration-line:line-through\\">a</span>baz"
 [PASS] [["delete",""],["inserttext","a"]] "foo<s>[bar]</s>baz" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<s>[bar]</s>baz" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<s>[bar]</s>baz" queryCommandValue("delete") before
@@ -213,7 +213,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub>[bar]</sub>baz": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub>[bar]</sub>baz" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<sub>[bar]</sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>a</sub>baz" but got "foo<span style=\"font-size:13.3333px\">a</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>a</sub>baz" but got "foo<span style=\\"font-size:13.3333px\\">a</span>baz"
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub>[bar]</sub>baz" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub>[bar]</sub>baz" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub>[bar]</sub>baz" queryCommandValue("delete") before
@@ -230,7 +230,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<sup>[bar]</sup>baz": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<sup>[bar]</sup>baz" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<sup>[bar]</sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>a</sup>baz" but got "foo<span style=\"font-size:13.3333px\">a</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>a</sup>baz" but got "foo<span style=\\"font-size:13.3333px\\">a</span>baz"
 [PASS] [["delete",""],["inserttext","a"]] "foo<sup>[bar]</sup>baz" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<sup>[bar]</sup>baz" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<sup>[bar]</sup>baz" queryCommandValue("delete") before
@@ -247,7 +247,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<u>[bar]</u>baz": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<u>[bar]</u>baz" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<u>[bar]</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u>a</u>baz" but got "foo<span style=\"text-decoration-line:underline\">a</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u>a</u>baz" but got "foo<span style=\\"text-decoration-line:underline\\">a</span>baz"
 [PASS] [["delete",""],["inserttext","a"]] "foo<u>[bar]</u>baz" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<u>[bar]</u>baz" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<u>[bar]</u>baz" queryCommandValue("delete") before
@@ -264,7 +264,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com>[bar]</a>baz": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com>[bar]</a>baz" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com>[bar]</a>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\"http://www.google.com\">a</a>baz" but got "fooabaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\\"http://www.google.com\\">a</a>baz" but got "fooabaz"
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com>[bar]</a>baz" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com>[bar]</a>baz" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com>[bar]</a>baz" queryCommandValue("delete") before
@@ -281,7 +281,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<font face=sans-serif>[bar]</font>baz": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<font face=sans-serif>[bar]</font>baz" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<font face=sans-serif>[bar]</font>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font face=\"sans-serif\">a</font>baz" but got "foo<span style=\"font-family:sans-serif\">a</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font face=\\"sans-serif\\">a</font>baz" but got "foo<span style=\\"font-family:sans-serif\\">a</span>baz"
 [PASS] [["delete",""],["inserttext","a"]] "foo<font face=sans-serif>[bar]</font>baz" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font face=sans-serif>[bar]</font>baz" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font face=sans-serif>[bar]</font>baz" queryCommandValue("delete") before
@@ -298,7 +298,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=4>[bar]</font>baz": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=4>[bar]</font>baz" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<font size=4>[bar]</font>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\"4\">a</font>baz" but got "foo<span style=\"font-size:large\">a</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\\"4\\">a</font>baz" but got "foo<span style=\\"font-size:large\\">a</span>baz"
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=4>[bar]</font>baz" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=4>[bar]</font>baz" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=4>[bar]</font>baz" queryCommandValue("delete") before
@@ -315,7 +315,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=#0000FF>[bar]</font>baz": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=#0000FF>[bar]</font>baz" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<font color=#0000FF>[bar]</font>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\"#0000ff\">a</font>baz" but got "foo<span style=\"color:rgb(0, 0, 255)\">a</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\\"#0000ff\\">a</font>baz" but got "foo<span style=\\"color:rgb(0, 0, 255)\\">a</span>baz"
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=#0000FF>[bar]</font>baz" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=#0000FF>[bar]</font>baz" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=#0000FF>[bar]</font>baz" queryCommandValue("delete") before
@@ -348,7 +348,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=blue>[bar]</font></a>baz": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=blue>[bar]</font></a>baz" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=blue>[bar]</font></a>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\"http://www.google.com\">a</a>baz" but got "fooabaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\\"http://www.google.com\\">a</a>baz" but got "fooabaz"
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=blue>[bar]</font></a>baz" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=blue>[bar]</font></a>baz" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=blue>[bar]</font></a>baz" queryCommandValue("delete") before
@@ -365,7 +365,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=blue><a href=http://www.google.com>[bar]</a></font>baz": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=blue><a href=http://www.google.com>[bar]</a></font>baz" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<font color=blue><a href=http://www.google.com>[bar]</a></font>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\"http://www.google.com\">a</a>baz" but got "foo<span style=\"color:rgb(0, 0, 255)\">a</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\\"http://www.google.com\\">a</a>baz" but got "foo<span style=\\"color:rgb(0, 0, 255)\\">a</span>baz"
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=blue><a href=http://www.google.com>[bar]</a></font>baz" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=blue><a href=http://www.google.com>[bar]</a></font>baz" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=blue><a href=http://www.google.com>[bar]</a></font>baz" queryCommandValue("delete") before
@@ -382,7 +382,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=brown>[bar]</font></a>baz": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=brown>[bar]</font></a>baz" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=brown>[bar]</font></a>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\"http://www.google.com\"><font color=\"#a52a2a\">a</font></a>baz" but got "foo<span style=\"color:rgb(165, 42, 42)\">a</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\\"http://www.google.com\\"><font color=\\"#a52a2a\\">a</font></a>baz" but got "foo<span style=\\"color:rgb(165, 42, 42)\\">a</span>baz"
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=brown>[bar]</font></a>baz" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=brown>[bar]</font></a>baz" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=brown>[bar]</font></a>baz" queryCommandValue("delete") before
@@ -399,7 +399,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=brown><a href=http://www.google.com>[bar]</a></font>baz": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=brown><a href=http://www.google.com>[bar]</a></font>baz" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<font color=brown><a href=http://www.google.com>[bar]</a></font>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\"http://www.google.com\">a</a>baz" but got "fooabaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\\"http://www.google.com\\">a</a>baz" but got "fooabaz"
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=brown><a href=http://www.google.com>[bar]</a></font>baz" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=brown><a href=http://www.google.com>[bar]</a></font>baz" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=brown><a href=http://www.google.com>[bar]</a></font>baz" queryCommandValue("delete") before
@@ -416,7 +416,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=black>[bar]</font></a>baz": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=black>[bar]</font></a>baz" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=black>[bar]</font></a>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\"http://www.google.com\"><font color=\"#000000\">a</font></a>baz" but got "fooabaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\\"http://www.google.com\\"><font color=\\"#000000\\">a</font></a>baz" but got "fooabaz"
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=black>[bar]</font></a>baz" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=black>[bar]</font></a>baz" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=black>[bar]</font></a>baz" queryCommandValue("delete") before
@@ -433,7 +433,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><u>[bar]</u></a>baz": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><u>[bar]</u></a>baz" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><u>[bar]</u></a>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\"http://www.google.com\">a</a>baz" but got "fooabaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\\"http://www.google.com\\">a</a>baz" but got "fooabaz"
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><u>[bar]</u></a>baz" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><u>[bar]</u></a>baz" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><u>[bar]</u></a>baz" queryCommandValue("delete") before
@@ -450,7 +450,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<u><a href=http://www.google.com>[bar]</a></u>baz": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<u><a href=http://www.google.com>[bar]</a></u>baz" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<u><a href=http://www.google.com>[bar]</a></u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\"http://www.google.com\">a</a>baz" but got "foo<span style=\"text-decoration-line:underline\">a</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\\"http://www.google.com\\">a</a>baz" but got "foo<span style=\\"text-decoration-line:underline\\">a</span>baz"
 [PASS] [["delete",""],["inserttext","a"]] "foo<u><a href=http://www.google.com>[bar]</a></u>baz" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<u><a href=http://www.google.com>[bar]</a></u>baz" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<u><a href=http://www.google.com>[bar]</a></u>baz" queryCommandValue("delete") before
@@ -467,7 +467,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub><font size=2>[bar]</font></sub>baz": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub><font size=2>[bar]</font></sub>baz" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<sub><font size=2>[bar]</font></sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>a</sub>baz" but got "foo<span style=\"font-size:small\">a</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>a</sub>baz" but got "foo<span style=\\"font-size:small\\">a</span>baz"
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub><font size=2>[bar]</font></sub>baz" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub><font size=2>[bar]</font></sub>baz" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub><font size=2>[bar]</font></sub>baz" queryCommandValue("delete") before
@@ -484,7 +484,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=2><sub>[bar]</sub></font>baz": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=2><sub>[bar]</sub></font>baz" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<font size=2><sub>[bar]</sub></font>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\"1\"><sub>a</sub></font>baz" but got "foo<span style=\"font-size:10.8333px\">a</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\\"1\\"><sub>a</sub></font>baz" but got "foo<span style=\\"font-size:10.8333px\\">a</span>baz"
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=2><sub>[bar]</sub></font>baz" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=2><sub>[bar]</sub></font>baz" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=2><sub>[bar]</sub></font>baz" queryCommandValue("delete") before
@@ -501,7 +501,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub><font size=3>[bar]</font></sub>baz": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub><font size=3>[bar]</font></sub>baz" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<sub><font size=3>[bar]</font></sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\"3\"><sub>a</sub></font>baz" but got "fooabaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\\"3\\"><sub>a</sub></font>baz" but got "fooabaz"
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub><font size=3>[bar]</font></sub>baz" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub><font size=3>[bar]</font></sub>baz" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub><font size=3>[bar]</font></sub>baz" queryCommandValue("delete") before
@@ -518,7 +518,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=3><sub>[bar]</sub></font>baz": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=3><sub>[bar]</sub></font>baz" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<font size=3><sub>[bar]</sub></font>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>a</sub>baz" but got "foo<span style=\"font-size:13.3333px\">a</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>a</sub>baz" but got "foo<span style=\\"font-size:13.3333px\\">a</span>baz"
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=3><sub>[bar]</sub></font>baz" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=3><sub>[bar]</sub></font>baz" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=3><sub>[bar]</sub></font>baz" queryCommandValue("delete") before
@@ -887,7 +887,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<b>[bar</b>baz]": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<b>[bar</b>baz]" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<b>[bar</b>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<b>a</b>" but got "foo<span style=\"font-weight:700\">a</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<b>a</b>" but got "foo<span style=\\"font-weight:700\\">a</span>"
 [PASS] [["delete",""],["inserttext","a"]] "foo<b>[bar</b>baz]" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<b>[bar</b>baz]" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<b>[bar</b>baz]" queryCommandValue("delete") before
@@ -904,7 +904,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<i>[bar</i>baz]": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<i>[bar</i>baz]" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<i>[bar</i>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<i>a</i>" but got "foo<span style=\"font-style:italic\">a</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<i>a</i>" but got "foo<span style=\\"font-style:italic\\">a</span>"
 [PASS] [["delete",""],["inserttext","a"]] "foo<i>[bar</i>baz]" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<i>[bar</i>baz]" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<i>[bar</i>baz]" queryCommandValue("delete") before
@@ -921,7 +921,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<s>[bar</s>baz]": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<s>[bar</s>baz]" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<s>[bar</s>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<s>a</s>" but got "foo<span style=\"text-decoration-line:line-through\">a</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<s>a</s>" but got "foo<span style=\\"text-decoration-line:line-through\\">a</span>"
 [PASS] [["delete",""],["inserttext","a"]] "foo<s>[bar</s>baz]" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<s>[bar</s>baz]" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<s>[bar</s>baz]" queryCommandValue("delete") before
@@ -938,7 +938,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub>[bar</sub>baz]": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub>[bar</sub>baz]" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<sub>[bar</sub>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>a</sub>" but got "foo<span style=\"font-size:13.3333px\">a</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>a</sub>" but got "foo<span style=\\"font-size:13.3333px\\">a</span>"
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub>[bar</sub>baz]" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub>[bar</sub>baz]" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub>[bar</sub>baz]" queryCommandValue("delete") before
@@ -955,7 +955,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<sup>[bar</sup>baz]": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<sup>[bar</sup>baz]" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<sup>[bar</sup>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>a</sup>" but got "foo<span style=\"font-size:13.3333px\">a</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>a</sup>" but got "foo<span style=\\"font-size:13.3333px\\">a</span>"
 [PASS] [["delete",""],["inserttext","a"]] "foo<sup>[bar</sup>baz]" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<sup>[bar</sup>baz]" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<sup>[bar</sup>baz]" queryCommandValue("delete") before
@@ -972,7 +972,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<u>[bar</u>baz]": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<u>[bar</u>baz]" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<u>[bar</u>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u>a</u>" but got "foo<span style=\"text-decoration-line:underline\">a</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u>a</u>" but got "foo<span style=\\"text-decoration-line:underline\\">a</span>"
 [PASS] [["delete",""],["inserttext","a"]] "foo<u>[bar</u>baz]" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<u>[bar</u>baz]" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<u>[bar</u>baz]" queryCommandValue("delete") before
@@ -989,7 +989,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com>[bar</a>baz]": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com>[bar</a>baz]" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com>[bar</a>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\"http://www.google.com\">a</a>" but got "fooa"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\\"http://www.google.com\\">a</a>" but got "fooa"
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com>[bar</a>baz]" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com>[bar</a>baz]" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com>[bar</a>baz]" queryCommandValue("delete") before
@@ -1006,7 +1006,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<font face=sans-serif>[bar</font>baz]": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<font face=sans-serif>[bar</font>baz]" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<font face=sans-serif>[bar</font>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font face=\"sans-serif\">a</font>" but got "foo<span style=\"font-family:sans-serif\">a</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font face=\\"sans-serif\\">a</font>" but got "foo<span style=\\"font-family:sans-serif\\">a</span>"
 [PASS] [["delete",""],["inserttext","a"]] "foo<font face=sans-serif>[bar</font>baz]" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font face=sans-serif>[bar</font>baz]" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font face=sans-serif>[bar</font>baz]" queryCommandValue("delete") before
@@ -1023,7 +1023,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=4>[bar</font>baz]": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=4>[bar</font>baz]" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<font size=4>[bar</font>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\"4\">a</font>" but got "foo<span style=\"font-size:large\">a</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\\"4\\">a</font>" but got "foo<span style=\\"font-size:large\\">a</span>"
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=4>[bar</font>baz]" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=4>[bar</font>baz]" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=4>[bar</font>baz]" queryCommandValue("delete") before
@@ -1040,7 +1040,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=#0000FF>[bar</font>baz]": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=#0000FF>[bar</font>baz]" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<font color=#0000FF>[bar</font>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\"#0000ff\">a</font>" but got "foo<span style=\"color:rgb(0, 0, 255)\">a</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\\"#0000ff\\">a</font>" but got "foo<span style=\\"color:rgb(0, 0, 255)\\">a</span>"
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=#0000FF>[bar</font>baz]" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=#0000FF>[bar</font>baz]" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=#0000FF>[bar</font>baz]" queryCommandValue("delete") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/multitest_9001-last-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/multitest_9001-last-expected.txt
index 0e448531..3c33fbf5 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/multitest_9001-last-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/multitest_9001-last-expected.txt
@@ -26,7 +26,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=blue>[bar</font></a>baz]": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=blue>[bar</font></a>baz]" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=blue>[bar</font></a>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\"http://www.google.com\">a</a>" but got "fooa"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\\"http://www.google.com\\">a</a>" but got "fooa"
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=blue>[bar</font></a>baz]" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=blue>[bar</font></a>baz]" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=blue>[bar</font></a>baz]" queryCommandValue("delete") before
@@ -43,7 +43,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=blue><a href=http://www.google.com>[bar</a></font>baz]": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=blue><a href=http://www.google.com>[bar</a></font>baz]" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<font color=blue><a href=http://www.google.com>[bar</a></font>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\"http://www.google.com\">a</a>" but got "foo<span style=\"color:rgb(0, 0, 255)\">a</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\\"http://www.google.com\\">a</a>" but got "foo<span style=\\"color:rgb(0, 0, 255)\\">a</span>"
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=blue><a href=http://www.google.com>[bar</a></font>baz]" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=blue><a href=http://www.google.com>[bar</a></font>baz]" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=blue><a href=http://www.google.com>[bar</a></font>baz]" queryCommandValue("delete") before
@@ -60,7 +60,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=brown>[bar</font></a>baz]": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=brown>[bar</font></a>baz]" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=brown>[bar</font></a>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\"http://www.google.com\"><font color=\"#a52a2a\">a</font></a>" but got "foo<span style=\"color:rgb(165, 42, 42)\">a</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\\"http://www.google.com\\"><font color=\\"#a52a2a\\">a</font></a>" but got "foo<span style=\\"color:rgb(165, 42, 42)\\">a</span>"
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=brown>[bar</font></a>baz]" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=brown>[bar</font></a>baz]" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=brown>[bar</font></a>baz]" queryCommandValue("delete") before
@@ -77,7 +77,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=brown><a href=http://www.google.com>[bar</a></font>baz]": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=brown><a href=http://www.google.com>[bar</a></font>baz]" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<font color=brown><a href=http://www.google.com>[bar</a></font>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\"http://www.google.com\">a</a>" but got "fooa"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\\"http://www.google.com\\">a</a>" but got "fooa"
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=brown><a href=http://www.google.com>[bar</a></font>baz]" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=brown><a href=http://www.google.com>[bar</a></font>baz]" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font color=brown><a href=http://www.google.com>[bar</a></font>baz]" queryCommandValue("delete") before
@@ -94,7 +94,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=black>[bar</font></a>baz]": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=black>[bar</font></a>baz]" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=black>[bar</font></a>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\"http://www.google.com\"><font color=\"#000000\">a</font></a>" but got "fooa"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\\"http://www.google.com\\"><font color=\\"#000000\\">a</font></a>" but got "fooa"
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=black>[bar</font></a>baz]" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=black>[bar</font></a>baz]" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><font color=black>[bar</font></a>baz]" queryCommandValue("delete") before
@@ -111,7 +111,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><u>[bar</u></a>baz]": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><u>[bar</u></a>baz]" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><u>[bar</u></a>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\"http://www.google.com\">a</a>" but got "fooa"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\\"http://www.google.com\\">a</a>" but got "fooa"
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><u>[bar</u></a>baz]" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><u>[bar</u></a>baz]" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<a href=http://www.google.com><u>[bar</u></a>baz]" queryCommandValue("delete") before
@@ -128,7 +128,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<u><a href=http://www.google.com>[bar</a></u>baz]": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<u><a href=http://www.google.com>[bar</a></u>baz]" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<u><a href=http://www.google.com>[bar</a></u>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\"http://www.google.com\">a</a>" but got "foo<span style=\"text-decoration-line:underline\">a</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a href=\\"http://www.google.com\\">a</a>" but got "foo<span style=\\"text-decoration-line:underline\\">a</span>"
 [PASS] [["delete",""],["inserttext","a"]] "foo<u><a href=http://www.google.com>[bar</a></u>baz]" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<u><a href=http://www.google.com>[bar</a></u>baz]" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<u><a href=http://www.google.com>[bar</a></u>baz]" queryCommandValue("delete") before
@@ -145,7 +145,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub><font size=2>[bar</font></sub>baz]": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub><font size=2>[bar</font></sub>baz]" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<sub><font size=2>[bar</font></sub>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>a</sub>" but got "foo<span style=\"font-size:small\">a</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>a</sub>" but got "foo<span style=\\"font-size:small\\">a</span>"
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub><font size=2>[bar</font></sub>baz]" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub><font size=2>[bar</font></sub>baz]" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub><font size=2>[bar</font></sub>baz]" queryCommandValue("delete") before
@@ -162,7 +162,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=2><sub>[bar</sub></font>baz]": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=2><sub>[bar</sub></font>baz]" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<font size=2><sub>[bar</sub></font>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\"1\"><sub>a</sub></font>" but got "foo<span style=\"font-size:10.8333px\">a</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\\"1\\"><sub>a</sub></font>" but got "foo<span style=\\"font-size:10.8333px\\">a</span>"
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=2><sub>[bar</sub></font>baz]" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=2><sub>[bar</sub></font>baz]" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=2><sub>[bar</sub></font>baz]" queryCommandValue("delete") before
@@ -179,7 +179,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub><font size=3>[bar</font></sub>baz]": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub><font size=3>[bar</font></sub>baz]" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<sub><font size=3>[bar</font></sub>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\"3\"><sub>a</sub></font>" but got "fooa"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\\"3\\"><sub>a</sub></font>" but got "fooa"
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub><font size=3>[bar</font></sub>baz]" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub><font size=3>[bar</font></sub>baz]" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<sub><font size=3>[bar</font></sub>baz]" queryCommandValue("delete") before
@@ -196,7 +196,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=3><sub>[bar</sub></font>baz]": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=3><sub>[bar</sub></font>baz]" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "foo<font size=3><sub>[bar</sub></font>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>a</sub>" but got "foo<span style=\"font-size:13.3333px\">a</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>a</sub>" but got "foo<span style=\\"font-size:13.3333px\\">a</span>"
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=3><sub>[bar</sub></font>baz]" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=3><sub>[bar</sub></font>baz]" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "foo<font size=3><sub>[bar</sub></font>baz]" queryCommandValue("delete") before
@@ -213,7 +213,7 @@
 [PASS] [["delete",""],["inserttext","a"]] "<blockquote><font color=blue>[foo]</font></blockquote>": execCommand("inserttext", false, "a") return value
 [PASS] [["delete",""],["inserttext","a"]] "<blockquote><font color=blue>[foo]</font></blockquote>" checks for modifications to non-editable content
 [FAIL] [["delete",""],["inserttext","a"]] "<blockquote><font color=blue>[foo]</font></blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><font color=\"blue\">a</font></blockquote>" but got "<blockquote><span style=\"color:rgb(0, 0, 255)\">a</span></blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote><font color=\\"blue\\">a</font></blockquote>" but got "<blockquote><span style=\\"color:rgb(0, 0, 255)\\">a</span></blockquote>"
 [PASS] [["delete",""],["inserttext","a"]] "<blockquote><font color=blue>[foo]</font></blockquote>" queryCommandIndeterm("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "<blockquote><font color=blue>[foo]</font></blockquote>" queryCommandState("delete") before
 [PASS] [["delete",""],["inserttext","a"]] "<blockquote><font color=blue>[foo]</font></blockquote>" queryCommandValue("delete") before
@@ -350,7 +350,7 @@
 [PASS] [["styleWithCSS","false"],["bold",""],["inserttext","d"]] "<div><b><i>abc[]<br></i></b></div>": execCommand("inserttext", false, "d") return value
 [PASS] [["styleWithCSS","false"],["bold",""],["inserttext","d"]] "<div><b><i>abc[]<br></i></b></div>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["bold",""],["inserttext","d"]] "<div><b><i>abc[]<br></i></b></div>" compare innerHTML
-  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div><i style=\"\"><b>abc</b>d<br></i></div>" not in array ["<div><b><i>abc</i></b><i>d</i></div>", "<div><b><i>abc</i></b><i>d<br></i></div>", "<div><b><i>abc</i></b><i>d</i><br></div>"]
+  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div><i style=\\"\\"><b>abc</b>d<br></i></div>" not in array ["<div><b><i>abc</i></b><i>d</i></div>", "<div><b><i>abc</i></b><i>d<br></i></div>", "<div><b><i>abc</i></b><i>d</i><br></div>"]
 [PASS] [["styleWithCSS","false"],["bold",""],["inserttext","d"]] "<div><b><i>abc[]<br></i></b></div>" queryCommandIndeterm("bold") before
 [PASS] [["styleWithCSS","false"],["bold",""],["inserttext","d"]] "<div><b><i>abc[]<br></i></b></div>" queryCommandState("bold") before
 [FAIL] [["styleWithCSS","false"],["bold",""],["inserttext","d"]] "<div><b><i>abc[]<br></i></b></div>" queryCommandValue("bold") before
@@ -364,7 +364,7 @@
 [PASS] [["styleWithCSS","false"],["bold",""],["inserttext","d"]] "<div><b><i>abc[]</i><br></b></div>": execCommand("inserttext", false, "d") return value
 [PASS] [["styleWithCSS","false"],["bold",""],["inserttext","d"]] "<div><b><i>abc[]</i><br></b></div>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["bold",""],["inserttext","d"]] "<div><b><i>abc[]</i><br></b></div>" compare innerHTML
-  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div><i style=\"\"><b>abc</b>d</i><br></div>" not in array ["<div><b><i>abc</i></b><i>d</i></div>", "<div><b><i>abc</i></b><i>d<br></i></div>", "<div><b><i>abc</i></b><i>d</i><br></div>"]
+  assert_in_array: Unexpected innerHTML (after normalizing inline style) value "<div><i style=\\"\\"><b>abc</b>d</i><br></div>" not in array ["<div><b><i>abc</i></b><i>d</i></div>", "<div><b><i>abc</i></b><i>d<br></i></div>", "<div><b><i>abc</i></b><i>d</i><br></div>"]
 [PASS] [["styleWithCSS","false"],["bold",""],["inserttext","d"]] "<div><b><i>abc[]</i><br></b></div>" queryCommandIndeterm("bold") before
 [PASS] [["styleWithCSS","false"],["bold",""],["inserttext","d"]] "<div><b><i>abc[]</i><br></b></div>" queryCommandState("bold") before
 [FAIL] [["styleWithCSS","false"],["bold",""],["inserttext","d"]] "<div><b><i>abc[]</i><br></b></div>" queryCommandValue("bold") before
@@ -378,7 +378,7 @@
 [PASS] [["styleWithCSS","false"],["bold",""],["inserttext","d"]] "<div><b><i>abc[]<br></i><br></b></div>": execCommand("inserttext", false, "d") return value
 [PASS] [["styleWithCSS","false"],["bold",""],["inserttext","d"]] "<div><b><i>abc[]<br></i><br></b></div>" checks for modifications to non-editable content
 [FAIL] [["styleWithCSS","false"],["bold",""],["inserttext","d"]] "<div><b><i>abc[]<br></i><br></b></div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><b><i>abc</i></b><i>d<br></i><b><br></b></div>" but got "<div><i style=\"\"><b>abc</b>d<br></i><br></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div><b><i>abc</i></b><i>d<br></i><b><br></b></div>" but got "<div><i style=\\"\\"><b>abc</b>d<br></i><br></div>"
 [PASS] [["styleWithCSS","false"],["bold",""],["inserttext","d"]] "<div><b><i>abc[]<br></i><br></b></div>" queryCommandIndeterm("bold") before
 [PASS] [["styleWithCSS","false"],["bold",""],["inserttext","d"]] "<div><b><i>abc[]<br></i><br></b></div>" queryCommandState("bold") before
 [FAIL] [["styleWithCSS","false"],["bold",""],["inserttext","d"]] "<div><b><i>abc[]<br></i><br></b></div>" queryCommandValue("bold") before
@@ -552,98 +552,98 @@
 [PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"],["inserttext","g"]] "<div>abc{<b><i>def</i></b>g]hi</div>": execCommand("inserttext", false, "g") return value
 [PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"],["inserttext","g"]] "<div>abc{<b><i>def</i></b>g]hi</div>" checks for modifications to non-editable content
 [PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"],["inserttext","g"]] "<div>abc{<b><i>def</i></b>g]hi</div>" compare innerHTML
-[PASS] [["delete",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">de]f</i></b>ghi</div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">de]f</i></b>ghi</div>": execCommand("inserttext", false, "d") return value
-[PASS] [["delete",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">de]f</i></b>ghi</div>": execCommand("inserttext", false, "e") return value
-[PASS] [["delete",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">de]f</i></b>ghi</div>" checks for modifications to non-editable content
-[PASS] [["delete",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">de]f</i></b>ghi</div>" compare innerHTML
-[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">de]f</i></b>ghi</div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">de]f</i></b>ghi</div>": execCommand("inserttext", false, "d") return value
-[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">de]f</i></b>ghi</div>": execCommand("inserttext", false, "e") return value
-[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">de]f</i></b>ghi</div>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">de]f</i></b>ghi</div>" compare innerHTML
-[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>": execCommand("inserttext", false, "d") return value
-[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>": execCommand("inserttext", false, "e") return value
-[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>": execCommand("inserttext", false, "f") return value
-[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>" checks for modifications to non-editable content
-[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>" compare innerHTML
-[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>": execCommand("inserttext", false, "d") return value
-[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>": execCommand("inserttext", false, "e") return value
-[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>": execCommand("inserttext", false, "f") return value
-[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>" compare innerHTML
-[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "d") return value
-[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "e") return value
-[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "f") return value
-[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>" checks for modifications to non-editable content
-[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>" compare innerHTML
-[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "d") return value
-[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "e") return value
-[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "f") return value
-[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>" compare innerHTML
-[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("delete", false, "") return value
-[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "d") return value
-[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "e") return value
-[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "f") return value
-[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>" checks for modifications to non-editable content
-[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>" compare innerHTML
-[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("forwarddelete", false, "") return value
-[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "d") return value
-[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "e") return value
-[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "f") return value
-[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>" checks for modifications to non-editable content
-[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>" compare innerHTML
-[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">de]f</i></b>ghi</div>": execCommand("insertparagraph", false, "") return value
-[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">de]f</i></b>ghi</div>": execCommand("inserttext", false, "d") return value
-[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">de]f</i></b>ghi</div>": execCommand("inserttext", false, "e") return value
-[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">de]f</i></b>ghi</div>" checks for modifications to non-editable content
-[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">de]f</i></b>ghi</div>" compare innerHTML
-[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">de]f</i></b>ghi</div>": execCommand("insertlinebreak", false, "") return value
-[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">de]f</i></b>ghi</div>": execCommand("inserttext", false, "d") return value
-[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">de]f</i></b>ghi</div>": execCommand("inserttext", false, "e") return value
-[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">de]f</i></b>ghi</div>" checks for modifications to non-editable content
-[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">de]f</i></b>ghi</div>" compare innerHTML
-[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>": execCommand("insertparagraph", false, "") return value
-[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>": execCommand("inserttext", false, "d") return value
-[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>": execCommand("inserttext", false, "e") return value
-[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>": execCommand("inserttext", false, "f") return value
-[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>" checks for modifications to non-editable content
-[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>" compare innerHTML
-[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>": execCommand("insertlinebreak", false, "") return value
-[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>": execCommand("inserttext", false, "d") return value
-[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>": execCommand("inserttext", false, "e") return value
-[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>": execCommand("inserttext", false, "f") return value
-[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>" checks for modifications to non-editable content
-[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def]</i></b>ghi</div>" compare innerHTML
-[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("insertparagraph", false, "") return value
-[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "d") return value
-[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "e") return value
-[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "f") return value
-[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>" checks for modifications to non-editable content
-[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>" compare innerHTML
-[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("insertlinebreak", false, "") return value
-[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "d") return value
-[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "e") return value
-[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "f") return value
-[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>" checks for modifications to non-editable content
-[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>" compare innerHTML
-[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("insertparagraph", false, "") return value
-[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "d") return value
-[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "e") return value
-[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "f") return value
-[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>" checks for modifications to non-editable content
-[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>" compare innerHTML
-[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("insertlinebreak", false, "") return value
-[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "d") return value
-[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "e") return value
-[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>": execCommand("inserttext", false, "f") return value
-[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>" checks for modifications to non-editable content
-[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\"/img/lion.svg\">def</i></b>]ghi</div>" compare innerHTML
+[PASS] [["delete",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">de]f</i></b>ghi</div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">de]f</i></b>ghi</div>": execCommand("inserttext", false, "d") return value
+[PASS] [["delete",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">de]f</i></b>ghi</div>": execCommand("inserttext", false, "e") return value
+[PASS] [["delete",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">de]f</i></b>ghi</div>" checks for modifications to non-editable content
+[PASS] [["delete",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">de]f</i></b>ghi</div>" compare innerHTML
+[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">de]f</i></b>ghi</div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">de]f</i></b>ghi</div>": execCommand("inserttext", false, "d") return value
+[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">de]f</i></b>ghi</div>": execCommand("inserttext", false, "e") return value
+[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">de]f</i></b>ghi</div>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">de]f</i></b>ghi</div>" compare innerHTML
+[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>": execCommand("inserttext", false, "d") return value
+[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>": execCommand("inserttext", false, "e") return value
+[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>": execCommand("inserttext", false, "f") return value
+[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>" checks for modifications to non-editable content
+[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>" compare innerHTML
+[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>": execCommand("inserttext", false, "d") return value
+[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>": execCommand("inserttext", false, "e") return value
+[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>": execCommand("inserttext", false, "f") return value
+[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>" compare innerHTML
+[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "d") return value
+[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "e") return value
+[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "f") return value
+[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>" checks for modifications to non-editable content
+[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>" compare innerHTML
+[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "d") return value
+[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "e") return value
+[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "f") return value
+[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>" compare innerHTML
+[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("delete", false, "") return value
+[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "d") return value
+[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "e") return value
+[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "f") return value
+[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>" checks for modifications to non-editable content
+[PASS] [["delete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>" compare innerHTML
+[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("forwarddelete", false, "") return value
+[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "d") return value
+[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "e") return value
+[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "f") return value
+[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>" checks for modifications to non-editable content
+[PASS] [["forwarddelete",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>" compare innerHTML
+[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">de]f</i></b>ghi</div>": execCommand("insertparagraph", false, "") return value
+[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">de]f</i></b>ghi</div>": execCommand("inserttext", false, "d") return value
+[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">de]f</i></b>ghi</div>": execCommand("inserttext", false, "e") return value
+[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">de]f</i></b>ghi</div>" checks for modifications to non-editable content
+[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">de]f</i></b>ghi</div>" compare innerHTML
+[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">de]f</i></b>ghi</div>": execCommand("insertlinebreak", false, "") return value
+[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">de]f</i></b>ghi</div>": execCommand("inserttext", false, "d") return value
+[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">de]f</i></b>ghi</div>": execCommand("inserttext", false, "e") return value
+[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">de]f</i></b>ghi</div>" checks for modifications to non-editable content
+[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">de]f</i></b>ghi</div>" compare innerHTML
+[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>": execCommand("insertparagraph", false, "") return value
+[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>": execCommand("inserttext", false, "d") return value
+[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>": execCommand("inserttext", false, "e") return value
+[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>": execCommand("inserttext", false, "f") return value
+[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>" checks for modifications to non-editable content
+[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>" compare innerHTML
+[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>": execCommand("insertlinebreak", false, "") return value
+[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>": execCommand("inserttext", false, "d") return value
+[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>": execCommand("inserttext", false, "e") return value
+[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>": execCommand("inserttext", false, "f") return value
+[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>" checks for modifications to non-editable content
+[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def]</i></b>ghi</div>" compare innerHTML
+[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("insertparagraph", false, "") return value
+[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "d") return value
+[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "e") return value
+[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "f") return value
+[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>" checks for modifications to non-editable content
+[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>" compare innerHTML
+[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("insertlinebreak", false, "") return value
+[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "d") return value
+[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "e") return value
+[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "f") return value
+[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>" checks for modifications to non-editable content
+[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc[<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>" compare innerHTML
+[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("insertparagraph", false, "") return value
+[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "d") return value
+[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "e") return value
+[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "f") return value
+[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>" checks for modifications to non-editable content
+[PASS] [["insertparagraph",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>" compare innerHTML
+[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("insertlinebreak", false, "") return value
+[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "d") return value
+[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "e") return value
+[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>": execCommand("inserttext", false, "f") return value
+[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>" checks for modifications to non-editable content
+[PASS] [["insertlinebreak",""],["inserttext","d"],["inserttext","e"],["inserttext","f"]] "<div>abc{<b><i><img src=\\"/img/lion.svg\\">def</i></b>]ghi</div>" compare innerHTML
 [PASS] [["delete",""],["inserttext","c"],["inserttext","d"],["inserttext","e"]] "<div>ab[c<b><i>de]f</i></b>ghi</div>": execCommand("delete", false, "") return value
 [PASS] [["delete",""],["inserttext","c"],["inserttext","d"],["inserttext","e"]] "<div>ab[c<b><i>de]f</i></b>ghi</div>": execCommand("inserttext", false, "c") return value
 [PASS] [["delete",""],["inserttext","c"],["inserttext","d"],["inserttext","e"]] "<div>ab[c<b><i>de]f</i></b>ghi</div>": execCommand("inserttext", false, "d") return value
@@ -662,14 +662,14 @@
 [PASS] [["insertparagraph",""],["inserttext","c"],["inserttext","d"],["inserttext","e"]] "<div>ab[c<b><i>de]f</i></b>ghi</div>": execCommand("inserttext", false, "e") return value
 [PASS] [["insertparagraph",""],["inserttext","c"],["inserttext","d"],["inserttext","e"]] "<div>ab[c<b><i>de]f</i></b>ghi</div>" checks for modifications to non-editable content
 [FAIL] [["insertparagraph",""],["inserttext","c"],["inserttext","d"],["inserttext","e"]] "<div>ab[c<b><i>de]f</i></b>ghi</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>ab</div><div><b><i>cdef</i></b>ghi</div>" but got "<div>ab</div><div>cde<i style=\"font-weight:bold\">f</i>ghi</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>ab</div><div><b><i>cdef</i></b>ghi</div>" but got "<div>ab</div><div>cde<i style=\\"font-weight:bold\\">f</i>ghi</div>"
 [PASS] [["insertlinebreak",""],["inserttext","c"],["inserttext","d"],["inserttext","e"]] "<div>ab[c<b><i>de]f</i></b>ghi</div>": execCommand("insertlinebreak", false, "") return value
 [PASS] [["insertlinebreak",""],["inserttext","c"],["inserttext","d"],["inserttext","e"]] "<div>ab[c<b><i>de]f</i></b>ghi</div>": execCommand("inserttext", false, "c") return value
 [PASS] [["insertlinebreak",""],["inserttext","c"],["inserttext","d"],["inserttext","e"]] "<div>ab[c<b><i>de]f</i></b>ghi</div>": execCommand("inserttext", false, "d") return value
 [PASS] [["insertlinebreak",""],["inserttext","c"],["inserttext","d"],["inserttext","e"]] "<div>ab[c<b><i>de]f</i></b>ghi</div>": execCommand("inserttext", false, "e") return value
 [PASS] [["insertlinebreak",""],["inserttext","c"],["inserttext","d"],["inserttext","e"]] "<div>ab[c<b><i>de]f</i></b>ghi</div>" checks for modifications to non-editable content
 [FAIL] [["insertlinebreak",""],["inserttext","c"],["inserttext","d"],["inserttext","e"]] "<div>ab[c<b><i>de]f</i></b>ghi</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>ab<br><b><i>cdef</i></b>ghi</div>" but got "<div>ab<br>cde<i style=\"font-weight:bold\">f</i>ghi</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>ab<br><b><i>cdef</i></b>ghi</div>" but got "<div>ab<br>cde<i style=\\"font-weight:bold\\">f</i>ghi</div>"
 [PASS] [["delete",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i>de]f</i></b>ghi</div>": execCommand("delete", false, "") return value
 [PASS] [["delete",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i>de]f</i></b>ghi</div>": execCommand("inserttext", false, "d") return value
 [PASS] [["delete",""],["inserttext","d"],["inserttext","e"]] "<div>abc[<b><i>de]f</i></b>ghi</div>": execCommand("inserttext", false, "e") return value
@@ -810,86 +810,86 @@
 [PASS] [["stylewithcss","false"],["fontName","monospace"],["foreColor","#ff0000"],["fontSize","7"],["backColor","#00dddd"],["insertText","d"]] "abc[]ef": execCommand("insertText", false, "d") return value
 [PASS] [["stylewithcss","false"],["fontName","monospace"],["foreColor","#ff0000"],["fontSize","7"],["backColor","#00dddd"],["insertText","d"]] "abc[]ef" checks for modifications to non-editable content
 [PASS] [["stylewithcss","false"],["fontName","monospace"],["foreColor","#ff0000"],["fontSize","7"],["backColor","#00dddd"],["insertText","d"]] "abc[]ef" compare innerHTML
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("delete", false, "") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("insertText", false, "A") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("delete", false, "") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("insertText", false, "A") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("delete", false, "") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("insertText", false, "A") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>": execCommand("delete", false, "") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>": execCommand("insertText", false, "A") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>": execCommand("delete", false, "") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>": execCommand("insertText", false, "A") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo</span><br></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>": execCommand("delete", false, "") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>": execCommand("insertText", false, "A") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo<br></span></p><span style=\"color:rgb(255, 0, 0)\">[]bar</span>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<span style=\"color:rgb(0, 0, 255)\">foo</span><br><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<span style=\"color:rgb(0, 0, 255)\">foo</span><br><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("delete", false, "") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<span style=\"color:rgb(0, 0, 255)\">foo</span><br><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("insertText", false, "A") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<span style=\"color:rgb(0, 0, 255)\">foo</span><br><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<span style=\"color:rgb(0, 0, 255)\">foo</span><br><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<span style=\"color:rgb(0, 0, 255)\">foo<br></span><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<span style=\"color:rgb(0, 0, 255)\">foo<br></span><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("delete", false, "") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<span style=\"color:rgb(0, 0, 255)\">foo<br></span><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>": execCommand("insertText", false, "A") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<span style=\"color:rgb(0, 0, 255)\">foo<br></span><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<span style=\"color:rgb(0, 0, 255)\">foo<br></span><p><span style=\"color:rgb(255, 0, 0)\">[]bar</span></p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("forwarddelete", false, "") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("insertText", false, "A") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("forwarddelete", false, "") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("insertText", false, "A") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("forwarddelete", false, "") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("insertText", false, "A") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>": execCommand("forwarddelete", false, "") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>": execCommand("insertText", false, "A") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><span style=\"color:rgb(255, 0, 0)\">bar</span>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><span style=\"color:rgb(255, 0, 0)\">bar</span>": execCommand("forwarddelete", false, "") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><span style=\"color:rgb(255, 0, 0)\">bar</span>": execCommand("insertText", false, "A") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]</span><br></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>": execCommand("forwarddelete", false, "") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>": execCommand("insertText", false, "A") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\"color:rgb(0, 0, 255)\">foo[]<br></span></p><span style=\"color:rgb(255, 0, 0)\">bar</span>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<span style=\"color:rgb(0, 0, 255)\">foo[]</span><br><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<span style=\"color:rgb(0, 0, 255)\">foo[]</span><br><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("forwarddelete", false, "") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<span style=\"color:rgb(0, 0, 255)\">foo[]</span><br><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("insertText", false, "A") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<span style=\"color:rgb(0, 0, 255)\">foo[]</span><br><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<span style=\"color:rgb(0, 0, 255)\">foo[]</span><br><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<span style=\"color:rgb(0, 0, 255)\">foo[]<br></span><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<span style=\"color:rgb(0, 0, 255)\">foo[]<br></span><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("forwarddelete", false, "") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<span style=\"color:rgb(0, 0, 255)\">foo[]<br></span><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>": execCommand("insertText", false, "A") return value
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<span style=\"color:rgb(0, 0, 255)\">foo[]<br></span><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<span style=\"color:rgb(0, 0, 255)\">foo[]<br></span><p><span style=\"color:rgb(255, 0, 0)\">bar</span></p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("delete", false, "") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("insertText", false, "A") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("delete", false, "") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("insertText", false, "A") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("delete", false, "") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("insertText", false, "A") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>": execCommand("delete", false, "") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>": execCommand("insertText", false, "A") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>": execCommand("delete", false, "") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>": execCommand("insertText", false, "A") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>": execCommand("delete", false, "") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>": execCommand("insertText", false, "A") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("delete", false, "") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("insertText", false, "A") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<span style=\\"color:rgb(0, 0, 255)\\">foo</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<span style=\\"color:rgb(0, 0, 255)\\">foo<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<span style=\\"color:rgb(0, 0, 255)\\">foo<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("delete", false, "") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<span style=\\"color:rgb(0, 0, 255)\\">foo<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>": execCommand("insertText", false, "A") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<span style=\\"color:rgb(0, 0, 255)\\">foo<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["delete",""],["insertText","A"]] "<span style=\\"color:rgb(0, 0, 255)\\">foo<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">[]bar</span></p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("forwarddelete", false, "") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("insertText", false, "A") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("forwarddelete", false, "") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("insertText", false, "A") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("forwarddelete", false, "") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("insertText", false, "A") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>": execCommand("forwarddelete", false, "") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>": execCommand("insertText", false, "A") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>": execCommand("forwarddelete", false, "") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>": execCommand("insertText", false, "A") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>": execCommand("forwarddelete", false, "") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>": execCommand("insertText", false, "A") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<p><span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span></p><span style=\\"color:rgb(255, 0, 0)\\">bar</span>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("forwarddelete", false, "") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("insertText", false, "A") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]</span><br><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("forwarddelete", false, "") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>": execCommand("insertText", false, "A") return value
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["forwarddelete",""],["insertText","A"]] "<span style=\\"color:rgb(0, 0, 255)\\">foo[]<br></span><p><span style=\\"color:rgb(255, 0, 0)\\">bar</span></p>" compare innerHTML
 [PASS] [["styleWithCSS","false"],["bold",""],["italic",""],["insertText","b"]] "a[]c": execCommand("styleWithCSS", false, "false") return value
 [PASS] [["styleWithCSS","false"],["bold",""],["italic",""],["insertText","b"]] "a[]c": execCommand("bold", false, "") return value
 [PASS] [["styleWithCSS","false"],["bold",""],["italic",""],["insertText","b"]] "a[]c": execCommand("italic", false, "") return value
@@ -971,55 +971,55 @@
 [PASS] [["styleWithCSS","false"],["foreColor","#ff0000"],["bold",""],["fontSize","5"],["fontName","monospace"],["insertText","b"]] "a[]c": execCommand("insertText", false, "b") return value
 [PASS] [["styleWithCSS","false"],["foreColor","#ff0000"],["bold",""],["fontSize","5"],["fontName","monospace"],["insertText","b"]] "a[]c" checks for modifications to non-editable content
 [PASS] [["styleWithCSS","false"],["foreColor","#ff0000"],["bold",""],["fontSize","5"],["fontName","monospace"],["insertText","b"]] "a[]c" compare innerHTML
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\">a</font></p><p>[]c</p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\">a</font></p><p>[]c</p>": execCommand("delete", false, "") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\">a</font></p><p>[]c</p>": execCommand("fontSize", false, "5") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\">a</font></p><p>[]c</p>": execCommand("insertText", false, "b") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\">a</font></p><p>[]c</p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\">a</font></p><p>[]c</p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\"5\" color=\"#ff0000\">a</font></p><p>[]c</p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\"5\" color=\"#ff0000\">a</font></p><p>[]c</p>": execCommand("delete", false, "") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\"5\" color=\"#ff0000\">a</font></p><p>[]c</p>": execCommand("fontSize", false, "5") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\"5\" color=\"#ff0000\">a</font></p><p>[]c</p>": execCommand("foreColor", false, "#ff0000") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\"5\" color=\"#ff0000\">a</font></p><p>[]c</p>": execCommand("insertText", false, "b") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\"5\" color=\"#ff0000\">a</font></p><p>[]c</p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\"5\" color=\"#ff0000\">a</font></p><p>[]c</p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a</b></font></p><p>[]c</p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a</b></font></p><p>[]c</p>": execCommand("delete", false, "") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a</b></font></p><p>[]c</p>": execCommand("fontSize", false, "5") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a</b></font></p><p>[]c</p>": execCommand("insertText", false, "b") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a</b></font></p><p>[]c</p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a</b></font></p><p>[]c</p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a</b></font></p><p><i>[]c</i></p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a</b></font></p><p><i>[]c</i></p>": execCommand("delete", false, "") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a</b></font></p><p><i>[]c</i></p>": execCommand("fontSize", false, "5") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a</b></font></p><p><i>[]c</i></p>": execCommand("insertText", false, "b") return value
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a</b></font></p><p><i>[]c</i></p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a</b></font></p><p><i>[]c</i></p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\">a[]</font></p><p>c</p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\">a[]</font></p><p>c</p>": execCommand("forwardDelete", false, "") return value
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\">a[]</font></p><p>c</p>": execCommand("fontSize", false, "5") return value
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\">a[]</font></p><p>c</p>": execCommand("insertText", false, "b") return value
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\">a[]</font></p><p>c</p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\">a[]</font></p><p>c</p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\"5\" color=\"#ff0000\">a[]</font></p><p>c</p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\"5\" color=\"#ff0000\">a[]</font></p><p>c</p>": execCommand("forwardDelete", false, "") return value
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\"5\" color=\"#ff0000\">a[]</font></p><p>c</p>": execCommand("fontSize", false, "5") return value
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\"5\" color=\"#ff0000\">a[]</font></p><p>c</p>": execCommand("foreColor", false, "#ff0000") return value
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\"5\" color=\"#ff0000\">a[]</font></p><p>c</p>": execCommand("insertText", false, "b") return value
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\"5\" color=\"#ff0000\">a[]</font></p><p>c</p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\"5\" color=\"#ff0000\">a[]</font></p><p>c</p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a[]</b></font></p><p>c</p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a[]</b></font></p><p>c</p>": execCommand("forwardDelete", false, "") return value
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a[]</b></font></p><p>c</p>": execCommand("fontSize", false, "5") return value
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a[]</b></font></p><p>c</p>": execCommand("insertText", false, "b") return value
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a[]</b></font></p><p>c</p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a[]</b></font></p><p>c</p>" compare innerHTML
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a[]</b></font></p><p><i>c</i></p>": execCommand("styleWithCSS", false, "false") return value
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a[]</b></font></p><p><i>c</i></p>": execCommand("forwardDelete", false, "") return value
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a[]</b></font></p><p><i>c</i></p>": execCommand("fontSize", false, "5") return value
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a[]</b></font></p><p><i>c</i></p>": execCommand("insertText", false, "b") return value
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a[]</b></font></p><p><i>c</i></p>" checks for modifications to non-editable content
-[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\"5\"><b>a[]</b></font></p><p><i>c</i></p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\">a</font></p><p>[]c</p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\">a</font></p><p>[]c</p>": execCommand("delete", false, "") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\">a</font></p><p>[]c</p>": execCommand("fontSize", false, "5") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\">a</font></p><p>[]c</p>": execCommand("insertText", false, "b") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\">a</font></p><p>[]c</p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\">a</font></p><p>[]c</p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\\"5\\" color=\\"#ff0000\\">a</font></p><p>[]c</p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\\"5\\" color=\\"#ff0000\\">a</font></p><p>[]c</p>": execCommand("delete", false, "") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\\"5\\" color=\\"#ff0000\\">a</font></p><p>[]c</p>": execCommand("fontSize", false, "5") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\\"5\\" color=\\"#ff0000\\">a</font></p><p>[]c</p>": execCommand("foreColor", false, "#ff0000") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\\"5\\" color=\\"#ff0000\\">a</font></p><p>[]c</p>": execCommand("insertText", false, "b") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\\"5\\" color=\\"#ff0000\\">a</font></p><p>[]c</p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\\"5\\" color=\\"#ff0000\\">a</font></p><p>[]c</p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a</b></font></p><p>[]c</p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a</b></font></p><p>[]c</p>": execCommand("delete", false, "") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a</b></font></p><p>[]c</p>": execCommand("fontSize", false, "5") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a</b></font></p><p>[]c</p>": execCommand("insertText", false, "b") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a</b></font></p><p>[]c</p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a</b></font></p><p>[]c</p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a</b></font></p><p><i>[]c</i></p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a</b></font></p><p><i>[]c</i></p>": execCommand("delete", false, "") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a</b></font></p><p><i>[]c</i></p>": execCommand("fontSize", false, "5") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a</b></font></p><p><i>[]c</i></p>": execCommand("insertText", false, "b") return value
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a</b></font></p><p><i>[]c</i></p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["delete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a</b></font></p><p><i>[]c</i></p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\">a[]</font></p><p>c</p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\">a[]</font></p><p>c</p>": execCommand("forwardDelete", false, "") return value
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\">a[]</font></p><p>c</p>": execCommand("fontSize", false, "5") return value
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\">a[]</font></p><p>c</p>": execCommand("insertText", false, "b") return value
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\">a[]</font></p><p>c</p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\">a[]</font></p><p>c</p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\\"5\\" color=\\"#ff0000\\">a[]</font></p><p>c</p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\\"5\\" color=\\"#ff0000\\">a[]</font></p><p>c</p>": execCommand("forwardDelete", false, "") return value
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\\"5\\" color=\\"#ff0000\\">a[]</font></p><p>c</p>": execCommand("fontSize", false, "5") return value
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\\"5\\" color=\\"#ff0000\\">a[]</font></p><p>c</p>": execCommand("foreColor", false, "#ff0000") return value
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\\"5\\" color=\\"#ff0000\\">a[]</font></p><p>c</p>": execCommand("insertText", false, "b") return value
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\\"5\\" color=\\"#ff0000\\">a[]</font></p><p>c</p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["foreColor","#ff0000"],["insertText","b"]] "<p><font size=\\"5\\" color=\\"#ff0000\\">a[]</font></p><p>c</p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a[]</b></font></p><p>c</p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a[]</b></font></p><p>c</p>": execCommand("forwardDelete", false, "") return value
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a[]</b></font></p><p>c</p>": execCommand("fontSize", false, "5") return value
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a[]</b></font></p><p>c</p>": execCommand("insertText", false, "b") return value
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a[]</b></font></p><p>c</p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a[]</b></font></p><p>c</p>" compare innerHTML
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a[]</b></font></p><p><i>c</i></p>": execCommand("styleWithCSS", false, "false") return value
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a[]</b></font></p><p><i>c</i></p>": execCommand("forwardDelete", false, "") return value
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a[]</b></font></p><p><i>c</i></p>": execCommand("fontSize", false, "5") return value
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a[]</b></font></p><p><i>c</i></p>": execCommand("insertText", false, "b") return value
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a[]</b></font></p><p><i>c</i></p>" checks for modifications to non-editable content
+[PASS] [["styleWithCSS","false"],["forwardDelete",""],["fontSize","5"],["insertText","b"]] "<p><font size=\\"5\\"><b>a[]</b></font></p><p><i>c</i></p>" compare innerHTML
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/outdent_1-1000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/outdent_1-1000-expected.txt
index 1f65c85..3d5ec00 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/outdent_1-1000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/outdent_1-1000-expected.txt
@@ -38,559 +38,559 @@
 [PASS] [["outdent",""]] "<blockquote><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") after
 [PASS] [["outdent",""]] "<blockquote><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") after
 [PASS] [["outdent",""]] "<blockquote><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foobar</p><blockquote><p>baz</p></blockquote><p>extra</p>" but got "foobar<br><blockquote style=\"margin-right:0px\" dir=\"ltr\"><p>baz</p></blockquote><p>extra</p>"
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
-[FAIL] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foobar</p><blockquote><p>baz</p></blockquote><p>extra</p>" but got "foobar<br><blockquote style=\\"margin-right:0px\\" dir=\\"ltr\\"><p>baz</p></blockquote><p>extra</p>"
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
+[FAIL] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foobar</p><blockquote><p>baz</p></blockquote><p>extra</p>" but got "foobar<br><blockquote style=\"margin-right:0px\" dir=\"ltr\"><p>baz</p></blockquote><p>extra</p>"
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" compare innerHTML
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foobar</p><blockquote><p>baz</p></blockquote><p>extra</p>" but got "foobar<br><blockquote style=\\"margin-right:0px\\" dir=\\"ltr\\"><p>baz</p></blockquote><p>extra</p>"
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" compare innerHTML
   assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foobar</p><p>baz</p><p>extra</p>" but got "foobar<br><p>baz</p><p>extra</p>"
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" compare innerHTML
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" compare innerHTML
   assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foobar</p><p>baz</p><p>extra</p>" but got "foobar<br><p>baz</p><p>extra</p>"
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" compare innerHTML
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" compare innerHTML
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" compare innerHTML
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" compare innerHTML
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\"margin-right: 0px;\" dir=\"ltr\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") after
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p style=\"margin-left: 40px\">baz</p><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p style=\"margin-left: 40px\">baz</p><p>extra" checks for modifications to non-editable content
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p style=\"margin-left: 40px\">baz</p><p>extra" compare innerHTML
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p style=\"margin-left: 40px\">baz</p><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p style=\"margin-left: 40px\">baz</p><p>extra" queryCommandState("outdent") before
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p style=\"margin-left: 40px\">baz</p><p>extra" queryCommandValue("outdent") before
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p style=\"margin-left: 40px\">baz</p><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p style=\"margin-left: 40px\">baz</p><p>extra" queryCommandState("outdent") after
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p style=\"margin-left: 40px\">baz</p><p>extra" queryCommandValue("outdent") after
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p style=\"margin-left: 40px\">b]az</p><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p style=\"margin-left: 40px\">b]az</p><p>extra" checks for modifications to non-editable content
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p style=\"margin-left: 40px\">b]az</p><p>extra" compare innerHTML
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p style=\"margin-left: 40px\">b]az</p><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p style=\"margin-left: 40px\">b]az</p><p>extra" queryCommandState("outdent") before
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p style=\"margin-left: 40px\">b]az</p><p>extra" queryCommandValue("outdent") before
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p style=\"margin-left: 40px\">b]az</p><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p style=\"margin-left: 40px\">b]az</p><p>extra" queryCommandState("outdent") after
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p style=\"margin-left: 40px\">b]az</p><p>extra" queryCommandValue("outdent") after
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p>baz</p><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p>baz</p><p>extra" checks for modifications to non-editable content
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p>baz</p><p>extra" compare innerHTML
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p>baz</p><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p>baz</p><p>extra" queryCommandState("outdent") before
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p>baz</p><p>extra" queryCommandValue("outdent") before
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p>baz</p><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p>baz</p><p>extra" queryCommandState("outdent") after
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar]</p><p>baz</p><p>extra" queryCommandValue("outdent") after
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p>b]az</p><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p>b]az</p><p>extra" checks for modifications to non-editable content
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p>b]az</p><p>extra" compare innerHTML
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p>b]az</p><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p>b]az</p><p>extra" queryCommandState("outdent") before
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p>b]az</p><p>extra" queryCommandValue("outdent") before
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p>b]az</p><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p>b]az</p><p>extra" queryCommandState("outdent") after
-[PASS] [["outdent",""]] "<p style=\"margin-left: 40px\">foo[bar</p><p>b]az</p><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"webkit-indent-blockquote\"><p>foobar</p><blockquote><p>baz</p></blockquote></div><p>extra</p>" but got "foobar<br><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>baz</p></blockquote><p>extra</p>"
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"webkit-indent-blockquote\"><p>foobar</p><blockquote><p>baz</p></blockquote></div><p>extra</p>" but got "foobar<br><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>baz</p></blockquote><p>extra</p>"
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("defaultparagraphseparator", false, "p") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"webkit-indent-blockquote\"><p>foobar</p><blockquote><p>baz</p></blockquote></div><p>extra</p>" but got "foobar<br><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>baz</p></blockquote><p>extra</p>"
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("defaultparagraphseparator", false, "p") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"webkit-indent-blockquote\"><p>foobar</p><blockquote><p>baz</p></blockquote></div><p>extra</p>" but got "foobar<br><blockquote class=\"webkit-indent-blockquote\" style=\"margin:0 0 0 40px; border:none; padding:0px\"><p>baz</p></blockquote><p>extra</p>"
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"webkit-indent-blockquote\"><p>foobar</p><p>baz</p></div><p>extra</p>" but got "foobar<br><p>baz</p><p>extra</p>"
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"webkit-indent-blockquote\"><p>foobar</p><p>baz</p></div><p>extra</p>" but got "foobar<br><p>baz</p><p>extra</p>"
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("defaultparagraphseparator", false, "p") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"webkit-indent-blockquote\"><p>foobar</p><p>baz</p></div><p>extra</p>" but got "foobar<br><p>baz</p><p>extra</p>"
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("defaultparagraphseparator", false, "p") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"webkit-indent-blockquote\"><p>foobar</p><p>baz</p></div><p>extra</p>" but got "foobar<br><p>baz</p><p>extra</p>"
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"webkit-indent-blockquote\"><p>foobar</p></div><p>baz</p><p>extra</p>" but got "<p>foobar</p><p>baz</p><p>extra</p>"
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"webkit-indent-blockquote\"><p>foobar</p></div><p>baz</p><p>extra</p>" but got "<p>foobar</p><p>baz</p><p>extra</p>"
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("defaultparagraphseparator", false, "p") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"webkit-indent-blockquote\"><p>foobar</p></div><p>baz</p><p>extra</p>" but got "<p>foobar</p><p>baz</p><p>extra</p>"
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("defaultparagraphseparator", false, "p") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"webkit-indent-blockquote\"><p>foobar</p></div><p>baz</p><p>extra</p>" but got "<p>foobar</p><p>baz</p><p>extra</p>"
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"webkit-indent-blockquote\"><p>foobar</p></div><p>baz</p><p>extra</p>" but got "<p>foobar</p><p>baz</p><p>extra</p>"
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"webkit-indent-blockquote\"><p>foobar</p></div><p>baz</p><p>extra</p>" but got "<p>foobar</p><p>baz</p><p>extra</p>"
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("defaultparagraphseparator", false, "p") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"webkit-indent-blockquote\"><p>foobar</p></div><p>baz</p><p>extra</p>" but got "<p>foobar</p><p>baz</p><p>extra</p>"
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("defaultparagraphseparator", false, "p") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("outdent", false, "") return value
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\"webkit-indent-blockquote\"><p>foobar</p></div><p>baz</p><p>extra</p>" but got "<p>foobar</p><p>baz</p><p>extra</p>"
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") before
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") after
-[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\"webkit-indent-blockquote\" style=\"margin: 0 0 0 40px; border: none; padding: 0px;\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" compare innerHTML
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" compare innerHTML
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" compare innerHTML
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","true"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" compare innerHTML
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","false"],["outdent",""]] "<blockquote style=\\"margin-right: 0px;\\" dir=\\"ltr\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") after
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p style=\\"margin-left: 40px\\">baz</p><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p style=\\"margin-left: 40px\\">baz</p><p>extra" checks for modifications to non-editable content
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p style=\\"margin-left: 40px\\">baz</p><p>extra" compare innerHTML
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p style=\\"margin-left: 40px\\">baz</p><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p style=\\"margin-left: 40px\\">baz</p><p>extra" queryCommandState("outdent") before
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p style=\\"margin-left: 40px\\">baz</p><p>extra" queryCommandValue("outdent") before
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p style=\\"margin-left: 40px\\">baz</p><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p style=\\"margin-left: 40px\\">baz</p><p>extra" queryCommandState("outdent") after
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p style=\\"margin-left: 40px\\">baz</p><p>extra" queryCommandValue("outdent") after
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p style=\\"margin-left: 40px\\">b]az</p><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p style=\\"margin-left: 40px\\">b]az</p><p>extra" checks for modifications to non-editable content
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p style=\\"margin-left: 40px\\">b]az</p><p>extra" compare innerHTML
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p style=\\"margin-left: 40px\\">b]az</p><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p style=\\"margin-left: 40px\\">b]az</p><p>extra" queryCommandState("outdent") before
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p style=\\"margin-left: 40px\\">b]az</p><p>extra" queryCommandValue("outdent") before
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p style=\\"margin-left: 40px\\">b]az</p><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p style=\\"margin-left: 40px\\">b]az</p><p>extra" queryCommandState("outdent") after
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p style=\\"margin-left: 40px\\">b]az</p><p>extra" queryCommandValue("outdent") after
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p>baz</p><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p>baz</p><p>extra" checks for modifications to non-editable content
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p>baz</p><p>extra" compare innerHTML
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p>baz</p><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p>baz</p><p>extra" queryCommandState("outdent") before
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p>baz</p><p>extra" queryCommandValue("outdent") before
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p>baz</p><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p>baz</p><p>extra" queryCommandState("outdent") after
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar]</p><p>baz</p><p>extra" queryCommandValue("outdent") after
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p>b]az</p><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p>b]az</p><p>extra" checks for modifications to non-editable content
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p>b]az</p><p>extra" compare innerHTML
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p>b]az</p><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p>b]az</p><p>extra" queryCommandState("outdent") before
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p>b]az</p><p>extra" queryCommandValue("outdent") before
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p>b]az</p><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p>b]az</p><p>extra" queryCommandState("outdent") after
+[PASS] [["outdent",""]] "<p style=\\"margin-left: 40px\\">foo[bar</p><p>b]az</p><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"webkit-indent-blockquote\\"><p>foobar</p><blockquote><p>baz</p></blockquote></div><p>extra</p>" but got "foobar<br><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>baz</p></blockquote><p>extra</p>"
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"webkit-indent-blockquote\\"><p>foobar</p><blockquote><p>baz</p></blockquote></div><p>extra</p>" but got "foobar<br><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>baz</p></blockquote><p>extra</p>"
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("defaultparagraphseparator", false, "p") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"webkit-indent-blockquote\\"><p>foobar</p><blockquote><p>baz</p></blockquote></div><p>extra</p>" but got "foobar<br><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>baz</p></blockquote><p>extra</p>"
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("defaultparagraphseparator", false, "p") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"webkit-indent-blockquote\\"><p>foobar</p><blockquote><p>baz</p></blockquote></div><p>extra</p>" but got "foobar<br><blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin:0 0 0 40px; border:none; padding:0px\\"><p>baz</p></blockquote><p>extra</p>"
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p><p>baz</p></blockquote><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"webkit-indent-blockquote\\"><p>foobar</p><p>baz</p></div><p>extra</p>" but got "foobar<br><p>baz</p><p>extra</p>"
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"webkit-indent-blockquote\\"><p>foobar</p><p>baz</p></div><p>extra</p>" but got "foobar<br><p>baz</p><p>extra</p>"
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("defaultparagraphseparator", false, "p") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"webkit-indent-blockquote\\"><p>foobar</p><p>baz</p></div><p>extra</p>" but got "foobar<br><p>baz</p><p>extra</p>"
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("defaultparagraphseparator", false, "p") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"webkit-indent-blockquote\\"><p>foobar</p><p>baz</p></div><p>extra</p>" but got "foobar<br><p>baz</p><p>extra</p>"
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p><p>b]az</p></blockquote><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"webkit-indent-blockquote\\"><p>foobar</p></div><p>baz</p><p>extra</p>" but got "<p>foobar</p><p>baz</p><p>extra</p>"
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"webkit-indent-blockquote\\"><p>foobar</p></div><p>baz</p><p>extra</p>" but got "<p>foobar</p><p>baz</p><p>extra</p>"
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("defaultparagraphseparator", false, "p") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"webkit-indent-blockquote\\"><p>foobar</p></div><p>baz</p><p>extra</p>" but got "<p>foobar</p><p>baz</p><p>extra</p>"
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("defaultparagraphseparator", false, "p") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"webkit-indent-blockquote\\"><p>foobar</p></div><p>baz</p><p>extra</p>" but got "<p>foobar</p><p>baz</p><p>extra</p>"
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar]</p></blockquote><p>baz</p><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"webkit-indent-blockquote\\"><p>foobar</p></div><p>baz</p><p>extra</p>" but got "<p>foobar</p><p>baz</p><p>extra</p>"
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"webkit-indent-blockquote\\"><p>foobar</p></div><p>baz</p><p>extra</p>" but got "<p>foobar</p><p>baz</p><p>extra</p>"
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("defaultparagraphseparator", false, "p") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"webkit-indent-blockquote\\"><p>foobar</p></div><p>baz</p><p>extra</p>" but got "<p>foobar</p><p>baz</p><p>extra</p>"
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("defaultparagraphseparator", false, "p") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra": execCommand("outdent", false, "") return value
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div class=\\"webkit-indent-blockquote\\"><p>foobar</p></div><p>baz</p><p>extra</p>" but got "<p>foobar</p><p>baz</p><p>extra</p>"
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") before
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandIndeterm("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandState("outdent") after
+[PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["outdent",""]] "<blockquote class=\\"webkit-indent-blockquote\\" style=\\"margin: 0 0 0 40px; border: none; padding: 0px;\\"><p>foo[bar</p></blockquote><p>b]az</p><p>extra" queryCommandValue("outdent") after
 [PASS] [["outdent",""]] "<blockquote><blockquote>foo[bar]baz</blockquote></blockquote>": execCommand("outdent", false, "") return value
 [PASS] [["outdent",""]] "<blockquote><blockquote>foo[bar]baz</blockquote></blockquote>" checks for modifications to non-editable content
 [PASS] [["outdent",""]] "<blockquote><blockquote>foo[bar]baz</blockquote></blockquote>" compare innerHTML
@@ -603,7 +603,7 @@
 [PASS] [["outdent",""]] "<blockquote><blockquote data-abc=def>foo[bar]baz</blockquote></blockquote>": execCommand("outdent", false, "") return value
 [PASS] [["outdent",""]] "<blockquote><blockquote data-abc=def>foo[bar]baz</blockquote></blockquote>" checks for modifications to non-editable content
 [FAIL] [["outdent",""]] "<blockquote><blockquote data-abc=def>foo[bar]baz</blockquote></blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote data-abc=\"def\">foobarbaz</blockquote>" but got "<blockquote>foobarbaz</blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote data-abc=\\"def\\">foobarbaz</blockquote>" but got "<blockquote>foobarbaz</blockquote>"
 [PASS] [["outdent",""]] "<blockquote><blockquote data-abc=def>foo[bar]baz</blockquote></blockquote>" queryCommandIndeterm("outdent") before
 [PASS] [["outdent",""]] "<blockquote><blockquote data-abc=def>foo[bar]baz</blockquote></blockquote>" queryCommandState("outdent") before
 [PASS] [["outdent",""]] "<blockquote><blockquote data-abc=def>foo[bar]baz</blockquote></blockquote>" queryCommandValue("outdent") before
@@ -641,7 +641,7 @@
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote id=abc>foo[bar]baz</blockquote>": execCommand("outdent", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote id=abc>foo[bar]baz</blockquote>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote id=abc>foo[bar]baz</blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div id=\"abc\">foobarbaz</div>" but got "foobarbaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div id=\\"abc\\">foobarbaz</div>" but got "foobarbaz"
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote id=abc>foo[bar]baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote id=abc>foo[bar]baz</blockquote>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote id=abc>foo[bar]baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
@@ -658,7 +658,7 @@
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote id=abc>foo[bar]baz</blockquote>": execCommand("outdent", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote id=abc>foo[bar]baz</blockquote>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote id=abc>foo[bar]baz</blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div id=\"abc\">foobarbaz</div>" but got "foobarbaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div id=\\"abc\\">foobarbaz</div>" but got "foobarbaz"
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote id=abc>foo[bar]baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote id=abc>foo[bar]baz</blockquote>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote id=abc>foo[bar]baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
@@ -671,40 +671,40 @@
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote id=abc>foo[bar]baz</blockquote>" queryCommandIndeterm("outdent") after
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote id=abc>foo[bar]baz</blockquote>" queryCommandState("outdent") after
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote id=abc>foo[bar]baz</blockquote>" queryCommandValue("outdent") after
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>": execCommand("outdent", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" checks for modifications to non-editable content
-[FAIL] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"color:rgb(0, 0, 255)\">foobarbaz</div>" but got "foobarbaz"
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandState("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandState("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandIndeterm("outdent") before
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandState("outdent") before
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandValue("outdent") before
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandIndeterm("outdent") after
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandState("outdent") after
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandValue("outdent") after
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>": execCommand("defaultparagraphseparator", false, "p") return value
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>": execCommand("outdent", false, "") return value
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" checks for modifications to non-editable content
-[FAIL] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"color:rgb(0, 0, 255)\">foobarbaz</div>" but got "foobarbaz"
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandState("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandState("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandIndeterm("outdent") before
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandState("outdent") before
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandValue("outdent") before
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandIndeterm("outdent") after
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandState("outdent") after
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\">foo[bar]baz</blockquote>" queryCommandValue("outdent") after
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>": execCommand("outdent", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" checks for modifications to non-editable content
+[FAIL] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"color:rgb(0, 0, 255)\\">foobarbaz</div>" but got "foobarbaz"
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandState("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandState("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandIndeterm("outdent") before
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandState("outdent") before
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandValue("outdent") before
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandIndeterm("outdent") after
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandState("outdent") after
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandValue("outdent") after
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>": execCommand("defaultparagraphseparator", false, "p") return value
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>": execCommand("outdent", false, "") return value
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" checks for modifications to non-editable content
+[FAIL] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"color:rgb(0, 0, 255)\\">foobarbaz</div>" but got "foobarbaz"
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandState("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandState("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandIndeterm("outdent") before
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandState("outdent") before
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandValue("outdent") before
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandIndeterm("outdent") after
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandState("outdent") after
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\">foo[bar]baz</blockquote>" queryCommandValue("outdent") after
 [PASS] [["outdent",""]] "<blockquote><blockquote><p>foo[bar]<p>baz</blockquote></blockquote>": execCommand("outdent", false, "") return value
 [PASS] [["outdent",""]] "<blockquote><blockquote><p>foo[bar]<p>baz</blockquote></blockquote>" checks for modifications to non-editable content
 [FAIL] [["outdent",""]] "<blockquote><blockquote><p>foo[bar]<p>baz</blockquote></blockquote>" compare innerHTML
@@ -718,7 +718,7 @@
 [PASS] [["outdent",""]] "<blockquote><blockquote data-abc=def><p>foo[bar]<p>baz</blockquote></blockquote>": execCommand("outdent", false, "") return value
 [PASS] [["outdent",""]] "<blockquote><blockquote data-abc=def><p>foo[bar]<p>baz</blockquote></blockquote>" checks for modifications to non-editable content
 [FAIL] [["outdent",""]] "<blockquote><blockquote data-abc=def><p>foo[bar]<p>baz</blockquote></blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote data-abc=\"def\"><p>foobar</p><blockquote><p>baz</p></blockquote></blockquote>" but got "<blockquote>foobar<br><blockquote data-abc=\"def\"><p>baz</p></blockquote></blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote data-abc=\\"def\\"><p>foobar</p><blockquote><p>baz</p></blockquote></blockquote>" but got "<blockquote>foobar<br><blockquote data-abc=\\"def\\"><p>baz</p></blockquote></blockquote>"
 [PASS] [["outdent",""]] "<blockquote><blockquote data-abc=def><p>foo[bar]<p>baz</blockquote></blockquote>" queryCommandIndeterm("outdent") before
 [PASS] [["outdent",""]] "<blockquote><blockquote data-abc=def><p>foo[bar]<p>baz</blockquote></blockquote>" queryCommandState("outdent") before
 [PASS] [["outdent",""]] "<blockquote><blockquote data-abc=def><p>foo[bar]<p>baz</blockquote></blockquote>" queryCommandValue("outdent") before
@@ -728,7 +728,7 @@
 [PASS] [["outdent",""]] "<blockquote data-abc=def><blockquote><p>foo[bar]<p>baz</blockquote></blockquote>": execCommand("outdent", false, "") return value
 [PASS] [["outdent",""]] "<blockquote data-abc=def><blockquote><p>foo[bar]<p>baz</blockquote></blockquote>" checks for modifications to non-editable content
 [FAIL] [["outdent",""]] "<blockquote data-abc=def><blockquote><p>foo[bar]<p>baz</blockquote></blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote data-abc=\"def\"><p>foobar</p><blockquote><p>baz</p></blockquote></blockquote>" but got "<blockquote data-abc=\"def\">foobar<br><blockquote><p>baz</p></blockquote></blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote data-abc=\\"def\\"><p>foobar</p><blockquote><p>baz</p></blockquote></blockquote>" but got "<blockquote data-abc=\\"def\\">foobar<br><blockquote><p>baz</p></blockquote></blockquote>"
 [PASS] [["outdent",""]] "<blockquote data-abc=def><blockquote><p>foo[bar]<p>baz</blockquote></blockquote>" queryCommandIndeterm("outdent") before
 [PASS] [["outdent",""]] "<blockquote data-abc=def><blockquote><p>foo[bar]<p>baz</blockquote></blockquote>" queryCommandState("outdent") before
 [PASS] [["outdent",""]] "<blockquote data-abc=def><blockquote><p>foo[bar]<p>baz</blockquote></blockquote>" queryCommandValue("outdent") before
@@ -748,7 +748,7 @@
 [PASS] [["outdent",""]] "<blockquote><div id=abc><p>foo[bar]<p>baz</div></blockquote>": execCommand("outdent", false, "") return value
 [PASS] [["outdent",""]] "<blockquote><div id=abc><p>foo[bar]<p>baz</div></blockquote>" checks for modifications to non-editable content
 [FAIL] [["outdent",""]] "<blockquote><div id=abc><p>foo[bar]<p>baz</div></blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div id=\"abc\"><p>foobar</p><blockquote><p>baz</p></blockquote></div>" but got "foobar<br><blockquote><div id=\"abc\"><p>baz</p></div></blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div id=\\"abc\\"><p>foobar</p><blockquote><p>baz</p></blockquote></div>" but got "foobar<br><blockquote><div id=\\"abc\\"><p>baz</p></div></blockquote>"
 [PASS] [["outdent",""]] "<blockquote><div id=abc><p>foo[bar]<p>baz</div></blockquote>" queryCommandIndeterm("outdent") before
 [PASS] [["outdent",""]] "<blockquote><div id=abc><p>foo[bar]<p>baz</div></blockquote>" queryCommandState("outdent") before
 [PASS] [["outdent",""]] "<blockquote><div id=abc><p>foo[bar]<p>baz</div></blockquote>" queryCommandValue("outdent") before
@@ -759,7 +759,7 @@
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote id=abc><p>foo[bar]<p>baz</blockquote>": execCommand("outdent", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote id=abc><p>foo[bar]<p>baz</blockquote>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote id=abc><p>foo[bar]<p>baz</blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div id=\"abc\"><p>foobar</p><blockquote><p>baz</p></blockquote></div>" but got "foobar<br><blockquote id=\"abc\"><p>baz</p></blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div id=\\"abc\\"><p>foobar</p><blockquote><p>baz</p></blockquote></div>" but got "foobar<br><blockquote id=\\"abc\\"><p>baz</p></blockquote>"
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote id=abc><p>foo[bar]<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote id=abc><p>foo[bar]<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote id=abc><p>foo[bar]<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
@@ -776,7 +776,7 @@
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote id=abc><p>foo[bar]<p>baz</blockquote>": execCommand("outdent", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote id=abc><p>foo[bar]<p>baz</blockquote>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote id=abc><p>foo[bar]<p>baz</blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div id=\"abc\"><p>foobar</p><blockquote><p>baz</p></blockquote></div>" but got "foobar<br><blockquote id=\"abc\"><p>baz</p></blockquote>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div id=\\"abc\\"><p>foobar</p><blockquote><p>baz</p></blockquote></div>" but got "foobar<br><blockquote id=\\"abc\\"><p>baz</p></blockquote>"
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote id=abc><p>foo[bar]<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote id=abc><p>foo[bar]<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote id=abc><p>foo[bar]<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
@@ -789,40 +789,40 @@
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote id=abc><p>foo[bar]<p>baz</blockquote>" queryCommandIndeterm("outdent") after
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote id=abc><p>foo[bar]<p>baz</blockquote>" queryCommandState("outdent") after
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote id=abc><p>foo[bar]<p>baz</blockquote>" queryCommandValue("outdent") after
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>": execCommand("defaultparagraphseparator", false, "div") return value
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>": execCommand("outdent", false, "") return value
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" checks for modifications to non-editable content
-[FAIL] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"color:rgb(0, 0, 255)\"><p>foobar</p><blockquote><p>baz</p></blockquote></div>" but got "<span style=\"color:rgb(0, 0, 255)\">foobar</span><br><blockquote style=\"color:rgb(0, 0, 255)\"><p>baz</p></blockquote>"
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandIndeterm("outdent") before
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandState("outdent") before
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandValue("outdent") before
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandIndeterm("outdent") after
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandState("outdent") after
-[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandValue("outdent") after
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>": execCommand("defaultparagraphseparator", false, "p") return value
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>": execCommand("outdent", false, "") return value
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" checks for modifications to non-editable content
-[FAIL] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"color:rgb(0, 0, 255)\"><p>foobar</p><blockquote><p>baz</p></blockquote></div>" but got "<span style=\"color:rgb(0, 0, 255)\">foobar</span><br><blockquote style=\"color:rgb(0, 0, 255)\"><p>baz</p></blockquote>"
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") after
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandIndeterm("outdent") before
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandState("outdent") before
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandValue("outdent") before
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandIndeterm("outdent") after
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandState("outdent") after
-[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\"color: blue\"><p>foo[bar]<p>baz</blockquote>" queryCommandValue("outdent") after
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>": execCommand("defaultparagraphseparator", false, "div") return value
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>": execCommand("outdent", false, "") return value
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" checks for modifications to non-editable content
+[FAIL] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"color:rgb(0, 0, 255)\\"><p>foobar</p><blockquote><p>baz</p></blockquote></div>" but got "<span style=\\"color:rgb(0, 0, 255)\\">foobar</span><br><blockquote style=\\"color:rgb(0, 0, 255)\\"><p>baz</p></blockquote>"
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandIndeterm("outdent") before
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandState("outdent") before
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandValue("outdent") before
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandIndeterm("outdent") after
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandState("outdent") after
+[PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandValue("outdent") after
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>": execCommand("defaultparagraphseparator", false, "p") return value
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>": execCommand("outdent", false, "") return value
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" checks for modifications to non-editable content
+[FAIL] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"color:rgb(0, 0, 255)\\"><p>foobar</p><blockquote><p>baz</p></blockquote></div>" but got "<span style=\\"color:rgb(0, 0, 255)\\">foobar</span><br><blockquote style=\\"color:rgb(0, 0, 255)\\"><p>baz</p></blockquote>"
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") before
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandIndeterm("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandState("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandValue("defaultparagraphseparator") after
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandIndeterm("outdent") before
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandState("outdent") before
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandValue("outdent") before
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandIndeterm("outdent") after
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandState("outdent") after
+[PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<blockquote style=\\"color: blue\\"><p>foo[bar]<p>baz</blockquote>" queryCommandValue("outdent") after
 [PASS] [["outdent",""]] "<blockquote><p><b>foo[bar]</b><p>baz</blockquote>": execCommand("outdent", false, "") return value
 [PASS] [["outdent",""]] "<blockquote><p><b>foo[bar]</b><p>baz</blockquote>" checks for modifications to non-editable content
 [FAIL] [["outdent",""]] "<blockquote><p><b>foo[bar]</b><p>baz</blockquote>" compare innerHTML
@@ -853,26 +853,26 @@
 [PASS] [["outdent",""]] "<blockquote><p><span>foo[bar]</span><p>baz</blockquote>" queryCommandIndeterm("outdent") after
 [PASS] [["outdent",""]] "<blockquote><p><span>foo[bar]</span><p>baz</blockquote>" queryCommandState("outdent") after
 [PASS] [["outdent",""]] "<blockquote><p><span>foo[bar]</span><p>baz</blockquote>" queryCommandValue("outdent") after
-[PASS] [["outdent",""]] "<blockquote><blockquote style=\"color: blue\"><p>foo[bar]</blockquote><p>baz</blockquote>": execCommand("outdent", false, "") return value
-[PASS] [["outdent",""]] "<blockquote><blockquote style=\"color: blue\"><p>foo[bar]</blockquote><p>baz</blockquote>" checks for modifications to non-editable content
-[FAIL] [["outdent",""]] "<blockquote><blockquote style=\"color: blue\"><p>foo[bar]</blockquote><p>baz</blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote style=\"color:rgb(0, 0, 255)\"><p>foobar</p></blockquote><blockquote><p>baz</p></blockquote>" but got "<blockquote><p>foobar</p></blockquote><blockquote><p>baz</p></blockquote>"
-[PASS] [["outdent",""]] "<blockquote><blockquote style=\"color: blue\"><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandIndeterm("outdent") before
-[PASS] [["outdent",""]] "<blockquote><blockquote style=\"color: blue\"><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandState("outdent") before
-[PASS] [["outdent",""]] "<blockquote><blockquote style=\"color: blue\"><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandValue("outdent") before
-[PASS] [["outdent",""]] "<blockquote><blockquote style=\"color: blue\"><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandIndeterm("outdent") after
-[PASS] [["outdent",""]] "<blockquote><blockquote style=\"color: blue\"><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandState("outdent") after
-[PASS] [["outdent",""]] "<blockquote><blockquote style=\"color: blue\"><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandValue("outdent") after
-[PASS] [["outdent",""]] "<blockquote style=\"color: blue\"><blockquote><p>foo[bar]</blockquote><p>baz</blockquote>": execCommand("outdent", false, "") return value
-[PASS] [["outdent",""]] "<blockquote style=\"color: blue\"><blockquote><p>foo[bar]</blockquote><p>baz</blockquote>" checks for modifications to non-editable content
-[FAIL] [["outdent",""]] "<blockquote style=\"color: blue\"><blockquote><p>foo[bar]</blockquote><p>baz</blockquote>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote style=\"color:rgb(0, 0, 255)\"><p>foobar</p><p>baz</p></blockquote>" but got "<blockquote style=\"color:rgb(0, 0, 255)\"><p>foobar</p></blockquote><blockquote style=\"color:rgb(0, 0, 255)\"><p>baz</p></blockquote>"
-[PASS] [["outdent",""]] "<blockquote style=\"color: blue\"><blockquote><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandIndeterm("outdent") before
-[PASS] [["outdent",""]] "<blockquote style=\"color: blue\"><blockquote><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandState("outdent") before
-[PASS] [["outdent",""]] "<blockquote style=\"color: blue\"><blockquote><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandValue("outdent") before
-[PASS] [["outdent",""]] "<blockquote style=\"color: blue\"><blockquote><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandIndeterm("outdent") after
-[PASS] [["outdent",""]] "<blockquote style=\"color: blue\"><blockquote><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandState("outdent") after
-[PASS] [["outdent",""]] "<blockquote style=\"color: blue\"><blockquote><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandValue("outdent") after
+[PASS] [["outdent",""]] "<blockquote><blockquote style=\\"color: blue\\"><p>foo[bar]</blockquote><p>baz</blockquote>": execCommand("outdent", false, "") return value
+[PASS] [["outdent",""]] "<blockquote><blockquote style=\\"color: blue\\"><p>foo[bar]</blockquote><p>baz</blockquote>" checks for modifications to non-editable content
+[FAIL] [["outdent",""]] "<blockquote><blockquote style=\\"color: blue\\"><p>foo[bar]</blockquote><p>baz</blockquote>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote style=\\"color:rgb(0, 0, 255)\\"><p>foobar</p></blockquote><blockquote><p>baz</p></blockquote>" but got "<blockquote><p>foobar</p></blockquote><blockquote><p>baz</p></blockquote>"
+[PASS] [["outdent",""]] "<blockquote><blockquote style=\\"color: blue\\"><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandIndeterm("outdent") before
+[PASS] [["outdent",""]] "<blockquote><blockquote style=\\"color: blue\\"><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandState("outdent") before
+[PASS] [["outdent",""]] "<blockquote><blockquote style=\\"color: blue\\"><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandValue("outdent") before
+[PASS] [["outdent",""]] "<blockquote><blockquote style=\\"color: blue\\"><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandIndeterm("outdent") after
+[PASS] [["outdent",""]] "<blockquote><blockquote style=\\"color: blue\\"><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandState("outdent") after
+[PASS] [["outdent",""]] "<blockquote><blockquote style=\\"color: blue\\"><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandValue("outdent") after
+[PASS] [["outdent",""]] "<blockquote style=\\"color: blue\\"><blockquote><p>foo[bar]</blockquote><p>baz</blockquote>": execCommand("outdent", false, "") return value
+[PASS] [["outdent",""]] "<blockquote style=\\"color: blue\\"><blockquote><p>foo[bar]</blockquote><p>baz</blockquote>" checks for modifications to non-editable content
+[FAIL] [["outdent",""]] "<blockquote style=\\"color: blue\\"><blockquote><p>foo[bar]</blockquote><p>baz</blockquote>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<blockquote style=\\"color:rgb(0, 0, 255)\\"><p>foobar</p><p>baz</p></blockquote>" but got "<blockquote style=\\"color:rgb(0, 0, 255)\\"><p>foobar</p></blockquote><blockquote style=\\"color:rgb(0, 0, 255)\\"><p>baz</p></blockquote>"
+[PASS] [["outdent",""]] "<blockquote style=\\"color: blue\\"><blockquote><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandIndeterm("outdent") before
+[PASS] [["outdent",""]] "<blockquote style=\\"color: blue\\"><blockquote><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandState("outdent") before
+[PASS] [["outdent",""]] "<blockquote style=\\"color: blue\\"><blockquote><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandValue("outdent") before
+[PASS] [["outdent",""]] "<blockquote style=\\"color: blue\\"><blockquote><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandIndeterm("outdent") after
+[PASS] [["outdent",""]] "<blockquote style=\\"color: blue\\"><blockquote><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandState("outdent") after
+[PASS] [["outdent",""]] "<blockquote style=\\"color: blue\\"><blockquote><p>foo[bar]</blockquote><p>baz</blockquote>" queryCommandValue("outdent") after
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<ol><li>foo<li>[bar]<li>baz</ol>": execCommand("defaultparagraphseparator", false, "div") return value
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<ol><li>foo<li>[bar]<li>baz</ol>": execCommand("outdent", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<ol><li>foo<li>[bar]<li>baz</ol>" checks for modifications to non-editable content
@@ -1022,7 +1022,7 @@
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>": execCommand("outdent", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["outdent",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo</div><div>bar</div><ol><li>baz</li></ol>" but got "<div style=\"display:inline !important\">foo</div>bar<br><ol><li>baz</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo</div><div>bar</div><ol><li>baz</li></ol>" but got "<div style=\\"display:inline !important\\">foo</div>bar<br><ol><li>baz</li></ol>"
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" queryCommandValue("defaultparagraphseparator") before
@@ -1039,7 +1039,7 @@
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>": execCommand("outdent", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["outdent",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo</div><p>bar</p><ol><li>baz</li></ol>" but got "<div style=\"display:inline !important\">foo</div>bar<br><ol><li>baz</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div>foo</div><p>bar</p><ol><li>baz</li></ol>" but got "<div style=\\"display:inline !important\\">foo</div>bar<br><ol><li>baz</li></ol>"
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "<ol><li><div>[foo]</div>bar<li>baz</ol>" queryCommandValue("defaultparagraphseparator") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/outdent_1001-2000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/outdent_1001-2000-expected.txt
index 2f6acce..b31c646 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/outdent_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/outdent_1001-2000-expected.txt
@@ -693,7 +693,7 @@
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol id=abc><li>[bar]</ol>baz": execCommand("outdent", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol id=abc><li>[bar]</ol>baz" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol id=abc><li>[bar]</ol>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div id=\"abc\"><div>bar</div></div>baz" but got "foo<br>bar<br>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div id=\\"abc\\"><div>bar</div></div>baz" but got "foo<br>bar<br>baz"
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol id=abc><li>[bar]</ol>baz" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol id=abc><li>[bar]</ol>baz" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol id=abc><li>[bar]</ol>baz" queryCommandValue("defaultparagraphseparator") before
@@ -710,7 +710,7 @@
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol id=abc><li>[bar]</ol>baz": execCommand("outdent", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol id=abc><li>[bar]</ol>baz" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol id=abc><li>[bar]</ol>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div id=\"abc\"><p>bar</p></div>baz" but got "foo<br>bar<br>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div id=\\"abc\\"><p>bar</p></div>baz" but got "foo<br>bar<br>baz"
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol id=abc><li>[bar]</ol>baz" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol id=abc><li>[bar]</ol>baz" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol id=abc><li>[bar]</ol>baz" queryCommandValue("defaultparagraphseparator") before
@@ -727,7 +727,7 @@
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol style=color:blue><li>[bar]</ol>baz": execCommand("outdent", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol style=color:blue><li>[bar]</ol>baz" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol style=color:blue><li>[bar]</ol>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\"color:rgb(0, 0, 255)\"><div>bar</div></div>baz" but got "foo<br><span style=\"color:rgb(0, 0, 255)\">bar</span><br>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\\"color:rgb(0, 0, 255)\\"><div>bar</div></div>baz" but got "foo<br><span style=\\"color:rgb(0, 0, 255)\\">bar</span><br>baz"
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol style=color:blue><li>[bar]</ol>baz" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol style=color:blue><li>[bar]</ol>baz" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol style=color:blue><li>[bar]</ol>baz" queryCommandValue("defaultparagraphseparator") before
@@ -744,7 +744,7 @@
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol style=color:blue><li>[bar]</ol>baz": execCommand("outdent", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol style=color:blue><li>[bar]</ol>baz" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol style=color:blue><li>[bar]</ol>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\"color:rgb(0, 0, 255)\"><p>bar</p></div>baz" but got "foo<br><span style=\"color:rgb(0, 0, 255)\">bar</span><br>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\\"color:rgb(0, 0, 255)\\"><p>bar</p></div>baz" but got "foo<br><span style=\\"color:rgb(0, 0, 255)\\">bar</span><br>baz"
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol style=color:blue><li>[bar]</ol>baz" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol style=color:blue><li>[bar]</ol>baz" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol style=color:blue><li>[bar]</ol>baz" queryCommandValue("defaultparagraphseparator") before
@@ -761,7 +761,7 @@
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol><li value=5>[bar]</ol>baz": execCommand("outdent", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol><li value=5>[bar]</ol>baz" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol><li value=5>[bar]</ol>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div value=\"5\">bar</div>baz" but got "foo<br>bar<br>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div value=\\"5\\">bar</div>baz" but got "foo<br>bar<br>baz"
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol><li value=5>[bar]</ol>baz" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol><li value=5>[bar]</ol>baz" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol><li value=5>[bar]</ol>baz" queryCommandValue("defaultparagraphseparator") before
@@ -778,7 +778,7 @@
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol><li value=5>[bar]</ol>baz": execCommand("outdent", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol><li value=5>[bar]</ol>baz" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol><li value=5>[bar]</ol>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p value=\"5\">bar</p>baz" but got "foo<br>bar<br>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p value=\\"5\\">bar</p>baz" but got "foo<br>bar<br>baz"
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol><li value=5>[bar]</ol>baz" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol><li value=5>[bar]</ol>baz" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol><li value=5>[bar]</ol>baz" queryCommandValue("defaultparagraphseparator") before
@@ -795,7 +795,7 @@
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol><li id=abc>[bar]</ol>baz": execCommand("outdent", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol><li id=abc>[bar]</ol>baz" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol><li id=abc>[bar]</ol>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div id=\"abc\">bar</div>baz" but got "foo<br>bar<br>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div id=\\"abc\\">bar</div>baz" but got "foo<br>bar<br>baz"
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol><li id=abc>[bar]</ol>baz" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol><li id=abc>[bar]</ol>baz" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol><li id=abc>[bar]</ol>baz" queryCommandValue("defaultparagraphseparator") before
@@ -812,7 +812,7 @@
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol><li id=abc>[bar]</ol>baz": execCommand("outdent", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol><li id=abc>[bar]</ol>baz" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol><li id=abc>[bar]</ol>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p id=\"abc\">bar</p>baz" but got "foo<br>bar<br>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p id=\\"abc\\">bar</p>baz" but got "foo<br>bar<br>baz"
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol><li id=abc>[bar]</ol>baz" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol><li id=abc>[bar]</ol>baz" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol><li id=abc>[bar]</ol>baz" queryCommandValue("defaultparagraphseparator") before
@@ -829,7 +829,7 @@
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol><li style=color:blue>[bar]</ol>baz": execCommand("outdent", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol><li style=color:blue>[bar]</ol>baz" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol><li style=color:blue>[bar]</ol>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\"color:rgb(0, 0, 255)\">bar</div>baz" but got "foo<br><span style=\"color:rgb(0, 0, 255)\">bar</span><br>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\\"color:rgb(0, 0, 255)\\">bar</div>baz" but got "foo<br><span style=\\"color:rgb(0, 0, 255)\\">bar</span><br>baz"
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol><li style=color:blue>[bar]</ol>baz" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol><li style=color:blue>[bar]</ol>baz" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["outdent",""]] "foo<ol><li style=color:blue>[bar]</ol>baz" queryCommandValue("defaultparagraphseparator") before
@@ -846,7 +846,7 @@
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol><li style=color:blue>[bar]</ol>baz": execCommand("outdent", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol><li style=color:blue>[bar]</ol>baz" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol><li style=color:blue>[bar]</ol>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p style=\"color:rgb(0, 0, 255)\">bar</p>baz" but got "foo<br><span style=\"color:rgb(0, 0, 255)\">bar</span><br>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p style=\\"color:rgb(0, 0, 255)\\">bar</p>baz" but got "foo<br><span style=\\"color:rgb(0, 0, 255)\\">bar</span><br>baz"
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol><li style=color:blue>[bar]</ol>baz" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol><li style=color:blue>[bar]</ol>baz" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["outdent",""]] "foo<ol><li style=color:blue>[bar]</ol>baz" queryCommandValue("defaultparagraphseparator") before
@@ -862,7 +862,7 @@
 [PASS] [["outdent",""]] "<ol><li>foo</li><ol><li value=5>[bar]</ol></ol>": execCommand("outdent", false, "") return value
 [PASS] [["outdent",""]] "<ol><li>foo</li><ol><li value=5>[bar]</ol></ol>" checks for modifications to non-editable content
 [FAIL] [["outdent",""]] "<ol><li>foo</li><ol><li value=5>[bar]</ol></ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li><li value=\"5\">bar</li></ol>" but got "<ol><li>foo</li><li>bar<br></li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li><li value=\\"5\\">bar</li></ol>" but got "<ol><li>foo</li><li>bar<br></li></ol>"
 [PASS] [["outdent",""]] "<ol><li>foo</li><ol><li value=5>[bar]</ol></ol>" queryCommandIndeterm("outdent") before
 [PASS] [["outdent",""]] "<ol><li>foo</li><ol><li value=5>[bar]</ol></ol>" queryCommandState("outdent") before
 [PASS] [["outdent",""]] "<ol><li>foo</li><ol><li value=5>[bar]</ol></ol>" queryCommandValue("outdent") before
@@ -872,7 +872,7 @@
 [PASS] [["outdent",""]] "<ul><li>foo</li><ol><li value=5>[bar]</ol></ul>": execCommand("outdent", false, "") return value
 [PASS] [["outdent",""]] "<ul><li>foo</li><ol><li value=5>[bar]</ol></ul>" checks for modifications to non-editable content
 [FAIL] [["outdent",""]] "<ul><li>foo</li><ol><li value=5>[bar]</ol></ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul><li>foo</li><li value=\"5\">bar</li></ul>" but got "<ul><li>foo</li><li>bar<br></li></ul>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul><li>foo</li><li value=\\"5\\">bar</li></ul>" but got "<ul><li>foo</li><li>bar<br></li></ul>"
 [PASS] [["outdent",""]] "<ul><li>foo</li><ol><li value=5>[bar]</ol></ul>" queryCommandIndeterm("outdent") before
 [PASS] [["outdent",""]] "<ul><li>foo</li><ol><li value=5>[bar]</ol></ul>" queryCommandState("outdent") before
 [PASS] [["outdent",""]] "<ul><li>foo</li><ol><li value=5>[bar]</ol></ul>" queryCommandValue("outdent") before
@@ -903,7 +903,7 @@
 [PASS] [["stylewithcss","true"],["outdent",""]] "<ol><li>foo</li><ol style=color:blue><li>[bar]</ol><li>baz</ol>": execCommand("outdent", false, "") return value
 [PASS] [["stylewithcss","true"],["outdent",""]] "<ol><li>foo</li><ol style=color:blue><li>[bar]</ol><li>baz</ol>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["outdent",""]] "<ol><li>foo</li><ol style=color:blue><li>[bar]</ol><li>baz</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li><li><span style=\"color:rgb(0, 0, 255)\">bar</span></li><li>baz</li></ol>" but got "<ol><li>foo</li><li><span style=\"color:rgb(0, 0, 255)\">bar</span><br></li><li>baz</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li><li><span style=\\"color:rgb(0, 0, 255)\\">bar</span></li><li>baz</li></ol>" but got "<ol><li>foo</li><li><span style=\\"color:rgb(0, 0, 255)\\">bar</span><br></li><li>baz</li></ol>"
 [PASS] [["stylewithcss","true"],["outdent",""]] "<ol><li>foo</li><ol style=color:blue><li>[bar]</ol><li>baz</ol>" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["outdent",""]] "<ol><li>foo</li><ol style=color:blue><li>[bar]</ol><li>baz</ol>" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -921,7 +921,7 @@
 [PASS] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=color:blue><li>[bar]</ol><li>baz</ol>": execCommand("outdent", false, "") return value
 [PASS] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=color:blue><li>[bar]</ol><li>baz</ol>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=color:blue><li>[bar]</ol><li>baz</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li><li><font color=\"#0000ff\">bar</font></li><li>baz</li></ol>" but got "<ol><li>foo</li><li><span style=\"color:rgb(0, 0, 255)\">bar</span><br></li><li>baz</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li><li><font color=\\"#0000ff\\">bar</font></li><li>baz</li></ol>" but got "<ol><li>foo</li><li><span style=\\"color:rgb(0, 0, 255)\\">bar</span><br></li><li>baz</li></ol>"
 [PASS] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=color:blue><li>[bar]</ol><li>baz</ol>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=color:blue><li>[bar]</ol><li>baz</ol>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=color:blue><li>[bar]</ol><li>baz</ol>" queryCommandValue("stylewithcss") before
@@ -938,7 +938,7 @@
 [PASS] [["stylewithcss","true"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar]</ol><li>baz</ol>": execCommand("outdent", false, "") return value
 [PASS] [["stylewithcss","true"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar]</ol><li>baz</ol>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar]</ol><li>baz</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li><li>bar</li><li>baz</li></ol>" but got "<ol><li>foo</li><li><span style=\"text-indent:1em\">bar</span><br></li><li>baz</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li><li>bar</li><li>baz</li></ol>" but got "<ol><li>foo</li><li><span style=\\"text-indent:1em\\">bar</span><br></li><li>baz</li></ol>"
 [PASS] [["stylewithcss","true"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar]</ol><li>baz</ol>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar]</ol><li>baz</ol>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar]</ol><li>baz</ol>" queryCommandValue("stylewithcss") before
@@ -955,7 +955,7 @@
 [PASS] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar]</ol><li>baz</ol>": execCommand("outdent", false, "") return value
 [PASS] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar]</ol><li>baz</ol>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar]</ol><li>baz</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li><li>bar</li><li>baz</li></ol>" but got "<ol><li>foo</li><li><span style=\"text-indent:1em\">bar</span><br></li><li>baz</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li><li>bar</li><li>baz</li></ol>" but got "<ol><li>foo</li><li><span style=\\"text-indent:1em\\">bar</span><br></li><li>baz</li></ol>"
 [PASS] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar]</ol><li>baz</ol>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar]</ol><li>baz</ol>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar]</ol><li>baz</ol>" queryCommandValue("stylewithcss") before
@@ -992,7 +992,7 @@
 [PASS] [["stylewithcss","true"],["outdent",""]] "<ol><li>foo</li><ol style=color:blue><li>[bar<li>baz]</ol><li>quz</ol>": execCommand("outdent", false, "") return value
 [PASS] [["stylewithcss","true"],["outdent",""]] "<ol><li>foo</li><ol style=color:blue><li>[bar<li>baz]</ol><li>quz</ol>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["outdent",""]] "<ol><li>foo</li><ol style=color:blue><li>[bar<li>baz]</ol><li>quz</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li><li><span style=\"color:rgb(0, 0, 255)\">bar</span></li><li><span style=\"color:rgb(0, 0, 255)\">baz</span></li><li>quz</li></ol>" but got "<ol><li>foo</li><li><span style=\"color:rgb(0, 0, 255)\">bar</span><br></li><li><span style=\"color:rgb(0, 0, 255)\">baz</span><br></li><li>quz</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li><li><span style=\\"color:rgb(0, 0, 255)\\">bar</span></li><li><span style=\\"color:rgb(0, 0, 255)\\">baz</span></li><li>quz</li></ol>" but got "<ol><li>foo</li><li><span style=\\"color:rgb(0, 0, 255)\\">bar</span><br></li><li><span style=\\"color:rgb(0, 0, 255)\\">baz</span><br></li><li>quz</li></ol>"
 [PASS] [["stylewithcss","true"],["outdent",""]] "<ol><li>foo</li><ol style=color:blue><li>[bar<li>baz]</ol><li>quz</ol>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["outdent",""]] "<ol><li>foo</li><ol style=color:blue><li>[bar<li>baz]</ol><li>quz</ol>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["outdent",""]] "<ol><li>foo</li><ol style=color:blue><li>[bar<li>baz]</ol><li>quz</ol>" queryCommandValue("stylewithcss") before
@@ -1009,7 +1009,7 @@
 [PASS] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=color:blue><li>[bar<li>baz]</ol><li>quz</ol>": execCommand("outdent", false, "") return value
 [PASS] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=color:blue><li>[bar<li>baz]</ol><li>quz</ol>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=color:blue><li>[bar<li>baz]</ol><li>quz</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li><li><font color=\"#0000ff\">bar</font></li><li><font color=\"#0000ff\">baz</font></li><li>quz</li></ol>" but got "<ol><li>foo</li><li><span style=\"color:rgb(0, 0, 255)\">bar</span><br></li><li><span style=\"color:rgb(0, 0, 255)\">baz</span><br></li><li>quz</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li><li><font color=\\"#0000ff\\">bar</font></li><li><font color=\\"#0000ff\\">baz</font></li><li>quz</li></ol>" but got "<ol><li>foo</li><li><span style=\\"color:rgb(0, 0, 255)\\">bar</span><br></li><li><span style=\\"color:rgb(0, 0, 255)\\">baz</span><br></li><li>quz</li></ol>"
 [PASS] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=color:blue><li>[bar<li>baz]</ol><li>quz</ol>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=color:blue><li>[bar<li>baz]</ol><li>quz</ol>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=color:blue><li>[bar<li>baz]</ol><li>quz</ol>" queryCommandValue("stylewithcss") before
@@ -1026,7 +1026,7 @@
 [PASS] [["stylewithcss","true"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar<li>baz]</ol><li>quz</ol>": execCommand("outdent", false, "") return value
 [PASS] [["stylewithcss","true"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar<li>baz]</ol><li>quz</ol>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar<li>baz]</ol><li>quz</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li><li>bar</li><li>baz</li><li>quz</li></ol>" but got "<ol><li>foo</li><li><span style=\"text-indent:1em\">bar</span><br></li><li><span style=\"text-indent:1em\">baz</span><br></li><li>quz</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li><li>bar</li><li>baz</li><li>quz</li></ol>" but got "<ol><li>foo</li><li><span style=\\"text-indent:1em\\">bar</span><br></li><li><span style=\\"text-indent:1em\\">baz</span><br></li><li>quz</li></ol>"
 [PASS] [["stylewithcss","true"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar<li>baz]</ol><li>quz</ol>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar<li>baz]</ol><li>quz</ol>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar<li>baz]</ol><li>quz</ol>" queryCommandValue("stylewithcss") before
@@ -1043,7 +1043,7 @@
 [PASS] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar<li>baz]</ol><li>quz</ol>": execCommand("outdent", false, "") return value
 [PASS] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar<li>baz]</ol><li>quz</ol>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar<li>baz]</ol><li>quz</ol>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li><li>bar</li><li>baz</li><li>quz</li></ol>" but got "<ol><li>foo</li><li><span style=\"text-indent:1em\">bar</span><br></li><li><span style=\"text-indent:1em\">baz</span><br></li><li>quz</li></ol>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ol><li>foo</li><li>bar</li><li>baz</li><li>quz</li></ol>" but got "<ol><li>foo</li><li><span style=\\"text-indent:1em\\">bar</span><br></li><li><span style=\\"text-indent:1em\\">baz</span><br></li><li>quz</li></ol>"
 [PASS] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar<li>baz]</ol><li>quz</ol>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar<li>baz]</ol><li>quz</ol>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["outdent",""]] "<ol><li>foo</li><ol style=text-indent:1em><li>[bar<li>baz]</ol><li>quz</ol>" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/outdent_2001-last-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/outdent_2001-last-expected.txt
index 8488646..feee928 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/outdent_2001-last-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/outdent_2001-last-expected.txt
@@ -577,15 +577,15 @@
 [PASS] [["outdent",""]] "<blockquote><span>foo<br>[bar]</span></blockquote>" queryCommandIndeterm("outdent") after
 [PASS] [["outdent",""]] "<blockquote><span>foo<br>[bar]</span></blockquote>" queryCommandState("outdent") after
 [PASS] [["outdent",""]] "<blockquote><span>foo<br>[bar]</span></blockquote>" queryCommandValue("outdent") after
-[PASS] [["outdent",""]] "<ul><ul><li><span style=\"color:rgb(255, 0, 0)\">[]foo</span></li></ul></ul>": execCommand("outdent", false, "") return value
-[PASS] [["outdent",""]] "<ul><ul><li><span style=\"color:rgb(255, 0, 0)\">[]foo</span></li></ul></ul>" checks for modifications to non-editable content
-[FAIL] [["outdent",""]] "<ul><ul><li><span style=\"color:rgb(255, 0, 0)\">[]foo</span></li></ul></ul>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul><li><span style=\"color:rgb(255, 0, 0)\">foo</span></li></ul>" but got "<ul><li><span style=\"color:rgb(255, 0, 0)\">foo</span><br></li></ul>"
-[PASS] [["outdent",""]] "<ul><ul><li><span style=\"color:rgb(255, 0, 0)\">[]foo</span></li></ul></ul>" queryCommandIndeterm("outdent") before
-[PASS] [["outdent",""]] "<ul><ul><li><span style=\"color:rgb(255, 0, 0)\">[]foo</span></li></ul></ul>" queryCommandState("outdent") before
-[PASS] [["outdent",""]] "<ul><ul><li><span style=\"color:rgb(255, 0, 0)\">[]foo</span></li></ul></ul>" queryCommandValue("outdent") before
-[PASS] [["outdent",""]] "<ul><ul><li><span style=\"color:rgb(255, 0, 0)\">[]foo</span></li></ul></ul>" queryCommandIndeterm("outdent") after
-[PASS] [["outdent",""]] "<ul><ul><li><span style=\"color:rgb(255, 0, 0)\">[]foo</span></li></ul></ul>" queryCommandState("outdent") after
-[PASS] [["outdent",""]] "<ul><ul><li><span style=\"color:rgb(255, 0, 0)\">[]foo</span></li></ul></ul>" queryCommandValue("outdent") after
+[PASS] [["outdent",""]] "<ul><ul><li><span style=\\"color:rgb(255, 0, 0)\\">[]foo</span></li></ul></ul>": execCommand("outdent", false, "") return value
+[PASS] [["outdent",""]] "<ul><ul><li><span style=\\"color:rgb(255, 0, 0)\\">[]foo</span></li></ul></ul>" checks for modifications to non-editable content
+[FAIL] [["outdent",""]] "<ul><ul><li><span style=\\"color:rgb(255, 0, 0)\\">[]foo</span></li></ul></ul>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ul><li><span style=\\"color:rgb(255, 0, 0)\\">foo</span></li></ul>" but got "<ul><li><span style=\\"color:rgb(255, 0, 0)\\">foo</span><br></li></ul>"
+[PASS] [["outdent",""]] "<ul><ul><li><span style=\\"color:rgb(255, 0, 0)\\">[]foo</span></li></ul></ul>" queryCommandIndeterm("outdent") before
+[PASS] [["outdent",""]] "<ul><ul><li><span style=\\"color:rgb(255, 0, 0)\\">[]foo</span></li></ul></ul>" queryCommandState("outdent") before
+[PASS] [["outdent",""]] "<ul><ul><li><span style=\\"color:rgb(255, 0, 0)\\">[]foo</span></li></ul></ul>" queryCommandValue("outdent") before
+[PASS] [["outdent",""]] "<ul><ul><li><span style=\\"color:rgb(255, 0, 0)\\">[]foo</span></li></ul></ul>" queryCommandIndeterm("outdent") after
+[PASS] [["outdent",""]] "<ul><ul><li><span style=\\"color:rgb(255, 0, 0)\\">[]foo</span></li></ul></ul>" queryCommandState("outdent") after
+[PASS] [["outdent",""]] "<ul><ul><li><span style=\\"color:rgb(255, 0, 0)\\">[]foo</span></li></ul></ul>" queryCommandValue("outdent") after
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/removeformat-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/removeformat-expected.txt
index a3021dda..6d4e200 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/removeformat-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/removeformat-expected.txt
@@ -191,278 +191,278 @@
 [PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b>b[a]r</b>baz" queryCommandIndeterm("removeformat") after
 [PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b>b[a]r</b>baz" queryCommandState("removeformat") after
 [PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b>b[a]r</b>baz" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]": execCommand("removeformat", false, "") return value
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" compare innerHTML
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]": execCommand("removeformat", false, "") return value
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" compare innerHTML
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-weight: bold\">bar</span>baz]" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]": execCommand("removeformat", false, "") return value
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<span style=\"display:none\">bar</span>baz"
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]": execCommand("removeformat", false, "") return value
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<span style=\"display:none\">bar</span>baz"
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none\">bar</span>baz]" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]": execCommand("removeformat", false, "") return value
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<span style=\"display:none\">bar</span>baz"
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]": execCommand("removeformat", false, "") return value
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<span style=\"display:none\">bar</span>baz"
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"display: none; font-weight: bold\">bar</span>baz]" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz": execCommand("removeformat", false, "") return value
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz": execCommand("removeformat", false, "") return value
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-weight: bold\">b[a]r</span>baz" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
-[FAIL] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" compare innerHTML
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" compare innerHTML
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-weight: bold\\">bar</span>baz]" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<span style=\\"display:none\\">bar</span>baz"
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<span style=\\"display:none\\">bar</span>baz"
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none\\">bar</span>baz]" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<span style=\\"display:none\\">bar</span>baz"
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<span style=\\"display:none\\">bar</span>baz"
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"display: none; font-weight: bold\\">bar</span>baz]" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-weight: bold\\">b[a]r</span>baz" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
+[FAIL] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz": execCommand("removeformat", false, "") return value
   assert_equals: expected true but got false
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"display:none\">b</span>a<span style=\"display:none\">r</span>baz" but got "foo<span style=\"display:none\">bar</span>baz"
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
-[FAIL] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"display:none\\">b</span>a<span style=\\"display:none\\">r</span>baz" but got "foo<span style=\\"display:none\\">bar</span>baz"
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
+[FAIL] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz": execCommand("removeformat", false, "") return value
   assert_equals: expected true but got false
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"display:none\">b</span>a<span style=\"display:none\">r</span>baz" but got "foo<span style=\"display:none\">bar</span>baz"
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none\">b[a]r</span>baz" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
-[FAIL] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"display:none\\">b</span>a<span style=\\"display:none\\">r</span>baz" but got "foo<span style=\\"display:none\\">bar</span>baz"
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none\\">b[a]r</span>baz" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
+[FAIL] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz": execCommand("removeformat", false, "") return value
   assert_equals: expected true but got false
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"display:none; font-weight:bold\">b</span>a<span style=\"display:none; font-weight:bold\">r</span>baz" but got "foo<span style=\"display:none; font-weight:bold\">bar</span>baz"
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
-[FAIL] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"display:none; font-weight:bold\\">b</span>a<span style=\\"display:none; font-weight:bold\\">r</span>baz" but got "foo<span style=\\"display:none; font-weight:bold\\">bar</span>baz"
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
+[FAIL] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz": execCommand("removeformat", false, "") return value
   assert_equals: expected true but got false
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"display:none; font-weight:bold\">b</span>a<span style=\"display:none; font-weight:bold\">r</span>baz" but got "foo<span style=\"display:none; font-weight:bold\">bar</span>baz"
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"display: none; font-weight: bold\">b[a]r</span>baz" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]": execCommand("removeformat", false, "") return value
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<span style=\"font-variant-numeric:normal; font-variant-east-asian:normal; font-variant-alternates:normal; font-variant-position:normal\">bar</span>baz"
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]": execCommand("removeformat", false, "") return value
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<span style=\"font-variant-numeric:normal; font-variant-east-asian:normal; font-variant-alternates:normal; font-variant-position:normal\">bar</span>baz"
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\"font-variant: small-caps\">bar</span>baz]" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz": execCommand("removeformat", false, "") return value
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"font-variant:small-caps\">b</span>a<span style=\"font-variant:small-caps\">r</span>baz" but got "foo<span style=\"font-variant:small-caps\">b</span><span style=\"font-variant-numeric:normal; font-variant-east-asian:normal; font-variant-alternates:normal; font-variant-position:normal\">a</span><span style=\"font-variant:small-caps\">r</span>baz"
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz": execCommand("removeformat", false, "") return value
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"font-variant:small-caps\">b</span>a<span style=\"font-variant:small-caps\">r</span>baz" but got "foo<span style=\"font-variant:small-caps\">b</span><span style=\"font-variant-numeric:normal; font-variant-east-asian:normal; font-variant-alternates:normal; font-variant-position:normal\">a</span><span style=\"font-variant:small-caps\">r</span>baz"
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\"font-variant: small-caps\">b[a]r</span>baz" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"display:none; font-weight:bold\\">b</span>a<span style=\\"display:none; font-weight:bold\\">r</span>baz" but got "foo<span style=\\"display:none; font-weight:bold\\">bar</span>baz"
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"display: none; font-weight: bold\\">b[a]r</span>baz" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<span style=\\"font-variant-numeric:normal; font-variant-east-asian:normal; font-variant-alternates:normal; font-variant-position:normal\\">bar</span>baz"
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<span style=\\"font-variant-numeric:normal; font-variant-east-asian:normal; font-variant-alternates:normal; font-variant-position:normal\\">bar</span>baz"
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<span style=\\"font-variant: small-caps\\">bar</span>baz]" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"font-variant:small-caps\\">b</span>a<span style=\\"font-variant:small-caps\\">r</span>baz" but got "foo<span style=\\"font-variant:small-caps\\">b</span><span style=\\"font-variant-numeric:normal; font-variant-east-asian:normal; font-variant-alternates:normal; font-variant-position:normal\\">a</span><span style=\\"font-variant:small-caps\\">r</span>baz"
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"font-variant:small-caps\\">b</span>a<span style=\\"font-variant:small-caps\\">r</span>baz" but got "foo<span style=\\"font-variant:small-caps\\">b</span><span style=\\"font-variant-numeric:normal; font-variant-east-asian:normal; font-variant-alternates:normal; font-variant-position:normal\\">a</span><span style=\\"font-variant:small-caps\\">r</span>baz"
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<span style=\\"font-variant: small-caps\\">b[a]r</span>baz" queryCommandValue("removeformat") after
 [PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b id=foo>bar</b>baz]": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b id=foo>bar</b>baz]": execCommand("removeformat", false, "") return value
 [PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b id=foo>bar</b>baz]" checks for modifications to non-editable content
@@ -604,7 +604,7 @@
 [PASS] [["removeformat",""]] "[foo<bdi dir=rtl>bar</bdi>baz]": execCommand("removeformat", false, "") return value
 [PASS] [["removeformat",""]] "[foo<bdi dir=rtl>bar</bdi>baz]" checks for modifications to non-editable content
 [FAIL] [["removeformat",""]] "[foo<bdi dir=rtl>bar</bdi>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<bdi dir=\"rtl\">bar</bdi>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<bdi dir=\\"rtl\\">bar</bdi>baz"
 [PASS] [["removeformat",""]] "[foo<bdi dir=rtl>bar</bdi>baz]" queryCommandIndeterm("removeformat") before
 [PASS] [["removeformat",""]] "[foo<bdi dir=rtl>bar</bdi>baz]" queryCommandState("removeformat") before
 [PASS] [["removeformat",""]] "[foo<bdi dir=rtl>bar</bdi>baz]" queryCommandValue("removeformat") before
@@ -614,7 +614,7 @@
 [PASS] [["removeformat",""]] "foo<bdi dir=rtl>b[a]r</bdi>baz": execCommand("removeformat", false, "") return value
 [PASS] [["removeformat",""]] "foo<bdi dir=rtl>b[a]r</bdi>baz" checks for modifications to non-editable content
 [FAIL] [["removeformat",""]] "foo<bdi dir=rtl>b[a]r</bdi>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<bdi dir=\"rtl\">b</bdi>a<bdi dir=\"rtl\">r</bdi>baz" but got "foo<bdi dir=\"rtl\">bar</bdi>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<bdi dir=\\"rtl\\">b</bdi>a<bdi dir=\\"rtl\\">r</bdi>baz" but got "foo<bdi dir=\\"rtl\\">bar</bdi>baz"
 [PASS] [["removeformat",""]] "foo<bdi dir=rtl>b[a]r</bdi>baz" queryCommandIndeterm("removeformat") before
 [PASS] [["removeformat",""]] "foo<bdi dir=rtl>b[a]r</bdi>baz" queryCommandState("removeformat") before
 [PASS] [["removeformat",""]] "foo<bdi dir=rtl>b[a]r</bdi>baz" queryCommandValue("removeformat") before
@@ -1571,28 +1571,28 @@
 [PASS] [["removeformat",""]] "foo<nonexistentelement>b[a]r</nonexistentelement>baz" queryCommandIndeterm("removeformat") after
 [PASS] [["removeformat",""]] "foo<nonexistentelement>b[a]r</nonexistentelement>baz" queryCommandState("removeformat") after
 [PASS] [["removeformat",""]] "foo<nonexistentelement>b[a]r</nonexistentelement>baz" queryCommandValue("removeformat") after
-[PASS] [["removeformat",""]] "[foo<nonexistentelement style=\"display: block\">bar</nonexistentelement>baz]": execCommand("removeformat", false, "") return value
-[PASS] [["removeformat",""]] "[foo<nonexistentelement style=\"display: block\">bar</nonexistentelement>baz]" checks for modifications to non-editable content
-[PASS] [["removeformat",""]] "[foo<nonexistentelement style=\"display: block\">bar</nonexistentelement>baz]" compare innerHTML
-[PASS] [["removeformat",""]] "[foo<nonexistentelement style=\"display: block\">bar</nonexistentelement>baz]" queryCommandIndeterm("removeformat") before
-[PASS] [["removeformat",""]] "[foo<nonexistentelement style=\"display: block\">bar</nonexistentelement>baz]" queryCommandState("removeformat") before
-[PASS] [["removeformat",""]] "[foo<nonexistentelement style=\"display: block\">bar</nonexistentelement>baz]" queryCommandValue("removeformat") before
-[PASS] [["removeformat",""]] "[foo<nonexistentelement style=\"display: block\">bar</nonexistentelement>baz]" queryCommandIndeterm("removeformat") after
-[PASS] [["removeformat",""]] "[foo<nonexistentelement style=\"display: block\">bar</nonexistentelement>baz]" queryCommandState("removeformat") after
-[PASS] [["removeformat",""]] "[foo<nonexistentelement style=\"display: block\">bar</nonexistentelement>baz]" queryCommandValue("removeformat") after
-[PASS] [["removeformat",""]] "foo<nonexistentelement style=\"display: block\">b[a]r</nonexistentelement>baz": execCommand("removeformat", false, "") return value
-[PASS] [["removeformat",""]] "foo<nonexistentelement style=\"display: block\">b[a]r</nonexistentelement>baz" checks for modifications to non-editable content
-[PASS] [["removeformat",""]] "foo<nonexistentelement style=\"display: block\">b[a]r</nonexistentelement>baz" compare innerHTML
-[PASS] [["removeformat",""]] "foo<nonexistentelement style=\"display: block\">b[a]r</nonexistentelement>baz" queryCommandIndeterm("removeformat") before
-[PASS] [["removeformat",""]] "foo<nonexistentelement style=\"display: block\">b[a]r</nonexistentelement>baz" queryCommandState("removeformat") before
-[PASS] [["removeformat",""]] "foo<nonexistentelement style=\"display: block\">b[a]r</nonexistentelement>baz" queryCommandValue("removeformat") before
-[PASS] [["removeformat",""]] "foo<nonexistentelement style=\"display: block\">b[a]r</nonexistentelement>baz" queryCommandIndeterm("removeformat") after
-[PASS] [["removeformat",""]] "foo<nonexistentelement style=\"display: block\">b[a]r</nonexistentelement>baz" queryCommandState("removeformat") after
-[PASS] [["removeformat",""]] "foo<nonexistentelement style=\"display: block\">b[a]r</nonexistentelement>baz" queryCommandValue("removeformat") after
+[PASS] [["removeformat",""]] "[foo<nonexistentelement style=\\"display: block\\">bar</nonexistentelement>baz]": execCommand("removeformat", false, "") return value
+[PASS] [["removeformat",""]] "[foo<nonexistentelement style=\\"display: block\\">bar</nonexistentelement>baz]" checks for modifications to non-editable content
+[PASS] [["removeformat",""]] "[foo<nonexistentelement style=\\"display: block\\">bar</nonexistentelement>baz]" compare innerHTML
+[PASS] [["removeformat",""]] "[foo<nonexistentelement style=\\"display: block\\">bar</nonexistentelement>baz]" queryCommandIndeterm("removeformat") before
+[PASS] [["removeformat",""]] "[foo<nonexistentelement style=\\"display: block\\">bar</nonexistentelement>baz]" queryCommandState("removeformat") before
+[PASS] [["removeformat",""]] "[foo<nonexistentelement style=\\"display: block\\">bar</nonexistentelement>baz]" queryCommandValue("removeformat") before
+[PASS] [["removeformat",""]] "[foo<nonexistentelement style=\\"display: block\\">bar</nonexistentelement>baz]" queryCommandIndeterm("removeformat") after
+[PASS] [["removeformat",""]] "[foo<nonexistentelement style=\\"display: block\\">bar</nonexistentelement>baz]" queryCommandState("removeformat") after
+[PASS] [["removeformat",""]] "[foo<nonexistentelement style=\\"display: block\\">bar</nonexistentelement>baz]" queryCommandValue("removeformat") after
+[PASS] [["removeformat",""]] "foo<nonexistentelement style=\\"display: block\\">b[a]r</nonexistentelement>baz": execCommand("removeformat", false, "") return value
+[PASS] [["removeformat",""]] "foo<nonexistentelement style=\\"display: block\\">b[a]r</nonexistentelement>baz" checks for modifications to non-editable content
+[PASS] [["removeformat",""]] "foo<nonexistentelement style=\\"display: block\\">b[a]r</nonexistentelement>baz" compare innerHTML
+[PASS] [["removeformat",""]] "foo<nonexistentelement style=\\"display: block\\">b[a]r</nonexistentelement>baz" queryCommandIndeterm("removeformat") before
+[PASS] [["removeformat",""]] "foo<nonexistentelement style=\\"display: block\\">b[a]r</nonexistentelement>baz" queryCommandState("removeformat") before
+[PASS] [["removeformat",""]] "foo<nonexistentelement style=\\"display: block\\">b[a]r</nonexistentelement>baz" queryCommandValue("removeformat") before
+[PASS] [["removeformat",""]] "foo<nonexistentelement style=\\"display: block\\">b[a]r</nonexistentelement>baz" queryCommandIndeterm("removeformat") after
+[PASS] [["removeformat",""]] "foo<nonexistentelement style=\\"display: block\\">b[a]r</nonexistentelement>baz" queryCommandState("removeformat") after
+[PASS] [["removeformat",""]] "foo<nonexistentelement style=\\"display: block\\">b[a]r</nonexistentelement>baz" queryCommandValue("removeformat") after
 [PASS] [["removeformat",""]] "[foo<span id=foo>bar</span>baz]": execCommand("removeformat", false, "") return value
 [PASS] [["removeformat",""]] "[foo<span id=foo>bar</span>baz]" checks for modifications to non-editable content
 [FAIL] [["removeformat",""]] "[foo<span id=foo>bar</span>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<span id=\"foo\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<span id=\\"foo\\">bar</span>baz"
 [PASS] [["removeformat",""]] "[foo<span id=foo>bar</span>baz]" queryCommandIndeterm("removeformat") before
 [PASS] [["removeformat",""]] "[foo<span id=foo>bar</span>baz]" queryCommandState("removeformat") before
 [PASS] [["removeformat",""]] "[foo<span id=foo>bar</span>baz]" queryCommandValue("removeformat") before
@@ -1602,7 +1602,7 @@
 [PASS] [["removeformat",""]] "foo<span id=foo>b[a]r</span>baz": execCommand("removeformat", false, "") return value
 [PASS] [["removeformat",""]] "foo<span id=foo>b[a]r</span>baz" checks for modifications to non-editable content
 [FAIL] [["removeformat",""]] "foo<span id=foo>b[a]r</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span id=\"foo\">b</span>a<span>r</span>baz" but got "foo<span id=\"foo\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span id=\\"foo\\">b</span>a<span>r</span>baz" but got "foo<span id=\\"foo\\">bar</span>baz"
 [PASS] [["removeformat",""]] "foo<span id=foo>b[a]r</span>baz" queryCommandIndeterm("removeformat") before
 [PASS] [["removeformat",""]] "foo<span id=foo>b[a]r</span>baz" queryCommandState("removeformat") before
 [PASS] [["removeformat",""]] "foo<span id=foo>b[a]r</span>baz" queryCommandValue("removeformat") before
@@ -1612,7 +1612,7 @@
 [PASS] [["removeformat",""]] "[foo<span class=foo>bar</span>baz]": execCommand("removeformat", false, "") return value
 [PASS] [["removeformat",""]] "[foo<span class=foo>bar</span>baz]" checks for modifications to non-editable content
 [FAIL] [["removeformat",""]] "[foo<span class=foo>bar</span>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<span class=\"foo\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<span class=\\"foo\\">bar</span>baz"
 [PASS] [["removeformat",""]] "[foo<span class=foo>bar</span>baz]" queryCommandIndeterm("removeformat") before
 [PASS] [["removeformat",""]] "[foo<span class=foo>bar</span>baz]" queryCommandState("removeformat") before
 [PASS] [["removeformat",""]] "[foo<span class=foo>bar</span>baz]" queryCommandValue("removeformat") before
@@ -1622,227 +1622,227 @@
 [PASS] [["removeformat",""]] "foo<span class=foo>b[a]r</span>baz": execCommand("removeformat", false, "") return value
 [PASS] [["removeformat",""]] "foo<span class=foo>b[a]r</span>baz" checks for modifications to non-editable content
 [FAIL] [["removeformat",""]] "foo<span class=foo>b[a]r</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span class=\"foo\">b</span>a<span class=\"foo\">r</span>baz" but got "foo<span class=\"foo\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span class=\\"foo\\">b</span>a<span class=\\"foo\\">r</span>baz" but got "foo<span class=\\"foo\\">bar</span>baz"
 [PASS] [["removeformat",""]] "foo<span class=foo>b[a]r</span>baz" queryCommandIndeterm("removeformat") before
 [PASS] [["removeformat",""]] "foo<span class=foo>b[a]r</span>baz" queryCommandState("removeformat") before
 [PASS] [["removeformat",""]] "foo<span class=foo>b[a]r</span>baz" queryCommandValue("removeformat") before
 [PASS] [["removeformat",""]] "foo<span class=foo>b[a]r</span>baz" queryCommandIndeterm("removeformat") after
 [PASS] [["removeformat",""]] "foo<span class=foo>b[a]r</span>baz" queryCommandState("removeformat") after
 [PASS] [["removeformat",""]] "foo<span class=foo>b[a]r</span>baz" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]": execCommand("removeformat", false, "") return value
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" compare innerHTML
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]": execCommand("removeformat", false, "") return value
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" compare innerHTML
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\"font-weight: normal\">bar</b>baz]" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz": execCommand("removeformat", false, "") return value
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz": execCommand("removeformat", false, "") return value
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\"font-weight: normal\">b[a]r</b>baz" queryCommandValue("removeformat") after
-[PASS] [["removeformat",""]] "<p style=\"background-color: aqua\">foo[bar]baz</p>": execCommand("removeformat", false, "") return value
-[PASS] [["removeformat",""]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["removeformat",""]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"background-color:rgb(0, 255, 255)\">foobarbaz</p>" but got "<p style=\"\"><span style=\"background-color:rgb(0, 255, 255)\">foo</span>bar<span style=\"background-color:rgb(0, 255, 255)\">baz</span></p>"
-[PASS] [["removeformat",""]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" queryCommandIndeterm("removeformat") before
-[PASS] [["removeformat",""]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" queryCommandState("removeformat") before
-[PASS] [["removeformat",""]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" queryCommandValue("removeformat") before
-[PASS] [["removeformat",""]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" queryCommandIndeterm("removeformat") after
-[PASS] [["removeformat",""]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" queryCommandState("removeformat") after
-[PASS] [["removeformat",""]] "<p style=\"background-color: aqua\">foo[bar]baz</p>" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>": execCommand("removeformat", false, "") return value
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" compare innerHTML
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>": execCommand("removeformat", false, "") return value
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" compare innerHTML
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\"background-color: aqua\">foo[bar]baz</span></p>" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>": execCommand("removeformat", false, "") return value
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"font-weight:bold\">foo</span>bar<span style=\"font-weight:bold\">baz</span></p>" but got "<p style=\"\"><span style=\"font-weight:bold\">foo</span>bar<span style=\"font-weight:bold\">baz</span></p>"
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>": execCommand("removeformat", false, "") return value
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b>foo</b>bar<b>baz</b></p>" but got "<p style=\"\"><span style=\"font-weight:bold\">foo</span>bar<b>baz</b></p>"
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>": execCommand("removeformat", false, "") return value
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"font-weight:bold\">foo</span>bar<span style=\"font-weight:bold\">baz</span></p>" but got "<p style=\"\"><b><span style=\"font-weight:bold\">foo</span></b>bar<b>baz</b></p>"
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandValue("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>": execCommand("removeformat", false, "") return value
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b>foo</b>bar<b>baz</b></p>" but got "<p style=\"\"><b><span style=\"font-weight:bold\">foo</span></b>bar<b>baz</b></p>"
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandIndeterm("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandState("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandValue("removeformat") before
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandIndeterm("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandState("removeformat") after
-[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\"font-weight: bold\">foo[bar]baz</p></b>" queryCommandValue("removeformat") after
-[PASS] [["removeformat",""]] "<p style=\"font-variant: small-caps\">foo[bar]baz</p>": execCommand("removeformat", false, "") return value
-[PASS] [["removeformat",""]] "<p style=\"font-variant: small-caps\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["removeformat",""]] "<p style=\"font-variant: small-caps\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"font-variant:small-caps\">foobarbaz</p>" but got "<p style=\"font-variant-numeric:normal; font-variant-east-asian:normal; font-variant-alternates:normal; font-variant-position:normal\"><span style=\"font-variant-ligatures:normal; font-variant-caps:small-caps\">foo</span>bar<span style=\"font-variant-caps:small-caps\">baz</span></p>"
-[PASS] [["removeformat",""]] "<p style=\"font-variant: small-caps\">foo[bar]baz</p>" queryCommandIndeterm("removeformat") before
-[PASS] [["removeformat",""]] "<p style=\"font-variant: small-caps\">foo[bar]baz</p>" queryCommandState("removeformat") before
-[PASS] [["removeformat",""]] "<p style=\"font-variant: small-caps\">foo[bar]baz</p>" queryCommandValue("removeformat") before
-[PASS] [["removeformat",""]] "<p style=\"font-variant: small-caps\">foo[bar]baz</p>" queryCommandIndeterm("removeformat") after
-[PASS] [["removeformat",""]] "<p style=\"font-variant: small-caps\">foo[bar]baz</p>" queryCommandState("removeformat") after
-[PASS] [["removeformat",""]] "<p style=\"font-variant: small-caps\">foo[bar]baz</p>" queryCommandValue("removeformat") after
-[PASS] [["removeformat",""]] "{<p style=\"font-variant: small-caps\">foobarbaz</p>}": execCommand("removeformat", false, "") return value
-[PASS] [["removeformat",""]] "{<p style=\"font-variant: small-caps\">foobarbaz</p>}" checks for modifications to non-editable content
-[FAIL] [["removeformat",""]] "{<p style=\"font-variant: small-caps\">foobarbaz</p>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"font-variant:small-caps\">foobarbaz</p>" but got "<p style=\"font-variant-numeric:normal; font-variant-east-asian:normal; font-variant-alternates:normal; font-variant-position:normal\">foobarbaz</p>"
-[PASS] [["removeformat",""]] "{<p style=\"font-variant: small-caps\">foobarbaz</p>}" queryCommandIndeterm("removeformat") before
-[PASS] [["removeformat",""]] "{<p style=\"font-variant: small-caps\">foobarbaz</p>}" queryCommandState("removeformat") before
-[PASS] [["removeformat",""]] "{<p style=\"font-variant: small-caps\">foobarbaz</p>}" queryCommandValue("removeformat") before
-[PASS] [["removeformat",""]] "{<p style=\"font-variant: small-caps\">foobarbaz</p>}" queryCommandIndeterm("removeformat") after
-[PASS] [["removeformat",""]] "{<p style=\"font-variant: small-caps\">foobarbaz</p>}" queryCommandState("removeformat") after
-[PASS] [["removeformat",""]] "{<p style=\"font-variant: small-caps\">foobarbaz</p>}" queryCommandValue("removeformat") after
-[PASS] [["removeformat",""]] "<p style=\"text-indent: 2em\">foo[bar]baz</p>": execCommand("removeformat", false, "") return value
-[PASS] [["removeformat",""]] "<p style=\"text-indent: 2em\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["removeformat",""]] "<p style=\"text-indent: 2em\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"text-indent:2em\">foobarbaz</p>" but got "<p style=\"\">foobarbaz</p>"
-[PASS] [["removeformat",""]] "<p style=\"text-indent: 2em\">foo[bar]baz</p>" queryCommandIndeterm("removeformat") before
-[PASS] [["removeformat",""]] "<p style=\"text-indent: 2em\">foo[bar]baz</p>" queryCommandState("removeformat") before
-[PASS] [["removeformat",""]] "<p style=\"text-indent: 2em\">foo[bar]baz</p>" queryCommandValue("removeformat") before
-[PASS] [["removeformat",""]] "<p style=\"text-indent: 2em\">foo[bar]baz</p>" queryCommandIndeterm("removeformat") after
-[PASS] [["removeformat",""]] "<p style=\"text-indent: 2em\">foo[bar]baz</p>" queryCommandState("removeformat") after
-[PASS] [["removeformat",""]] "<p style=\"text-indent: 2em\">foo[bar]baz</p>" queryCommandValue("removeformat") after
-[PASS] [["removeformat",""]] "{<p style=\"text-indent: 2em\">foobarbaz</p>}": execCommand("removeformat", false, "") return value
-[PASS] [["removeformat",""]] "{<p style=\"text-indent: 2em\">foobarbaz</p>}" checks for modifications to non-editable content
-[FAIL] [["removeformat",""]] "{<p style=\"text-indent: 2em\">foobarbaz</p>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"text-indent:2em\">foobarbaz</p>" but got "<p style=\"\">foobarbaz</p>"
-[PASS] [["removeformat",""]] "{<p style=\"text-indent: 2em\">foobarbaz</p>}" queryCommandIndeterm("removeformat") before
-[PASS] [["removeformat",""]] "{<p style=\"text-indent: 2em\">foobarbaz</p>}" queryCommandState("removeformat") before
-[PASS] [["removeformat",""]] "{<p style=\"text-indent: 2em\">foobarbaz</p>}" queryCommandValue("removeformat") before
-[PASS] [["removeformat",""]] "{<p style=\"text-indent: 2em\">foobarbaz</p>}" queryCommandIndeterm("removeformat") after
-[PASS] [["removeformat",""]] "{<p style=\"text-indent: 2em\">foobarbaz</p>}" queryCommandState("removeformat") after
-[PASS] [["removeformat",""]] "{<p style=\"text-indent: 2em\">foobarbaz</p>}" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" compare innerHTML
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" compare innerHTML
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "[foo<b style=\\"font-weight: normal\\">bar</b>baz]" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "foo<b style=\\"font-weight: normal\\">b[a]r</b>baz" queryCommandValue("removeformat") after
+[PASS] [["removeformat",""]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>": execCommand("removeformat", false, "") return value
+[PASS] [["removeformat",""]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["removeformat",""]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"background-color:rgb(0, 255, 255)\\">foobarbaz</p>" but got "<p style=\\"\\"><span style=\\"background-color:rgb(0, 255, 255)\\">foo</span>bar<span style=\\"background-color:rgb(0, 255, 255)\\">baz</span></p>"
+[PASS] [["removeformat",""]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" queryCommandIndeterm("removeformat") before
+[PASS] [["removeformat",""]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" queryCommandState("removeformat") before
+[PASS] [["removeformat",""]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" queryCommandValue("removeformat") before
+[PASS] [["removeformat",""]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" queryCommandIndeterm("removeformat") after
+[PASS] [["removeformat",""]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" queryCommandState("removeformat") after
+[PASS] [["removeformat",""]] "<p style=\\"background-color: aqua\\">foo[bar]baz</p>" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" compare innerHTML
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" compare innerHTML
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p><span style=\\"background-color: aqua\\">foo[bar]baz</span></p>" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"font-weight:bold\\">foo</span>bar<span style=\\"font-weight:bold\\">baz</span></p>" but got "<p style=\\"\\"><span style=\\"font-weight:bold\\">foo</span>bar<span style=\\"font-weight:bold\\">baz</span></p>"
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b>foo</b>bar<b>baz</b></p>" but got "<p style=\\"\\"><span style=\\"font-weight:bold\\">foo</span>bar<b>baz</b></p>"
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"font-weight:bold\\">foo</span>bar<span style=\\"font-weight:bold\\">baz</span></p>" but got "<p style=\\"\\"><b><span style=\\"font-weight:bold\\">foo</span></b>bar<b>baz</b></p>"
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","true"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandValue("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>": execCommand("removeformat", false, "") return value
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b>foo</b>bar<b>baz</b></p>" but got "<p style=\\"\\"><b><span style=\\"font-weight:bold\\">foo</span></b>bar<b>baz</b></p>"
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandIndeterm("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandState("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandValue("removeformat") before
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandIndeterm("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandState("removeformat") after
+[PASS] [["stylewithcss","false"],["removeformat",""]] "<b><p style=\\"font-weight: bold\\">foo[bar]baz</p></b>" queryCommandValue("removeformat") after
+[PASS] [["removeformat",""]] "<p style=\\"font-variant: small-caps\\">foo[bar]baz</p>": execCommand("removeformat", false, "") return value
+[PASS] [["removeformat",""]] "<p style=\\"font-variant: small-caps\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["removeformat",""]] "<p style=\\"font-variant: small-caps\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"font-variant:small-caps\\">foobarbaz</p>" but got "<p style=\\"font-variant-numeric:normal; font-variant-east-asian:normal; font-variant-alternates:normal; font-variant-position:normal\\"><span style=\\"font-variant-ligatures:normal; font-variant-caps:small-caps\\">foo</span>bar<span style=\\"font-variant-caps:small-caps\\">baz</span></p>"
+[PASS] [["removeformat",""]] "<p style=\\"font-variant: small-caps\\">foo[bar]baz</p>" queryCommandIndeterm("removeformat") before
+[PASS] [["removeformat",""]] "<p style=\\"font-variant: small-caps\\">foo[bar]baz</p>" queryCommandState("removeformat") before
+[PASS] [["removeformat",""]] "<p style=\\"font-variant: small-caps\\">foo[bar]baz</p>" queryCommandValue("removeformat") before
+[PASS] [["removeformat",""]] "<p style=\\"font-variant: small-caps\\">foo[bar]baz</p>" queryCommandIndeterm("removeformat") after
+[PASS] [["removeformat",""]] "<p style=\\"font-variant: small-caps\\">foo[bar]baz</p>" queryCommandState("removeformat") after
+[PASS] [["removeformat",""]] "<p style=\\"font-variant: small-caps\\">foo[bar]baz</p>" queryCommandValue("removeformat") after
+[PASS] [["removeformat",""]] "{<p style=\\"font-variant: small-caps\\">foobarbaz</p>}": execCommand("removeformat", false, "") return value
+[PASS] [["removeformat",""]] "{<p style=\\"font-variant: small-caps\\">foobarbaz</p>}" checks for modifications to non-editable content
+[FAIL] [["removeformat",""]] "{<p style=\\"font-variant: small-caps\\">foobarbaz</p>}" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"font-variant:small-caps\\">foobarbaz</p>" but got "<p style=\\"font-variant-numeric:normal; font-variant-east-asian:normal; font-variant-alternates:normal; font-variant-position:normal\\">foobarbaz</p>"
+[PASS] [["removeformat",""]] "{<p style=\\"font-variant: small-caps\\">foobarbaz</p>}" queryCommandIndeterm("removeformat") before
+[PASS] [["removeformat",""]] "{<p style=\\"font-variant: small-caps\\">foobarbaz</p>}" queryCommandState("removeformat") before
+[PASS] [["removeformat",""]] "{<p style=\\"font-variant: small-caps\\">foobarbaz</p>}" queryCommandValue("removeformat") before
+[PASS] [["removeformat",""]] "{<p style=\\"font-variant: small-caps\\">foobarbaz</p>}" queryCommandIndeterm("removeformat") after
+[PASS] [["removeformat",""]] "{<p style=\\"font-variant: small-caps\\">foobarbaz</p>}" queryCommandState("removeformat") after
+[PASS] [["removeformat",""]] "{<p style=\\"font-variant: small-caps\\">foobarbaz</p>}" queryCommandValue("removeformat") after
+[PASS] [["removeformat",""]] "<p style=\\"text-indent: 2em\\">foo[bar]baz</p>": execCommand("removeformat", false, "") return value
+[PASS] [["removeformat",""]] "<p style=\\"text-indent: 2em\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["removeformat",""]] "<p style=\\"text-indent: 2em\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"text-indent:2em\\">foobarbaz</p>" but got "<p style=\\"\\">foobarbaz</p>"
+[PASS] [["removeformat",""]] "<p style=\\"text-indent: 2em\\">foo[bar]baz</p>" queryCommandIndeterm("removeformat") before
+[PASS] [["removeformat",""]] "<p style=\\"text-indent: 2em\\">foo[bar]baz</p>" queryCommandState("removeformat") before
+[PASS] [["removeformat",""]] "<p style=\\"text-indent: 2em\\">foo[bar]baz</p>" queryCommandValue("removeformat") before
+[PASS] [["removeformat",""]] "<p style=\\"text-indent: 2em\\">foo[bar]baz</p>" queryCommandIndeterm("removeformat") after
+[PASS] [["removeformat",""]] "<p style=\\"text-indent: 2em\\">foo[bar]baz</p>" queryCommandState("removeformat") after
+[PASS] [["removeformat",""]] "<p style=\\"text-indent: 2em\\">foo[bar]baz</p>" queryCommandValue("removeformat") after
+[PASS] [["removeformat",""]] "{<p style=\\"text-indent: 2em\\">foobarbaz</p>}": execCommand("removeformat", false, "") return value
+[PASS] [["removeformat",""]] "{<p style=\\"text-indent: 2em\\">foobarbaz</p>}" checks for modifications to non-editable content
+[FAIL] [["removeformat",""]] "{<p style=\\"text-indent: 2em\\">foobarbaz</p>}" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"text-indent:2em\\">foobarbaz</p>" but got "<p style=\\"\\">foobarbaz</p>"
+[PASS] [["removeformat",""]] "{<p style=\\"text-indent: 2em\\">foobarbaz</p>}" queryCommandIndeterm("removeformat") before
+[PASS] [["removeformat",""]] "{<p style=\\"text-indent: 2em\\">foobarbaz</p>}" queryCommandState("removeformat") before
+[PASS] [["removeformat",""]] "{<p style=\\"text-indent: 2em\\">foobarbaz</p>}" queryCommandValue("removeformat") before
+[PASS] [["removeformat",""]] "{<p style=\\"text-indent: 2em\\">foobarbaz</p>}" queryCommandIndeterm("removeformat") after
+[PASS] [["removeformat",""]] "{<p style=\\"text-indent: 2em\\">foobarbaz</p>}" queryCommandState("removeformat") after
+[PASS] [["removeformat",""]] "{<p style=\\"text-indent: 2em\\">foobarbaz</p>}" queryCommandValue("removeformat") after
 [PASS] [["stylewithcss","true"],["removeformat",""]] "<table data-start=0 data-end=1><tr><td><b>foo</b></table>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["removeformat",""]] "<table data-start=0 data-end=1><tr><td><b>foo</b></table>": execCommand("removeformat", false, "") return value
 [PASS] [["stylewithcss","true"],["removeformat",""]] "<table data-start=0 data-end=1><tr><td><b>foo</b></table>" checks for modifications to non-editable content
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/strikethrough_1-1000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/strikethrough_1-1000-expected.txt
index 4dc2ee0b..688ffbf 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/strikethrough_1-1000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/strikethrough_1-1000-expected.txt
@@ -15,7 +15,7 @@
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<p>[foo</p> <p>bar]</p>": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<p>[foo</p> <p>bar]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p>[foo</p> <p>bar]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"text-decoration:line-through\">foo</span></p> <p><span style=\"text-decoration:line-through\">bar</span></p>" but got "<p><span style=\"text-decoration-line:line-through\">foo</span></p> <p><span style=\"text-decoration-line:line-through\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"text-decoration:line-through\\">foo</span></p> <p><span style=\\"text-decoration:line-through\\">bar</span></p>" but got "<p><span style=\\"text-decoration-line:line-through\\">foo</span></p> <p><span style=\\"text-decoration-line:line-through\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<p>[foo</p> <p>bar]</p>" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p>[foo</p> <p>bar]</p>" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -53,7 +53,7 @@
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<span>[foo</span> <span>bar]</span>": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<span>[foo</span> <span>bar]</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "<span>[foo</span> <span>bar]</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"text-decoration:line-through\"><span>foo</span> <span>bar</span></span>" but got "<span style=\"text-decoration-line:line-through\"><span>foo</span> <span>bar</span></span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"text-decoration:line-through\\"><span>foo</span> <span>bar</span></span>" but got "<span style=\\"text-decoration-line:line-through\\"><span>foo</span> <span>bar</span></span>"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<span>[foo</span> <span>bar]</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<span>[foo</span> <span>bar]</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<span>[foo</span> <span>bar]</span>" queryCommandValue("stylewithcss") before
@@ -90,7 +90,7 @@
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"text-decoration:line-through\">foo</span></p><p> <span style=\"text-decoration:line-through\">bar</span> </p><p><span style=\"text-decoration:line-through\">baz</span></p>" but got "<p><span style=\"text-decoration-line:line-through\">foo</span></p><p> <span style=\"text-decoration-line:line-through\"><span>bar</span> </span></p><p><span style=\"text-decoration-line:line-through\">baz</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"text-decoration:line-through\\">foo</span></p><p> <span style=\\"text-decoration:line-through\\">bar</span> </p><p><span style=\\"text-decoration:line-through\\">baz</span></p>" but got "<p><span style=\\"text-decoration-line:line-through\\">foo</span></p><p> <span style=\\"text-decoration-line:line-through\\"><span>bar</span> </span></p><p><span style=\\"text-decoration-line:line-through\\">baz</span></p>"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandValue("stylewithcss") before
@@ -128,7 +128,7 @@
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<p>[foo<p><br><p>bar]": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<p>[foo<p><br><p>bar]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p>[foo<p><br><p>bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"text-decoration:line-through\">foo</span></p><p><span style=\"text-decoration:line-through\"><br></span></p><p><span style=\"text-decoration:line-through\">bar</span></p>" but got "<p><span style=\"text-decoration-line:line-through\">foo</span></p><p><span style=\"text-decoration-line:line-through\"><br></span></p><p><span style=\"text-decoration-line:line-through\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"text-decoration:line-through\\">foo</span></p><p><span style=\\"text-decoration:line-through\\"><br></span></p><p><span style=\\"text-decoration:line-through\\">bar</span></p>" but got "<p><span style=\\"text-decoration-line:line-through\\">foo</span></p><p><span style=\\"text-decoration-line:line-through\\"><br></span></p><p><span style=\\"text-decoration-line:line-through\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<p>[foo<p><br><p>bar]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<p>[foo<p><br><p>bar]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<p>[foo<p><br><p>bar]" queryCommandValue("stylewithcss") before
@@ -209,7 +209,7 @@
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo[bar]baz": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo[bar]baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo[bar]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:line-through\">bar</span>baz" but got "foo<span style=\"text-decoration-line:line-through\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:line-through\\">bar</span>baz" but got "foo<span style=\\"text-decoration-line:line-through\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo[bar]baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo[bar]baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo[bar]baz" queryCommandValue("stylewithcss") before
@@ -246,7 +246,7 @@
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo[bar<b>baz]qoz</b>quz": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo[bar<b>baz]qoz</b>quz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo[bar<b>baz]qoz</b>quz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:line-through\">bar</span><b><span style=\"text-decoration:line-through\">baz</span>qoz</b>quz" but got "foo<span style=\"text-decoration-line:line-through\">bar</span><b><span style=\"text-decoration-line:line-through\">baz</span>qoz</b>quz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:line-through\\">bar</span><b><span style=\\"text-decoration:line-through\\">baz</span>qoz</b>quz" but got "foo<span style=\\"text-decoration-line:line-through\\">bar</span><b><span style=\\"text-decoration-line:line-through\\">baz</span>qoz</b>quz"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo[bar<b>baz]qoz</b>quz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo[bar<b>baz]qoz</b>quz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo[bar<b>baz]qoz</b>quz" queryCommandValue("stylewithcss") before
@@ -283,7 +283,7 @@
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo[bar<i>baz]qoz</i>quz": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo[bar<i>baz]qoz</i>quz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo[bar<i>baz]qoz</i>quz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:line-through\">bar</span><i><span style=\"text-decoration:line-through\">baz</span>qoz</i>quz" but got "foo<span style=\"text-decoration-line:line-through\">bar</span><i><span style=\"text-decoration-line:line-through\">baz</span>qoz</i>quz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:line-through\\">bar</span><i><span style=\\"text-decoration:line-through\\">baz</span>qoz</i>quz" but got "foo<span style=\\"text-decoration-line:line-through\\">bar</span><i><span style=\\"text-decoration-line:line-through\\">baz</span>qoz</i>quz"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo[bar<i>baz]qoz</i>quz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo[bar<i>baz]qoz</i>quz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo[bar<i>baz]qoz</i>quz" queryCommandValue("stylewithcss") before
@@ -320,7 +320,7 @@
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "{<p><p> <p>foo</p>}": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "{<p><p> <p>foo</p>}" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "{<p><p> <p>foo</p>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p></p><p> </p><p><span style=\"text-decoration:line-through\">foo</span></p>" but got "<p></p><p> </p><p><span style=\"text-decoration-line:line-through\">foo</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p></p><p> </p><p><span style=\\"text-decoration:line-through\\">foo</span></p>" but got "<p></p><p> </p><p><span style=\\"text-decoration-line:line-through\\">foo</span></p>"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "{<p><p> <p>foo</p>}" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "{<p><p> <p>foo</p>}" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "{<p><p> <p>foo</p>}" queryCommandValue("stylewithcss") before
@@ -357,7 +357,7 @@
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>b<span style=\"text-decoration:line-through\">a</span>r</td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td>b<span style=\"text-decoration-line:line-through\">a</span>r</td><td>baz</td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>b<span style=\\"text-decoration:line-through\\">a</span>r</td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td>b<span style=\\"text-decoration-line:line-through\\">a</span>r</td><td>baz</td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -394,7 +394,7 @@
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><span style=\"text-decoration:line-through\">bar</span></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td><span style=\"text-decoration-line:line-through\">bar</span></td><td>baz</td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><span style=\\"text-decoration:line-through\\">bar</span></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td><span style=\\"text-decoration-line:line-through\\">bar</span></td><td>baz</td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -431,7 +431,7 @@
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><span style=\"text-decoration:line-through\">foo</span></td><td><span style=\"text-decoration:line-through\">bar</span></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"text-decoration-line:line-through\">foo</span></td><td><span style=\"text-decoration-line:line-through\">bar</span></td><td>baz</td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><span style=\\"text-decoration:line-through\\">foo</span></td><td><span style=\\"text-decoration:line-through\\">bar</span></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"text-decoration-line:line-through\\">foo</span></td><td><span style=\\"text-decoration-line:line-through\\">bar</span></td><td>baz</td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -468,7 +468,7 @@
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><span style=\"text-decoration:line-through\">foo</span></td><td><span style=\"text-decoration:line-through\">bar</span></td><td><span style=\"text-decoration:line-through\">baz</span></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"text-decoration-line:line-through\">foo</span></td><td><span style=\"text-decoration-line:line-through\">bar</span></td><td><span style=\"text-decoration-line:line-through\">baz</span></td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><span style=\\"text-decoration:line-through\\">foo</span></td><td><span style=\\"text-decoration:line-through\\">bar</span></td><td><span style=\\"text-decoration:line-through\\">baz</span></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"text-decoration-line:line-through\\">foo</span></td><td><span style=\\"text-decoration-line:line-through\\">bar</span></td><td><span style=\\"text-decoration-line:line-through\\">baz</span></td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -505,7 +505,7 @@
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><span style=\"text-decoration:line-through\">foo</span></td><td><span style=\"text-decoration:line-through\">bar</span></td><td><span style=\"text-decoration:line-through\">baz</span></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"text-decoration-line:line-through\">foo</span></td><td><span style=\"text-decoration-line:line-through\">bar</span></td><td><span style=\"text-decoration-line:line-through\">baz</span></td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><span style=\\"text-decoration:line-through\\">foo</span></td><td><span style=\\"text-decoration:line-through\\">bar</span></td><td><span style=\\"text-decoration:line-through\\">baz</span></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"text-decoration-line:line-through\\">foo</span></td><td><span style=\\"text-decoration-line:line-through\\">bar</span></td><td><span style=\\"text-decoration-line:line-through\\">baz</span></td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -544,7 +544,7 @@
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><span style=\"text-decoration:line-through\">foo</span></td><td><span style=\"text-decoration:line-through\">bar</span></td><td><span style=\"text-decoration:line-through\">baz</span></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"text-decoration-line:line-through\">foo</span></td><td><span style=\"text-decoration-line:line-through\">bar</span></td><td><span style=\"text-decoration-line:line-through\">baz</span></td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><span style=\\"text-decoration:line-through\\">foo</span></td><td><span style=\\"text-decoration:line-through\\">bar</span></td><td><span style=\\"text-decoration:line-through\\">baz</span></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"text-decoration-line:line-through\\">foo</span></td><td><span style=\\"text-decoration-line:line-through\\">bar</span></td><td><span style=\\"text-decoration-line:line-through\\">baz</span></td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandValue("stylewithcss") before
@@ -583,7 +583,7 @@
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u>[bar]</u>baz": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u>[bar]</u>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u>[bar]</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline line-through\">bar</span>baz" but got "foo<span style=\"text-decoration-line:underline line-through\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline line-through\\">bar</span>baz" but got "foo<span style=\\"text-decoration-line:underline line-through\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u>[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u>[bar]</u>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u>[bar]</u>baz" queryCommandValue("stylewithcss") before
@@ -616,49 +616,49 @@
 [PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u>[bar]</u>baz" queryCommandState("strikethrough") after
 [FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u>[bar]</u>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline line-through\">bar</span>baz" but got "foo<span style=\"text-decoration-line:underline line-through\">bar</span>baz"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline line-through\\">bar</span>baz" but got "foo<span style=\\"text-decoration-line:underline line-through\\">bar</span>baz"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<strike><span style=\"text-decoration:underline\">bar</span></strike>baz" but got "foo<u><strike>bar</strike></u>baz"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<strike><span style=\\"text-decoration:underline\\">bar</span></strike>baz" but got "foo<u><strike>bar</strike></u>baz"
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[bar]baz</u>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[bar]baz</u>": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[bar]baz</u>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[bar]baz</u>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<u>foo<span style=\"text-decoration:line-through\">bar</span>baz</u>" but got "<u>foo<span style=\"text-decoration-line:line-through\">bar</span>baz</u>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<u>foo<span style=\\"text-decoration:line-through\\">bar</span>baz</u>" but got "<u>foo<span style=\\"text-decoration-line:line-through\\">bar</span>baz</u>"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[bar]baz</u>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[bar]baz</u>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[bar]baz</u>" queryCommandValue("stylewithcss") before
@@ -691,122 +691,122 @@
 [PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[bar]baz</u>" queryCommandState("strikethrough") after
 [FAIL] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[bar]baz</u>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<u>foo<span style=\"text-decoration:line-through\">b</span><span style=\"color:rgb(0, 0, 255)\"><span style=\"text-decoration:line-through\">ar</span>ba</span>z</u>" but got "<u>foo<span style=\"text-decoration-line:line-through\">b</span><span style=\"color:rgb(0, 0, 255)\"><span style=\"text-decoration-line:line-through\">ar</span>ba</span>z</u>"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<u>foo<span style=\\"text-decoration:line-through\\">b</span><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"text-decoration:line-through\\">ar</span>ba</span>z</u>" but got "<u>foo<span style=\\"text-decoration-line:line-through\\">b</span><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"text-decoration-line:line-through\\">ar</span>ba</span>z</u>"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<u>foo<span style=\"text-decoration:line-through\">b</span><span style=\"color:rgb(0, 0, 255)\" id=\"foo\"><span style=\"text-decoration:line-through\">ar</span>ba</span>z</u>" but got "<u>foo<span style=\"text-decoration-line:line-through\">b</span><span style=\"color:rgb(0, 0, 255)\" id=\"foo\"><span style=\"text-decoration-line:line-through\">ar</span>ba</span>z</u>"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<u>foo<span style=\\"text-decoration:line-through\\">b</span><span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\"><span style=\\"text-decoration:line-through\\">ar</span>ba</span>z</u>" but got "<u>foo<span style=\\"text-decoration-line:line-through\\">b</span><span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\"><span style=\\"text-decoration-line:line-through\\">ar</span>ba</span>z</u>"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<u>foo<span style=\"text-decoration:line-through\">b</span><span style=\"font-size:3em\"><span style=\"text-decoration:line-through\">ar</span>ba</span>z</u>" but got "<u>foo<span style=\"text-decoration-line:line-through\">b</span><span style=\"font-size:3em\"><span style=\"text-decoration-line:line-through\">ar</span>ba</span>z</u>"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<u>foo<span style=\\"text-decoration:line-through\\">b</span><span style=\\"font-size:3em\\"><span style=\\"text-decoration:line-through\\">ar</span>ba</span>z</u>" but got "<u>foo<span style=\\"text-decoration-line:line-through\\">b</span><span style=\\"font-size:3em\\"><span style=\\"text-decoration-line:line-through\\">ar</span>ba</span>z</u>"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<i>ar]ba</i>z</u>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<i>ar]ba</i>z</u>": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<i>ar]ba</i>z</u>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<i>ar]ba</i>z</u>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<u>foo<span style=\"text-decoration:line-through\">b</span><i><span style=\"text-decoration:line-through\">ar</span>ba</i>z</u>" but got "<u>foo<span style=\"text-decoration-line:line-through\">b</span><i><span style=\"text-decoration-line:line-through\">ar</span>ba</i>z</u>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<u>foo<span style=\\"text-decoration:line-through\\">b</span><i><span style=\\"text-decoration:line-through\\">ar</span>ba</i>z</u>" but got "<u>foo<span style=\\"text-decoration-line:line-through\\">b</span><i><span style=\\"text-decoration-line:line-through\\">ar</span>ba</i>z</u>"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<i>ar]ba</i>z</u>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<i>ar]ba</i>z</u>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<u>foo[b<i>ar]ba</i>z</u>" queryCommandValue("stylewithcss") before
@@ -839,79 +839,79 @@
 [PASS] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<i>ar]ba</i>z</u>" queryCommandState("strikethrough") after
 [FAIL] [["stylewithcss","false"],["strikethrough",""]] "<u>foo[b<i>ar]ba</i>z</u>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"text-decoration:underline\">foo<span style=\"text-decoration:line-through\">bar</span>baz</p>" but got "<p style=\"\"><span style=\"text-decoration-line:underline\">foo</span><span style=\"text-decoration-line:underline line-through\">bar</span><span style=\"text-decoration-line:underline\">baz</span></p>"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"text-decoration:underline\\">foo<span style=\\"text-decoration:line-through\\">bar</span>baz</p>" but got "<p style=\\"\\"><span style=\\"text-decoration-line:underline\\">foo</span><span style=\\"text-decoration-line:underline line-through\\">bar</span><span style=\\"text-decoration-line:underline\\">baz</span></p>"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"text-decoration:underline\">foo<strike>bar</strike>baz</p>" but got "<p style=\"\"><span style=\"text-decoration-line:underline\">foo</span><u><strike>bar</strike>baz</u></p>"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"text-decoration:underline\\">foo<strike>bar</strike>baz</p>" but got "<p style=\\"\\"><span style=\\"text-decoration-line:underline\\">foo</span><u><strike>bar</strike>baz</u></p>"
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[bar]baz</s>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[bar]baz</s>": execCommand("strikethrough", false, "") return value
@@ -949,125 +949,125 @@
 [PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[bar]baz</s>" queryCommandState("strikethrough") after
 [FAIL] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[bar]baz</s>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo</s>b<span style=\"color:rgb(0, 0, 255)\">ar<span style=\"text-decoration-line:line-through\">ba</span></span><s>z</s>" but got "<s>foo</s>b<span style=\"color:rgb(0, 0, 255)\">ar<span style=\"text-decoration-line:line-through\">ba</span></span><span style=\"text-decoration-line:line-through\">z</span>"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo</s>b<span style=\\"color:rgb(0, 0, 255)\\">ar<span style=\\"text-decoration-line:line-through\\">ba</span></span><s>z</s>" but got "<s>foo</s>b<span style=\\"color:rgb(0, 0, 255)\\">ar<span style=\\"text-decoration-line:line-through\\">ba</span></span><span style=\\"text-decoration-line:line-through\\">z</span>"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo</s>b<span style=\"color:rgb(0, 0, 255)\">ar<strike>ba</strike></span><s>z</s>" but got "<s>foo</s>b<span style=\"color:rgb(0, 0, 255)\">ar<strike>ba</strike></span><strike>z</strike>"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo</s>b<span style=\\"color:rgb(0, 0, 255)\\">ar<strike>ba</strike></span><s>z</s>" but got "<s>foo</s>b<span style=\\"color:rgb(0, 0, 255)\\">ar<strike>ba</strike></span><strike>z</strike>"
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo</s>b<span style=\"color:rgb(0, 0, 255)\" id=\"foo\">ar<span style=\"text-decoration-line:line-through\">ba</span></span><s>z</s>" but got "<s>foo</s>b<span style=\"color:rgb(0, 0, 255)\" id=\"foo\">ar<span style=\"text-decoration-line:line-through\">ba</span></span><span style=\"text-decoration-line:line-through\">z</span>"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo</s>b<span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\">ar<span style=\\"text-decoration-line:line-through\\">ba</span></span><s>z</s>" but got "<s>foo</s>b<span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\">ar<span style=\\"text-decoration-line:line-through\\">ba</span></span><span style=\\"text-decoration-line:line-through\\">z</span>"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo</s>b<span style=\"color:rgb(0, 0, 255)\" id=\"foo\">ar<strike>ba</strike></span><s>z</s>" but got "<s>foo</s>b<span style=\"color:rgb(0, 0, 255)\" id=\"foo\">ar<strike>ba</strike></span><strike>z</strike>"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo</s>b<span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\">ar<strike>ba</strike></span><s>z</s>" but got "<s>foo</s>b<span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\">ar<strike>ba</strike></span><strike>z</strike>"
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo</s>b<span style=\"font-size:3em\">ar<span style=\"text-decoration-line:line-through\">ba</span></span><s>z</s>" but got "<s>foo</s>b<span style=\"font-size:3em\">ar<span style=\"text-decoration-line:line-through\">ba</span></span><span style=\"text-decoration-line:line-through\">z</span>"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo</s>b<span style=\\"font-size:3em\\">ar<span style=\\"text-decoration-line:line-through\\">ba</span></span><s>z</s>" but got "<s>foo</s>b<span style=\\"font-size:3em\\">ar<span style=\\"text-decoration-line:line-through\\">ba</span></span><span style=\\"text-decoration-line:line-through\\">z</span>"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo</s>b<span style=\"font-size:3em\">ar<strike>ba</strike></span><s>z</s>" but got "<s>foo</s>b<span style=\"font-size:3em\">ar<strike>ba</strike></span><strike>z</strike>"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo</s>b<span style=\\"font-size:3em\\">ar<strike>ba</strike></span><s>z</s>" but got "<s>foo</s>b<span style=\\"font-size:3em\\">ar<strike>ba</strike></span><strike>z</strike>"
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<i>ar]ba</i>z</s>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<i>ar]ba</i>z</s>": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<i>ar]ba</i>z</s>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<i>ar]ba</i>z</s>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo</s>b<i>ar<span style=\"text-decoration-line:line-through\">ba</span></i><s>z</s>" but got "<s>foo</s>b<i style=\"\">ar<span style=\"text-decoration-line:line-through\">ba</span></i><span style=\"text-decoration-line:line-through\">z</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo</s>b<i>ar<span style=\\"text-decoration-line:line-through\\">ba</span></i><s>z</s>" but got "<s>foo</s>b<i style=\\"\\">ar<span style=\\"text-decoration-line:line-through\\">ba</span></i><span style=\\"text-decoration-line:line-through\\">z</span>"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<i>ar]ba</i>z</s>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<i>ar]ba</i>z</s>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<s>foo[b<i>ar]ba</i>z</s>" queryCommandValue("stylewithcss") before
@@ -1086,7 +1086,7 @@
 [PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<i>ar]ba</i>z</s>": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<i>ar]ba</i>z</s>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<i>ar]ba</i>z</s>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo</s>b<i>ar<strike>ba</strike></i><s>z</s>" but got "<s>foo</s>b<i style=\"\">ar<strike>ba</strike></i><strike>z</strike>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo</s>b<i>ar<strike>ba</strike></i><s>z</s>" but got "<s>foo</s>b<i style=\\"\\">ar<strike>ba</strike></i><strike>z</strike>"
 [PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<i>ar]ba</i>z</s>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<i>ar]ba</i>z</s>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>foo[b<i>ar]ba</i>z</s>" queryCommandValue("stylewithcss") before
@@ -1141,7 +1141,7 @@
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[bar]baz</strike>": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[bar]baz</strike>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[bar]baz</strike>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"text-decoration:line-through\">foo</span>bar<span style=\"text-decoration:line-through\">baz</span>" but got "<strike>foo</strike>bar<strike>baz</strike>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"text-decoration:line-through\\">foo</span>bar<span style=\\"text-decoration:line-through\\">baz</span>" but got "<strike>foo</strike>bar<strike>baz</strike>"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[bar]baz</strike>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[bar]baz</strike>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[bar]baz</strike>" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/underline_1-1000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/underline_1-1000-expected.txt
index f4215dd..b2d0009 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/underline_1-1000-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/underline_1-1000-expected.txt
@@ -15,7 +15,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "<p>[foo</p> <p>bar]</p>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<p>[foo</p> <p>bar]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<p>[foo</p> <p>bar]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"text-decoration:underline\">foo</span></p> <p><span style=\"text-decoration:underline\">bar</span></p>" but got "<p><span style=\"text-decoration-line:underline\">foo</span></p> <p><span style=\"text-decoration-line:underline\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"text-decoration:underline\\">foo</span></p> <p><span style=\\"text-decoration:underline\\">bar</span></p>" but got "<p><span style=\\"text-decoration-line:underline\\">foo</span></p> <p><span style=\\"text-decoration-line:underline\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<p>[foo</p> <p>bar]</p>" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["underline",""]] "<p>[foo</p> <p>bar]</p>" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -53,7 +53,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "<span>[foo</span> <span>bar]</span>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<span>[foo</span> <span>bar]</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<span>[foo</span> <span>bar]</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"text-decoration:underline\"><span>foo</span> <span>bar</span></span>" but got "<span style=\"text-decoration-line:underline\"><span>foo</span> <span>bar</span></span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"text-decoration:underline\\"><span>foo</span> <span>bar</span></span>" but got "<span style=\\"text-decoration-line:underline\\"><span>foo</span> <span>bar</span></span>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<span>[foo</span> <span>bar]</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<span>[foo</span> <span>bar]</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<span>[foo</span> <span>bar]</span>" queryCommandValue("stylewithcss") before
@@ -90,7 +90,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"text-decoration:underline\">foo</span></p><p> <span style=\"text-decoration:underline\">bar</span> </p><p><span style=\"text-decoration:underline\">baz</span></p>" but got "<p><span style=\"text-decoration-line:underline\">foo</span></p><p> <span style=\"text-decoration-line:underline\"><span>bar</span> </span></p><p><span style=\"text-decoration-line:underline\">baz</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"text-decoration:underline\\">foo</span></p><p> <span style=\\"text-decoration:underline\\">bar</span> </p><p><span style=\\"text-decoration:underline\\">baz</span></p>" but got "<p><span style=\\"text-decoration-line:underline\\">foo</span></p><p> <span style=\\"text-decoration-line:underline\\"><span>bar</span> </span></p><p><span style=\\"text-decoration-line:underline\\">baz</span></p>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandValue("stylewithcss") before
@@ -128,7 +128,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "<p>[foo<p><br><p>bar]": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<p>[foo<p><br><p>bar]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<p>[foo<p><br><p>bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"text-decoration:underline\">foo</span></p><p><span style=\"text-decoration:underline\"><br></span></p><p><span style=\"text-decoration:underline\">bar</span></p>" but got "<p><span style=\"text-decoration-line:underline\">foo</span></p><p><span style=\"text-decoration-line:underline\"><br></span></p><p><span style=\"text-decoration-line:underline\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"text-decoration:underline\\">foo</span></p><p><span style=\\"text-decoration:underline\\"><br></span></p><p><span style=\\"text-decoration:underline\\">bar</span></p>" but got "<p><span style=\\"text-decoration-line:underline\\">foo</span></p><p><span style=\\"text-decoration-line:underline\\"><br></span></p><p><span style=\\"text-decoration-line:underline\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<p>[foo<p><br><p>bar]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<p>[foo<p><br><p>bar]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<p>[foo<p><br><p>bar]" queryCommandValue("stylewithcss") before
@@ -209,7 +209,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[bar]baz": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[bar]baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "foo[bar]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline\">bar</span>baz" but got "foo<span style=\"text-decoration-line:underline\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline\\">bar</span>baz" but got "foo<span style=\\"text-decoration-line:underline\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[bar]baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[bar]baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[bar]baz" queryCommandValue("stylewithcss") before
@@ -246,7 +246,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[bar<b>baz]qoz</b>quz": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[bar<b>baz]qoz</b>quz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "foo[bar<b>baz]qoz</b>quz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline\">bar</span><b><span style=\"text-decoration:underline\">baz</span>qoz</b>quz" but got "foo<span style=\"text-decoration-line:underline\">bar</span><b><span style=\"text-decoration-line:underline\">baz</span>qoz</b>quz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline\\">bar</span><b><span style=\\"text-decoration:underline\\">baz</span>qoz</b>quz" but got "foo<span style=\\"text-decoration-line:underline\\">bar</span><b><span style=\\"text-decoration-line:underline\\">baz</span>qoz</b>quz"
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[bar<b>baz]qoz</b>quz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[bar<b>baz]qoz</b>quz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[bar<b>baz]qoz</b>quz" queryCommandValue("stylewithcss") before
@@ -283,7 +283,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[bar<i>baz]qoz</i>quz": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[bar<i>baz]qoz</i>quz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "foo[bar<i>baz]qoz</i>quz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline\">bar</span><i><span style=\"text-decoration:underline\">baz</span>qoz</i>quz" but got "foo<span style=\"text-decoration-line:underline\">bar</span><i><span style=\"text-decoration-line:underline\">baz</span>qoz</i>quz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline\\">bar</span><i><span style=\\"text-decoration:underline\\">baz</span>qoz</i>quz" but got "foo<span style=\\"text-decoration-line:underline\\">bar</span><i><span style=\\"text-decoration-line:underline\\">baz</span>qoz</i>quz"
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[bar<i>baz]qoz</i>quz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[bar<i>baz]qoz</i>quz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[bar<i>baz]qoz</i>quz" queryCommandValue("stylewithcss") before
@@ -320,7 +320,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "{<p><p> <p>foo</p>}": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "{<p><p> <p>foo</p>}" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "{<p><p> <p>foo</p>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p></p><p> </p><p><span style=\"text-decoration:underline\">foo</span></p>" but got "<p></p><p> </p><p><span style=\"text-decoration-line:underline\">foo</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p></p><p> </p><p><span style=\\"text-decoration:underline\\">foo</span></p>" but got "<p></p><p> </p><p><span style=\\"text-decoration-line:underline\\">foo</span></p>"
 [PASS] [["stylewithcss","true"],["underline",""]] "{<p><p> <p>foo</p>}" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "{<p><p> <p>foo</p>}" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "{<p><p> <p>foo</p>}" queryCommandValue("stylewithcss") before
@@ -357,7 +357,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>b<span style=\"text-decoration:underline\">a</span>r</td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td>b<span style=\"text-decoration-line:underline\">a</span>r</td><td>baz</td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>b<span style=\\"text-decoration:underline\\">a</span>r</td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td>b<span style=\\"text-decoration-line:underline\\">a</span>r</td><td>baz</td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -394,7 +394,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><span style=\"text-decoration:underline\">bar</span></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td><span style=\"text-decoration-line:underline\">bar</span></td><td>baz</td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><span style=\\"text-decoration:underline\\">bar</span></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td><span style=\\"text-decoration-line:underline\\">bar</span></td><td>baz</td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -431,7 +431,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><span style=\"text-decoration:underline\">foo</span></td><td><span style=\"text-decoration:underline\">bar</span></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"text-decoration-line:underline\">foo</span></td><td><span style=\"text-decoration-line:underline\">bar</span></td><td>baz</td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><span style=\\"text-decoration:underline\\">foo</span></td><td><span style=\\"text-decoration:underline\\">bar</span></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"text-decoration-line:underline\\">foo</span></td><td><span style=\\"text-decoration-line:underline\\">bar</span></td><td>baz</td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -468,7 +468,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><span style=\"text-decoration:underline\">foo</span></td><td><span style=\"text-decoration:underline\">bar</span></td><td><span style=\"text-decoration:underline\">baz</span></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"text-decoration-line:underline\">foo</span></td><td><span style=\"text-decoration-line:underline\">bar</span></td><td><span style=\"text-decoration-line:underline\">baz</span></td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><span style=\\"text-decoration:underline\\">foo</span></td><td><span style=\\"text-decoration:underline\\">bar</span></td><td><span style=\\"text-decoration:underline\\">baz</span></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"text-decoration-line:underline\\">foo</span></td><td><span style=\\"text-decoration-line:underline\\">bar</span></td><td><span style=\\"text-decoration-line:underline\\">baz</span></td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -505,7 +505,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><span style=\"text-decoration:underline\">foo</span></td><td><span style=\"text-decoration:underline\">bar</span></td><td><span style=\"text-decoration:underline\">baz</span></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"text-decoration-line:underline\">foo</span></td><td><span style=\"text-decoration-line:underline\">bar</span></td><td><span style=\"text-decoration-line:underline\">baz</span></td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><span style=\\"text-decoration:underline\\">foo</span></td><td><span style=\\"text-decoration:underline\\">bar</span></td><td><span style=\\"text-decoration:underline\\">baz</span></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"text-decoration-line:underline\\">foo</span></td><td><span style=\\"text-decoration-line:underline\\">bar</span></td><td><span style=\\"text-decoration-line:underline\\">baz</span></td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -544,7 +544,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><span style=\"text-decoration:underline\">foo</span></td><td><span style=\"text-decoration:underline\">bar</span></td><td><span style=\"text-decoration:underline\">baz</span></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"text-decoration-line:underline\">foo</span></td><td><span style=\"text-decoration-line:underline\">bar</span></td><td><span style=\"text-decoration-line:underline\">baz</span></td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><span style=\\"text-decoration:underline\\">foo</span></td><td><span style=\\"text-decoration:underline\\">bar</span></td><td><span style=\\"text-decoration:underline\\">baz</span></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"text-decoration-line:underline\\">foo</span></td><td><span style=\\"text-decoration-line:underline\\">bar</span></td><td><span style=\\"text-decoration-line:underline\\">baz</span></td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["underline",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandValue("stylewithcss") before
@@ -579,47 +579,47 @@
   assert_equals: Wrong result returned expected true but got false
 [FAIL] [["stylewithcss","false"],["underline",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline\">[bar]</span>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline\\">[bar]</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
 [PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[bar]baz</u>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[bar]baz</u>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[bar]baz</u>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<u>foo[bar]baz</u>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"text-decoration:underline\">foo</span>bar<span style=\"text-decoration:underline\">baz</span>" but got "<u>foo</u>bar<u>baz</u>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"text-decoration:underline\\">foo</span>bar<span style=\\"text-decoration:underline\\">baz</span>" but got "<u>foo</u>bar<u>baz</u>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[bar]baz</u>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[bar]baz</u>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[bar]baz</u>" queryCommandValue("stylewithcss") before
@@ -652,122 +652,122 @@
 [PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[bar]baz</u>" queryCommandState("underline") after
 [FAIL] [["stylewithcss","false"],["underline",""]] "<u>foo[bar]baz</u>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"text-decoration:underline\">foo</span>b<span style=\"color:rgb(0, 0, 255)\">ar<span style=\"text-decoration:underline\">ba</span></span><span style=\"text-decoration:underline\">z</span>" but got "<u>foo</u>b<span style=\"color:rgb(0, 0, 255)\">ar<span style=\"text-decoration-line:underline\">ba</span></span><span style=\"text-decoration-line:underline\">z</span>"
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"text-decoration:underline\\">foo</span>b<span style=\\"color:rgb(0, 0, 255)\\">ar<span style=\\"text-decoration:underline\\">ba</span></span><span style=\\"text-decoration:underline\\">z</span>" but got "<u>foo</u>b<span style=\\"color:rgb(0, 0, 255)\\">ar<span style=\\"text-decoration-line:underline\\">ba</span></span><span style=\\"text-decoration-line:underline\\">z</span>"
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\">ar]ba</span>z</u>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\">ar]ba</span>z</u>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"text-decoration:underline\">foo</span>b<span style=\"color:rgb(0, 0, 255)\" id=\"foo\">ar<span style=\"text-decoration:underline\">ba</span></span><span style=\"text-decoration:underline\">z</span>" but got "<u>foo</u>b<span style=\"color:rgb(0, 0, 255)\" id=\"foo\">ar<span style=\"text-decoration-line:underline\">ba</span></span><span style=\"text-decoration-line:underline\">z</span>"
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"text-decoration:underline\\">foo</span>b<span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\">ar<span style=\\"text-decoration:underline\\">ba</span></span><span style=\\"text-decoration:underline\\">z</span>" but got "<u>foo</u>b<span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\">ar<span style=\\"text-decoration-line:underline\\">ba</span></span><span style=\\"text-decoration-line:underline\\">z</span>"
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</u>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</u>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"text-decoration:underline\">foo</span>b<span style=\"font-size:3em\">ar<span style=\"text-decoration:underline\">ba</span></span><span style=\"text-decoration:underline\">z</span>" but got "<u>foo</u>b<span style=\"font-size:3em\">ar<span style=\"text-decoration-line:underline\">ba</span></span><span style=\"text-decoration-line:underline\">z</span>"
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"text-decoration:underline\\">foo</span>b<span style=\\"font-size:3em\\">ar<span style=\\"text-decoration:underline\\">ba</span></span><span style=\\"text-decoration:underline\\">z</span>" but got "<u>foo</u>b<span style=\\"font-size:3em\\">ar<span style=\\"text-decoration-line:underline\\">ba</span></span><span style=\\"text-decoration-line:underline\\">z</span>"
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\"font-size:3em\">ar]ba</span>z</u>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "<u>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</u>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
 [PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<i>ar]ba</i>z</u>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<i>ar]ba</i>z</u>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<i>ar]ba</i>z</u>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<u>foo[b<i>ar]ba</i>z</u>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"text-decoration:underline\">foo</span>b<i>ar<span style=\"text-decoration:underline\">ba</span></i><span style=\"text-decoration:underline\">z</span>" but got "<u>foo</u>b<i style=\"\">ar<span style=\"text-decoration-line:underline\">ba</span></i><span style=\"text-decoration-line:underline\">z</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"text-decoration:underline\\">foo</span>b<i>ar<span style=\\"text-decoration:underline\\">ba</span></i><span style=\\"text-decoration:underline\\">z</span>" but got "<u>foo</u>b<i style=\\"\\">ar<span style=\\"text-decoration-line:underline\\">ba</span></i><span style=\\"text-decoration-line:underline\\">z</span>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<i>ar]ba</i>z</u>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<i>ar]ba</i>z</u>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<u>foo[b<i>ar]ba</i>z</u>" queryCommandValue("stylewithcss") before
@@ -786,7 +786,7 @@
 [PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<i>ar]ba</i>z</u>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<i>ar]ba</i>z</u>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["underline",""]] "<u>foo[b<i>ar]ba</i>z</u>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<u>foo</u>b<i>ar<u>ba</u></i><u>z</u>" but got "<u>foo</u>b<i style=\"\">ar<u>ba</u></i><u>z</u>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<u>foo</u>b<i>ar<u>ba</u></i><u>z</u>" but got "<u>foo</u>b<i style=\\"\\">ar<u>ba</u></i><u>z</u>"
 [PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<i>ar]ba</i>z</u>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<i>ar]ba</i>z</u>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<i>ar]ba</i>z</u>" queryCommandValue("stylewithcss") before
@@ -801,49 +801,49 @@
 [PASS] [["stylewithcss","false"],["underline",""]] "<u>foo[b<i>ar]ba</i>z</u>" queryCommandState("underline") after
 [FAIL] [["stylewithcss","false"],["underline",""]] "<u>foo[b<i>ar]ba</i>z</u>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"text-decoration:underline\">foo</span>bar<span style=\"text-decoration:underline\">baz</span></p>" but got "<p style=\"\"><span style=\"text-decoration-line:underline\">foo</span>bar<span style=\"text-decoration-line:underline\">baz</span></p>"
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"text-decoration:underline\\">foo</span>bar<span style=\\"text-decoration:underline\\">baz</span></p>" but got "<p style=\\"\\"><span style=\\"text-decoration-line:underline\\">foo</span>bar<span style=\\"text-decoration-line:underline\\">baz</span></p>"
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><u>foo</u>bar<u>baz</u></p>" but got "<p style=\"\"><span style=\"text-decoration-line:underline\">foo</span>bar<u>baz</u></p>"
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><u>foo</u>bar<u>baz</u></p>" but got "<p style=\\"\\"><span style=\\"text-decoration-line:underline\\">foo</span>bar<u>baz</u></p>"
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: underline\">foo[bar]baz</p>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: underline\\">foo[bar]baz</p>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<s>[bar]</s>baz": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<s>[bar]</s>baz": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<s>[bar]</s>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "foo<s>[bar]</s>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline line-through\">bar</span>baz" but got "foo<span style=\"text-decoration-line:underline line-through\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline line-through\\">bar</span>baz" but got "foo<span style=\\"text-decoration-line:underline line-through\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<s>[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<s>[bar]</s>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<s>[bar]</s>baz" queryCommandValue("stylewithcss") before
@@ -877,49 +877,49 @@
 [PASS] [["stylewithcss","false"],["underline",""]] "foo<s>[bar]</s>baz" queryCommandState("underline") after
 [FAIL] [["stylewithcss","false"],["underline",""]] "foo<s>[bar]</s>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline line-through\">bar</span>baz" but got "foo<span style=\"text-decoration-line:underline line-through\">bar</span>baz"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline line-through\\">bar</span>baz" but got "foo<span style=\\"text-decoration-line:underline line-through\\">bar</span>baz"
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u><span style=\"text-decoration:line-through\">bar</span></u>baz" but got "foo<u><strike>bar</strike></u>baz"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u><span style=\\"text-decoration:line-through\\">bar</span></u>baz" but got "foo<u><strike>bar</strike></u>baz"
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: line-through\">[bar]</span>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: line-through\\">[bar]</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[bar]baz</s>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[bar]baz</s>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[bar]baz</s>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<s>foo[bar]baz</s>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo<span style=\"text-decoration:underline\">bar</span>baz</s>" but got "<s>foo<span style=\"text-decoration-line:underline\">bar</span>baz</s>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo<span style=\\"text-decoration:underline\\">bar</span>baz</s>" but got "<s>foo<span style=\\"text-decoration-line:underline\\">bar</span>baz</s>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[bar]baz</s>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[bar]baz</s>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[bar]baz</s>" queryCommandValue("stylewithcss") before
@@ -952,122 +952,122 @@
 [PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[bar]baz</s>" queryCommandState("underline") after
 [FAIL] [["stylewithcss","false"],["underline",""]] "<s>foo[bar]baz</s>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo<span style=\"text-decoration:underline\">b</span><span style=\"color:rgb(0, 0, 255)\"><span style=\"text-decoration:underline\">ar</span>ba</span>z</s>" but got "<s>foo<span style=\"text-decoration-line:underline\">b</span><span style=\"color:rgb(0, 0, 255)\"><span style=\"text-decoration-line:underline\">ar</span>ba</span>z</s>"
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo<span style=\\"text-decoration:underline\\">b</span><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"text-decoration:underline\\">ar</span>ba</span>z</s>" but got "<s>foo<span style=\\"text-decoration-line:underline\\">b</span><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"text-decoration-line:underline\\">ar</span>ba</span>z</s>"
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\">ar]ba</span>z</s>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\">ar]ba</span>z</s>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo<span style=\"text-decoration:underline\">b</span><span style=\"color:rgb(0, 0, 255)\" id=\"foo\"><span style=\"text-decoration:underline\">ar</span>ba</span>z</s>" but got "<s>foo<span style=\"text-decoration-line:underline\">b</span><span style=\"color:rgb(0, 0, 255)\" id=\"foo\"><span style=\"text-decoration-line:underline\">ar</span>ba</span>z</s>"
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo<span style=\\"text-decoration:underline\\">b</span><span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\"><span style=\\"text-decoration:underline\\">ar</span>ba</span>z</s>" but got "<s>foo<span style=\\"text-decoration-line:underline\\">b</span><span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\"><span style=\\"text-decoration-line:underline\\">ar</span>ba</span>z</s>"
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</s>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</s>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo<span style=\"text-decoration:underline\">b</span><span style=\"font-size:3em\"><span style=\"text-decoration:underline\">ar</span>ba</span>z</s>" but got "<s>foo<span style=\"text-decoration-line:underline\">b</span><span style=\"font-size:3em\"><span style=\"text-decoration-line:underline\">ar</span>ba</span>z</s>"
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo<span style=\\"text-decoration:underline\\">b</span><span style=\\"font-size:3em\\"><span style=\\"text-decoration:underline\\">ar</span>ba</span>z</s>" but got "<s>foo<span style=\\"text-decoration-line:underline\\">b</span><span style=\\"font-size:3em\\"><span style=\\"text-decoration-line:underline\\">ar</span>ba</span>z</s>"
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\"font-size:3em\">ar]ba</span>z</s>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "<s>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</s>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<i>ar]ba</i>z</s>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<i>ar]ba</i>z</s>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<i>ar]ba</i>z</s>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<s>foo[b<i>ar]ba</i>z</s>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo<span style=\"text-decoration:underline\">b</span><i><span style=\"text-decoration:underline\">ar</span>ba</i>z</s>" but got "<s>foo<span style=\"text-decoration-line:underline\">b</span><i><span style=\"text-decoration-line:underline\">ar</span>ba</i>z</s>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<s>foo<span style=\\"text-decoration:underline\\">b</span><i><span style=\\"text-decoration:underline\\">ar</span>ba</i>z</s>" but got "<s>foo<span style=\\"text-decoration-line:underline\\">b</span><i><span style=\\"text-decoration-line:underline\\">ar</span>ba</i>z</s>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<i>ar]ba</i>z</s>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<i>ar]ba</i>z</s>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<s>foo[b<i>ar]ba</i>z</s>" queryCommandValue("stylewithcss") before
@@ -1100,49 +1100,49 @@
 [PASS] [["stylewithcss","false"],["underline",""]] "<s>foo[b<i>ar]ba</i>z</s>" queryCommandState("underline") after
 [FAIL] [["stylewithcss","false"],["underline",""]] "<s>foo[b<i>ar]ba</i>z</s>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"text-decoration:line-through\">foo<span style=\"text-decoration:underline\">bar</span>baz</p>" but got "<p style=\"\"><span style=\"text-decoration-line:line-through\">foo</span><span style=\"text-decoration-line:underline line-through\">bar</span><span style=\"text-decoration-line:line-through\">baz</span></p>"
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"text-decoration:line-through\\">foo<span style=\\"text-decoration:underline\\">bar</span>baz</p>" but got "<p style=\\"\\"><span style=\\"text-decoration-line:line-through\\">foo</span><span style=\\"text-decoration-line:underline line-through\\">bar</span><span style=\\"text-decoration-line:line-through\\">baz</span></p>"
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"text-decoration:line-through\">foo<u>bar</u>baz</p>" but got "<p style=\"\"><span style=\"text-decoration-line:line-through\">foo</span><u><strike>bar</strike></u><strike>baz</strike></p>"
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"text-decoration:line-through\\">foo<u>bar</u>baz</p>" but got "<p style=\\"\\"><span style=\\"text-decoration-line:line-through\\">foo</span><u><strike>bar</strike></u><strike>baz</strike></p>"
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<strike>[bar]</strike>baz": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<strike>[bar]</strike>baz": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<strike>[bar]</strike>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "foo<strike>[bar]</strike>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline line-through\">bar</span>baz" but got "foo<span style=\"text-decoration-line:underline line-through\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline line-through\\">bar</span>baz" but got "foo<span style=\\"text-decoration-line:underline line-through\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<strike>[bar]</strike>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<strike>[bar]</strike>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<strike>[bar]</strike>baz" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/unlink-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/unlink-expected.txt
index 2d416ba..c9323e6 100644
--- a/third_party/blink/web_tests/external/wpt/editing/run/unlink-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/editing/run/unlink-expected.txt
@@ -116,7 +116,7 @@
 [PASS] [["unlink",""]] "<a href=http://www.google.com/>foo[bar]baz</a>": execCommand("unlink", false, "") return value
 [PASS] [["unlink",""]] "<a href=http://www.google.com/>foo[bar]baz</a>" checks for modifications to non-editable content
 [FAIL] [["unlink",""]] "<a href=http://www.google.com/>foo[bar]baz</a>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "<a href=\"http://www.google.com/\">foo</a>bar<a href=\"http://www.google.com/\">baz</a>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "<a href=\\"http://www.google.com/\\">foo</a>bar<a href=\\"http://www.google.com/\\">baz</a>"
 [PASS] [["unlink",""]] "<a href=http://www.google.com/>foo[bar]baz</a>" queryCommandIndeterm("unlink") before
 [PASS] [["unlink",""]] "<a href=http://www.google.com/>foo[bar]baz</a>" queryCommandState("unlink") before
 [PASS] [["unlink",""]] "<a href=http://www.google.com/>foo[bar]baz</a>" queryCommandValue("unlink") before
@@ -126,7 +126,7 @@
 [PASS] [["unlink",""]] "<a href=http://www.google.com/>foo[barbaz</a>}": execCommand("unlink", false, "") return value
 [PASS] [["unlink",""]] "<a href=http://www.google.com/>foo[barbaz</a>}" checks for modifications to non-editable content
 [FAIL] [["unlink",""]] "<a href=http://www.google.com/>foo[barbaz</a>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "<a href=\"http://www.google.com/\">foo</a>barbaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "<a href=\\"http://www.google.com/\\">foo</a>barbaz"
 [PASS] [["unlink",""]] "<a href=http://www.google.com/>foo[barbaz</a>}" queryCommandIndeterm("unlink") before
 [PASS] [["unlink",""]] "<a href=http://www.google.com/>foo[barbaz</a>}" queryCommandState("unlink") before
 [PASS] [["unlink",""]] "<a href=http://www.google.com/>foo[barbaz</a>}" queryCommandValue("unlink") before
@@ -136,7 +136,7 @@
 [PASS] [["unlink",""]] "{<a href=http://www.google.com/>foobar]baz</a>": execCommand("unlink", false, "") return value
 [PASS] [["unlink",""]] "{<a href=http://www.google.com/>foobar]baz</a>" checks for modifications to non-editable content
 [FAIL] [["unlink",""]] "{<a href=http://www.google.com/>foobar]baz</a>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foobar<a href=\"http://www.google.com/\">baz</a>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foobar<a href=\\"http://www.google.com/\\">baz</a>"
 [PASS] [["unlink",""]] "{<a href=http://www.google.com/>foobar]baz</a>" queryCommandIndeterm("unlink") before
 [PASS] [["unlink",""]] "{<a href=http://www.google.com/>foobar]baz</a>" queryCommandState("unlink") before
 [PASS] [["unlink",""]] "{<a href=http://www.google.com/>foobar]baz</a>" queryCommandValue("unlink") before
@@ -165,7 +165,7 @@
   assert_equals: expected true but got false
 [PASS] [["unlink",""]] "foo<a href=http://www.google.com/>b[]ar</a>baz" checks for modifications to non-editable content
 [FAIL] [["unlink",""]] "foo<a href=http://www.google.com/>b[]ar</a>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<a href=\"http://www.google.com/\">bar</a>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobarbaz" but got "foo<a href=\\"http://www.google.com/\\">bar</a>baz"
 [PASS] [["unlink",""]] "foo<a href=http://www.google.com/>b[]ar</a>baz" queryCommandIndeterm("unlink") before
 [PASS] [["unlink",""]] "foo<a href=http://www.google.com/>b[]ar</a>baz" queryCommandState("unlink") before
 [PASS] [["unlink",""]] "foo<a href=http://www.google.com/>b[]ar</a>baz" queryCommandValue("unlink") before
@@ -221,7 +221,7 @@
   assert_equals: expected true but got false
 [PASS] [["unlink",""]] "<a id=foo href=http://www.google.com/>foobar[]baz</a>" checks for modifications to non-editable content
 [FAIL] [["unlink",""]] "<a id=foo href=http://www.google.com/>foobar[]baz</a>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a id=\"foo\">foobarbaz</a>" but got "<a id=\"foo\" href=\"http://www.google.com/\">foobarbaz</a>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a id=\\"foo\\">foobarbaz</a>" but got "<a id=\\"foo\\" href=\\"http://www.google.com/\\">foobarbaz</a>"
 [PASS] [["unlink",""]] "<a id=foo href=http://www.google.com/>foobar[]baz</a>" queryCommandIndeterm("unlink") before
 [PASS] [["unlink",""]] "<a id=foo href=http://www.google.com/>foobar[]baz</a>" queryCommandState("unlink") before
 [PASS] [["unlink",""]] "<a id=foo href=http://www.google.com/>foobar[]baz</a>" queryCommandValue("unlink") before
@@ -231,7 +231,7 @@
 [PASS] [["unlink",""]] "<a id=foo href=http://www.google.com/>foo[bar]baz</a>": execCommand("unlink", false, "") return value
 [PASS] [["unlink",""]] "<a id=foo href=http://www.google.com/>foo[bar]baz</a>" checks for modifications to non-editable content
 [FAIL] [["unlink",""]] "<a id=foo href=http://www.google.com/>foo[bar]baz</a>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a id=\"foo\">foobarbaz</a>" but got "<a id=\"foo\" href=\"http://www.google.com/\">foo</a>bar<a href=\"http://www.google.com/\">baz</a>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a id=\\"foo\\">foobarbaz</a>" but got "<a id=\\"foo\\" href=\\"http://www.google.com/\\">foo</a>bar<a href=\\"http://www.google.com/\\">baz</a>"
 [PASS] [["unlink",""]] "<a id=foo href=http://www.google.com/>foo[bar]baz</a>" queryCommandIndeterm("unlink") before
 [PASS] [["unlink",""]] "<a id=foo href=http://www.google.com/>foo[bar]baz</a>" queryCommandState("unlink") before
 [PASS] [["unlink",""]] "<a id=foo href=http://www.google.com/>foo[bar]baz</a>" queryCommandValue("unlink") before
@@ -241,7 +241,7 @@
 [PASS] [["unlink",""]] "<a id=foo href=http://www.google.com/>[foobarbaz]</a>": execCommand("unlink", false, "") return value
 [PASS] [["unlink",""]] "<a id=foo href=http://www.google.com/>[foobarbaz]</a>" checks for modifications to non-editable content
 [FAIL] [["unlink",""]] "<a id=foo href=http://www.google.com/>[foobarbaz]</a>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a id=\"foo\">foobarbaz</a>" but got "foobarbaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a id=\\"foo\\">foobarbaz</a>" but got "foobarbaz"
 [PASS] [["unlink",""]] "<a id=foo href=http://www.google.com/>[foobarbaz]</a>" queryCommandIndeterm("unlink") before
 [PASS] [["unlink",""]] "<a id=foo href=http://www.google.com/>[foobarbaz]</a>" queryCommandState("unlink") before
 [PASS] [["unlink",""]] "<a id=foo href=http://www.google.com/>[foobarbaz]</a>" queryCommandValue("unlink") before
@@ -251,7 +251,7 @@
 [PASS] [["unlink",""]] "foo<a id=foo href=http://www.google.com/>[bar]</a>baz": execCommand("unlink", false, "") return value
 [PASS] [["unlink",""]] "foo<a id=foo href=http://www.google.com/>[bar]</a>baz" checks for modifications to non-editable content
 [FAIL] [["unlink",""]] "foo<a id=foo href=http://www.google.com/>[bar]</a>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a id=\"foo\">bar</a>baz" but got "foobarbaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a id=\\"foo\\">bar</a>baz" but got "foobarbaz"
 [PASS] [["unlink",""]] "foo<a id=foo href=http://www.google.com/>[bar]</a>baz" queryCommandIndeterm("unlink") before
 [PASS] [["unlink",""]] "foo<a id=foo href=http://www.google.com/>[bar]</a>baz" queryCommandState("unlink") before
 [PASS] [["unlink",""]] "foo<a id=foo href=http://www.google.com/>[bar]</a>baz" queryCommandValue("unlink") before
@@ -261,7 +261,7 @@
 [PASS] [["unlink",""]] "foo[<a id=foo href=http://www.google.com/>bar</a>]baz": execCommand("unlink", false, "") return value
 [PASS] [["unlink",""]] "foo[<a id=foo href=http://www.google.com/>bar</a>]baz" checks for modifications to non-editable content
 [FAIL] [["unlink",""]] "foo[<a id=foo href=http://www.google.com/>bar</a>]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a id=\"foo\">bar</a>baz" but got "foobarbaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a id=\\"foo\\">bar</a>baz" but got "foobarbaz"
 [PASS] [["unlink",""]] "foo[<a id=foo href=http://www.google.com/>bar</a>]baz" queryCommandIndeterm("unlink") before
 [PASS] [["unlink",""]] "foo[<a id=foo href=http://www.google.com/>bar</a>]baz" queryCommandState("unlink") before
 [PASS] [["unlink",""]] "foo[<a id=foo href=http://www.google.com/>bar</a>]baz" queryCommandValue("unlink") before
@@ -271,7 +271,7 @@
 [PASS] [["unlink",""]] "[foo<a id=foo href=http://www.google.com/>bar</a>baz]": execCommand("unlink", false, "") return value
 [PASS] [["unlink",""]] "[foo<a id=foo href=http://www.google.com/>bar</a>baz]" checks for modifications to non-editable content
 [FAIL] [["unlink",""]] "[foo<a id=foo href=http://www.google.com/>bar</a>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a id=\"foo\">bar</a>baz" but got "foobarbaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a id=\\"foo\\">bar</a>baz" but got "foobarbaz"
 [PASS] [["unlink",""]] "[foo<a id=foo href=http://www.google.com/>bar</a>baz]" queryCommandIndeterm("unlink") before
 [PASS] [["unlink",""]] "[foo<a id=foo href=http://www.google.com/>bar</a>baz]" queryCommandState("unlink") before
 [PASS] [["unlink",""]] "[foo<a id=foo href=http://www.google.com/>bar</a>baz]" queryCommandValue("unlink") before
@@ -291,7 +291,7 @@
 [PASS] [["unlink",""]] "<a name=foo>foo[bar]baz</a>": execCommand("unlink", false, "") return value
 [PASS] [["unlink",""]] "<a name=foo>foo[bar]baz</a>" checks for modifications to non-editable content
 [FAIL] [["unlink",""]] "<a name=foo>foo[bar]baz</a>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a name=\"foo\">foobarbaz</a>" but got "<a name=\"foo\">foo</a>bar<a name=\"foo\">baz</a>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a name=\\"foo\\">foobarbaz</a>" but got "<a name=\\"foo\\">foo</a>bar<a name=\\"foo\\">baz</a>"
 [PASS] [["unlink",""]] "<a name=foo>foo[bar]baz</a>" queryCommandIndeterm("unlink") before
 [PASS] [["unlink",""]] "<a name=foo>foo[bar]baz</a>" queryCommandState("unlink") before
 [PASS] [["unlink",""]] "<a name=foo>foo[bar]baz</a>" queryCommandValue("unlink") before
@@ -301,7 +301,7 @@
 [PASS] [["unlink",""]] "<a name=foo>[foobarbaz]</a>": execCommand("unlink", false, "") return value
 [PASS] [["unlink",""]] "<a name=foo>[foobarbaz]</a>" checks for modifications to non-editable content
 [FAIL] [["unlink",""]] "<a name=foo>[foobarbaz]</a>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a name=\"foo\">foobarbaz</a>" but got "foobarbaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<a name=\\"foo\\">foobarbaz</a>" but got "foobarbaz"
 [PASS] [["unlink",""]] "<a name=foo>[foobarbaz]</a>" queryCommandIndeterm("unlink") before
 [PASS] [["unlink",""]] "<a name=foo>[foobarbaz]</a>" queryCommandState("unlink") before
 [PASS] [["unlink",""]] "<a name=foo>[foobarbaz]</a>" queryCommandValue("unlink") before
@@ -311,7 +311,7 @@
 [PASS] [["unlink",""]] "foo<a name=foo>[bar]</a>baz": execCommand("unlink", false, "") return value
 [PASS] [["unlink",""]] "foo<a name=foo>[bar]</a>baz" checks for modifications to non-editable content
 [FAIL] [["unlink",""]] "foo<a name=foo>[bar]</a>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a name=\"foo\">bar</a>baz" but got "foobarbaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a name=\\"foo\\">bar</a>baz" but got "foobarbaz"
 [PASS] [["unlink",""]] "foo<a name=foo>[bar]</a>baz" queryCommandIndeterm("unlink") before
 [PASS] [["unlink",""]] "foo<a name=foo>[bar]</a>baz" queryCommandState("unlink") before
 [PASS] [["unlink",""]] "foo<a name=foo>[bar]</a>baz" queryCommandValue("unlink") before
@@ -321,7 +321,7 @@
 [PASS] [["unlink",""]] "foo[<a name=foo>bar</a>]baz": execCommand("unlink", false, "") return value
 [PASS] [["unlink",""]] "foo[<a name=foo>bar</a>]baz" checks for modifications to non-editable content
 [FAIL] [["unlink",""]] "foo[<a name=foo>bar</a>]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a name=\"foo\">bar</a>baz" but got "foobarbaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a name=\\"foo\\">bar</a>baz" but got "foobarbaz"
 [PASS] [["unlink",""]] "foo[<a name=foo>bar</a>]baz" queryCommandIndeterm("unlink") before
 [PASS] [["unlink",""]] "foo[<a name=foo>bar</a>]baz" queryCommandState("unlink") before
 [PASS] [["unlink",""]] "foo[<a name=foo>bar</a>]baz" queryCommandValue("unlink") before
@@ -331,7 +331,7 @@
 [PASS] [["unlink",""]] "[foo<a name=foo>bar</a>baz]": execCommand("unlink", false, "") return value
 [PASS] [["unlink",""]] "[foo<a name=foo>bar</a>baz]" checks for modifications to non-editable content
 [FAIL] [["unlink",""]] "[foo<a name=foo>bar</a>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a name=\"foo\">bar</a>baz" but got "foobarbaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<a name=\\"foo\\">bar</a>baz" but got "foobarbaz"
 [PASS] [["unlink",""]] "[foo<a name=foo>bar</a>baz]" queryCommandIndeterm("unlink") before
 [PASS] [["unlink",""]] "[foo<a name=foo>bar</a>baz]" queryCommandState("unlink") before
 [PASS] [["unlink",""]] "[foo<a name=foo>bar</a>baz]" queryCommandValue("unlink") before
diff --git a/third_party/blink/web_tests/external/wpt/fetch/content-type/script.window-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/content-type/script.window-expected.txt
index 557127b2..b600492c 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/content-type/script.window-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/fetch/content-type/script.window-expected.txt
@@ -32,12 +32,12 @@
 [PASS] combined text/javascript;charset=windows-1252 error text/javascript
 [PASS] separate text/javascript;charset=windows-1252  text/javascript
 [PASS] combined text/javascript;charset=windows-1252  text/javascript
-[FAIL] separate text/javascript;charset=windows-1252;" \" x/x
+[FAIL] separate text/javascript;charset=windows-1252;" \\" x/x
   assert_equals: expected "€" but got "€"
-[PASS] combined text/javascript;charset=windows-1252;" \" x/x
-[FAIL] separate x/x;" x/y;\" text/javascript;charset=windows-1252;" text/javascript
+[PASS] combined text/javascript;charset=windows-1252;" \\" x/x
+[FAIL] separate x/x;" x/y;\\" text/javascript;charset=windows-1252;" text/javascript
   assert_unreached: onerror Reached unreachable code
-[FAIL] combined x/x;" x/y;\" text/javascript;charset=windows-1252;" text/javascript
+[FAIL] combined x/x;" x/y;\\" text/javascript;charset=windows-1252;" text/javascript
   assert_unreached: onerror Reached unreachable code
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any-expected.txt
index 6106e84..bb678f54 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any-expected.txt
@@ -14,7 +14,7 @@
 [PASS] "data:text/plain,X"
 [PASS] "data:text/plain ,X"
 [PASS] "data:text/plain%20,X"
-[PASS] "data:text/plain\f,X"
+[PASS] "data:text/plain\\f,X"
 [PASS] "data:text/plain%0C,X"
 [PASS] "data:text/plain;,X"
 [FAIL] "data:;x=x;charset=x,X"
@@ -32,9 +32,9 @@
 [PASS] "data:IMAGE/gif;CHARSET=x,%C2%B1"
 [PASS] "data: ,%FF"
 [PASS] "data:%20,%FF"
-[PASS] "data:\f,%FF"
+[PASS] "data:\\f,%FF"
 [PASS] "data:%1F,%FF"
-[PASS] "data:\0,%FF"
+[PASS] "data:\\0,%FF"
 [PASS] "data:%00,%FF"
 [PASS] "data:text/html  ,X"
 [PASS] "data:text / html,X"
@@ -50,8 +50,8 @@
 [PASS] "data:text/plain,X X"
 [FAIL] "data:unknown/unknown,X X"
   assert_array_equals: lengths differ, expected array [88, 32, 88] length 3, got object "88,88" length 2
-[FAIL] "data:text/plain;a=\",\",X"
-  assert_equals: expected "text/plain;a=\"\"" but got "text/plain"
+[FAIL] "data:text/plain;a=\\",\\",X"
+  assert_equals: expected "text/plain;a=\\"\\"" but got "text/plain"
 [FAIL] "data:text/plain;a=%2C,X"
   assert_equals: expected "text/plain;a=%2C" but got "text/plain"
 [FAIL] "data:;base64;base64,WA"
@@ -91,9 +91,9 @@
   promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
 [FAIL] "data:;charset,X"
   assert_equals: expected "text/plain" but got "text/plain;charset=US-ASCII"
-[FAIL] "data:;charset=\"x\",X"
+[FAIL] "data:;charset=\\"x\\",X"
   promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
-[FAIL] "data:;CHARSET=\"X\",X"
+[FAIL] "data:;CHARSET=\\"X\\",X"
   promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any.serviceworker-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any.serviceworker-expected.txt
index 6106e84..bb678f54 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any.serviceworker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any.serviceworker-expected.txt
@@ -14,7 +14,7 @@
 [PASS] "data:text/plain,X"
 [PASS] "data:text/plain ,X"
 [PASS] "data:text/plain%20,X"
-[PASS] "data:text/plain\f,X"
+[PASS] "data:text/plain\\f,X"
 [PASS] "data:text/plain%0C,X"
 [PASS] "data:text/plain;,X"
 [FAIL] "data:;x=x;charset=x,X"
@@ -32,9 +32,9 @@
 [PASS] "data:IMAGE/gif;CHARSET=x,%C2%B1"
 [PASS] "data: ,%FF"
 [PASS] "data:%20,%FF"
-[PASS] "data:\f,%FF"
+[PASS] "data:\\f,%FF"
 [PASS] "data:%1F,%FF"
-[PASS] "data:\0,%FF"
+[PASS] "data:\\0,%FF"
 [PASS] "data:%00,%FF"
 [PASS] "data:text/html  ,X"
 [PASS] "data:text / html,X"
@@ -50,8 +50,8 @@
 [PASS] "data:text/plain,X X"
 [FAIL] "data:unknown/unknown,X X"
   assert_array_equals: lengths differ, expected array [88, 32, 88] length 3, got object "88,88" length 2
-[FAIL] "data:text/plain;a=\",\",X"
-  assert_equals: expected "text/plain;a=\"\"" but got "text/plain"
+[FAIL] "data:text/plain;a=\\",\\",X"
+  assert_equals: expected "text/plain;a=\\"\\"" but got "text/plain"
 [FAIL] "data:text/plain;a=%2C,X"
   assert_equals: expected "text/plain;a=%2C" but got "text/plain"
 [FAIL] "data:;base64;base64,WA"
@@ -91,9 +91,9 @@
   promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
 [FAIL] "data:;charset,X"
   assert_equals: expected "text/plain" but got "text/plain;charset=US-ASCII"
-[FAIL] "data:;charset=\"x\",X"
+[FAIL] "data:;charset=\\"x\\",X"
   promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
-[FAIL] "data:;CHARSET=\"X\",X"
+[FAIL] "data:;CHARSET=\\"X\\",X"
   promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any.sharedworker-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any.sharedworker-expected.txt
index 6106e84..bb678f54 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any.sharedworker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any.sharedworker-expected.txt
@@ -14,7 +14,7 @@
 [PASS] "data:text/plain,X"
 [PASS] "data:text/plain ,X"
 [PASS] "data:text/plain%20,X"
-[PASS] "data:text/plain\f,X"
+[PASS] "data:text/plain\\f,X"
 [PASS] "data:text/plain%0C,X"
 [PASS] "data:text/plain;,X"
 [FAIL] "data:;x=x;charset=x,X"
@@ -32,9 +32,9 @@
 [PASS] "data:IMAGE/gif;CHARSET=x,%C2%B1"
 [PASS] "data: ,%FF"
 [PASS] "data:%20,%FF"
-[PASS] "data:\f,%FF"
+[PASS] "data:\\f,%FF"
 [PASS] "data:%1F,%FF"
-[PASS] "data:\0,%FF"
+[PASS] "data:\\0,%FF"
 [PASS] "data:%00,%FF"
 [PASS] "data:text/html  ,X"
 [PASS] "data:text / html,X"
@@ -50,8 +50,8 @@
 [PASS] "data:text/plain,X X"
 [FAIL] "data:unknown/unknown,X X"
   assert_array_equals: lengths differ, expected array [88, 32, 88] length 3, got object "88,88" length 2
-[FAIL] "data:text/plain;a=\",\",X"
-  assert_equals: expected "text/plain;a=\"\"" but got "text/plain"
+[FAIL] "data:text/plain;a=\\",\\",X"
+  assert_equals: expected "text/plain;a=\\"\\"" but got "text/plain"
 [FAIL] "data:text/plain;a=%2C,X"
   assert_equals: expected "text/plain;a=%2C" but got "text/plain"
 [FAIL] "data:;base64;base64,WA"
@@ -91,9 +91,9 @@
   promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
 [FAIL] "data:;charset,X"
   assert_equals: expected "text/plain" but got "text/plain;charset=US-ASCII"
-[FAIL] "data:;charset=\"x\",X"
+[FAIL] "data:;charset=\\"x\\",X"
   promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
-[FAIL] "data:;CHARSET=\"X\",X"
+[FAIL] "data:;CHARSET=\\"X\\",X"
   promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any.worker-expected.txt
index 6106e84..bb678f54 100644
--- a/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any.worker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any.worker-expected.txt
@@ -14,7 +14,7 @@
 [PASS] "data:text/plain,X"
 [PASS] "data:text/plain ,X"
 [PASS] "data:text/plain%20,X"
-[PASS] "data:text/plain\f,X"
+[PASS] "data:text/plain\\f,X"
 [PASS] "data:text/plain%0C,X"
 [PASS] "data:text/plain;,X"
 [FAIL] "data:;x=x;charset=x,X"
@@ -32,9 +32,9 @@
 [PASS] "data:IMAGE/gif;CHARSET=x,%C2%B1"
 [PASS] "data: ,%FF"
 [PASS] "data:%20,%FF"
-[PASS] "data:\f,%FF"
+[PASS] "data:\\f,%FF"
 [PASS] "data:%1F,%FF"
-[PASS] "data:\0,%FF"
+[PASS] "data:\\0,%FF"
 [PASS] "data:%00,%FF"
 [PASS] "data:text/html  ,X"
 [PASS] "data:text / html,X"
@@ -50,8 +50,8 @@
 [PASS] "data:text/plain,X X"
 [FAIL] "data:unknown/unknown,X X"
   assert_array_equals: lengths differ, expected array [88, 32, 88] length 3, got object "88,88" length 2
-[FAIL] "data:text/plain;a=\",\",X"
-  assert_equals: expected "text/plain;a=\"\"" but got "text/plain"
+[FAIL] "data:text/plain;a=\\",\\",X"
+  assert_equals: expected "text/plain;a=\\"\\"" but got "text/plain"
 [FAIL] "data:text/plain;a=%2C,X"
   assert_equals: expected "text/plain;a=%2C" but got "text/plain"
 [FAIL] "data:;base64;base64,WA"
@@ -91,9 +91,9 @@
   promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
 [FAIL] "data:;charset,X"
   assert_equals: expected "text/plain" but got "text/plain;charset=US-ASCII"
-[FAIL] "data:;charset=\"x\",X"
+[FAIL] "data:;charset=\\"x\\",X"
   promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
-[FAIL] "data:;CHARSET=\"X\",X"
+[FAIL] "data:;CHARSET=\\"X\\",X"
   promise_test: Unhandled rejection with value: object "TypeError: Failed to fetch"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-screenx-screeny-expected.txt b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-screenx-screeny-expected.txt
index 2800b95..d2f3d86 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-screenx-screeny-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-screenx-screeny-expected.txt
@@ -5,7 +5,7 @@
   assert_equals: expected 141 but got 0
 [FAIL] "screenx==141" should set left position of opened window
   assert_equals: expected 141 but got 0
-[FAIL] "\nscreenx= 141" should set left position of opened window
+[FAIL] "\\nscreenx= 141" should set left position of opened window
   assert_equals: expected 141 but got 0
 [FAIL] ",screenx=141,," should set left position of opened window
   assert_equals: expected 141 but got 0
@@ -19,7 +19,7 @@
   assert_equals: expected 142 but got 0
 [FAIL] "screeny==142" should set top position of opened window
   assert_equals: expected 142 but got 0
-[FAIL] "\nscreeny= 142" should set top position of opened window
+[FAIL] "\\nscreeny= 142" should set top position of opened window
   assert_equals: expected 142 but got 0
 [FAIL] ",screeny=142,," should set top position of opened window
   assert_equals: expected 142 but got 0
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.clip-inside-and-outside-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.clip-inside-and-outside-expected.html
new file mode 100644
index 0000000..14e6d56
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.clip-inside-and-outside-expected.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<title>Canvas test: 2d.layer.clip-inside-and-outside</title>
+<h1>2d.layer.clip-inside-and-outside</h1>
+<p class="desc">Check clipping set inside and outside the layer</p>
+<canvas id="canvas" width="100" height="100">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  const canvas2 = new OffscreenCanvas(200, 200);
+  const ctx2 = canvas2.getContext('2d');
+
+  ctx2.beginPath();
+  ctx2.rect(15, 15, 70, 70);
+  ctx2.clip();
+
+  ctx2.fillStyle = 'blue';
+  ctx2.fillRect(10, 10, 80, 80);
+
+  const canvas3 = new OffscreenCanvas(200, 200);
+  const ctx3 = canvas3.getContext('2d');
+
+  ctx3.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}});
+  ctx3.drawImage(canvas2, 0, 0);
+  ctx3.endLayer();
+
+  ctx.beginPath();
+  ctx.rect(15, 15, 70, 70);
+  ctx.clip();
+  ctx.drawImage(canvas3, 0, 0);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.clip-inside-and-outside.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.clip-inside-and-outside.html
new file mode 100644
index 0000000..1a727bbd
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.clip-inside-and-outside.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<link rel="match" href="2d.layer.clip-inside-and-outside-expected.html">
+<title>Canvas test: 2d.layer.clip-inside-and-outside</title>
+<h1>2d.layer.clip-inside-and-outside</h1>
+<p class="desc">Check clipping set inside and outside the layer</p>
+<canvas id="canvas" width="100" height="100">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  ctx.beginPath();
+  ctx.rect(15, 15, 70, 70);
+  ctx.clip();
+
+  ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}});
+
+  ctx.beginPath();
+  ctx.rect(15, 15, 70, 70);
+  ctx.clip();
+
+  ctx.fillStyle = 'blue';
+  ctx.fillRect(10, 10, 80, 80);
+  ctx.endLayer();
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.clip-inside-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.clip-inside-expected.html
new file mode 100644
index 0000000..281fc1d9
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.clip-inside-expected.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<title>Canvas test: 2d.layer.clip-inside</title>
+<h1>2d.layer.clip-inside</h1>
+<p class="desc">Check clipping set inside the layer</p>
+<canvas id="canvas" width="100" height="100">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  const canvas2 = new OffscreenCanvas(200, 200);
+  const ctx2 = canvas2.getContext('2d');
+
+  ctx2.beginPath();
+  ctx2.rect(15, 15, 70, 70);
+  ctx2.clip();
+
+  ctx2.fillStyle = 'blue';
+  ctx2.fillRect(10, 10, 80, 80);
+
+  ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}});
+  ctx.drawImage(canvas2, 0, 0);
+  ctx.endLayer();
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.clip-inside.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.clip-inside.html
new file mode 100644
index 0000000..f3555c83
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.clip-inside.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<link rel="match" href="2d.layer.clip-inside-expected.html">
+<title>Canvas test: 2d.layer.clip-inside</title>
+<h1>2d.layer.clip-inside</h1>
+<p class="desc">Check clipping set inside the layer</p>
+<canvas id="canvas" width="100" height="100">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}});
+
+  ctx.beginPath();
+  ctx.rect(15, 15, 70, 70);
+  ctx.clip();
+
+  ctx.fillStyle = 'blue';
+  ctx.fillRect(10, 10, 80, 80);
+  ctx.endLayer();
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.clip-outside-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.clip-outside-expected.html
new file mode 100644
index 0000000..1b18c2e
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.clip-outside-expected.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<title>Canvas test: 2d.layer.clip-outside</title>
+<h1>2d.layer.clip-outside</h1>
+<p class="desc">Check clipping set outside the layer</p>
+<canvas id="canvas" width="100" height="100">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  const canvas2 = new OffscreenCanvas(200, 200);
+  const ctx2 = canvas2.getContext('2d');
+
+  ctx2.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}});
+  ctx2.fillStyle = 'blue';
+  ctx2.fillRect(10, 10, 80, 80);
+  ctx2.endLayer();
+
+  ctx.beginPath();
+  ctx.rect(15, 15, 70, 70);
+  ctx.clip();
+
+  ctx.drawImage(canvas2, 0, 0);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.clip-outside.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.clip-outside.html
new file mode 100644
index 0000000..bf8e84e
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.clip-outside.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<link rel="match" href="2d.layer.clip-outside-expected.html">
+<title>Canvas test: 2d.layer.clip-outside</title>
+<h1>2d.layer.clip-outside</h1>
+<p class="desc">Check clipping set outside the layer</p>
+<canvas id="canvas" width="100" height="100">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  ctx.beginPath();
+  ctx.rect(15, 15, 70, 70);
+  ctx.clip();
+
+  ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}});
+  ctx.fillStyle = 'blue';
+  ctx.fillRect(10, 10, 80, 80);
+  ctx.endLayer();
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.opaque-canvas-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.opaque-canvas-expected.html
new file mode 100644
index 0000000..89c85de
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.opaque-canvas-expected.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<title>Canvas test: 2d.layer.opaque-canvas</title>
+<h1>2d.layer.opaque-canvas</h1>
+<p class="desc">Checks that layer blending works inside opaque canvas</p>
+<canvas id="canvas" width="300" height="300">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  ctx.fillStyle = 'blue';
+  ctx.fillRect(0, 0, 300, 300);
+
+  ctx.fillStyle = 'black';
+  ctx.fillRect(0, 0, 200, 200);
+
+  ctx.fillStyle = 'purple';
+  ctx.fillRect(10, 10, 100, 100);
+
+  const canvas2 = new OffscreenCanvas(200, 200);
+  const ctx2 = canvas2.getContext('2d');
+  ctx2.fillStyle = 'green';
+  ctx2.fillRect(50, 50, 100, 100);
+  ctx2.globalAlpha = 0.8;
+  ctx2.fillStyle = 'yellow';
+  ctx2.fillRect(75, 25, 100, 100);
+
+  ctx.shadowColor = 'rgba(200, 100, 50, 0.5)';
+  ctx.shadowOffsetX = -10;
+  ctx.shadowOffsetY = 10;
+  ctx.drawImage(canvas2, 0, 0);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.opaque-canvas.html b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.opaque-canvas.html
new file mode 100644
index 0000000..be8b088
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/element/layers/2d.layer.opaque-canvas.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<link rel="match" href="2d.layer.opaque-canvas-expected.html">
+<title>Canvas test: 2d.layer.opaque-canvas</title>
+<h1>2d.layer.opaque-canvas</h1>
+<p class="desc">Checks that layer blending works inside opaque canvas</p>
+<canvas id="canvas" width="300" height="300">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  const canvas2 = document.createElement('canvas');
+  canvas2.width = 200;
+  canvas2.height = 200;
+  const ctx2 = canvas2.getContext('2d', {alpha: false});
+
+  ctx2.fillStyle = 'purple';
+  ctx2.fillRect(10, 10, 100, 100);
+
+  ctx2.beginLayer({filter: {name: 'dropShadow', dx: -10, dy: 10,
+                            stdDeviation: 0,
+                            floodColor: 'rgba(200, 100, 50, 0.5)'}});
+  ctx2.fillStyle = 'green';
+  ctx2.fillRect(50, 50, 100, 100);
+  ctx2.globalAlpha = 0.8;
+  ctx2.fillStyle = 'yellow';
+  ctx2.fillRect(75, 25, 100, 100);
+  ctx2.endLayer();
+
+  ctx.fillStyle = 'blue';
+  ctx.fillRect(0, 0, 300, 300);
+  ctx.drawImage(canvas2, 0, 0);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside-expected.html
new file mode 100644
index 0000000..14e6d56
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside-expected.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<title>Canvas test: 2d.layer.clip-inside-and-outside</title>
+<h1>2d.layer.clip-inside-and-outside</h1>
+<p class="desc">Check clipping set inside and outside the layer</p>
+<canvas id="canvas" width="100" height="100">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  const canvas2 = new OffscreenCanvas(200, 200);
+  const ctx2 = canvas2.getContext('2d');
+
+  ctx2.beginPath();
+  ctx2.rect(15, 15, 70, 70);
+  ctx2.clip();
+
+  ctx2.fillStyle = 'blue';
+  ctx2.fillRect(10, 10, 80, 80);
+
+  const canvas3 = new OffscreenCanvas(200, 200);
+  const ctx3 = canvas3.getContext('2d');
+
+  ctx3.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}});
+  ctx3.drawImage(canvas2, 0, 0);
+  ctx3.endLayer();
+
+  ctx.beginPath();
+  ctx.rect(15, 15, 70, 70);
+  ctx.clip();
+  ctx.drawImage(canvas3, 0, 0);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.html
new file mode 100644
index 0000000..03a3aee
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<link rel="match" href="2d.layer.clip-inside-and-outside-expected.html">
+<title>Canvas test: 2d.layer.clip-inside-and-outside</title>
+<h1>2d.layer.clip-inside-and-outside</h1>
+<p class="desc">Check clipping set inside and outside the layer</p>
+<canvas id="canvas" width="100" height="100">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = new OffscreenCanvas(100, 100);
+  const ctx = canvas.getContext('2d');
+
+  ctx.beginPath();
+  ctx.rect(15, 15, 70, 70);
+  ctx.clip();
+
+  ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}});
+
+  ctx.beginPath();
+  ctx.rect(15, 15, 70, 70);
+  ctx.clip();
+
+  ctx.fillStyle = 'blue';
+  ctx.fillRect(10, 10, 80, 80);
+  ctx.endLayer();
+
+  const outputCanvas = document.getElementById("canvas");
+  outputCanvas.getContext('2d').drawImage(canvas, 0, 0);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.w.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.w.html
new file mode 100644
index 0000000..71f9fe7
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.w.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<html class="reftest-wait">
+<link rel="match" href="2d.layer.clip-inside-and-outside-expected.html">
+<title>Canvas test: 2d.layer.clip-inside-and-outside</title>
+<h1>2d.layer.clip-inside-and-outside</h1>
+<p class="desc">Check clipping set inside and outside the layer</p>
+<canvas id="canvas" width="100" height="100">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script id='myWorker' type='text/worker'>
+  self.onmessage = function(e) {
+    const canvas = new OffscreenCanvas(100, 100);
+    const ctx = canvas.getContext('2d');
+
+    ctx.beginPath();
+    ctx.rect(15, 15, 70, 70);
+    ctx.clip();
+
+    ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}});
+
+    ctx.beginPath();
+    ctx.rect(15, 15, 70, 70);
+    ctx.clip();
+
+    ctx.fillStyle = 'blue';
+    ctx.fillRect(10, 10, 80, 80);
+    ctx.endLayer();
+
+    const bitmap = canvas.transferToImageBitmap();
+    self.postMessage(bitmap, bitmap);
+  };
+</script>
+<script>
+  const blob = new Blob([document.getElementById('myWorker').textContent]);
+  const worker = new Worker(URL.createObjectURL(blob));
+  worker.addEventListener('message', msg => {
+    const outputCtx = document.getElementById("canvas").getContext('2d');
+    outputCtx.drawImage(msg.data, 0, 0);
+    document.documentElement.classList.remove("reftest-wait");
+  });
+  worker.postMessage(null);
+</script>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-inside-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-inside-expected.html
new file mode 100644
index 0000000..281fc1d9
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-inside-expected.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<title>Canvas test: 2d.layer.clip-inside</title>
+<h1>2d.layer.clip-inside</h1>
+<p class="desc">Check clipping set inside the layer</p>
+<canvas id="canvas" width="100" height="100">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  const canvas2 = new OffscreenCanvas(200, 200);
+  const ctx2 = canvas2.getContext('2d');
+
+  ctx2.beginPath();
+  ctx2.rect(15, 15, 70, 70);
+  ctx2.clip();
+
+  ctx2.fillStyle = 'blue';
+  ctx2.fillRect(10, 10, 80, 80);
+
+  ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}});
+  ctx.drawImage(canvas2, 0, 0);
+  ctx.endLayer();
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-inside.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-inside.html
new file mode 100644
index 0000000..e0c41f2
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-inside.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<link rel="match" href="2d.layer.clip-inside-expected.html">
+<title>Canvas test: 2d.layer.clip-inside</title>
+<h1>2d.layer.clip-inside</h1>
+<p class="desc">Check clipping set inside the layer</p>
+<canvas id="canvas" width="100" height="100">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = new OffscreenCanvas(100, 100);
+  const ctx = canvas.getContext('2d');
+
+  ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}});
+
+  ctx.beginPath();
+  ctx.rect(15, 15, 70, 70);
+  ctx.clip();
+
+  ctx.fillStyle = 'blue';
+  ctx.fillRect(10, 10, 80, 80);
+  ctx.endLayer();
+
+  const outputCanvas = document.getElementById("canvas");
+  outputCanvas.getContext('2d').drawImage(canvas, 0, 0);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-inside.w.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-inside.w.html
new file mode 100644
index 0000000..9c4260a
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-inside.w.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<html class="reftest-wait">
+<link rel="match" href="2d.layer.clip-inside-expected.html">
+<title>Canvas test: 2d.layer.clip-inside</title>
+<h1>2d.layer.clip-inside</h1>
+<p class="desc">Check clipping set inside the layer</p>
+<canvas id="canvas" width="100" height="100">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script id='myWorker' type='text/worker'>
+  self.onmessage = function(e) {
+    const canvas = new OffscreenCanvas(100, 100);
+    const ctx = canvas.getContext('2d');
+
+    ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}});
+
+    ctx.beginPath();
+    ctx.rect(15, 15, 70, 70);
+    ctx.clip();
+
+    ctx.fillStyle = 'blue';
+    ctx.fillRect(10, 10, 80, 80);
+    ctx.endLayer();
+
+    const bitmap = canvas.transferToImageBitmap();
+    self.postMessage(bitmap, bitmap);
+  };
+</script>
+<script>
+  const blob = new Blob([document.getElementById('myWorker').textContent]);
+  const worker = new Worker(URL.createObjectURL(blob));
+  worker.addEventListener('message', msg => {
+    const outputCtx = document.getElementById("canvas").getContext('2d');
+    outputCtx.drawImage(msg.data, 0, 0);
+    document.documentElement.classList.remove("reftest-wait");
+  });
+  worker.postMessage(null);
+</script>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-outside-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-outside-expected.html
new file mode 100644
index 0000000..1b18c2e
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-outside-expected.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<title>Canvas test: 2d.layer.clip-outside</title>
+<h1>2d.layer.clip-outside</h1>
+<p class="desc">Check clipping set outside the layer</p>
+<canvas id="canvas" width="100" height="100">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  const canvas2 = new OffscreenCanvas(200, 200);
+  const ctx2 = canvas2.getContext('2d');
+
+  ctx2.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}});
+  ctx2.fillStyle = 'blue';
+  ctx2.fillRect(10, 10, 80, 80);
+  ctx2.endLayer();
+
+  ctx.beginPath();
+  ctx.rect(15, 15, 70, 70);
+  ctx.clip();
+
+  ctx.drawImage(canvas2, 0, 0);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-outside.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-outside.html
new file mode 100644
index 0000000..d2d091e9
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-outside.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<link rel="match" href="2d.layer.clip-outside-expected.html">
+<title>Canvas test: 2d.layer.clip-outside</title>
+<h1>2d.layer.clip-outside</h1>
+<p class="desc">Check clipping set outside the layer</p>
+<canvas id="canvas" width="100" height="100">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = new OffscreenCanvas(100, 100);
+  const ctx = canvas.getContext('2d');
+
+  ctx.beginPath();
+  ctx.rect(15, 15, 70, 70);
+  ctx.clip();
+
+  ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}});
+  ctx.fillStyle = 'blue';
+  ctx.fillRect(10, 10, 80, 80);
+  ctx.endLayer();
+
+  const outputCanvas = document.getElementById("canvas");
+  outputCanvas.getContext('2d').drawImage(canvas, 0, 0);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-outside.w.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-outside.w.html
new file mode 100644
index 0000000..aed72db
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.clip-outside.w.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<html class="reftest-wait">
+<link rel="match" href="2d.layer.clip-outside-expected.html">
+<title>Canvas test: 2d.layer.clip-outside</title>
+<h1>2d.layer.clip-outside</h1>
+<p class="desc">Check clipping set outside the layer</p>
+<canvas id="canvas" width="100" height="100">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script id='myWorker' type='text/worker'>
+  self.onmessage = function(e) {
+    const canvas = new OffscreenCanvas(100, 100);
+    const ctx = canvas.getContext('2d');
+
+    ctx.beginPath();
+    ctx.rect(15, 15, 70, 70);
+    ctx.clip();
+
+    ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}});
+    ctx.fillStyle = 'blue';
+    ctx.fillRect(10, 10, 80, 80);
+    ctx.endLayer();
+
+    const bitmap = canvas.transferToImageBitmap();
+    self.postMessage(bitmap, bitmap);
+  };
+</script>
+<script>
+  const blob = new Blob([document.getElementById('myWorker').textContent]);
+  const worker = new Worker(URL.createObjectURL(blob));
+  worker.addEventListener('message', msg => {
+    const outputCtx = document.getElementById("canvas").getContext('2d');
+    outputCtx.drawImage(msg.data, 0, 0);
+    document.documentElement.classList.remove("reftest-wait");
+  });
+  worker.postMessage(null);
+</script>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.opaque-canvas-expected.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.opaque-canvas-expected.html
new file mode 100644
index 0000000..89c85de
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.opaque-canvas-expected.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<title>Canvas test: 2d.layer.opaque-canvas</title>
+<h1>2d.layer.opaque-canvas</h1>
+<p class="desc">Checks that layer blending works inside opaque canvas</p>
+<canvas id="canvas" width="300" height="300">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = document.getElementById("canvas");
+  const ctx = canvas.getContext('2d');
+
+  ctx.fillStyle = 'blue';
+  ctx.fillRect(0, 0, 300, 300);
+
+  ctx.fillStyle = 'black';
+  ctx.fillRect(0, 0, 200, 200);
+
+  ctx.fillStyle = 'purple';
+  ctx.fillRect(10, 10, 100, 100);
+
+  const canvas2 = new OffscreenCanvas(200, 200);
+  const ctx2 = canvas2.getContext('2d');
+  ctx2.fillStyle = 'green';
+  ctx2.fillRect(50, 50, 100, 100);
+  ctx2.globalAlpha = 0.8;
+  ctx2.fillStyle = 'yellow';
+  ctx2.fillRect(75, 25, 100, 100);
+
+  ctx.shadowColor = 'rgba(200, 100, 50, 0.5)';
+  ctx.shadowOffsetX = -10;
+  ctx.shadowOffsetY = 10;
+  ctx.drawImage(canvas2, 0, 0);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.opaque-canvas.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.opaque-canvas.html
new file mode 100644
index 0000000..f9759abe
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.opaque-canvas.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<link rel="match" href="2d.layer.opaque-canvas-expected.html">
+<title>Canvas test: 2d.layer.opaque-canvas</title>
+<h1>2d.layer.opaque-canvas</h1>
+<p class="desc">Checks that layer blending works inside opaque canvas</p>
+<canvas id="canvas" width="300" height="300">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script>
+  const canvas = new OffscreenCanvas(300, 300);
+  const ctx = canvas.getContext('2d');
+
+  const canvas2 = new OffscreenCanvas(200, 200);
+  const ctx2 = canvas2.getContext('2d', {alpha: false});
+
+  ctx2.fillStyle = 'purple';
+  ctx2.fillRect(10, 10, 100, 100);
+
+  ctx2.beginLayer({filter: {name: 'dropShadow', dx: -10, dy: 10,
+                            stdDeviation: 0,
+                            floodColor: 'rgba(200, 100, 50, 0.5)'}});
+  ctx2.fillStyle = 'green';
+  ctx2.fillRect(50, 50, 100, 100);
+  ctx2.globalAlpha = 0.8;
+  ctx2.fillStyle = 'yellow';
+  ctx2.fillRect(75, 25, 100, 100);
+  ctx2.endLayer();
+
+  ctx.fillStyle = 'blue';
+  ctx.fillRect(0, 0, 300, 300);
+  ctx.drawImage(canvas2, 0, 0);
+
+  const outputCanvas = document.getElementById("canvas");
+  outputCanvas.getContext('2d').drawImage(canvas, 0, 0);
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.opaque-canvas.w.html b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.opaque-canvas.w.html
new file mode 100644
index 0000000..ff5ec19
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.opaque-canvas.w.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
+<html class="reftest-wait">
+<link rel="match" href="2d.layer.opaque-canvas-expected.html">
+<title>Canvas test: 2d.layer.opaque-canvas</title>
+<h1>2d.layer.opaque-canvas</h1>
+<p class="desc">Checks that layer blending works inside opaque canvas</p>
+<canvas id="canvas" width="300" height="300">
+  <p class="fallback">FAIL (fallback content)</p>
+</canvas>
+<script id='myWorker' type='text/worker'>
+  self.onmessage = function(e) {
+    const canvas = new OffscreenCanvas(300, 300);
+    const ctx = canvas.getContext('2d');
+
+    const canvas2 = new OffscreenCanvas(200, 200);
+    const ctx2 = canvas2.getContext('2d', {alpha: false});
+
+    ctx2.fillStyle = 'purple';
+    ctx2.fillRect(10, 10, 100, 100);
+
+    ctx2.beginLayer({filter: {name: 'dropShadow', dx: -10, dy: 10,
+                              stdDeviation: 0,
+                              floodColor: 'rgba(200, 100, 50, 0.5)'}});
+    ctx2.fillStyle = 'green';
+    ctx2.fillRect(50, 50, 100, 100);
+    ctx2.globalAlpha = 0.8;
+    ctx2.fillStyle = 'yellow';
+    ctx2.fillRect(75, 25, 100, 100);
+    ctx2.endLayer();
+
+    ctx.fillStyle = 'blue';
+    ctx.fillRect(0, 0, 300, 300);
+    ctx.drawImage(canvas2, 0, 0);
+
+    const bitmap = canvas.transferToImageBitmap();
+    self.postMessage(bitmap, bitmap);
+  };
+</script>
+<script>
+  const blob = new Blob([document.getElementById('myWorker').textContent]);
+  const worker = new Worker(URL.createObjectURL(blob));
+  worker.addEventListener('message', msg => {
+    const outputCtx = document.getElementById("canvas").getContext('2d');
+    outputCtx.drawImage(msg.data, 0, 0);
+    document.documentElement.classList.remove("reftest-wait");
+  });
+  worker.postMessage(null);
+</script>
+</html>
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.opaque-canvas.worker.js b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.opaque-canvas.worker.js
new file mode 100644
index 0000000..df8bee5
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/offscreen/layers/2d.layer.opaque-canvas.worker.js
@@ -0,0 +1,40 @@
+// DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py.
+// OffscreenCanvas test in a worker:2d.layer.opaque-canvas
+// Description:Checks that layer blending works inside opaque canvas
+// Note:
+
+importScripts("/resources/testharness.js");
+importScripts("/html/canvas/resources/canvas-tests.js");
+
+var t = async_test("Checks that layer blending works inside opaque canvas");
+var t_pass = t.done.bind(t);
+var t_fail = t.step_func(function(reason) {
+    throw reason;
+});
+t.step(function() {
+
+  var canvas = new OffscreenCanvas(200, 200);
+  var ctx = canvas.getContext('2d');
+
+  const canvas2 = new OffscreenCanvas(200, 200);
+  const ctx2 = canvas2.getContext('2d', {alpha: false});
+
+  ctx2.fillStyle = 'purple';
+  ctx2.fillRect(10, 10, 100, 100);
+
+  ctx2.globalAlpha = 0.5;
+
+  ctx2.beginLayer({filter: {name: "dropShadow", dx: -10, dy: 10, floodColor: "pink"}});
+  ctx2.fillStyle = 'green';
+  ctx2.fillRect(50, 50, 100, 100);
+  ctx2.globalAlpha = 0.9;
+  ctx2.fillStyle = 'yellow';
+  ctx2.fillRect(75, 25, 100, 100);
+  ctx2.endLayer();
+
+  ctx.fillStyle = 'blue';
+  ctx.fillRect(0, 0, 300, 300);
+  ctx.drawImage(canvas2, 0, 0);
+  t.done();
+});
+done();
diff --git a/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml-new/layers.yaml b/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml-new/layers.yaml
index 56cd033..27d7937 100644
--- a/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml-new/layers.yaml
+++ b/third_party/blink/web_tests/external/wpt/html/canvas/tools/yaml-new/layers.yaml
@@ -308,6 +308,101 @@
     @assert ctx.shadowOffsetY === 20;
     @assert ctx.shadowBlur === 30;
 
+- name: 2d.layer.clip-outside
+  desc: Check clipping set outside the layer
+  size: [100, 100]
+  code: |
+    ctx.beginPath();
+    ctx.rect(15, 15, 70, 70);
+    ctx.clip();
+
+    ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}});
+    ctx.fillStyle = 'blue';
+    ctx.fillRect(10, 10, 80, 80);
+    ctx.endLayer();
+  reference: |
+    const canvas2 = new OffscreenCanvas(200, 200);
+    const ctx2 = canvas2.getContext('2d');
+
+    ctx2.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}});
+    ctx2.fillStyle = 'blue';
+    ctx2.fillRect(10, 10, 80, 80);
+    ctx2.endLayer();
+
+    ctx.beginPath();
+    ctx.rect(15, 15, 70, 70);
+    ctx.clip();
+
+    ctx.drawImage(canvas2, 0, 0);
+
+- name: 2d.layer.clip-inside
+  desc: Check clipping set inside the layer
+  size: [100, 100]
+  code: |
+    ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}});
+
+    ctx.beginPath();
+    ctx.rect(15, 15, 70, 70);
+    ctx.clip();
+
+    ctx.fillStyle = 'blue';
+    ctx.fillRect(10, 10, 80, 80);
+    ctx.endLayer();
+  reference: |
+    const canvas2 = new OffscreenCanvas(200, 200);
+    const ctx2 = canvas2.getContext('2d');
+
+    ctx2.beginPath();
+    ctx2.rect(15, 15, 70, 70);
+    ctx2.clip();
+
+    ctx2.fillStyle = 'blue';
+    ctx2.fillRect(10, 10, 80, 80);
+
+    ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}});
+    ctx.drawImage(canvas2, 0, 0);
+    ctx.endLayer();
+
+- name: 2d.layer.clip-inside-and-outside
+  desc: Check clipping set inside and outside the layer
+  size: [100, 100]
+  code: |
+    ctx.beginPath();
+    ctx.rect(15, 15, 70, 70);
+    ctx.clip();
+
+    ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}});
+
+    ctx.beginPath();
+    ctx.rect(15, 15, 70, 70);
+    ctx.clip();
+
+    ctx.fillStyle = 'blue';
+    ctx.fillRect(10, 10, 80, 80);
+    ctx.endLayer();
+  reference: |
+    const canvas2 = new OffscreenCanvas(200, 200);
+    const ctx2 = canvas2.getContext('2d');
+
+    ctx2.beginPath();
+    ctx2.rect(15, 15, 70, 70);
+    ctx2.clip();
+
+    ctx2.fillStyle = 'blue';
+    ctx2.fillRect(10, 10, 80, 80);
+
+    const canvas3 = new OffscreenCanvas(200, 200);
+    const ctx3 = canvas3.getContext('2d');
+
+    ctx3.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}});
+    ctx3.drawImage(canvas2, 0, 0);
+    ctx3.endLayer();
+
+    ctx.beginPath();
+    ctx.rect(15, 15, 70, 70);
+    ctx.clip();
+    ctx.drawImage(canvas3, 0, 0);
+
 - name: 2d.layer.unclosed
   desc: Check that layers are rendered even if not closed.
   size: [200, 200]
@@ -800,3 +895,55 @@
         const clipRegion = new Path2D();
         clipRegion.rect(20, 20, 160, 160);
         ctx.clip(clipRegion);
+
+- name: 2d.layer.opaque-canvas
+  desc: Checks that layer blending works inside opaque canvas
+  size: [300, 300]
+  code: |
+    {% if canvas_type == 'htmlcanvas' %}
+    const canvas2 = document.createElement('canvas');
+    canvas2.width = 200;
+    canvas2.height = 200;
+    {% else %}
+    const canvas2 = new OffscreenCanvas(200, 200);
+    {% endif %}
+    const ctx2 = canvas2.getContext('2d', {alpha: false});
+
+    ctx2.fillStyle = 'purple';
+    ctx2.fillRect(10, 10, 100, 100);
+
+    ctx2.beginLayer({filter: {name: 'dropShadow', dx: -10, dy: 10,
+                              stdDeviation: 0,
+                              floodColor: 'rgba(200, 100, 50, 0.5)'}});
+    ctx2.fillStyle = 'green';
+    ctx2.fillRect(50, 50, 100, 100);
+    ctx2.globalAlpha = 0.8;
+    ctx2.fillStyle = 'yellow';
+    ctx2.fillRect(75, 25, 100, 100);
+    ctx2.endLayer();
+
+    ctx.fillStyle = 'blue';
+    ctx.fillRect(0, 0, 300, 300);
+    ctx.drawImage(canvas2, 0, 0);
+  reference: |
+    ctx.fillStyle = 'blue';
+    ctx.fillRect(0, 0, 300, 300);
+
+    ctx.fillStyle = 'black';
+    ctx.fillRect(0, 0, 200, 200);
+
+    ctx.fillStyle = 'purple';
+    ctx.fillRect(10, 10, 100, 100);
+
+    const canvas2 = new OffscreenCanvas(200, 200);
+    const ctx2 = canvas2.getContext('2d');
+    ctx2.fillStyle = 'green';
+    ctx2.fillRect(50, 50, 100, 100);
+    ctx2.globalAlpha = 0.8;
+    ctx2.fillStyle = 'yellow';
+    ctx2.fillRect(75, 25, 100, 100);
+
+    ctx.shadowColor = 'rgba(200, 100, 50, 0.5)';
+    ctx.shadowOffsetX = -10;
+    ctx.shadowOffsetY = 10;
+    ctx.drawImage(canvas2, 0, 0);
diff --git a/third_party/blink/web_tests/external/wpt/html/dom/elements/the-innertext-and-outertext-properties/getter-expected.txt b/third_party/blink/web_tests/external/wpt/html/dom/elements/the-innertext-and-outertext-properties/getter-expected.txt
index ec2b2e1..17da657 100644
--- a/third_party/blink/web_tests/external/wpt/html/dom/elements/the-innertext-and-outertext-properties/getter-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/dom/elements/the-innertext-and-outertext-properties/getter-expected.txt
@@ -4,36 +4,36 @@
 [PASS] Leading whitespace removed ("<div> abc")
 [PASS] Trailing whitespace removed ("<div>abc ")
 [PASS] Internal whitespace compressed ("<div>abc  def")
-[PASS] \n converted to space ("<div>abc\ndef")
-[PASS] \r converted to space ("<div>abc\rdef")
-[PASS] \t converted to space ("<div>abc\tdef")
+[PASS] \\n converted to space ("<div>abc\\ndef")
+[PASS] \\r converted to space ("<div>abc\\rdef")
+[PASS] \\t converted to space ("<div>abc\\tdef")
 [PASS] Trailing whitespace before hard line break removed ("<div>abc <br>def")
 [PASS] Leading whitespace after hard line break removed ("<div>abc<br> def")
 [PASS] Leading whitespace preserved ("<pre> abc")
 [PASS] Trailing whitespace preserved ("<pre>abc ")
 [PASS] Internal whitespace preserved ("<pre>abc  def")
-[PASS] \n preserved ("<pre>abc\ndef")
-[PASS] \r converted to newline ("<pre>abc\rdef")
-[PASS] \t preserved ("<pre>abc\tdef")
+[PASS] \\n preserved ("<pre>abc\\ndef")
+[PASS] \\r converted to newline ("<pre>abc\\rdef")
+[PASS] \\t preserved ("<pre>abc\\tdef")
 [PASS] Two <pre> siblings ("<div><pre>abc</pre><pre>def</pre>")
 [PASS] Leading whitespace preserved ("<div style='white-space:pre'> abc")
 [PASS] Trailing whitespace preserved ("<div style='white-space:pre'>abc ")
 [PASS] Internal whitespace preserved ("<div style='white-space:pre'>abc  def")
-[PASS] \n preserved ("<div style='white-space:pre'>abc\ndef")
-[PASS] \r converted to newline ("<div style='white-space:pre'>abc\rdef")
-[PASS] \t preserved ("<div style='white-space:pre'>abc\tdef")
+[PASS] \\n preserved ("<div style='white-space:pre'>abc\\ndef")
+[PASS] \\r converted to newline ("<div style='white-space:pre'>abc\\rdef")
+[PASS] \\t preserved ("<div style='white-space:pre'>abc\\tdef")
 [PASS] Leading whitespace preserved ("<span style='white-space:pre'> abc")
 [PASS] Trailing whitespace preserved ("<span style='white-space:pre'>abc ")
 [PASS] Internal whitespace preserved ("<span style='white-space:pre'>abc  def")
-[PASS] \n preserved ("<span style='white-space:pre'>abc\ndef")
-[PASS] \r converted to newline ("<span style='white-space:pre'>abc\rdef")
-[PASS] \t preserved ("<span style='white-space:pre'>abc\tdef")
+[PASS] \\n preserved ("<span style='white-space:pre'>abc\\ndef")
+[PASS] \\r converted to newline ("<span style='white-space:pre'>abc\\rdef")
+[PASS] \\t preserved ("<span style='white-space:pre'>abc\\tdef")
 [PASS] Leading whitespace removed ("<div style='white-space:pre-line'> abc")
 [PASS] Trailing whitespace removed ("<div style='white-space:pre-line'>abc ")
 [PASS] Internal whitespace collapsed ("<div style='white-space:pre-line'>abc  def")
-[PASS] \n preserved ("<div style='white-space:pre-line'>abc\ndef")
-[PASS] \r converted to newline ("<div style='white-space:pre-line'>abc\rdef")
-[PASS] \t converted to space ("<div style='white-space:pre-line'>abc\tdef")
+[PASS] \\n preserved ("<div style='white-space:pre-line'>abc\\ndef")
+[PASS] \\r converted to newline ("<div style='white-space:pre-line'>abc\\rdef")
+[PASS] \\t converted to space ("<div style='white-space:pre-line'>abc\\tdef")
 [PASS] Whitespace collapses across element boundaries ("<div><span>abc </span> def")
 [PASS] Whitespace collapses across element boundaries ("<div><span>abc </span><span></span> def")
 [PASS] Whitespace collapses across element boundaries ("<div><span>abc </span><span style='white-space:pre'></span> def")
@@ -137,7 +137,7 @@
 [PASS] <optgroup> containing <optgroup> ("<select><optgroup class='poke-optgroup'></select>")
 [PASS] <optgroup> containing <option> ("<select><optgroup><option>abc</select>")
 [FAIL] <div> in <option> ("<select><option class='poke-div'>123</select>")
-  assert_equals: innerText expected "123\nabc" but got "123abc"
+  assert_equals: innerText expected "123\\nabc" but got "123abc"
 [PASS] empty <optgroup> in <div> ("<div>a<optgroup></optgroup>bc")
 [PASS] <optgroup> in <div> ("<div>a<optgroup>123</optgroup>bc")
 [PASS] empty <option> in <div> ("<div>a<option></option>bc")
@@ -170,7 +170,7 @@
 [PASS] Blank line before <p> ("<div>abc<p>def")
 [PASS] Blank line after <p> ("<div><p>abc</p>def")
 [PASS] One blank line between <p>s, ignoring empty <p>s ("<div><p>abc<p></p><p></p><p>def")
-[PASS] Invisible <p> doesn't induce extra line breaks ("<div style='visibility:hidden'><p><span style='visibility:visible'>abc</span></p>\n<div style='visibility:visible'>def</div>")
+[PASS] Invisible <p> doesn't induce extra line breaks ("<div style='visibility:hidden'><p><span style='visibility:visible'>abc</span></p>\\n<div style='visibility:visible'>def</div>")
 [PASS] No blank lines around <div> with margin ("<div>abc<div style='margin:2em'>def")
 [PASS] No newlines at display:inline-block boundary ("<div>123<span style='display:inline-block'>abc</span>def")
 [PASS] Leading/trailing space removal at display:inline-block boundary ("<div>123<span style='display:inline-block'> abc </span>def")
@@ -204,13 +204,13 @@
 [PASS] No tab on table-cell itself ("<table><tr><td id=target>abc</td><td>def</td>")
 [PASS] No newline on table-row itself ("<table><tr id=target><td>abc</td><td>def</td></tr><tr id=target><td>ghi</td><td>jkl</td></tr>")
 [PASS] Newline between cells and caption ("<div><table><tr><td>abc<caption>def</caption></table>")
-[PASS] Tab-separated table cells ("<div><div class='table'><span class='cell'>abc</span>\n<span class='cell'>def</span></div>")
-[PASS] Newline-separated table rows ("<div><div class='table'><span class='row'><span class='cell'>abc</span></span>\n<span class='row'><span class='cell'>def</span></span></div>")
+[PASS] Tab-separated table cells ("<div><div class='table'><span class='cell'>abc</span>\\n<span class='cell'>def</span></div>")
+[PASS] Newline-separated table rows ("<div><div class='table'><span class='row'><span class='cell'>abc</span></span>\\n<span class='row'><span class='cell'>def</span></span></div>")
 [PASS] Newlines around table ("<div>abc<div class='table'><span class='cell'>def</span></div>ghi")
-[PASS] Tab-separated table cells ("<div><div class='itable'><span class='cell'>abc</span>\n<span class='cell'>def</span></div>")
-[PASS] Newline-separated table rows ("<div><div class='itable'><span class='row'><span class='cell'>abc</span></span>\n<span class='row'><span class='cell'>def</span></span></div>")
+[PASS] Tab-separated table cells ("<div><div class='itable'><span class='cell'>abc</span>\\n<span class='cell'>def</span></div>")
+[PASS] Newline-separated table rows ("<div><div class='itable'><span class='row'><span class='cell'>abc</span></span>\\n<span class='row'><span class='cell'>def</span></span></div>")
 [PASS] No newlines around inline-table ("<div>abc<div class='itable'><span class='cell'>def</span></div>ghi")
-[PASS] Single newline in two-row inline-table ("<div>abc<div class='itable'><span class='row'><span class='cell'>def</span></span>\n<span class='row'><span class='cell'>123</span></span></div>ghi")
+[PASS] Single newline in two-row inline-table ("<div>abc<div class='itable'><span class='row'><span class='cell'>def</span></span>\\n<span class='row'><span class='cell'>123</span></span></div>ghi")
 [PASS] display:table-row on the element itself ("<div style='display:table-row'>")
 [PASS] display:table-cell on the element itself ("<div style='display:table-cell'>")
 [PASS] display:table-caption on the element itself ("<div style='display:table-caption'>")
diff --git a/third_party/blink/web_tests/external/wpt/html/dom/reflection-embedded-expected.txt b/third_party/blink/web_tests/external/wpt/html/dom/reflection-embedded-expected.txt
index 7c14d46..185bba2 100644
--- a/third_party/blink/web_tests/external/wpt/html/dom/reflection-embedded-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/dom/reflection-embedded-expected.txt
@@ -115,7 +115,7 @@
   assert_equals: IDL get expected (boolean) true but got (undefined) undefined
 [FAIL] iframe.allowUserMedia: setAttribute() to -Infinity
   assert_equals: IDL get expected (boolean) true but got (undefined) undefined
-[FAIL] iframe.allowUserMedia: setAttribute() to "\0"
+[FAIL] iframe.allowUserMedia: setAttribute() to "\\0"
   assert_equals: IDL get expected (boolean) true but got (undefined) undefined
 [FAIL] iframe.allowUserMedia: setAttribute() to object "test-toString"
   assert_equals: IDL get expected (boolean) true but got (undefined) undefined
@@ -152,8 +152,8 @@
   assert_equals: IDL get expected (boolean) true but got (number) Infinity
 [FAIL] iframe.allowUserMedia: IDL set to -Infinity
   assert_equals: IDL get expected (boolean) true but got (number) -Infinity
-[FAIL] iframe.allowUserMedia: IDL set to "\0"
-  assert_equals: IDL get expected (boolean) true but got (string) "\0"
+[FAIL] iframe.allowUserMedia: IDL set to "\\0"
+  assert_equals: IDL get expected (boolean) true but got (string) "\\0"
 [FAIL] iframe.allowUserMedia: IDL set to object "test-toString"
   assert_equals: IDL get expected (boolean) true but got (object) object "test-toString"
 [FAIL] iframe.allowUserMedia: IDL set to object "test-valueOf"
@@ -209,8 +209,8 @@
   assert_equals: IDL get expected (string) "media" but got (undefined) undefined
 [FAIL] iframe.delegateStickyUserActivation: IDL set to ""
   assert_equals: getAttribute() expected "" but got "MEDIA"
-[FAIL] iframe.delegateStickyUserActivation: IDL set to " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f  foo "
-  assert_equals: getAttribute() expected " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f  foo " but got "MEDIA"
+[FAIL] iframe.delegateStickyUserActivation: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f  foo "
+  assert_equals: getAttribute() expected " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f  foo " but got "MEDIA"
 [FAIL] iframe.delegateStickyUserActivation: IDL set to undefined
   assert_equals: getAttribute() expected "undefined" but got "MEDIA"
 [FAIL] iframe.delegateStickyUserActivation: IDL set to 7
@@ -235,8 +235,8 @@
   assert_equals: getAttribute() expected "Infinity" but got "MEDIA"
 [FAIL] iframe.delegateStickyUserActivation: IDL set to -Infinity
   assert_equals: getAttribute() expected "-Infinity" but got "MEDIA"
-[FAIL] iframe.delegateStickyUserActivation: IDL set to "\0"
-  assert_equals: getAttribute() expected "\0" but got "MEDIA"
+[FAIL] iframe.delegateStickyUserActivation: IDL set to "\\0"
+  assert_equals: getAttribute() expected "\\0" but got "MEDIA"
 [PASS] iframe.delegateStickyUserActivation: IDL set to null
 [FAIL] iframe.delegateStickyUserActivation: IDL set to object "test-toString"
   assert_equals: getAttribute() expected "test-toString" but got "MEDIA"
@@ -246,8 +246,8 @@
   assert_equals: getAttribute() expected "vibration" but got "MEDIA"
 [FAIL] iframe.delegateStickyUserActivation: IDL set to "xvibration"
   assert_equals: getAttribute() expected "xvibration" but got "MEDIA"
-[FAIL] iframe.delegateStickyUserActivation: IDL set to "vibration\0"
-  assert_equals: getAttribute() expected "vibration\0" but got "MEDIA"
+[FAIL] iframe.delegateStickyUserActivation: IDL set to "vibration\\0"
+  assert_equals: getAttribute() expected "vibration\\0" but got "MEDIA"
 [FAIL] iframe.delegateStickyUserActivation: IDL set to "ibration"
   assert_equals: getAttribute() expected "ibration" but got "MEDIA"
 [FAIL] iframe.delegateStickyUserActivation: IDL set to "VIBRATION"
@@ -256,8 +256,8 @@
   assert_equals: getAttribute() expected "media" but got "MEDIA"
 [FAIL] iframe.delegateStickyUserActivation: IDL set to "xmedia"
   assert_equals: getAttribute() expected "xmedia" but got "MEDIA"
-[FAIL] iframe.delegateStickyUserActivation: IDL set to "media\0"
-  assert_equals: getAttribute() expected "media\0" but got "MEDIA"
+[FAIL] iframe.delegateStickyUserActivation: IDL set to "media\\0"
+  assert_equals: getAttribute() expected "media\\0" but got "MEDIA"
 [FAIL] iframe.delegateStickyUserActivation: IDL set to "edia"
   assert_equals: getAttribute() expected "edia" but got "MEDIA"
 [FAIL] iframe.delegateStickyUserActivation: IDL set to "MEDIA"
diff --git a/third_party/blink/web_tests/external/wpt/html/dom/reflection-metadata-expected.txt b/third_party/blink/web_tests/external/wpt/html/dom/reflection-metadata-expected.txt
index 0c6f84f3..6fa2817 100644
--- a/third_party/blink/web_tests/external/wpt/html/dom/reflection-metadata-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/dom/reflection-metadata-expected.txt
@@ -154,8 +154,8 @@
 [PASS] link.nonce: 20 tests
 [FAIL] link.nonce: IDL set to ""
   assert_equals: getAttribute() expected "" but got "test-valueOf"
-[FAIL] link.nonce: IDL set to " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f  foo "
-  assert_equals: getAttribute() expected " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f  foo " but got "test-valueOf"
+[FAIL] link.nonce: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f  foo "
+  assert_equals: getAttribute() expected " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f  foo " but got "test-valueOf"
 [FAIL] link.nonce: IDL set to undefined
   assert_equals: getAttribute() expected "undefined" but got "test-valueOf"
 [FAIL] link.nonce: IDL set to 7
@@ -180,8 +180,8 @@
   assert_equals: getAttribute() expected "Infinity" but got "test-valueOf"
 [FAIL] link.nonce: IDL set to -Infinity
   assert_equals: getAttribute() expected "-Infinity" but got "test-valueOf"
-[FAIL] link.nonce: IDL set to "\0"
-  assert_equals: getAttribute() expected "\0" but got "test-valueOf"
+[FAIL] link.nonce: IDL set to "\\0"
+  assert_equals: getAttribute() expected "\\0" but got "test-valueOf"
 [FAIL] link.nonce: IDL set to null
   assert_equals: getAttribute() expected "null" but got "test-valueOf"
 [FAIL] link.nonce: IDL set to object "test-toString"
@@ -255,8 +255,8 @@
 [PASS] style.nonce: 20 tests
 [FAIL] style.nonce: IDL set to ""
   assert_equals: getAttribute() expected "" but got "test-valueOf"
-[FAIL] style.nonce: IDL set to " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f  foo "
-  assert_equals: getAttribute() expected " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f  foo " but got "test-valueOf"
+[FAIL] style.nonce: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f  foo "
+  assert_equals: getAttribute() expected " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f  foo " but got "test-valueOf"
 [FAIL] style.nonce: IDL set to undefined
   assert_equals: getAttribute() expected "undefined" but got "test-valueOf"
 [FAIL] style.nonce: IDL set to 7
@@ -281,8 +281,8 @@
   assert_equals: getAttribute() expected "Infinity" but got "test-valueOf"
 [FAIL] style.nonce: IDL set to -Infinity
   assert_equals: getAttribute() expected "-Infinity" but got "test-valueOf"
-[FAIL] style.nonce: IDL set to "\0"
-  assert_equals: getAttribute() expected "\0" but got "test-valueOf"
+[FAIL] style.nonce: IDL set to "\\0"
+  assert_equals: getAttribute() expected "\\0" but got "test-valueOf"
 [FAIL] style.nonce: IDL set to null
   assert_equals: getAttribute() expected "null" but got "test-valueOf"
 [FAIL] style.nonce: IDL set to object "test-toString"
diff --git a/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt b/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt
index 6660e52..9a873fa 100644
--- a/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt
@@ -16,12 +16,12 @@
 [PASS] web API-created TypeError (cross-site iframe)
 [PASS] web API-created TypeError (same-origin iframe)
 [FAIL] web API-created DOMException (structuredClone())
-  assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n    at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:41:19)\n    at Test.step (http://web-platform.test:8001/resources/testharness.js:2599:25)\n    at test (http://web-platform.test:8001/resources/testharness.js:628:30)\n    at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:40:3)\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined
+  assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\\n    at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:41:19)\\n    at Test.step (http://web-platform.test:8001/resources/testharness.js:2599:25)\\n    at test (http://web-platform.test:8001/resources/testharness.js:628:30)\\n    at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:40:3)\\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined
 [FAIL] web API-created DOMException (worker)
-  assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n    at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:53:19)\n    at Test.step (http://web-platform.test:8001/resources/testharness.js:2599:25)\n    at async_test (http://web-platform.test:8001/resources/testharness.js:676:34)\n    at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:52:3)\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined
+  assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\\n    at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:53:19)\\n    at Test.step (http://web-platform.test:8001/resources/testharness.js:2599:25)\\n    at async_test (http://web-platform.test:8001/resources/testharness.js:676:34)\\n    at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:52:3)\\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined
 [FAIL] web API-created DOMException (cross-site iframe)
-  assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n    at iframeTest (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:72:19)\n    at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:99:5)\n    at Test.step (http://web-platform.test:8001/resources/testharness.js:2599:25)\n    at async_test (http://web-platform.test:8001/resources/testharness.js:676:34)\n    at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:96:3)\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined
+  assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\\n    at iframeTest (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:72:19)\\n    at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:99:5)\\n    at Test.step (http://web-platform.test:8001/resources/testharness.js:2599:25)\\n    at async_test (http://web-platform.test:8001/resources/testharness.js:676:34)\\n    at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:96:3)\\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined
 [FAIL] web API-created DOMException (same-origin iframe)
-  assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n    at iframeTest (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:72:19)\n    at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:104:5)\n    at Test.step (http://web-platform.test:8001/resources/testharness.js:2599:25)\n    at async_test (http://web-platform.test:8001/resources/testharness.js:676:34)\n    at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:102:3)\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined
+  assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\\n    at iframeTest (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:72:19)\\n    at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:104:5)\\n    at Test.step (http://web-platform.test:8001/resources/testharness.js:2599:25)\\n    at async_test (http://web-platform.test:8001/resources/testharness.js:676:34)\\n    at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:102:3)\\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/windows-1251_include=xml-expected.txt b/third_party/blink/web_tests/external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/windows-1251_include=xml-expected.txt
index 506c9e1..6f481bb 100644
--- a/third_party/blink/web_tests/external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/windows-1251_include=xml-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/windows-1251_include=xml-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
 [FAIL] <?xml-stylesheet?> (CSS)
-  assert_equals: expected "\"%C3%A5\"" but got "\"%26%23229%3B\""
+  assert_equals: expected "\\"%C3%A5\\"" but got "\\"%26%23229%3B\\""
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/windows-1252_include=xml-expected.txt b/third_party/blink/web_tests/external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/windows-1252_include=xml-expected.txt
index 1b928374..42163d70 100644
--- a/third_party/blink/web_tests/external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/windows-1252_include=xml-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/windows-1252_include=xml-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
 [FAIL] <?xml-stylesheet?> (CSS)
-  assert_equals: expected "\"%C3%A5\"" but got "\"%E5\""
+  assert_equals: expected "\\"%C3%A5\\"" but got "\\"%E5\\""
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/src-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/src-expected.txt
index 0f32276..24e7209 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/src-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/src-expected.txt
@@ -8,9 +8,9 @@
   assert_equals: expected "http://foo bar" but got "http://foo%20bar/"
 [PASS] HTMLTrackElement.src resolvable value in content attribute
 [PASS] HTMLTrackElement.src assigning resolvable value to IDL attribute
-[PASS] HTMLTrackElement.src \u0000 in content attribute
-[PASS] HTMLTrackElement.src assigning \u0000 to IDL attribute
-[PASS] HTMLTrackElement.src foo\u0000bar in content attribute
-[PASS] HTMLTrackElement.src assigning foo\u0000bar to IDL attribute
+[PASS] HTMLTrackElement.src \\u0000 in content attribute
+[PASS] HTMLTrackElement.src assigning \\u0000 to IDL attribute
+[PASS] HTMLTrackElement.src foo\\u0000bar in content attribute
+[PASS] HTMLTrackElement.src assigning foo\\u0000bar to IDL attribute
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-display-none-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-display-none-expected.txt
index c093086..a94cd75 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-display-none-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-display-none-expected.txt
@@ -33,11 +33,11 @@
 [PASS] <img srcset="/images/green-1x1.png?e28 50w, /images/green-16x16.png?e28 51w" sizes="1px,x("> ref sizes="1px" (display:none)
 [PASS] <img srcset="/images/green-1x1.png?e29 50w, /images/green-16x16.png?e29 51w" sizes="1px,{"> ref sizes="1px" (display:none)
 [PASS] <img srcset="/images/green-1x1.png?e30 50w, /images/green-16x16.png?e30 51w" sizes="1px,["> ref sizes="1px" (display:none)
-[PASS] <img srcset="/images/green-1x1.png?e31 50w, /images/green-16x16.png?e31 51w" sizes="\(,1px"> ref sizes="1px" (display:none)
-[PASS] <img srcset="/images/green-1x1.png?e32 50w, /images/green-16x16.png?e32 51w" sizes="x\(,1px"> ref sizes="1px" (display:none)
-[PASS] <img srcset="/images/green-1x1.png?e33 50w, /images/green-16x16.png?e33 51w" sizes="\{,1px"> ref sizes="1px" (display:none)
-[PASS] <img srcset="/images/green-1x1.png?e34 50w, /images/green-16x16.png?e34 51w" sizes="\[,1px"> ref sizes="1px" (display:none)
-[PASS] <img srcset="/images/green-1x1.png?e35 50w, /images/green-16x16.png?e35 51w" sizes="1\p\x"> ref sizes="1px" (display:none)
+[PASS] <img srcset="/images/green-1x1.png?e31 50w, /images/green-16x16.png?e31 51w" sizes="\\(,1px"> ref sizes="1px" (display:none)
+[PASS] <img srcset="/images/green-1x1.png?e32 50w, /images/green-16x16.png?e32 51w" sizes="x\\(,1px"> ref sizes="1px" (display:none)
+[PASS] <img srcset="/images/green-1x1.png?e33 50w, /images/green-16x16.png?e33 51w" sizes="\\{,1px"> ref sizes="1px" (display:none)
+[PASS] <img srcset="/images/green-1x1.png?e34 50w, /images/green-16x16.png?e34 51w" sizes="\\[,1px"> ref sizes="1px" (display:none)
+[PASS] <img srcset="/images/green-1x1.png?e35 50w, /images/green-16x16.png?e35 51w" sizes="1\\p\\x"> ref sizes="1px" (display:none)
 [PASS] <img srcset="/images/green-1x1.png?e36 50w, /images/green-16x16.png?e36 51w" sizes="calc(1px)"> ref sizes="1px" (display:none)
 [PASS] <img srcset="/images/green-1x1.png?e36a 50w, /images/green-16x16.png?e36a 51w" sizes="min(1px, 100px)"> ref sizes="1px" (display:none)
 [PASS] <img srcset="/images/green-1x1.png?e36b 50w, /images/green-16x16.png?e36b 51w" sizes="min(-100px, 1px)"> ref sizes="1px" (display:none)
@@ -158,7 +158,7 @@
 [PASS] <img srcset="/images/green-1x1.png?f31 50w, /images/green-16x16.png?f31 51w" sizes="{{},1px"> ref sizes="100vw" (display:none)
 [PASS] <img srcset="/images/green-1x1.png?f32 50w, /images/green-16x16.png?f32 51w" sizes="[[],1px"> ref sizes="100vw" (display:none)
 [PASS] <img srcset="/images/green-1x1.png?f33 50w, /images/green-16x16.png?f33 51w" sizes="1px !important"> ref sizes="100vw" (display:none)
-[PASS] <img srcset="/images/green-1x1.png?f34 50w, /images/green-16x16.png?f34 51w" sizes="\1px"> ref sizes="100vw" (display:none)
+[PASS] <img srcset="/images/green-1x1.png?f34 50w, /images/green-16x16.png?f34 51w" sizes="\\1px"> ref sizes="100vw" (display:none)
 [PASS] <img srcset="/images/green-1x1.png?f35 50w, /images/green-16x16.png?f35 51w" sizes="all 1px"> ref sizes="100vw" (display:none)
 [PASS] <img srcset="/images/green-1x1.png?f36 50w, /images/green-16x16.png?f36 51w" sizes="all and (min-width:0) 1px"> ref sizes="100vw" (display:none)
 [PASS] <img srcset="/images/green-1x1.png?f37 50w, /images/green-16x16.png?f37 51w" sizes="min-width:0 1px"> ref sizes="100vw" (display:none)
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-quirks-mode-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-quirks-mode-expected.txt
index 3480fd7..43f1fe5 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-quirks-mode-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-quirks-mode-expected.txt
@@ -33,11 +33,11 @@
 [PASS] <img srcset="/images/green-1x1.png?e28 50w, /images/green-16x16.png?e28 51w" sizes="1px,x("> ref sizes="1px" (quirks mode)
 [PASS] <img srcset="/images/green-1x1.png?e29 50w, /images/green-16x16.png?e29 51w" sizes="1px,{"> ref sizes="1px" (quirks mode)
 [PASS] <img srcset="/images/green-1x1.png?e30 50w, /images/green-16x16.png?e30 51w" sizes="1px,["> ref sizes="1px" (quirks mode)
-[PASS] <img srcset="/images/green-1x1.png?e31 50w, /images/green-16x16.png?e31 51w" sizes="\(,1px"> ref sizes="1px" (quirks mode)
-[PASS] <img srcset="/images/green-1x1.png?e32 50w, /images/green-16x16.png?e32 51w" sizes="x\(,1px"> ref sizes="1px" (quirks mode)
-[PASS] <img srcset="/images/green-1x1.png?e33 50w, /images/green-16x16.png?e33 51w" sizes="\{,1px"> ref sizes="1px" (quirks mode)
-[PASS] <img srcset="/images/green-1x1.png?e34 50w, /images/green-16x16.png?e34 51w" sizes="\[,1px"> ref sizes="1px" (quirks mode)
-[PASS] <img srcset="/images/green-1x1.png?e35 50w, /images/green-16x16.png?e35 51w" sizes="1\p\x"> ref sizes="1px" (quirks mode)
+[PASS] <img srcset="/images/green-1x1.png?e31 50w, /images/green-16x16.png?e31 51w" sizes="\\(,1px"> ref sizes="1px" (quirks mode)
+[PASS] <img srcset="/images/green-1x1.png?e32 50w, /images/green-16x16.png?e32 51w" sizes="x\\(,1px"> ref sizes="1px" (quirks mode)
+[PASS] <img srcset="/images/green-1x1.png?e33 50w, /images/green-16x16.png?e33 51w" sizes="\\{,1px"> ref sizes="1px" (quirks mode)
+[PASS] <img srcset="/images/green-1x1.png?e34 50w, /images/green-16x16.png?e34 51w" sizes="\\[,1px"> ref sizes="1px" (quirks mode)
+[PASS] <img srcset="/images/green-1x1.png?e35 50w, /images/green-16x16.png?e35 51w" sizes="1\\p\\x"> ref sizes="1px" (quirks mode)
 [PASS] <img srcset="/images/green-1x1.png?e36 50w, /images/green-16x16.png?e36 51w" sizes="calc(1px)"> ref sizes="1px" (quirks mode)
 [PASS] <img srcset="/images/green-1x1.png?e36a 50w, /images/green-16x16.png?e36a 51w" sizes="min(1px, 100px)"> ref sizes="1px" (quirks mode)
 [PASS] <img srcset="/images/green-1x1.png?e36b 50w, /images/green-16x16.png?e36b 51w" sizes="min(-100px, 1px)"> ref sizes="1px" (quirks mode)
@@ -158,7 +158,7 @@
 [PASS] <img srcset="/images/green-1x1.png?f31 50w, /images/green-16x16.png?f31 51w" sizes="{{},1px"> ref sizes="100vw" (quirks mode)
 [PASS] <img srcset="/images/green-1x1.png?f32 50w, /images/green-16x16.png?f32 51w" sizes="[[],1px"> ref sizes="100vw" (quirks mode)
 [PASS] <img srcset="/images/green-1x1.png?f33 50w, /images/green-16x16.png?f33 51w" sizes="1px !important"> ref sizes="100vw" (quirks mode)
-[PASS] <img srcset="/images/green-1x1.png?f34 50w, /images/green-16x16.png?f34 51w" sizes="\1px"> ref sizes="100vw" (quirks mode)
+[PASS] <img srcset="/images/green-1x1.png?f34 50w, /images/green-16x16.png?f34 51w" sizes="\\1px"> ref sizes="100vw" (quirks mode)
 [PASS] <img srcset="/images/green-1x1.png?f35 50w, /images/green-16x16.png?f35 51w" sizes="all 1px"> ref sizes="100vw" (quirks mode)
 [PASS] <img srcset="/images/green-1x1.png?f36 50w, /images/green-16x16.png?f36 51w" sizes="all and (min-width:0) 1px"> ref sizes="100vw" (quirks mode)
 [PASS] <img srcset="/images/green-1x1.png?f37 50w, /images/green-16x16.png?f37 51w" sizes="min-width:0 1px"> ref sizes="100vw" (quirks mode)
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode-expected.txt
index 87ac8335..0e197e1 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode-expected.txt
@@ -33,11 +33,11 @@
 [PASS] <img srcset="/images/green-1x1.png?e28 50w, /images/green-16x16.png?e28 51w" sizes="1px,x("> ref sizes="1px" (standards mode)
 [PASS] <img srcset="/images/green-1x1.png?e29 50w, /images/green-16x16.png?e29 51w" sizes="1px,{"> ref sizes="1px" (standards mode)
 [PASS] <img srcset="/images/green-1x1.png?e30 50w, /images/green-16x16.png?e30 51w" sizes="1px,["> ref sizes="1px" (standards mode)
-[PASS] <img srcset="/images/green-1x1.png?e31 50w, /images/green-16x16.png?e31 51w" sizes="\(,1px"> ref sizes="1px" (standards mode)
-[PASS] <img srcset="/images/green-1x1.png?e32 50w, /images/green-16x16.png?e32 51w" sizes="x\(,1px"> ref sizes="1px" (standards mode)
-[PASS] <img srcset="/images/green-1x1.png?e33 50w, /images/green-16x16.png?e33 51w" sizes="\{,1px"> ref sizes="1px" (standards mode)
-[PASS] <img srcset="/images/green-1x1.png?e34 50w, /images/green-16x16.png?e34 51w" sizes="\[,1px"> ref sizes="1px" (standards mode)
-[PASS] <img srcset="/images/green-1x1.png?e35 50w, /images/green-16x16.png?e35 51w" sizes="1\p\x"> ref sizes="1px" (standards mode)
+[PASS] <img srcset="/images/green-1x1.png?e31 50w, /images/green-16x16.png?e31 51w" sizes="\\(,1px"> ref sizes="1px" (standards mode)
+[PASS] <img srcset="/images/green-1x1.png?e32 50w, /images/green-16x16.png?e32 51w" sizes="x\\(,1px"> ref sizes="1px" (standards mode)
+[PASS] <img srcset="/images/green-1x1.png?e33 50w, /images/green-16x16.png?e33 51w" sizes="\\{,1px"> ref sizes="1px" (standards mode)
+[PASS] <img srcset="/images/green-1x1.png?e34 50w, /images/green-16x16.png?e34 51w" sizes="\\[,1px"> ref sizes="1px" (standards mode)
+[PASS] <img srcset="/images/green-1x1.png?e35 50w, /images/green-16x16.png?e35 51w" sizes="1\\p\\x"> ref sizes="1px" (standards mode)
 [PASS] <img srcset="/images/green-1x1.png?e36 50w, /images/green-16x16.png?e36 51w" sizes="calc(1px)"> ref sizes="1px" (standards mode)
 [PASS] <img srcset="/images/green-1x1.png?e36a 50w, /images/green-16x16.png?e36a 51w" sizes="min(1px, 100px)"> ref sizes="1px" (standards mode)
 [PASS] <img srcset="/images/green-1x1.png?e36b 50w, /images/green-16x16.png?e36b 51w" sizes="min(-100px, 1px)"> ref sizes="1px" (standards mode)
@@ -158,7 +158,7 @@
 [PASS] <img srcset="/images/green-1x1.png?f31 50w, /images/green-16x16.png?f31 51w" sizes="{{},1px"> ref sizes="100vw" (standards mode)
 [PASS] <img srcset="/images/green-1x1.png?f32 50w, /images/green-16x16.png?f32 51w" sizes="[[],1px"> ref sizes="100vw" (standards mode)
 [PASS] <img srcset="/images/green-1x1.png?f33 50w, /images/green-16x16.png?f33 51w" sizes="1px !important"> ref sizes="100vw" (standards mode)
-[PASS] <img srcset="/images/green-1x1.png?f34 50w, /images/green-16x16.png?f34 51w" sizes="\1px"> ref sizes="100vw" (standards mode)
+[PASS] <img srcset="/images/green-1x1.png?f34 50w, /images/green-16x16.png?f34 51w" sizes="\\1px"> ref sizes="100vw" (standards mode)
 [PASS] <img srcset="/images/green-1x1.png?f35 50w, /images/green-16x16.png?f35 51w" sizes="all 1px"> ref sizes="100vw" (standards mode)
 [PASS] <img srcset="/images/green-1x1.png?f36 50w, /images/green-16x16.png?f36 51w" sizes="all and (min-width:0) 1px"> ref sizes="100vw" (standards mode)
 [PASS] <img srcset="/images/green-1x1.png?f37 50w, /images/green-16x16.png?f37 51w" sizes="min-width:0 1px"> ref sizes="100vw" (standards mode)
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-width-1000px-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-width-1000px-expected.txt
index 53dc4d6..cc1f728 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-width-1000px-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-width-1000px-expected.txt
@@ -33,11 +33,11 @@
 [PASS] <img srcset="/images/green-1x1.png?e28 50w, /images/green-16x16.png?e28 51w" sizes="1px,x("> ref sizes="1px" (width:1000px)
 [PASS] <img srcset="/images/green-1x1.png?e29 50w, /images/green-16x16.png?e29 51w" sizes="1px,{"> ref sizes="1px" (width:1000px)
 [PASS] <img srcset="/images/green-1x1.png?e30 50w, /images/green-16x16.png?e30 51w" sizes="1px,["> ref sizes="1px" (width:1000px)
-[PASS] <img srcset="/images/green-1x1.png?e31 50w, /images/green-16x16.png?e31 51w" sizes="\(,1px"> ref sizes="1px" (width:1000px)
-[PASS] <img srcset="/images/green-1x1.png?e32 50w, /images/green-16x16.png?e32 51w" sizes="x\(,1px"> ref sizes="1px" (width:1000px)
-[PASS] <img srcset="/images/green-1x1.png?e33 50w, /images/green-16x16.png?e33 51w" sizes="\{,1px"> ref sizes="1px" (width:1000px)
-[PASS] <img srcset="/images/green-1x1.png?e34 50w, /images/green-16x16.png?e34 51w" sizes="\[,1px"> ref sizes="1px" (width:1000px)
-[PASS] <img srcset="/images/green-1x1.png?e35 50w, /images/green-16x16.png?e35 51w" sizes="1\p\x"> ref sizes="1px" (width:1000px)
+[PASS] <img srcset="/images/green-1x1.png?e31 50w, /images/green-16x16.png?e31 51w" sizes="\\(,1px"> ref sizes="1px" (width:1000px)
+[PASS] <img srcset="/images/green-1x1.png?e32 50w, /images/green-16x16.png?e32 51w" sizes="x\\(,1px"> ref sizes="1px" (width:1000px)
+[PASS] <img srcset="/images/green-1x1.png?e33 50w, /images/green-16x16.png?e33 51w" sizes="\\{,1px"> ref sizes="1px" (width:1000px)
+[PASS] <img srcset="/images/green-1x1.png?e34 50w, /images/green-16x16.png?e34 51w" sizes="\\[,1px"> ref sizes="1px" (width:1000px)
+[PASS] <img srcset="/images/green-1x1.png?e35 50w, /images/green-16x16.png?e35 51w" sizes="1\\p\\x"> ref sizes="1px" (width:1000px)
 [PASS] <img srcset="/images/green-1x1.png?e36 50w, /images/green-16x16.png?e36 51w" sizes="calc(1px)"> ref sizes="1px" (width:1000px)
 [PASS] <img srcset="/images/green-1x1.png?e36a 50w, /images/green-16x16.png?e36a 51w" sizes="min(1px, 100px)"> ref sizes="1px" (width:1000px)
 [PASS] <img srcset="/images/green-1x1.png?e36b 50w, /images/green-16x16.png?e36b 51w" sizes="min(-100px, 1px)"> ref sizes="1px" (width:1000px)
@@ -158,7 +158,7 @@
 [PASS] <img srcset="/images/green-1x1.png?f31 50w, /images/green-16x16.png?f31 51w" sizes="{{},1px"> ref sizes="100vw" (width:1000px)
 [PASS] <img srcset="/images/green-1x1.png?f32 50w, /images/green-16x16.png?f32 51w" sizes="[[],1px"> ref sizes="100vw" (width:1000px)
 [PASS] <img srcset="/images/green-1x1.png?f33 50w, /images/green-16x16.png?f33 51w" sizes="1px !important"> ref sizes="100vw" (width:1000px)
-[PASS] <img srcset="/images/green-1x1.png?f34 50w, /images/green-16x16.png?f34 51w" sizes="\1px"> ref sizes="100vw" (width:1000px)
+[PASS] <img srcset="/images/green-1x1.png?f34 50w, /images/green-16x16.png?f34 51w" sizes="\\1px"> ref sizes="100vw" (width:1000px)
 [PASS] <img srcset="/images/green-1x1.png?f35 50w, /images/green-16x16.png?f35 51w" sizes="all 1px"> ref sizes="100vw" (width:1000px)
 [PASS] <img srcset="/images/green-1x1.png?f36 50w, /images/green-16x16.png?f36 51w" sizes="all and (min-width:0) 1px"> ref sizes="100vw" (width:1000px)
 [PASS] <img srcset="/images/green-1x1.png?f37 50w, /images/green-16x16.png?f37 51w" sizes="min-width:0 1px"> ref sizes="100vw" (width:1000px)
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/script-charset-01-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/script-charset-01-expected.txt
index d207c23..e7c8420 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/script-charset-01-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/script-charset-01-expected.txt
@@ -3,7 +3,7 @@
 [PASS] Script @type: unknown parameters 1
 [PASS] Script @type: unknown parameters 2
 [FAIL] Script @type: unknown parameters 3
-  assert_equals: expected "śćążź" but got "\ufffd湿\ufffd"
+  assert_equals: expected "śćążź" but got "\\ufffd湿\\ufffd"
 [PASS] Script @type: unknown parameters 4
 [PASS] Script @type: unknown parameters 5
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/syntax/charset/inheritance-bogus-meta-expected.txt b/third_party/blink/web_tests/external/wpt/html/syntax/charset/inheritance-bogus-meta-expected.txt
index 800734c..bbd49c5b 100644
--- a/third_party/blink/web_tests/external/wpt/html/syntax/charset/inheritance-bogus-meta-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/syntax/charset/inheritance-bogus-meta-expected.txt
@@ -1,7 +1,7 @@
 This is a testharness.js-based test.
 [PASS] Child with bogus <meta charset>
 [FAIL] Child with bogus Content-Type charset
-  assert_equals: expected "Ά\n" but got "¢\n"
+  assert_equals: expected "Ά\\n" but got "¢\\n"
 [PASS] Child with bogus Content-Type charset, but valid <meta charset>
 [PASS] Cross-origin child with bogus <meta charset>
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/syntax/charset/inheritance-bogus-meta-utf-8-expected.txt b/third_party/blink/web_tests/external/wpt/html/syntax/charset/inheritance-bogus-meta-utf-8-expected.txt
index abb65b2..02fe5a6 100644
--- a/third_party/blink/web_tests/external/wpt/html/syntax/charset/inheritance-bogus-meta-utf-8-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/syntax/charset/inheritance-bogus-meta-utf-8-expected.txt
@@ -1,7 +1,7 @@
 This is a testharness.js-based test.
 [PASS] Child with bogus <meta charset>
 [FAIL] Child with bogus Content-Type charset
-  assert_equals: expected "\ufffd\n" but got "¢\n"
+  assert_equals: expected "\\ufffd\\n" but got "¢\\n"
 [PASS] Child with bogus Content-Type charset, but valid <meta charset>
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_innerHTML_adoption01-expected.txt b/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_innerHTML_adoption01-expected.txt
index c8303beb..88d5d8c5 100644
--- a/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_innerHTML_adoption01-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_innerHTML_adoption01-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
 [FAIL] html5lib_innerHTML_adoption01.html 0bf80e1546d4c221354aa9734f61713b7d64ee6d
-  assert_equals: expected "#document\n| <b>\n|   <em>\n|     <foo>\n|       <foob>\n|         <fooc>\n| <aside>\n|   <b>" but got "#document\n| <b>\n|   <em>\n|     <foo>\n|       <foob>\n|         <fooc>\n| <aside>\n|   <em>\n|     <b>"
+  assert_equals: expected "#document\\n| <b>\\n|   <em>\\n|     <foo>\\n|       <foob>\\n|         <fooc>\\n| <aside>\\n|   <b>" but got "#document\\n| <b>\\n|   <em>\\n|     <foo>\\n|       <foob>\\n|         <fooc>\\n| <aside>\\n|   <em>\\n|     <b>"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_innerHTML_webkit02-expected.txt b/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_innerHTML_webkit02-expected.txt
index c5f12fb..b05873bc 100644
--- a/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_innerHTML_webkit02-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_innerHTML_webkit02-expected.txt
@@ -1,10 +1,10 @@
 This is a testharness.js-based test.
 [FAIL] html5lib_innerHTML_webkit02.html cac5528d0cbea4d15babba38304646e3903324a6
-  assert_equals: expected "#document\n| <b>\n|   <em>\n|     <dcell>\n|       <postfield>\n|         <postfield>\n|           <postfield>\n|             <postfield>\n|               <missing_glyph>\n|                 <missing_glyph>\n|                   <missing_glyph>\n|                     <missing_glyph>\n|                       <hkern>\n| <aside>\n|   <b>" but got "#document\n| <b>\n|   <em>\n|     <dcell>\n|       <postfield>\n|         <postfield>\n|           <postfield>\n|             <postfield>\n|               <missing_glyph>\n|                 <missing_glyph>\n|                   <missing_glyph>\n|                     <missing_glyph>\n|                       <hkern>\n| <aside>\n|   <em>\n|     <b>"
+  assert_equals: expected "#document\\n| <b>\\n|   <em>\\n|     <dcell>\\n|       <postfield>\\n|         <postfield>\\n|           <postfield>\\n|             <postfield>\\n|               <missing_glyph>\\n|                 <missing_glyph>\\n|                   <missing_glyph>\\n|                     <missing_glyph>\\n|                       <hkern>\\n| <aside>\\n|   <b>" but got "#document\\n| <b>\\n|   <em>\\n|     <dcell>\\n|       <postfield>\\n|         <postfield>\\n|           <postfield>\\n|             <postfield>\\n|               <missing_glyph>\\n|                 <missing_glyph>\\n|                   <missing_glyph>\\n|                     <missing_glyph>\\n|                       <hkern>\\n| <aside>\\n|   <em>\\n|     <b>"
 [FAIL] html5lib_innerHTML_webkit02.html bafeef55f21b568ab89a91082464614e4ebe7c2f
-  assert_equals: expected "#document\n| <b>\n|   <em>\n|     <foo>\n|       <foo>\n|         <foo>\n|           <foo>\n|             <foo>\n|               <foo>\n|                 <foo>\n|                   <foo>\n|                     <foo>\n|                       <foo>\n| <aside>\n|   <b>" but got "#document\n| <b>\n|   <em>\n|     <foo>\n|       <foo>\n|         <foo>\n|           <foo>\n|             <foo>\n|               <foo>\n|                 <foo>\n|                   <foo>\n|                     <foo>\n|                       <foo>\n| <aside>\n|   <em>\n|     <b>"
+  assert_equals: expected "#document\\n| <b>\\n|   <em>\\n|     <foo>\\n|       <foo>\\n|         <foo>\\n|           <foo>\\n|             <foo>\\n|               <foo>\\n|                 <foo>\\n|                   <foo>\\n|                     <foo>\\n|                       <foo>\\n| <aside>\\n|   <b>" but got "#document\\n| <b>\\n|   <em>\\n|     <foo>\\n|       <foo>\\n|         <foo>\\n|           <foo>\\n|             <foo>\\n|               <foo>\\n|                 <foo>\\n|                   <foo>\\n|                     <foo>\\n|                       <foo>\\n| <aside>\\n|   <em>\\n|     <b>"
 [FAIL] html5lib_innerHTML_webkit02.html 9461cfc6d9d4f08b05b3a95bbe5baa264f868a44
-  assert_equals: expected "#document\n| <b>\n|   <em>\n|     <foo>\n|       <foob>\n|         <foob>\n|           <foob>\n|             <foob>\n|               <fooc>\n|                 <fooc>\n|                   <fooc>\n|                     <fooc>\n|                       <food>\n| <aside>\n|   <b>" but got "#document\n| <b>\n|   <em>\n|     <foo>\n|       <foob>\n|         <foob>\n|           <foob>\n|             <foob>\n|               <fooc>\n|                 <fooc>\n|                   <fooc>\n|                     <fooc>\n|                       <food>\n| <aside>\n|   <em>\n|     <b>"
+  assert_equals: expected "#document\\n| <b>\\n|   <em>\\n|     <foo>\\n|       <foob>\\n|         <foob>\\n|           <foob>\\n|             <foob>\\n|               <fooc>\\n|                 <fooc>\\n|                   <fooc>\\n|                     <fooc>\\n|                       <food>\\n| <aside>\\n|   <b>" but got "#document\\n| <b>\\n|   <em>\\n|     <foo>\\n|       <foob>\\n|         <foob>\\n|           <foob>\\n|             <foob>\\n|               <fooc>\\n|                 <fooc>\\n|                   <fooc>\\n|                     <fooc>\\n|                       <food>\\n| <aside>\\n|   <em>\\n|     <b>"
 [PASS] html5lib_innerHTML_webkit02.html c2c4647447354abc154f1917a7fbefa4a679d5fb
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_tests25_run_type=uri-expected.txt b/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_tests25_run_type=uri-expected.txt
index 53788d1..d9dfca3c 100644
--- a/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_tests25_run_type=uri-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_tests25_run_type=uri-expected.txt
@@ -7,7 +7,7 @@
 [PASS] html5lib_tests25.html c705ceb6fb37865e6965641ea80137baf44176b6
 [PASS] html5lib_tests25.html 277da0c4c937f3852d8a7cacf4e4b426a30b3dda
 [FAIL] html5lib_tests25.html de4aa726e09215ba9c50b97d257e6c6b880107f1
-  assert_equals: expected "#document\n| <!DOCTYPE html>\n| <html>\n|   <head>\n|   <body>\n|     <command>\n|       \"A\"" but got "#document\n| <!DOCTYPE html>\n| <html>\n|   <head>\n|   <body>\n|     <command>\n|     \"A\""
+  assert_equals: expected "#document\\n| <!DOCTYPE html>\\n| <html>\\n|   <head>\\n|   <body>\\n|     <command>\\n|       \\"A\\"" but got "#document\\n| <!DOCTYPE html>\\n| <html>\\n|   <head>\\n|   <body>\\n|     <command>\\n|     \\"A\\""
 [PASS] html5lib_tests25.html 578e08f11628dc9841f3eb21c016e1e28cec0304
 [PASS] html5lib_tests25.html a6e5387b48c4d0399a802215f7fa206bd0d3b492
 [PASS] html5lib_tests25.html d56d47bc9d9c7472fb1706bdecda1bbd165dcf91
diff --git a/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_tests25_run_type=write-expected.txt b/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_tests25_run_type=write-expected.txt
index 53788d1..d9dfca3c 100644
--- a/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_tests25_run_type=write-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_tests25_run_type=write-expected.txt
@@ -7,7 +7,7 @@
 [PASS] html5lib_tests25.html c705ceb6fb37865e6965641ea80137baf44176b6
 [PASS] html5lib_tests25.html 277da0c4c937f3852d8a7cacf4e4b426a30b3dda
 [FAIL] html5lib_tests25.html de4aa726e09215ba9c50b97d257e6c6b880107f1
-  assert_equals: expected "#document\n| <!DOCTYPE html>\n| <html>\n|   <head>\n|   <body>\n|     <command>\n|       \"A\"" but got "#document\n| <!DOCTYPE html>\n| <html>\n|   <head>\n|   <body>\n|     <command>\n|     \"A\""
+  assert_equals: expected "#document\\n| <!DOCTYPE html>\\n| <html>\\n|   <head>\\n|   <body>\\n|     <command>\\n|       \\"A\\"" but got "#document\\n| <!DOCTYPE html>\\n| <html>\\n|   <head>\\n|   <body>\\n|     <command>\\n|     \\"A\\""
 [PASS] html5lib_tests25.html 578e08f11628dc9841f3eb21c016e1e28cec0304
 [PASS] html5lib_tests25.html a6e5387b48c4d0399a802215f7fa206bd0d3b492
 [PASS] html5lib_tests25.html d56d47bc9d9c7472fb1706bdecda1bbd165dcf91
diff --git a/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_tests25_run_type=write_single-expected.txt b/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_tests25_run_type=write_single-expected.txt
index 53788d1..d9dfca3c 100644
--- a/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_tests25_run_type=write_single-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_tests25_run_type=write_single-expected.txt
@@ -7,7 +7,7 @@
 [PASS] html5lib_tests25.html c705ceb6fb37865e6965641ea80137baf44176b6
 [PASS] html5lib_tests25.html 277da0c4c937f3852d8a7cacf4e4b426a30b3dda
 [FAIL] html5lib_tests25.html de4aa726e09215ba9c50b97d257e6c6b880107f1
-  assert_equals: expected "#document\n| <!DOCTYPE html>\n| <html>\n|   <head>\n|   <body>\n|     <command>\n|       \"A\"" but got "#document\n| <!DOCTYPE html>\n| <html>\n|   <head>\n|   <body>\n|     <command>\n|     \"A\""
+  assert_equals: expected "#document\\n| <!DOCTYPE html>\\n| <html>\\n|   <head>\\n|   <body>\\n|     <command>\\n|       \\"A\\"" but got "#document\\n| <!DOCTYPE html>\\n| <html>\\n|   <head>\\n|   <body>\\n|     <command>\\n|     \\"A\\""
 [PASS] html5lib_tests25.html 578e08f11628dc9841f3eb21c016e1e28cec0304
 [PASS] html5lib_tests25.html a6e5387b48c4d0399a802215f7fa206bd0d3b492
 [PASS] html5lib_tests25.html d56d47bc9d9c7472fb1706bdecda1bbd165dcf91
diff --git a/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_webkit02_run_type=uri-expected.txt b/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_webkit02_run_type=uri-expected.txt
index a2530ef..ce521183 100644
--- a/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_webkit02_run_type=uri-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_webkit02_run_type=uri-expected.txt
@@ -13,7 +13,7 @@
 [PASS] html5lib_webkit02.html 73aed96d7cd3116e4a3e701104616c07d1ec5e0c
 [PASS] html5lib_webkit02.html 139a546c72bfcedf638d031f33da43f24995f688
 [FAIL] html5lib_webkit02.html 6e33515b4dc011dd390d433a6358bf68b786b1fd
-  assert_equals: expected "#document\n| <html>\n|   <head>\n|   <body>\n|     <b>\n|       <em>\n|         <foo>\n|           <foo>\n|             <foo>\n|     <aside>\n|       <b>" but got "#document\n| <html>\n|   <head>\n|   <body>\n|     <b>\n|       <em>\n|         <foo>\n|           <foo>\n|             <foo>\n|     <aside>\n|       <em>\n|         <b>"
+  assert_equals: expected "#document\\n| <html>\\n|   <head>\\n|   <body>\\n|     <b>\\n|       <em>\\n|         <foo>\\n|           <foo>\\n|             <foo>\\n|     <aside>\\n|       <b>" but got "#document\\n| <html>\\n|   <head>\\n|   <body>\\n|     <b>\\n|       <em>\\n|         <foo>\\n|           <foo>\\n|             <foo>\\n|     <aside>\\n|       <em>\\n|         <b>"
 [PASS] html5lib_webkit02.html b6d2377b0dd710ca812c97b2b65cb5d2e93b0e5b
 [PASS] html5lib_webkit02.html 21a5b2b413c4db8ed588334b9a50dea9872bbcfa
 [PASS] html5lib_webkit02.html 90d3f6f2dff994f63293ca46f7cd50a75cde96a6
diff --git a/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_webkit02_run_type=write-expected.txt b/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_webkit02_run_type=write-expected.txt
index a2530ef..ce521183 100644
--- a/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_webkit02_run_type=write-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_webkit02_run_type=write-expected.txt
@@ -13,7 +13,7 @@
 [PASS] html5lib_webkit02.html 73aed96d7cd3116e4a3e701104616c07d1ec5e0c
 [PASS] html5lib_webkit02.html 139a546c72bfcedf638d031f33da43f24995f688
 [FAIL] html5lib_webkit02.html 6e33515b4dc011dd390d433a6358bf68b786b1fd
-  assert_equals: expected "#document\n| <html>\n|   <head>\n|   <body>\n|     <b>\n|       <em>\n|         <foo>\n|           <foo>\n|             <foo>\n|     <aside>\n|       <b>" but got "#document\n| <html>\n|   <head>\n|   <body>\n|     <b>\n|       <em>\n|         <foo>\n|           <foo>\n|             <foo>\n|     <aside>\n|       <em>\n|         <b>"
+  assert_equals: expected "#document\\n| <html>\\n|   <head>\\n|   <body>\\n|     <b>\\n|       <em>\\n|         <foo>\\n|           <foo>\\n|             <foo>\\n|     <aside>\\n|       <b>" but got "#document\\n| <html>\\n|   <head>\\n|   <body>\\n|     <b>\\n|       <em>\\n|         <foo>\\n|           <foo>\\n|             <foo>\\n|     <aside>\\n|       <em>\\n|         <b>"
 [PASS] html5lib_webkit02.html b6d2377b0dd710ca812c97b2b65cb5d2e93b0e5b
 [PASS] html5lib_webkit02.html 21a5b2b413c4db8ed588334b9a50dea9872bbcfa
 [PASS] html5lib_webkit02.html 90d3f6f2dff994f63293ca46f7cd50a75cde96a6
diff --git a/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_webkit02_run_type=write_single-expected.txt b/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_webkit02_run_type=write_single-expected.txt
index a2530ef..ce521183 100644
--- a/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_webkit02_run_type=write_single-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/syntax/parsing/html5lib_webkit02_run_type=write_single-expected.txt
@@ -13,7 +13,7 @@
 [PASS] html5lib_webkit02.html 73aed96d7cd3116e4a3e701104616c07d1ec5e0c
 [PASS] html5lib_webkit02.html 139a546c72bfcedf638d031f33da43f24995f688
 [FAIL] html5lib_webkit02.html 6e33515b4dc011dd390d433a6358bf68b786b1fd
-  assert_equals: expected "#document\n| <html>\n|   <head>\n|   <body>\n|     <b>\n|       <em>\n|         <foo>\n|           <foo>\n|             <foo>\n|     <aside>\n|       <b>" but got "#document\n| <html>\n|   <head>\n|   <body>\n|     <b>\n|       <em>\n|         <foo>\n|           <foo>\n|             <foo>\n|     <aside>\n|       <em>\n|         <b>"
+  assert_equals: expected "#document\\n| <html>\\n|   <head>\\n|   <body>\\n|     <b>\\n|       <em>\\n|         <foo>\\n|           <foo>\\n|             <foo>\\n|     <aside>\\n|       <b>" but got "#document\\n| <html>\\n|   <head>\\n|   <body>\\n|     <b>\\n|       <em>\\n|         <foo>\\n|           <foo>\\n|             <foo>\\n|     <aside>\\n|       <em>\\n|         <b>"
 [PASS] html5lib_webkit02.html b6d2377b0dd710ca812c97b2b65cb5d2e93b0e5b
 [PASS] html5lib_webkit02.html 21a5b2b413c4db8ed588334b9a50dea9872bbcfa
 [PASS] html5lib_webkit02.html 90d3f6f2dff994f63293ca46f7cd50a75cde96a6
diff --git a/third_party/blink/web_tests/external/wpt/html/syntax/serializing-html-fragments/serializing-expected.txt b/third_party/blink/web_tests/external/wpt/html/syntax/serializing-html-fragments/serializing-expected.txt
index f975885d..9ef3d8ba 100644
--- a/third_party/blink/web_tests/external/wpt/html/syntax/serializing-html-fragments/serializing-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/syntax/serializing-html-fragments/serializing-expected.txt
@@ -8,11 +8,11 @@
 [PASS] innerHTML 5 <a b="&nbsp;"></a>
 [PASS] innerHTML 6 <a b="&quot;"></a>
 [FAIL] innerHTML 7 <a b="<"></a>
-  assert_equals: expected "<a b=\"<\"></a>" but got "<a b=\"&lt;\"></a>"
+  assert_equals: expected "<a b=\\"<\\"></a>" but got "<a b=\\"&lt;\\"></a>"
 [FAIL] innerHTML 8 <a b=">"></a>
-  assert_equals: expected "<a b=\">\"></a>" but got "<a b=\"&gt;\"></a>"
+  assert_equals: expected "<a b=\\">\\"></a>" but got "<a b=\\"&gt;\\"></a>"
 [FAIL] innerHTML 9 <a href="javascript:&quot;<>&quot;"></a>
-  assert_equals: expected "<a href=\"javascript:&quot;<>&quot;\"></a>" but got "<a href=\"javascript:&quot;&lt;&gt;&quot;\"></a>"
+  assert_equals: expected "<a href=\\"javascript:&quot;<>&quot;\\"></a>" but got "<a href=\\"javascript:&quot;&lt;&gt;&quot;\\"></a>"
 [PASS] innerHTML 10 <svg xlink:href="a"></svg>
 [PASS] innerHTML 11 <svg xmlns:svg="test"></svg>
 [PASS] innerHTML 12 a
@@ -40,11 +40,11 @@
 [PASS] outerHTML 5 <span><a b="&nbsp;"></a></span>
 [PASS] outerHTML 6 <span><a b="&quot;"></a></span>
 [FAIL] outerHTML 7 <span><a b="<"></a></span>
-  assert_equals: expected "<span><a b=\"<\"></a></span>" but got "<span><a b=\"&lt;\"></a></span>"
+  assert_equals: expected "<span><a b=\\"<\\"></a></span>" but got "<span><a b=\\"&lt;\\"></a></span>"
 [FAIL] outerHTML 8 <span><a b=">"></a></span>
-  assert_equals: expected "<span><a b=\">\"></a></span>" but got "<span><a b=\"&gt;\"></a></span>"
+  assert_equals: expected "<span><a b=\\">\\"></a></span>" but got "<span><a b=\\"&gt;\\"></a></span>"
 [FAIL] outerHTML 9 <span><a href="javascript:&quot;<>&quot;"></a></span>
-  assert_equals: expected "<span><a href=\"javascript:&quot;<>&quot;\"></a></span>" but got "<span><a href=\"javascript:&quot;&lt;&gt;&quot;\"></a></span>"
+  assert_equals: expected "<span><a href=\\"javascript:&quot;<>&quot;\\"></a></span>" but got "<span><a href=\\"javascript:&quot;&lt;&gt;&quot;\\"></a></span>"
 [PASS] outerHTML 10 <span><svg xlink:href="a"></svg></span>
 [PASS] outerHTML 11 <span><svg xmlns:svg="test"></svg></span>
 [PASS] outerHTML 12 <span>a</span>
diff --git a/third_party/blink/web_tests/external/wpt/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-disabled.tentative.sub-expected.txt b/third_party/blink/web_tests/external/wpt/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-disabled.tentative.sub-expected.txt
index 1d514baf..2526e0c5 100644
--- a/third_party/blink/web_tests/external/wpt/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-disabled.tentative.sub-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-disabled.tentative.sub-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
 [FAIL] Speculative parsing, document.write(): link-rel-stylesheet-disabled
-  Unhandled rejection: assert_equals: speculative case incorrectly fetched expected "" but got "param-encodingcheck: %C4%9E\r\nAccept: text/css,*/*;q=0.1\r\nReferer: http://web-platform.test:8001/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-disabled.tentative.sub.html"
+  Unhandled rejection: assert_equals: speculative case incorrectly fetched expected "" but got "param-encodingcheck: %C4%9E\\r\\nAccept: text/css,*/*;q=0.1\\r\\nReferer: http://web-platform.test:8001/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-disabled.tentative.sub.html"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/html/syntax/speculative-parsing/generated/document-write/math-font-script-src.tentative.sub-expected.txt b/third_party/blink/web_tests/external/wpt/html/syntax/speculative-parsing/generated/document-write/math-font-script-src.tentative.sub-expected.txt
index 1897410..ffe589c7 100644
--- a/third_party/blink/web_tests/external/wpt/html/syntax/speculative-parsing/generated/document-write/math-font-script-src.tentative.sub-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/syntax/speculative-parsing/generated/document-write/math-font-script-src.tentative.sub-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
 [FAIL] Speculative parsing, document.write(): math-font-script-src
-  Unhandled rejection: assert_equals: speculative case incorrectly fetched expected "" but got "param-encodingcheck: %C4%9E\r\nAccept: */*\r\nReferer: http://web-platform.test:8001/html/syntax/speculative-parsing/generated/document-write/math-font-script-src.tentative.sub.html"
+  Unhandled rejection: assert_equals: speculative case incorrectly fetched expected "" but got "param-encodingcheck: %C4%9E\\r\\nAccept: */*\\r\\nReferer: http://web-platform.test:8001/html/syntax/speculative-parsing/generated/document-write/math-font-script-src.tentative.sub.html"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/html/syntax/speculative-parsing/generated/document-write/math-script-src.tentative.sub-expected.txt b/third_party/blink/web_tests/external/wpt/html/syntax/speculative-parsing/generated/document-write/math-script-src.tentative.sub-expected.txt
index 75a6f13..f14dfd86 100644
--- a/third_party/blink/web_tests/external/wpt/html/syntax/speculative-parsing/generated/document-write/math-script-src.tentative.sub-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/syntax/speculative-parsing/generated/document-write/math-script-src.tentative.sub-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
 [FAIL] Speculative parsing, document.write(): math-script-src
-  Unhandled rejection: assert_equals: speculative case incorrectly fetched expected "" but got "param-encodingcheck: %C4%9E\r\nAccept: */*\r\nReferer: http://web-platform.test:8001/html/syntax/speculative-parsing/generated/document-write/math-script-src.tentative.sub.html"
+  Unhandled rejection: assert_equals: speculative case incorrectly fetched expected "" but got "param-encodingcheck: %C4%9E\\r\\nAccept: */*\\r\\nReferer: http://web-platform.test:8001/html/syntax/speculative-parsing/generated/document-write/math-script-src.tentative.sub.html"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/html/syntax/speculative-parsing/generated/document-write/meta-viewport-link-stylesheet-media.tentative.sub-expected.txt b/third_party/blink/web_tests/external/wpt/html/syntax/speculative-parsing/generated/document-write/meta-viewport-link-stylesheet-media.tentative.sub-expected.txt
index 0a3db62..1c930b1 100644
--- a/third_party/blink/web_tests/external/wpt/html/syntax/speculative-parsing/generated/document-write/meta-viewport-link-stylesheet-media.tentative.sub-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/syntax/speculative-parsing/generated/document-write/meta-viewport-link-stylesheet-media.tentative.sub-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
 [FAIL] Speculative parsing, document.write(): meta-viewport-link-stylesheet-media
-  Unhandled rejection: assert_equals: speculative case incorrectly fetched expected "" but got "param-encodingcheck: %C4%9E\r\nAccept: text/css,*/*;q=0.1\r\nReferer: http://web-platform.test:8001/html/syntax/speculative-parsing/generated/document-write/meta-viewport-link-stylesheet-media.tentative.sub.html"
+  Unhandled rejection: assert_equals: speculative case incorrectly fetched expected "" but got "param-encodingcheck: %C4%9E\\r\\nAccept: text/css,*/*;q=0.1\\r\\nReferer: http://web-platform.test:8001/html/syntax/speculative-parsing/generated/document-write/meta-viewport-link-stylesheet-media.tentative.sub.html"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/html/syntax/speculative-parsing/generated/document-write/svg-script-src.tentative.sub-expected.txt b/third_party/blink/web_tests/external/wpt/html/syntax/speculative-parsing/generated/document-write/svg-script-src.tentative.sub-expected.txt
index 0fd215fd..69639c05 100644
--- a/third_party/blink/web_tests/external/wpt/html/syntax/speculative-parsing/generated/document-write/svg-script-src.tentative.sub-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/syntax/speculative-parsing/generated/document-write/svg-script-src.tentative.sub-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
 [FAIL] Speculative parsing, document.write(): svg-script-src
-  Unhandled rejection: assert_equals: speculative case incorrectly fetched expected "" but got "param-encodingcheck: %C4%9E\r\nAccept: */*\r\nReferer: http://web-platform.test:8001/html/syntax/speculative-parsing/generated/document-write/svg-script-src.tentative.sub.html"
+  Unhandled rejection: assert_equals: speculative case incorrectly fetched expected "" but got "param-encodingcheck: %C4%9E\\r\\nAccept: */*\\r\\nReferer: http://web-platform.test:8001/html/syntax/speculative-parsing/generated/document-write/svg-script-src.tentative.sub.html"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/inert/inert-inlines-around-selection-range-in-contenteditable-expected.txt b/third_party/blink/web_tests/external/wpt/inert/inert-inlines-around-selection-range-in-contenteditable-expected.txt
index 1e5b981..ad32cc1 100644
--- a/third_party/blink/web_tests/external/wpt/inert/inert-inlines-around-selection-range-in-contenteditable-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/inert/inert-inlines-around-selection-range-in-contenteditable-expected.txt
@@ -9,9 +9,9 @@
 [PASS] <span inert><span style="display:contents">a[bc</span></span><span>de]f</span>
 [PASS] <span inert><span style="display:contents">{abc</span></span><span>de]f</span>
 [FAIL] <span inert style="display:none">a[bc</span><span>de]f</span>
-  assert_equals: execCommand("delete") at <span inert style="display:none">a[bc</span><span>de]f</span>: <span> content should not be deleted because anchor node of Selection is in the <span inert> expected "<span inert=\"\" style=\"display:none\">abc</span><span>def</span>" but got "<span>f</span>"
+  assert_equals: execCommand("delete") at <span inert style="display:none">a[bc</span><span>de]f</span>: <span> content should not be deleted because anchor node of Selection is in the <span inert> expected "<span inert=\\"\\" style=\\"display:none\\">abc</span><span>def</span>" but got "<span>f</span>"
 [FAIL] <span inert style="display:none">{abc</span><span>de]f</span>
-  assert_equals: execCommand("delete") at <span inert style="display:none">{abc</span><span>de]f</span>: <span> content should not be deleted because anchor node of Selection is in the <span inert> expected "<span inert=\"\" style=\"display:none\">abc</span><span>def</span>" but got "<span>f</span>"
+  assert_equals: execCommand("delete") at <span inert style="display:none">{abc</span><span>de]f</span>: <span> content should not be deleted because anchor node of Selection is in the <span inert> expected "<span inert=\\"\\" style=\\"display:none\\">abc</span><span>def</span>" but got "<span>f</span>"
 [PASS] <span inert><span style="display:none">a[bc</span></span><span>de]f</span>
 [PASS] <span inert><span style="display:none">{abc</span></span><span>de]f</span>
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/input-events/input-events-get-target-ranges-deleting-range-across-editing-host-boundaries.tentative-expected.txt b/third_party/blink/web_tests/external/wpt/input-events/input-events-get-target-ranges-deleting-range-across-editing-host-boundaries.tentative-expected.txt
index b58dd0b..f05aab4 100644
--- a/third_party/blink/web_tests/external/wpt/input-events/input-events-get-target-ranges-deleting-range-across-editing-host-boundaries.tentative-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/input-events/input-events-get-target-ranges-deleting-range-across-editing-host-boundaries.tentative-expected.txt
@@ -1,11 +1,11 @@
 This is a testharness.js-based test.
 [FAIL] Backspace at "<p>ab[c<span contenteditable="false">no]n-editable</span>def</p>"
-  assert_equals: If only editable text is deleted, its target range should be the deleted text range expected "(#text \"ab\", 2) - (#text \"ab\", 3)" but got "(#text \"ab\", 2) - (<span>, 0)"
+  assert_equals: If only editable text is deleted, its target range should be the deleted text range expected "(#text \\"ab\\", 2) - (#text \\"ab\\", 3)" but got "(#text \\"ab\\", 2) - (<span>, 0)"
 [PASS] Backspace at "<p>abc<span contenteditable="false">non-[editable</span>de]f</p>"
 [FAIL] Backspace at "<p contenteditable="false"><span contenteditable>a[bc</span>non-editable<span contenteditable>de]f</span></p>"
   assert_equals: If editable text before non-editable element is deleted, its input type should be deleteContent expected "deleteContent" but got "deleteContentBackward"
 [FAIL] Backspace at "<p>a[bc<span contenteditable="false">non-editable<span contenteditable>de]f</span></span></p>"
-  assert_equals: If editable text before non-editable element is deleted, its target range should be only the deleted text expected "(#text \"a\", 1) - (#text \"a\", 3)" but got "(#text \"a\", 1) - (<span>, 0)"
+  assert_equals: If editable text before non-editable element is deleted, its target range should be only the deleted text expected "(#text \\"a\\", 1) - (#text \\"a\\", 3)" but got "(#text \\"a\\", 1) - (<span>, 0)"
 [PASS] Backspace at "<p><span contenteditable="false"><span contenteditable>a[bc</span>non-editable</span>de]f</p>"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/parsing.any-expected.txt b/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/parsing.any-expected.txt
index 29e055b..63a3fbe5 100644
--- a/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/parsing.any-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/parsing.any-expected.txt
@@ -8,21 +8,21 @@
 [FAIL] TEXT/HTML;CHARSET=GBK (Request/Response)
   assert_equals: expected "text/html;charset=GBK" but got "text/html;charset=gbk"
 [FAIL] text/html;charset=gbk( (Blob/File)
-  assert_equals: Blob expected "text/html;charset=\"gbk(\"" but got "text/html;charset=gbk("
+  assert_equals: Blob expected "text/html;charset=\\"gbk(\\"" but got "text/html;charset=gbk("
 [FAIL] text/html;charset=gbk( (Request/Response)
-  assert_equals: expected "text/html;charset=\"gbk(\"" but got "text/html;charset=gbk("
+  assert_equals: expected "text/html;charset=\\"gbk(\\"" but got "text/html;charset=gbk("
 [FAIL] text/html;x=(;charset=gbk (Blob/File)
-  assert_equals: Blob expected "text/html;x=\"(\";charset=gbk" but got "text/html;x=(;charset=gbk"
+  assert_equals: Blob expected "text/html;x=\\"(\\";charset=gbk" but got "text/html;x=(;charset=gbk"
 [FAIL] text/html;x=(;charset=gbk (Request/Response)
-  assert_equals: expected "text/html;x=\"(\";charset=gbk" but got "text/html;x=(;charset=gbk"
+  assert_equals: expected "text/html;x=\\"(\\";charset=gbk" but got "text/html;x=(;charset=gbk"
 [FAIL] text/html;charset=gbk;charset=windows-1255 (Blob/File)
   assert_equals: Blob expected "text/html;charset=gbk" but got "text/html;charset=gbk;charset=windows-1255"
 [FAIL] text/html;charset=gbk;charset=windows-1255 (Request/Response)
   assert_equals: expected "text/html;charset=gbk" but got "text/html;charset=gbk;charset=windows-1255"
 [FAIL] text/html;charset=();charset=GBK (Blob/File)
-  assert_equals: Blob expected "text/html;charset=\"()\"" but got "text/html;charset=();charset=gbk"
+  assert_equals: Blob expected "text/html;charset=\\"()\\"" but got "text/html;charset=();charset=gbk"
 [FAIL] text/html;charset=();charset=GBK (Request/Response)
-  assert_equals: expected "text/html;charset=\"()\"" but got "text/html;charset=();charset=gbk"
+  assert_equals: expected "text/html;charset=\\"()\\"" but got "text/html;charset=();charset=gbk"
 [FAIL] text/html;charset =gbk (Blob/File)
   assert_equals: Blob expected "text/html" but got "text/html;charset =gbk"
 [FAIL] text/html;charset =gbk (Request/Response)
@@ -36,13 +36,13 @@
 [FAIL] text/html; charset=gbk (Request/Response)
   assert_equals: expected "text/html;charset=gbk" but got "text/html; charset=gbk"
 [FAIL] text/html;charset= gbk (Blob/File)
-  assert_equals: Blob expected "text/html;charset=\" gbk\"" but got "text/html;charset= gbk"
+  assert_equals: Blob expected "text/html;charset=\\" gbk\\"" but got "text/html;charset= gbk"
 [FAIL] text/html;charset= gbk (Request/Response)
-  assert_equals: expected "text/html;charset=\" gbk\"" but got "text/html;charset= gbk"
+  assert_equals: expected "text/html;charset=\\" gbk\\"" but got "text/html;charset= gbk"
 [FAIL] text/html;charset= "gbk" (Blob/File)
-  assert_equals: Blob expected "text/html;charset=\" \\\"gbk\\\"\"" but got "text/html;charset= \"gbk\""
+  assert_equals: Blob expected "text/html;charset=\\" \\\\\\"gbk\\\\\\"\\"" but got "text/html;charset= \\"gbk\\""
 [FAIL] text/html;charset= "gbk" (Request/Response)
-  assert_equals: expected "text/html;charset=\" \\\"gbk\\\"\"" but got "text/html;charset= \"gbk\""
+  assert_equals: expected "text/html;charset=\\" \\\\\\"gbk\\\\\\"\\"" but got "text/html;charset= \\"gbk\\""
 [FAIL] text/html;charset=gbk (Blob/File)
   assert_equals: Blob expected "text/html" but got ""
 [FAIL] text/html;charset=gbk (Request/Response)
@@ -82,9 +82,9 @@
 [FAIL] text/html;';charset=gbk (Request/Response)
   assert_equals: expected "text/html;charset=gbk" but got "text/html;';charset=gbk"
 [FAIL] text/html;";charset=gbk (Blob/File)
-  assert_equals: Blob expected "text/html;charset=gbk" but got "text/html;\";charset=gbk"
+  assert_equals: Blob expected "text/html;charset=gbk" but got "text/html;\\";charset=gbk"
 [FAIL] text/html;";charset=gbk (Request/Response)
-  assert_equals: expected "text/html;charset=gbk" but got "text/html;\";charset=gbk"
+  assert_equals: expected "text/html;charset=gbk" but got "text/html;\\";charset=gbk"
 [FAIL] text/html ; ; charset=gbk (Blob/File)
   assert_equals: Blob expected "text/html;charset=gbk" but got "text/html ; ; charset=gbk"
 [FAIL] text/html ; ; charset=gbk (Request/Response)
@@ -102,45 +102,45 @@
 [FAIL] text/html;charset=";charset=foo";charset=GBK (Request/Response)
   assert_equals: expected "text/html;charset=GBK" but got ""
 [FAIL] text/html;charset="gbk" (Blob/File)
-  assert_equals: Blob expected "text/html;charset=gbk" but got "text/html;charset=\"gbk\""
+  assert_equals: Blob expected "text/html;charset=gbk" but got "text/html;charset=\\"gbk\\""
 [FAIL] text/html;charset="gbk" (Request/Response)
-  assert_equals: expected "text/html;charset=gbk" but got "text/html;charset=\"gbk\""
+  assert_equals: expected "text/html;charset=gbk" but got "text/html;charset=\\"gbk\\""
 [FAIL] text/html;charset="gbk (Blob/File)
-  assert_equals: Blob expected "text/html;charset=gbk" but got "text/html;charset=\"gbk"
+  assert_equals: Blob expected "text/html;charset=gbk" but got "text/html;charset=\\"gbk"
 [FAIL] text/html;charset="gbk (Request/Response)
-  assert_equals: expected "text/html;charset=gbk" but got "text/html;charset=\"gbk"
+  assert_equals: expected "text/html;charset=gbk" but got "text/html;charset=\\"gbk"
 [FAIL] text/html;charset=gbk" (Blob/File)
-  assert_equals: Blob expected "text/html;charset=\"gbk\\\"\"" but got "text/html;charset=gbk\""
+  assert_equals: Blob expected "text/html;charset=\\"gbk\\\\\\"\\"" but got "text/html;charset=gbk\\""
 [FAIL] text/html;charset=gbk" (Request/Response)
-  assert_equals: expected "text/html;charset=\"gbk\\\"\"" but got "text/html;charset=gbk\""
+  assert_equals: expected "text/html;charset=\\"gbk\\\\\\"\\"" but got "text/html;charset=gbk\\""
 [PASS] text/html;charset=" gbk" (Blob/File)
 [PASS] text/html;charset=" gbk" (Request/Response)
 [PASS] text/html;charset="gbk " (Blob/File)
 [PASS] text/html;charset="gbk " (Request/Response)
-[FAIL] text/html;charset="\ gbk" (Blob/File)
-  assert_equals: Blob expected "text/html;charset=\" gbk\"" but got "text/html;charset=\"\\ gbk\""
-[FAIL] text/html;charset="\ gbk" (Request/Response)
-  assert_equals: expected "text/html;charset=\" gbk\"" but got "text/html;charset=\"\\ gbk\""
-[FAIL] text/html;charset="\g\b\k" (Blob/File)
-  assert_equals: Blob expected "text/html;charset=gbk" but got "text/html;charset=\"\\g\\b\\k\""
-[FAIL] text/html;charset="\g\b\k" (Request/Response)
-  assert_equals: expected "text/html;charset=gbk" but got "text/html;charset=\"\\g\\b\\k\""
+[FAIL] text/html;charset="\\ gbk" (Blob/File)
+  assert_equals: Blob expected "text/html;charset=\\" gbk\\"" but got "text/html;charset=\\"\\\\ gbk\\""
+[FAIL] text/html;charset="\\ gbk" (Request/Response)
+  assert_equals: expected "text/html;charset=\\" gbk\\"" but got "text/html;charset=\\"\\\\ gbk\\""
+[FAIL] text/html;charset="\\g\\b\\k" (Blob/File)
+  assert_equals: Blob expected "text/html;charset=gbk" but got "text/html;charset=\\"\\\\g\\\\b\\\\k\\""
+[FAIL] text/html;charset="\\g\\b\\k" (Request/Response)
+  assert_equals: expected "text/html;charset=gbk" but got "text/html;charset=\\"\\\\g\\\\b\\\\k\\""
 [FAIL] text/html;charset="gbk"x (Blob/File)
-  assert_equals: Blob expected "text/html;charset=gbk" but got "text/html;charset=\"gbk\"x"
+  assert_equals: Blob expected "text/html;charset=gbk" but got "text/html;charset=\\"gbk\\"x"
 [FAIL] text/html;charset="gbk"x (Request/Response)
-  assert_equals: expected "text/html;charset=gbk" but got "text/html;charset=\"gbk\"x"
+  assert_equals: expected "text/html;charset=gbk" but got "text/html;charset=\\"gbk\\"x"
 [FAIL] text/html;charset="";charset=GBK (Blob/File)
-  assert_equals: Blob expected "text/html;charset=\"\"" but got "text/html;charset=\"\";charset=gbk"
+  assert_equals: Blob expected "text/html;charset=\\"\\"" but got "text/html;charset=\\"\\";charset=gbk"
 [FAIL] text/html;charset="";charset=GBK (Request/Response)
-  assert_equals: expected "text/html;charset=\"\"" but got "text/html;charset=\"\";charset=gbk"
+  assert_equals: expected "text/html;charset=\\"\\"" but got "text/html;charset=\\"\\";charset=gbk"
 [FAIL] text/html;charset=";charset=GBK (Blob/File)
-  assert_equals: Blob expected "text/html;charset=\";charset=GBK\"" but got "text/html;charset=\";charset=gbk"
+  assert_equals: Blob expected "text/html;charset=\\";charset=GBK\\"" but got "text/html;charset=\\";charset=gbk"
 [FAIL] text/html;charset=";charset=GBK (Request/Response)
-  assert_equals: expected "text/html;charset=\";charset=GBK\"" but got "text/html;charset=\";charset=gbk"
+  assert_equals: expected "text/html;charset=\\";charset=GBK\\"" but got "text/html;charset=\\";charset=gbk"
 [FAIL] text/html;charset={gbk} (Blob/File)
-  assert_equals: Blob expected "text/html;charset=\"{gbk}\"" but got "text/html;charset={gbk}"
+  assert_equals: Blob expected "text/html;charset=\\"{gbk}\\"" but got "text/html;charset={gbk}"
 [FAIL] text/html;charset={gbk} (Request/Response)
-  assert_equals: expected "text/html;charset=\"{gbk}\"" but got "text/html;charset={gbk}"
+  assert_equals: expected "text/html;charset=\\"{gbk}\\"" but got "text/html;charset={gbk}"
 [PASS] text/html;0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789=x;charset=gbk (Blob/File)
 [PASS] text/html;0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789=x;charset=gbk (Request/Response)
 [PASS] 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789/0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 (Blob/File)
@@ -152,25 +152,25 @@
 [PASS] text/html;valid=";";foo=bar (Blob/File)
 [PASS] text/html;valid=";";foo=bar (Request/Response)
 [FAIL] text/html;in]valid=";asd=foo";foo=bar (Blob/File)
-  assert_equals: Blob expected "text/html;foo=bar" but got "text/html;in]valid=\";asd=foo\";foo=bar"
+  assert_equals: Blob expected "text/html;foo=bar" but got "text/html;in]valid=\\";asd=foo\\";foo=bar"
 [FAIL] text/html;in]valid=";asd=foo";foo=bar (Request/Response)
-  assert_equals: expected "text/html;foo=bar" but got "text/html;in]valid=\";asd=foo\";foo=bar"
+  assert_equals: expected "text/html;foo=bar" but got "text/html;in]valid=\\";asd=foo\\";foo=bar"
 [FAIL] !#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz;!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz=!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz (Blob/File)
   assert_equals: Blob expected "!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz/!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz;!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz=!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" but got "!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz/!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz;!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz=!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"
 [FAIL] !#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz;!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz=!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz (Request/Response)
   assert_equals: expected "!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz/!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz;!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz=!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" but got "!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz/!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz;!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz=!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"
-[FAIL] x/x;x="	 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ" (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"\t !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"" but got ""
-[FAIL] x/x;x="	 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ" (Request/Response)
-  assert_equals: expected "x/x;x=\"\t !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"" but got ""
+[FAIL] x/x;x="	 !\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ" (Blob/File)
+  assert_equals: Blob expected "x/x;x=\\"\\t !\\\\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\\"" but got ""
+[FAIL] x/x;x="	 !\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ" (Request/Response)
+  assert_equals: expected "x/x;x=\\"\\t !\\\\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\\"" but got ""
 [FAIL] x/x;test (Blob/File)
   assert_equals: Blob expected "x/x" but got "x/x;test"
 [FAIL] x/x;test (Request/Response)
   assert_equals: expected "x/x" but got "x/x;test"
-[FAIL] x/x;test="\ (Blob/File)
-  assert_equals: Blob expected "x/x;test=\"\\\\\"" but got "x/x;test=\"\\"
-[FAIL] x/x;test="\ (Request/Response)
-  assert_equals: expected "x/x;test=\"\\\\\"" but got "x/x;test=\"\\"
+[FAIL] x/x;test="\\ (Blob/File)
+  assert_equals: Blob expected "x/x;test=\\"\\\\\\\\\\"" but got "x/x;test=\\"\\\\"
+[FAIL] x/x;test="\\ (Request/Response)
+  assert_equals: expected "x/x;test=\\"\\\\\\\\\\"" but got "x/x;test=\\"\\\\"
 [FAIL] x/x;x=  (Blob/File)
   assert_equals: Blob expected "x/x" but got "x/x;x= "
 [FAIL] x/x;x=	 (Blob/File)
@@ -184,9 +184,9 @@
   assert_equals: Blob expected "x/x;x=x" but got ""
 [PASS] x/x;\n\r	 x=x\n\r	 ;x=y (Request/Response)
 [FAIL] text/html;test=ÿ;charset=gbk (Blob/File)
-  assert_equals: Blob expected "text/html;test=\"ÿ\";charset=gbk" but got ""
+  assert_equals: Blob expected "text/html;test=\\"ÿ\\";charset=gbk" but got ""
 [FAIL] text/html;test=ÿ;charset=gbk (Request/Response)
-  assert_equals: expected "text/html;test=\"ÿ\";charset=gbk" but got ""
+  assert_equals: expected "text/html;test=\\"ÿ\\";charset=gbk" but got ""
 [FAIL] x/x;test=�;x=x (Blob/File)
   assert_equals: Blob expected "x/x;x=x" but got ""
 [PASS] x/x;test=�;x=x (Request/Response)
@@ -248,9 +248,9 @@
 [FAIL] text/ html (Request/Response)
   assert_equals: expected "" but got "text/ html"
 [FAIL] "text/html" (Blob/File)
-  assert_equals: Blob expected "" but got "\"text/html\""
+  assert_equals: Blob expected "" but got "\\"text/html\\""
 [FAIL] "text/html" (Request/Response)
-  assert_equals: expected "" but got "\"text/html\""
+  assert_equals: expected "" but got "\\"text/html\\""
 [PASS] \0/x (Blob/File)
 [PASS] \0/x (Request/Response)
 [PASS] x/\0 (Blob/File)
@@ -749,17 +749,17 @@
 [FAIL] x/x; =x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x; =x;bonus=x"
 [FAIL] "/x (Blob/File)
-  assert_equals: Blob expected "" but got "\"/x"
+  assert_equals: Blob expected "" but got "\\"/x"
 [FAIL] "/x (Request/Response)
-  assert_equals: expected "" but got "\"/x"
+  assert_equals: expected "" but got "\\"/x"
 [FAIL] x/" (Blob/File)
-  assert_equals: Blob expected "" but got "x/\""
+  assert_equals: Blob expected "" but got "x/\\""
 [FAIL] x/" (Request/Response)
-  assert_equals: expected "" but got "x/\""
+  assert_equals: expected "" but got "x/\\""
 [FAIL] x/x;"=x;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;bonus=x" but got "x/x;\"=x;bonus=x"
+  assert_equals: Blob expected "x/x;bonus=x" but got "x/x;\\"=x;bonus=x"
 [FAIL] x/x;"=x;bonus=x (Request/Response)
-  assert_equals: expected "x/x;bonus=x" but got "x/x;\"=x;bonus=x"
+  assert_equals: expected "x/x;bonus=x" but got "x/x;\\"=x;bonus=x"
 [FAIL] (/x (Blob/File)
   assert_equals: Blob expected "" but got "(/x"
 [FAIL] (/x (Request/Response)
@@ -773,9 +773,9 @@
 [FAIL] x/x;(=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;(=x;bonus=x"
 [FAIL] x/x;x=(;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"(\";bonus=x" but got "x/x;x=(;bonus=x"
+  assert_equals: Blob expected "x/x;x=\\"(\\";bonus=x" but got "x/x;x=(;bonus=x"
 [FAIL] x/x;x=(;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"(\";bonus=x" but got "x/x;x=(;bonus=x"
+  assert_equals: expected "x/x;x=\\"(\\";bonus=x" but got "x/x;x=(;bonus=x"
 [PASS] x/x;x="(";bonus=x (Blob/File)
 [PASS] x/x;x="(";bonus=x (Request/Response)
 [FAIL] )/x (Blob/File)
@@ -791,9 +791,9 @@
 [FAIL] x/x;)=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;)=x;bonus=x"
 [FAIL] x/x;x=);bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\")\";bonus=x" but got "x/x;x=);bonus=x"
+  assert_equals: Blob expected "x/x;x=\\")\\";bonus=x" but got "x/x;x=);bonus=x"
 [FAIL] x/x;x=);bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\")\";bonus=x" but got "x/x;x=);bonus=x"
+  assert_equals: expected "x/x;x=\\")\\";bonus=x" but got "x/x;x=);bonus=x"
 [PASS] x/x;x=")";bonus=x (Blob/File)
 [PASS] x/x;x=")";bonus=x (Request/Response)
 [FAIL] ,/x (Blob/File)
@@ -809,9 +809,9 @@
 [FAIL] x/x;,=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;,=x;bonus=x"
 [FAIL] x/x;x=,;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\",\";bonus=x" but got "x/x;x=,;bonus=x"
+  assert_equals: Blob expected "x/x;x=\\",\\";bonus=x" but got "x/x;x=,;bonus=x"
 [FAIL] x/x;x=,;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\",\";bonus=x" but got "x/x;x=,;bonus=x"
+  assert_equals: expected "x/x;x=\\",\\";bonus=x" but got "x/x;x=,;bonus=x"
 [PASS] x/x;x=",";bonus=x (Blob/File)
 [PASS] x/x;x=",";bonus=x (Request/Response)
 [FAIL] x/x;/=x;bonus=x (Blob/File)
@@ -819,9 +819,9 @@
 [FAIL] x/x;/=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;/=x;bonus=x"
 [FAIL] x/x;x=/;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"/\";bonus=x" but got "x/x;x=/;bonus=x"
+  assert_equals: Blob expected "x/x;x=\\"/\\";bonus=x" but got "x/x;x=/;bonus=x"
 [FAIL] x/x;x=/;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"/\";bonus=x" but got "x/x;x=/;bonus=x"
+  assert_equals: expected "x/x;x=\\"/\\";bonus=x" but got "x/x;x=/;bonus=x"
 [PASS] x/x;x="/";bonus=x (Blob/File)
 [PASS] x/x;x="/";bonus=x (Request/Response)
 [FAIL] :/x (Blob/File)
@@ -837,9 +837,9 @@
 [FAIL] x/x;:=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;:=x;bonus=x"
 [FAIL] x/x;x=:;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\":\";bonus=x" but got "x/x;x=:;bonus=x"
+  assert_equals: Blob expected "x/x;x=\\":\\";bonus=x" but got "x/x;x=:;bonus=x"
 [FAIL] x/x;x=:;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\":\";bonus=x" but got "x/x;x=:;bonus=x"
+  assert_equals: expected "x/x;x=\\":\\";bonus=x" but got "x/x;x=:;bonus=x"
 [PASS] x/x;x=":";bonus=x (Blob/File)
 [PASS] x/x;x=":";bonus=x (Request/Response)
 [FAIL] ;/x (Blob/File)
@@ -863,9 +863,9 @@
 [FAIL] x/x;<=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;<=x;bonus=x"
 [FAIL] x/x;x=<;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"<\";bonus=x" but got "x/x;x=<;bonus=x"
+  assert_equals: Blob expected "x/x;x=\\"<\\";bonus=x" but got "x/x;x=<;bonus=x"
 [FAIL] x/x;x=<;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"<\";bonus=x" but got "x/x;x=<;bonus=x"
+  assert_equals: expected "x/x;x=\\"<\\";bonus=x" but got "x/x;x=<;bonus=x"
 [PASS] x/x;x="<";bonus=x (Blob/File)
 [PASS] x/x;x="<";bonus=x (Request/Response)
 [FAIL] =/x (Blob/File)
@@ -877,9 +877,9 @@
 [FAIL] x/= (Request/Response)
   assert_equals: expected "" but got "x/="
 [FAIL] x/x;x==;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"=\";bonus=x" but got "x/x;x==;bonus=x"
+  assert_equals: Blob expected "x/x;x=\\"=\\";bonus=x" but got "x/x;x==;bonus=x"
 [FAIL] x/x;x==;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"=\";bonus=x" but got "x/x;x==;bonus=x"
+  assert_equals: expected "x/x;x=\\"=\\";bonus=x" but got "x/x;x==;bonus=x"
 [PASS] x/x;x="=";bonus=x (Blob/File)
 [PASS] x/x;x="=";bonus=x (Request/Response)
 [FAIL] >/x (Blob/File)
@@ -895,9 +895,9 @@
 [FAIL] x/x;>=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;>=x;bonus=x"
 [FAIL] x/x;x=>;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\">\";bonus=x" but got "x/x;x=>;bonus=x"
+  assert_equals: Blob expected "x/x;x=\\">\\";bonus=x" but got "x/x;x=>;bonus=x"
 [FAIL] x/x;x=>;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\">\";bonus=x" but got "x/x;x=>;bonus=x"
+  assert_equals: expected "x/x;x=\\">\\";bonus=x" but got "x/x;x=>;bonus=x"
 [PASS] x/x;x=">";bonus=x (Blob/File)
 [PASS] x/x;x=">";bonus=x (Request/Response)
 [FAIL] ?/x (Blob/File)
@@ -913,9 +913,9 @@
 [FAIL] x/x;?=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;?=x;bonus=x"
 [FAIL] x/x;x=?;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"?\";bonus=x" but got "x/x;x=?;bonus=x"
+  assert_equals: Blob expected "x/x;x=\\"?\\";bonus=x" but got "x/x;x=?;bonus=x"
 [FAIL] x/x;x=?;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"?\";bonus=x" but got "x/x;x=?;bonus=x"
+  assert_equals: expected "x/x;x=\\"?\\";bonus=x" but got "x/x;x=?;bonus=x"
 [PASS] x/x;x="?";bonus=x (Blob/File)
 [PASS] x/x;x="?";bonus=x (Request/Response)
 [FAIL] @/x (Blob/File)
@@ -931,9 +931,9 @@
 [FAIL] x/x;@=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;@=x;bonus=x"
 [FAIL] x/x;x=@;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"@\";bonus=x" but got "x/x;x=@;bonus=x"
+  assert_equals: Blob expected "x/x;x=\\"@\\";bonus=x" but got "x/x;x=@;bonus=x"
 [FAIL] x/x;x=@;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"@\";bonus=x" but got "x/x;x=@;bonus=x"
+  assert_equals: expected "x/x;x=\\"@\\";bonus=x" but got "x/x;x=@;bonus=x"
 [PASS] x/x;x="@";bonus=x (Blob/File)
 [PASS] x/x;x="@";bonus=x (Request/Response)
 [FAIL] [/x (Blob/File)
@@ -949,23 +949,23 @@
 [FAIL] x/x;[=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;[=x;bonus=x"
 [FAIL] x/x;x=[;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"[\";bonus=x" but got "x/x;x=[;bonus=x"
+  assert_equals: Blob expected "x/x;x=\\"[\\";bonus=x" but got "x/x;x=[;bonus=x"
 [FAIL] x/x;x=[;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"[\";bonus=x" but got "x/x;x=[;bonus=x"
+  assert_equals: expected "x/x;x=\\"[\\";bonus=x" but got "x/x;x=[;bonus=x"
 [PASS] x/x;x="[";bonus=x (Blob/File)
 [PASS] x/x;x="[";bonus=x (Request/Response)
-[FAIL] \/x (Blob/File)
-  assert_equals: Blob expected "" but got "\\/x"
-[FAIL] \/x (Request/Response)
-  assert_equals: expected "" but got "\\/x"
-[FAIL] x/\ (Blob/File)
-  assert_equals: Blob expected "" but got "x/\\"
-[FAIL] x/\ (Request/Response)
-  assert_equals: expected "" but got "x/\\"
-[FAIL] x/x;\=x;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;bonus=x" but got "x/x;\\=x;bonus=x"
-[FAIL] x/x;\=x;bonus=x (Request/Response)
-  assert_equals: expected "x/x;bonus=x" but got "x/x;\\=x;bonus=x"
+[FAIL] \\/x (Blob/File)
+  assert_equals: Blob expected "" but got "\\\\/x"
+[FAIL] \\/x (Request/Response)
+  assert_equals: expected "" but got "\\\\/x"
+[FAIL] x/\\ (Blob/File)
+  assert_equals: Blob expected "" but got "x/\\\\"
+[FAIL] x/\\ (Request/Response)
+  assert_equals: expected "" but got "x/\\\\"
+[FAIL] x/x;\\=x;bonus=x (Blob/File)
+  assert_equals: Blob expected "x/x;bonus=x" but got "x/x;\\\\=x;bonus=x"
+[FAIL] x/x;\\=x;bonus=x (Request/Response)
+  assert_equals: expected "x/x;bonus=x" but got "x/x;\\\\=x;bonus=x"
 [FAIL] ]/x (Blob/File)
   assert_equals: Blob expected "" but got "]/x"
 [FAIL] ]/x (Request/Response)
@@ -979,9 +979,9 @@
 [FAIL] x/x;]=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;]=x;bonus=x"
 [FAIL] x/x;x=];bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"]\";bonus=x" but got "x/x;x=];bonus=x"
+  assert_equals: Blob expected "x/x;x=\\"]\\";bonus=x" but got "x/x;x=];bonus=x"
 [FAIL] x/x;x=];bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"]\";bonus=x" but got "x/x;x=];bonus=x"
+  assert_equals: expected "x/x;x=\\"]\\";bonus=x" but got "x/x;x=];bonus=x"
 [PASS] x/x;x="]";bonus=x (Blob/File)
 [PASS] x/x;x="]";bonus=x (Request/Response)
 [FAIL] {/x (Blob/File)
@@ -997,9 +997,9 @@
 [FAIL] x/x;{=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;{=x;bonus=x"
 [FAIL] x/x;x={;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"{\";bonus=x" but got "x/x;x={;bonus=x"
+  assert_equals: Blob expected "x/x;x=\\"{\\";bonus=x" but got "x/x;x={;bonus=x"
 [FAIL] x/x;x={;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"{\";bonus=x" but got "x/x;x={;bonus=x"
+  assert_equals: expected "x/x;x=\\"{\\";bonus=x" but got "x/x;x={;bonus=x"
 [PASS] x/x;x="{";bonus=x (Blob/File)
 [PASS] x/x;x="{";bonus=x (Request/Response)
 [FAIL] }/x (Blob/File)
@@ -1015,9 +1015,9 @@
 [FAIL] x/x;}=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;}=x;bonus=x"
 [FAIL] x/x;x=};bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"}\";bonus=x" but got "x/x;x=};bonus=x"
+  assert_equals: Blob expected "x/x;x=\\"}\\";bonus=x" but got "x/x;x=};bonus=x"
 [FAIL] x/x;x=};bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"}\";bonus=x" but got "x/x;x=};bonus=x"
+  assert_equals: expected "x/x;x=\\"}\\";bonus=x" but got "x/x;x=};bonus=x"
 [PASS] x/x;x="}";bonus=x (Blob/File)
 [PASS] x/x;x="}";bonus=x (Request/Response)
 [PASS] /x (Blob/File)
@@ -1045,13 +1045,13 @@
 [FAIL] x/x;€=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=€;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"€\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"€\\";bonus=x" but got ""
 [FAIL] x/x;x=€;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"€\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"€\\";bonus=x" but got ""
 [FAIL] x/x;x="€";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"€\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"€\\";bonus=x" but got ""
 [FAIL] x/x;x="€";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"€\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"€\\";bonus=x" but got ""
 [PASS] /x (Blob/File)
 [PASS] /x (Request/Response)
 [PASS] x/ (Blob/File)
@@ -1061,13 +1061,13 @@
 [FAIL] x/x;=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x=;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x="";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x="";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"\\";bonus=x" but got ""
 [PASS] ‚/x (Blob/File)
 [PASS] ‚/x (Request/Response)
 [PASS] x/‚ (Blob/File)
@@ -1077,13 +1077,13 @@
 [FAIL] x/x;‚=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=‚;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"‚\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"‚\\";bonus=x" but got ""
 [FAIL] x/x;x=‚;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"‚\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"‚\\";bonus=x" but got ""
 [FAIL] x/x;x="‚";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"‚\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"‚\\";bonus=x" but got ""
 [FAIL] x/x;x="‚";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"‚\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"‚\\";bonus=x" but got ""
 [PASS] ƒ/x (Blob/File)
 [PASS] ƒ/x (Request/Response)
 [PASS] x/ƒ (Blob/File)
@@ -1093,13 +1093,13 @@
 [FAIL] x/x;ƒ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ƒ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ƒ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ƒ\\";bonus=x" but got ""
 [FAIL] x/x;x=ƒ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ƒ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ƒ\\";bonus=x" but got ""
 [FAIL] x/x;x="ƒ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ƒ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ƒ\\";bonus=x" but got ""
 [FAIL] x/x;x="ƒ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ƒ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ƒ\\";bonus=x" but got ""
 [PASS] „/x (Blob/File)
 [PASS] „/x (Request/Response)
 [PASS] x/„ (Blob/File)
@@ -1109,13 +1109,13 @@
 [FAIL] x/x;„=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=„;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"„\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"„\\";bonus=x" but got ""
 [FAIL] x/x;x=„;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"„\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"„\\";bonus=x" but got ""
 [FAIL] x/x;x="„";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"„\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"„\\";bonus=x" but got ""
 [FAIL] x/x;x="„";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"„\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"„\\";bonus=x" but got ""
 [PASS] …/x (Blob/File)
 [PASS] …/x (Request/Response)
 [PASS] x/… (Blob/File)
@@ -1125,13 +1125,13 @@
 [FAIL] x/x;…=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=…;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"…\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"…\\";bonus=x" but got ""
 [FAIL] x/x;x=…;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"…\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"…\\";bonus=x" but got ""
 [FAIL] x/x;x="…";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"…\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"…\\";bonus=x" but got ""
 [FAIL] x/x;x="…";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"…\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"…\\";bonus=x" but got ""
 [PASS] †/x (Blob/File)
 [PASS] †/x (Request/Response)
 [PASS] x/† (Blob/File)
@@ -1141,13 +1141,13 @@
 [FAIL] x/x;†=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=†;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"†\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"†\\";bonus=x" but got ""
 [FAIL] x/x;x=†;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"†\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"†\\";bonus=x" but got ""
 [FAIL] x/x;x="†";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"†\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"†\\";bonus=x" but got ""
 [FAIL] x/x;x="†";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"†\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"†\\";bonus=x" but got ""
 [PASS] ‡/x (Blob/File)
 [PASS] ‡/x (Request/Response)
 [PASS] x/‡ (Blob/File)
@@ -1157,13 +1157,13 @@
 [FAIL] x/x;‡=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=‡;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"‡\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"‡\\";bonus=x" but got ""
 [FAIL] x/x;x=‡;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"‡\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"‡\\";bonus=x" but got ""
 [FAIL] x/x;x="‡";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"‡\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"‡\\";bonus=x" but got ""
 [FAIL] x/x;x="‡";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"‡\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"‡\\";bonus=x" but got ""
 [PASS] ˆ/x (Blob/File)
 [PASS] ˆ/x (Request/Response)
 [PASS] x/ˆ (Blob/File)
@@ -1173,13 +1173,13 @@
 [FAIL] x/x;ˆ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ˆ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ˆ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ˆ\\";bonus=x" but got ""
 [FAIL] x/x;x=ˆ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ˆ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ˆ\\";bonus=x" but got ""
 [FAIL] x/x;x="ˆ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ˆ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ˆ\\";bonus=x" but got ""
 [FAIL] x/x;x="ˆ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ˆ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ˆ\\";bonus=x" but got ""
 [PASS] ‰/x (Blob/File)
 [PASS] ‰/x (Request/Response)
 [PASS] x/‰ (Blob/File)
@@ -1189,13 +1189,13 @@
 [FAIL] x/x;‰=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=‰;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"‰\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"‰\\";bonus=x" but got ""
 [FAIL] x/x;x=‰;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"‰\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"‰\\";bonus=x" but got ""
 [FAIL] x/x;x="‰";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"‰\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"‰\\";bonus=x" but got ""
 [FAIL] x/x;x="‰";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"‰\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"‰\\";bonus=x" but got ""
 [PASS] Š/x (Blob/File)
 [PASS] Š/x (Request/Response)
 [PASS] x/Š (Blob/File)
@@ -1205,13 +1205,13 @@
 [FAIL] x/x;Š=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Š;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Š\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Š\\";bonus=x" but got ""
 [FAIL] x/x;x=Š;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Š\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Š\\";bonus=x" but got ""
 [FAIL] x/x;x="Š";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Š\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Š\\";bonus=x" but got ""
 [FAIL] x/x;x="Š";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Š\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Š\\";bonus=x" but got ""
 [PASS] ‹/x (Blob/File)
 [PASS] ‹/x (Request/Response)
 [PASS] x/‹ (Blob/File)
@@ -1221,13 +1221,13 @@
 [FAIL] x/x;‹=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=‹;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"‹\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"‹\\";bonus=x" but got ""
 [FAIL] x/x;x=‹;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"‹\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"‹\\";bonus=x" but got ""
 [FAIL] x/x;x="‹";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"‹\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"‹\\";bonus=x" but got ""
 [FAIL] x/x;x="‹";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"‹\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"‹\\";bonus=x" but got ""
 [PASS] Œ/x (Blob/File)
 [PASS] Œ/x (Request/Response)
 [PASS] x/Œ (Blob/File)
@@ -1237,13 +1237,13 @@
 [FAIL] x/x;Œ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Œ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Œ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Œ\\";bonus=x" but got ""
 [FAIL] x/x;x=Œ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Œ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Œ\\";bonus=x" but got ""
 [FAIL] x/x;x="Œ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Œ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Œ\\";bonus=x" but got ""
 [FAIL] x/x;x="Œ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Œ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Œ\\";bonus=x" but got ""
 [PASS] /x (Blob/File)
 [PASS] /x (Request/Response)
 [PASS] x/ (Blob/File)
@@ -1253,13 +1253,13 @@
 [FAIL] x/x;=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x=;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x="";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x="";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"\\";bonus=x" but got ""
 [PASS] Ž/x (Blob/File)
 [PASS] Ž/x (Request/Response)
 [PASS] x/Ž (Blob/File)
@@ -1269,13 +1269,13 @@
 [FAIL] x/x;Ž=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ž;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ž\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ž\\";bonus=x" but got ""
 [FAIL] x/x;x=Ž;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ž\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ž\\";bonus=x" but got ""
 [FAIL] x/x;x="Ž";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ž\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ž\\";bonus=x" but got ""
 [FAIL] x/x;x="Ž";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ž\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ž\\";bonus=x" but got ""
 [PASS] /x (Blob/File)
 [PASS] /x (Request/Response)
 [PASS] x/ (Blob/File)
@@ -1285,13 +1285,13 @@
 [FAIL] x/x;=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x=;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x="";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x="";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"\\";bonus=x" but got ""
 [PASS] /x (Blob/File)
 [PASS] /x (Request/Response)
 [PASS] x/ (Blob/File)
@@ -1301,13 +1301,13 @@
 [FAIL] x/x;=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x=;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x="";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x="";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"\\";bonus=x" but got ""
 [PASS] ‘/x (Blob/File)
 [PASS] ‘/x (Request/Response)
 [PASS] x/‘ (Blob/File)
@@ -1317,13 +1317,13 @@
 [FAIL] x/x;‘=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=‘;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"‘\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"‘\\";bonus=x" but got ""
 [FAIL] x/x;x=‘;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"‘\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"‘\\";bonus=x" but got ""
 [FAIL] x/x;x="‘";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"‘\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"‘\\";bonus=x" but got ""
 [FAIL] x/x;x="‘";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"‘\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"‘\\";bonus=x" but got ""
 [PASS] ’/x (Blob/File)
 [PASS] ’/x (Request/Response)
 [PASS] x/’ (Blob/File)
@@ -1333,13 +1333,13 @@
 [FAIL] x/x;’=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=’;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"’\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"’\\";bonus=x" but got ""
 [FAIL] x/x;x=’;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"’\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"’\\";bonus=x" but got ""
 [FAIL] x/x;x="’";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"’\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"’\\";bonus=x" but got ""
 [FAIL] x/x;x="’";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"’\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"’\\";bonus=x" but got ""
 [PASS] “/x (Blob/File)
 [PASS] “/x (Request/Response)
 [PASS] x/“ (Blob/File)
@@ -1349,13 +1349,13 @@
 [FAIL] x/x;“=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=“;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"“\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"“\\";bonus=x" but got ""
 [FAIL] x/x;x=“;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"“\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"“\\";bonus=x" but got ""
 [FAIL] x/x;x="“";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"“\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"“\\";bonus=x" but got ""
 [FAIL] x/x;x="“";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"“\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"“\\";bonus=x" but got ""
 [PASS] ”/x (Blob/File)
 [PASS] ”/x (Request/Response)
 [PASS] x/” (Blob/File)
@@ -1365,13 +1365,13 @@
 [FAIL] x/x;”=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=”;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"”\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"”\\";bonus=x" but got ""
 [FAIL] x/x;x=”;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"”\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"”\\";bonus=x" but got ""
 [FAIL] x/x;x="”";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"”\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"”\\";bonus=x" but got ""
 [FAIL] x/x;x="”";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"”\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"”\\";bonus=x" but got ""
 [PASS] •/x (Blob/File)
 [PASS] •/x (Request/Response)
 [PASS] x/• (Blob/File)
@@ -1381,13 +1381,13 @@
 [FAIL] x/x;•=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=•;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"•\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"•\\";bonus=x" but got ""
 [FAIL] x/x;x=•;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"•\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"•\\";bonus=x" but got ""
 [FAIL] x/x;x="•";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"•\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"•\\";bonus=x" but got ""
 [FAIL] x/x;x="•";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"•\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"•\\";bonus=x" but got ""
 [PASS] –/x (Blob/File)
 [PASS] –/x (Request/Response)
 [PASS] x/– (Blob/File)
@@ -1397,13 +1397,13 @@
 [FAIL] x/x;–=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=–;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"–\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"–\\";bonus=x" but got ""
 [FAIL] x/x;x=–;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"–\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"–\\";bonus=x" but got ""
 [FAIL] x/x;x="–";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"–\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"–\\";bonus=x" but got ""
 [FAIL] x/x;x="–";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"–\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"–\\";bonus=x" but got ""
 [PASS] —/x (Blob/File)
 [PASS] —/x (Request/Response)
 [PASS] x/— (Blob/File)
@@ -1413,13 +1413,13 @@
 [FAIL] x/x;—=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=—;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"—\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"—\\";bonus=x" but got ""
 [FAIL] x/x;x=—;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"—\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"—\\";bonus=x" but got ""
 [FAIL] x/x;x="—";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"—\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"—\\";bonus=x" but got ""
 [FAIL] x/x;x="—";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"—\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"—\\";bonus=x" but got ""
 [PASS] ˜/x (Blob/File)
 [PASS] ˜/x (Request/Response)
 [PASS] x/˜ (Blob/File)
@@ -1429,13 +1429,13 @@
 [FAIL] x/x;˜=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=˜;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"˜\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"˜\\";bonus=x" but got ""
 [FAIL] x/x;x=˜;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"˜\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"˜\\";bonus=x" but got ""
 [FAIL] x/x;x="˜";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"˜\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"˜\\";bonus=x" but got ""
 [FAIL] x/x;x="˜";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"˜\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"˜\\";bonus=x" but got ""
 [PASS] ™/x (Blob/File)
 [PASS] ™/x (Request/Response)
 [PASS] x/™ (Blob/File)
@@ -1445,13 +1445,13 @@
 [FAIL] x/x;™=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=™;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"™\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"™\\";bonus=x" but got ""
 [FAIL] x/x;x=™;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"™\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"™\\";bonus=x" but got ""
 [FAIL] x/x;x="™";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"™\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"™\\";bonus=x" but got ""
 [FAIL] x/x;x="™";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"™\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"™\\";bonus=x" but got ""
 [PASS] š/x (Blob/File)
 [PASS] š/x (Request/Response)
 [PASS] x/š (Blob/File)
@@ -1461,13 +1461,13 @@
 [FAIL] x/x;š=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=š;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"š\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"š\\";bonus=x" but got ""
 [FAIL] x/x;x=š;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"š\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"š\\";bonus=x" but got ""
 [FAIL] x/x;x="š";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"š\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"š\\";bonus=x" but got ""
 [FAIL] x/x;x="š";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"š\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"š\\";bonus=x" but got ""
 [PASS] ›/x (Blob/File)
 [PASS] ›/x (Request/Response)
 [PASS] x/› (Blob/File)
@@ -1477,13 +1477,13 @@
 [FAIL] x/x;›=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=›;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"›\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"›\\";bonus=x" but got ""
 [FAIL] x/x;x=›;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"›\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"›\\";bonus=x" but got ""
 [FAIL] x/x;x="›";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"›\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"›\\";bonus=x" but got ""
 [FAIL] x/x;x="›";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"›\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"›\\";bonus=x" but got ""
 [PASS] œ/x (Blob/File)
 [PASS] œ/x (Request/Response)
 [PASS] x/œ (Blob/File)
@@ -1493,13 +1493,13 @@
 [FAIL] x/x;œ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=œ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"œ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"œ\\";bonus=x" but got ""
 [FAIL] x/x;x=œ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"œ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"œ\\";bonus=x" but got ""
 [FAIL] x/x;x="œ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"œ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"œ\\";bonus=x" but got ""
 [FAIL] x/x;x="œ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"œ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"œ\\";bonus=x" but got ""
 [PASS] /x (Blob/File)
 [PASS] /x (Request/Response)
 [PASS] x/ (Blob/File)
@@ -1509,13 +1509,13 @@
 [FAIL] x/x;=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x=;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x="";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x="";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"\\";bonus=x" but got ""
 [PASS] ž/x (Blob/File)
 [PASS] ž/x (Request/Response)
 [PASS] x/ž (Blob/File)
@@ -1525,13 +1525,13 @@
 [FAIL] x/x;ž=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ž;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ž\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ž\\";bonus=x" but got ""
 [FAIL] x/x;x=ž;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ž\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ž\\";bonus=x" but got ""
 [FAIL] x/x;x="ž";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ž\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ž\\";bonus=x" but got ""
 [FAIL] x/x;x="ž";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ž\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ž\\";bonus=x" but got ""
 [PASS] Ÿ/x (Blob/File)
 [PASS] Ÿ/x (Request/Response)
 [PASS] x/Ÿ (Blob/File)
@@ -1541,13 +1541,13 @@
 [FAIL] x/x;Ÿ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ÿ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ÿ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ÿ\\";bonus=x" but got ""
 [FAIL] x/x;x=Ÿ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ÿ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ÿ\\";bonus=x" but got ""
 [FAIL] x/x;x="Ÿ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ÿ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ÿ\\";bonus=x" but got ""
 [FAIL] x/x;x="Ÿ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ÿ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ÿ\\";bonus=x" but got ""
 [PASS]  /x (Blob/File)
 [PASS]  /x (Request/Response)
 [PASS] x/  (Blob/File)
@@ -1557,13 +1557,13 @@
 [FAIL] x/x; =x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x= ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\" \";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\" \\";bonus=x" but got ""
 [FAIL] x/x;x= ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\" \";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\" \\";bonus=x" but got ""
 [FAIL] x/x;x=" ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\" \";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\" \\";bonus=x" but got ""
 [FAIL] x/x;x=" ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\" \";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\" \\";bonus=x" but got ""
 [PASS] ¡/x (Blob/File)
 [PASS] ¡/x (Request/Response)
 [PASS] x/¡ (Blob/File)
@@ -1573,13 +1573,13 @@
 [FAIL] x/x;¡=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¡;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¡\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¡\\";bonus=x" but got ""
 [FAIL] x/x;x=¡;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¡\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¡\\";bonus=x" but got ""
 [FAIL] x/x;x="¡";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¡\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¡\\";bonus=x" but got ""
 [FAIL] x/x;x="¡";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¡\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¡\\";bonus=x" but got ""
 [PASS] ¢/x (Blob/File)
 [PASS] ¢/x (Request/Response)
 [PASS] x/¢ (Blob/File)
@@ -1589,13 +1589,13 @@
 [FAIL] x/x;¢=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¢;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¢\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¢\\";bonus=x" but got ""
 [FAIL] x/x;x=¢;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¢\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¢\\";bonus=x" but got ""
 [FAIL] x/x;x="¢";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¢\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¢\\";bonus=x" but got ""
 [FAIL] x/x;x="¢";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¢\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¢\\";bonus=x" but got ""
 [PASS] £/x (Blob/File)
 [PASS] £/x (Request/Response)
 [PASS] x/£ (Blob/File)
@@ -1605,13 +1605,13 @@
 [FAIL] x/x;£=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=£;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"£\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"£\\";bonus=x" but got ""
 [FAIL] x/x;x=£;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"£\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"£\\";bonus=x" but got ""
 [FAIL] x/x;x="£";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"£\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"£\\";bonus=x" but got ""
 [FAIL] x/x;x="£";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"£\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"£\\";bonus=x" but got ""
 [PASS] ¤/x (Blob/File)
 [PASS] ¤/x (Request/Response)
 [PASS] x/¤ (Blob/File)
@@ -1621,13 +1621,13 @@
 [FAIL] x/x;¤=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¤;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¤\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¤\\";bonus=x" but got ""
 [FAIL] x/x;x=¤;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¤\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¤\\";bonus=x" but got ""
 [FAIL] x/x;x="¤";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¤\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¤\\";bonus=x" but got ""
 [FAIL] x/x;x="¤";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¤\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¤\\";bonus=x" but got ""
 [PASS] ¥/x (Blob/File)
 [PASS] ¥/x (Request/Response)
 [PASS] x/¥ (Blob/File)
@@ -1637,13 +1637,13 @@
 [FAIL] x/x;¥=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¥;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¥\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¥\\";bonus=x" but got ""
 [FAIL] x/x;x=¥;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¥\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¥\\";bonus=x" but got ""
 [FAIL] x/x;x="¥";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¥\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¥\\";bonus=x" but got ""
 [FAIL] x/x;x="¥";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¥\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¥\\";bonus=x" but got ""
 [PASS] ¦/x (Blob/File)
 [PASS] ¦/x (Request/Response)
 [PASS] x/¦ (Blob/File)
@@ -1653,13 +1653,13 @@
 [FAIL] x/x;¦=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¦;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¦\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¦\\";bonus=x" but got ""
 [FAIL] x/x;x=¦;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¦\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¦\\";bonus=x" but got ""
 [FAIL] x/x;x="¦";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¦\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¦\\";bonus=x" but got ""
 [FAIL] x/x;x="¦";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¦\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¦\\";bonus=x" but got ""
 [PASS] §/x (Blob/File)
 [PASS] §/x (Request/Response)
 [PASS] x/§ (Blob/File)
@@ -1669,13 +1669,13 @@
 [FAIL] x/x;§=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=§;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"§\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"§\\";bonus=x" but got ""
 [FAIL] x/x;x=§;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"§\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"§\\";bonus=x" but got ""
 [FAIL] x/x;x="§";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"§\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"§\\";bonus=x" but got ""
 [FAIL] x/x;x="§";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"§\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"§\\";bonus=x" but got ""
 [PASS] ¨/x (Blob/File)
 [PASS] ¨/x (Request/Response)
 [PASS] x/¨ (Blob/File)
@@ -1685,13 +1685,13 @@
 [FAIL] x/x;¨=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¨;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¨\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¨\\";bonus=x" but got ""
 [FAIL] x/x;x=¨;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¨\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¨\\";bonus=x" but got ""
 [FAIL] x/x;x="¨";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¨\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¨\\";bonus=x" but got ""
 [FAIL] x/x;x="¨";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¨\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¨\\";bonus=x" but got ""
 [PASS] ©/x (Blob/File)
 [PASS] ©/x (Request/Response)
 [PASS] x/© (Blob/File)
@@ -1701,13 +1701,13 @@
 [FAIL] x/x;©=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=©;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"©\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"©\\";bonus=x" but got ""
 [FAIL] x/x;x=©;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"©\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"©\\";bonus=x" but got ""
 [FAIL] x/x;x="©";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"©\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"©\\";bonus=x" but got ""
 [FAIL] x/x;x="©";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"©\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"©\\";bonus=x" but got ""
 [PASS] ª/x (Blob/File)
 [PASS] ª/x (Request/Response)
 [PASS] x/ª (Blob/File)
@@ -1717,13 +1717,13 @@
 [FAIL] x/x;ª=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ª;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ª\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ª\\";bonus=x" but got ""
 [FAIL] x/x;x=ª;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ª\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ª\\";bonus=x" but got ""
 [FAIL] x/x;x="ª";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ª\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ª\\";bonus=x" but got ""
 [FAIL] x/x;x="ª";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ª\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ª\\";bonus=x" but got ""
 [PASS] «/x (Blob/File)
 [PASS] «/x (Request/Response)
 [PASS] x/« (Blob/File)
@@ -1733,13 +1733,13 @@
 [FAIL] x/x;«=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=«;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"«\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"«\\";bonus=x" but got ""
 [FAIL] x/x;x=«;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"«\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"«\\";bonus=x" but got ""
 [FAIL] x/x;x="«";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"«\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"«\\";bonus=x" but got ""
 [FAIL] x/x;x="«";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"«\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"«\\";bonus=x" but got ""
 [PASS] ¬/x (Blob/File)
 [PASS] ¬/x (Request/Response)
 [PASS] x/¬ (Blob/File)
@@ -1749,13 +1749,13 @@
 [FAIL] x/x;¬=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¬;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¬\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¬\\";bonus=x" but got ""
 [FAIL] x/x;x=¬;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¬\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¬\\";bonus=x" but got ""
 [FAIL] x/x;x="¬";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¬\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¬\\";bonus=x" but got ""
 [FAIL] x/x;x="¬";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¬\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¬\\";bonus=x" but got ""
 [PASS] ­/x (Blob/File)
 [PASS] ­/x (Request/Response)
 [PASS] x/­ (Blob/File)
@@ -1765,13 +1765,13 @@
 [FAIL] x/x;­=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=­;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"­\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"­\\";bonus=x" but got ""
 [FAIL] x/x;x=­;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"­\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"­\\";bonus=x" but got ""
 [FAIL] x/x;x="­";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"­\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"­\\";bonus=x" but got ""
 [FAIL] x/x;x="­";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"­\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"­\\";bonus=x" but got ""
 [PASS] ®/x (Blob/File)
 [PASS] ®/x (Request/Response)
 [PASS] x/® (Blob/File)
@@ -1781,13 +1781,13 @@
 [FAIL] x/x;®=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=®;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"®\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"®\\";bonus=x" but got ""
 [FAIL] x/x;x=®;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"®\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"®\\";bonus=x" but got ""
 [FAIL] x/x;x="®";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"®\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"®\\";bonus=x" but got ""
 [FAIL] x/x;x="®";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"®\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"®\\";bonus=x" but got ""
 [PASS] ¯/x (Blob/File)
 [PASS] ¯/x (Request/Response)
 [PASS] x/¯ (Blob/File)
@@ -1797,13 +1797,13 @@
 [FAIL] x/x;¯=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¯;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¯\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¯\\";bonus=x" but got ""
 [FAIL] x/x;x=¯;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¯\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¯\\";bonus=x" but got ""
 [FAIL] x/x;x="¯";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¯\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¯\\";bonus=x" but got ""
 [FAIL] x/x;x="¯";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¯\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¯\\";bonus=x" but got ""
 [PASS] °/x (Blob/File)
 [PASS] °/x (Request/Response)
 [PASS] x/° (Blob/File)
@@ -1813,13 +1813,13 @@
 [FAIL] x/x;°=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=°;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"°\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"°\\";bonus=x" but got ""
 [FAIL] x/x;x=°;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"°\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"°\\";bonus=x" but got ""
 [FAIL] x/x;x="°";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"°\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"°\\";bonus=x" but got ""
 [FAIL] x/x;x="°";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"°\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"°\\";bonus=x" but got ""
 [PASS] ±/x (Blob/File)
 [PASS] ±/x (Request/Response)
 [PASS] x/± (Blob/File)
@@ -1829,13 +1829,13 @@
 [FAIL] x/x;±=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=±;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"±\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"±\\";bonus=x" but got ""
 [FAIL] x/x;x=±;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"±\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"±\\";bonus=x" but got ""
 [FAIL] x/x;x="±";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"±\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"±\\";bonus=x" but got ""
 [FAIL] x/x;x="±";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"±\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"±\\";bonus=x" but got ""
 [PASS] ²/x (Blob/File)
 [PASS] ²/x (Request/Response)
 [PASS] x/² (Blob/File)
@@ -1845,13 +1845,13 @@
 [FAIL] x/x;²=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=²;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"²\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"²\\";bonus=x" but got ""
 [FAIL] x/x;x=²;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"²\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"²\\";bonus=x" but got ""
 [FAIL] x/x;x="²";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"²\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"²\\";bonus=x" but got ""
 [FAIL] x/x;x="²";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"²\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"²\\";bonus=x" but got ""
 [PASS] ³/x (Blob/File)
 [PASS] ³/x (Request/Response)
 [PASS] x/³ (Blob/File)
@@ -1861,13 +1861,13 @@
 [FAIL] x/x;³=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=³;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"³\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"³\\";bonus=x" but got ""
 [FAIL] x/x;x=³;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"³\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"³\\";bonus=x" but got ""
 [FAIL] x/x;x="³";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"³\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"³\\";bonus=x" but got ""
 [FAIL] x/x;x="³";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"³\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"³\\";bonus=x" but got ""
 [PASS] ´/x (Blob/File)
 [PASS] ´/x (Request/Response)
 [PASS] x/´ (Blob/File)
@@ -1877,13 +1877,13 @@
 [FAIL] x/x;´=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=´;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"´\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"´\\";bonus=x" but got ""
 [FAIL] x/x;x=´;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"´\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"´\\";bonus=x" but got ""
 [FAIL] x/x;x="´";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"´\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"´\\";bonus=x" but got ""
 [FAIL] x/x;x="´";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"´\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"´\\";bonus=x" but got ""
 [PASS] µ/x (Blob/File)
 [PASS] µ/x (Request/Response)
 [PASS] x/µ (Blob/File)
@@ -1893,13 +1893,13 @@
 [FAIL] x/x;µ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=µ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"µ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"µ\\";bonus=x" but got ""
 [FAIL] x/x;x=µ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"µ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"µ\\";bonus=x" but got ""
 [FAIL] x/x;x="µ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"µ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"µ\\";bonus=x" but got ""
 [FAIL] x/x;x="µ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"µ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"µ\\";bonus=x" but got ""
 [PASS] ¶/x (Blob/File)
 [PASS] ¶/x (Request/Response)
 [PASS] x/¶ (Blob/File)
@@ -1909,13 +1909,13 @@
 [FAIL] x/x;¶=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¶;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¶\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¶\\";bonus=x" but got ""
 [FAIL] x/x;x=¶;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¶\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¶\\";bonus=x" but got ""
 [FAIL] x/x;x="¶";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¶\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¶\\";bonus=x" but got ""
 [FAIL] x/x;x="¶";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¶\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¶\\";bonus=x" but got ""
 [PASS] ·/x (Blob/File)
 [PASS] ·/x (Request/Response)
 [PASS] x/· (Blob/File)
@@ -1925,13 +1925,13 @@
 [FAIL] x/x;·=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=·;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"·\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"·\\";bonus=x" but got ""
 [FAIL] x/x;x=·;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"·\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"·\\";bonus=x" but got ""
 [FAIL] x/x;x="·";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"·\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"·\\";bonus=x" but got ""
 [FAIL] x/x;x="·";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"·\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"·\\";bonus=x" but got ""
 [PASS] ¸/x (Blob/File)
 [PASS] ¸/x (Request/Response)
 [PASS] x/¸ (Blob/File)
@@ -1941,13 +1941,13 @@
 [FAIL] x/x;¸=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¸;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¸\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¸\\";bonus=x" but got ""
 [FAIL] x/x;x=¸;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¸\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¸\\";bonus=x" but got ""
 [FAIL] x/x;x="¸";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¸\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¸\\";bonus=x" but got ""
 [FAIL] x/x;x="¸";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¸\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¸\\";bonus=x" but got ""
 [PASS] ¹/x (Blob/File)
 [PASS] ¹/x (Request/Response)
 [PASS] x/¹ (Blob/File)
@@ -1957,13 +1957,13 @@
 [FAIL] x/x;¹=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¹;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¹\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¹\\";bonus=x" but got ""
 [FAIL] x/x;x=¹;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¹\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¹\\";bonus=x" but got ""
 [FAIL] x/x;x="¹";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¹\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¹\\";bonus=x" but got ""
 [FAIL] x/x;x="¹";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¹\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¹\\";bonus=x" but got ""
 [PASS] º/x (Blob/File)
 [PASS] º/x (Request/Response)
 [PASS] x/º (Blob/File)
@@ -1973,13 +1973,13 @@
 [FAIL] x/x;º=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=º;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"º\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"º\\";bonus=x" but got ""
 [FAIL] x/x;x=º;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"º\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"º\\";bonus=x" but got ""
 [FAIL] x/x;x="º";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"º\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"º\\";bonus=x" but got ""
 [FAIL] x/x;x="º";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"º\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"º\\";bonus=x" but got ""
 [PASS] »/x (Blob/File)
 [PASS] »/x (Request/Response)
 [PASS] x/» (Blob/File)
@@ -1989,13 +1989,13 @@
 [FAIL] x/x;»=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=»;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"»\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"»\\";bonus=x" but got ""
 [FAIL] x/x;x=»;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"»\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"»\\";bonus=x" but got ""
 [FAIL] x/x;x="»";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"»\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"»\\";bonus=x" but got ""
 [FAIL] x/x;x="»";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"»\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"»\\";bonus=x" but got ""
 [PASS] ¼/x (Blob/File)
 [PASS] ¼/x (Request/Response)
 [PASS] x/¼ (Blob/File)
@@ -2005,13 +2005,13 @@
 [FAIL] x/x;¼=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¼;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¼\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¼\\";bonus=x" but got ""
 [FAIL] x/x;x=¼;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¼\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¼\\";bonus=x" but got ""
 [FAIL] x/x;x="¼";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¼\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¼\\";bonus=x" but got ""
 [FAIL] x/x;x="¼";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¼\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¼\\";bonus=x" but got ""
 [PASS] ½/x (Blob/File)
 [PASS] ½/x (Request/Response)
 [PASS] x/½ (Blob/File)
@@ -2021,13 +2021,13 @@
 [FAIL] x/x;½=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=½;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"½\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"½\\";bonus=x" but got ""
 [FAIL] x/x;x=½;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"½\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"½\\";bonus=x" but got ""
 [FAIL] x/x;x="½";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"½\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"½\\";bonus=x" but got ""
 [FAIL] x/x;x="½";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"½\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"½\\";bonus=x" but got ""
 [PASS] ¾/x (Blob/File)
 [PASS] ¾/x (Request/Response)
 [PASS] x/¾ (Blob/File)
@@ -2037,13 +2037,13 @@
 [FAIL] x/x;¾=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¾;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¾\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¾\\";bonus=x" but got ""
 [FAIL] x/x;x=¾;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¾\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¾\\";bonus=x" but got ""
 [FAIL] x/x;x="¾";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¾\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¾\\";bonus=x" but got ""
 [FAIL] x/x;x="¾";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¾\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¾\\";bonus=x" but got ""
 [PASS] ¿/x (Blob/File)
 [PASS] ¿/x (Request/Response)
 [PASS] x/¿ (Blob/File)
@@ -2053,13 +2053,13 @@
 [FAIL] x/x;¿=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¿;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¿\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¿\\";bonus=x" but got ""
 [FAIL] x/x;x=¿;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¿\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¿\\";bonus=x" but got ""
 [FAIL] x/x;x="¿";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¿\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¿\\";bonus=x" but got ""
 [FAIL] x/x;x="¿";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¿\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¿\\";bonus=x" but got ""
 [PASS] À/x (Blob/File)
 [PASS] À/x (Request/Response)
 [PASS] x/À (Blob/File)
@@ -2069,13 +2069,13 @@
 [FAIL] x/x;À=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=À;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"À\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"À\\";bonus=x" but got ""
 [FAIL] x/x;x=À;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"À\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"À\\";bonus=x" but got ""
 [FAIL] x/x;x="À";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"À\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"À\\";bonus=x" but got ""
 [FAIL] x/x;x="À";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"À\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"À\\";bonus=x" but got ""
 [PASS] Á/x (Blob/File)
 [PASS] Á/x (Request/Response)
 [PASS] x/Á (Blob/File)
@@ -2085,13 +2085,13 @@
 [FAIL] x/x;Á=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Á;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Á\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Á\\";bonus=x" but got ""
 [FAIL] x/x;x=Á;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Á\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Á\\";bonus=x" but got ""
 [FAIL] x/x;x="Á";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Á\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Á\\";bonus=x" but got ""
 [FAIL] x/x;x="Á";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Á\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Á\\";bonus=x" but got ""
 [PASS] Â/x (Blob/File)
 [PASS] Â/x (Request/Response)
 [PASS] x/Â (Blob/File)
@@ -2101,13 +2101,13 @@
 [FAIL] x/x;Â=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Â;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Â\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Â\\";bonus=x" but got ""
 [FAIL] x/x;x=Â;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Â\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Â\\";bonus=x" but got ""
 [FAIL] x/x;x="Â";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Â\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Â\\";bonus=x" but got ""
 [FAIL] x/x;x="Â";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Â\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Â\\";bonus=x" but got ""
 [PASS] Ã/x (Blob/File)
 [PASS] Ã/x (Request/Response)
 [PASS] x/Ã (Blob/File)
@@ -2117,13 +2117,13 @@
 [FAIL] x/x;Ã=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ã;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ã\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ã\\";bonus=x" but got ""
 [FAIL] x/x;x=Ã;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ã\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ã\\";bonus=x" but got ""
 [FAIL] x/x;x="Ã";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ã\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ã\\";bonus=x" but got ""
 [FAIL] x/x;x="Ã";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ã\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ã\\";bonus=x" but got ""
 [PASS] Ä/x (Blob/File)
 [PASS] Ä/x (Request/Response)
 [PASS] x/Ä (Blob/File)
@@ -2133,13 +2133,13 @@
 [FAIL] x/x;Ä=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ä;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ä\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ä\\";bonus=x" but got ""
 [FAIL] x/x;x=Ä;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ä\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ä\\";bonus=x" but got ""
 [FAIL] x/x;x="Ä";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ä\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ä\\";bonus=x" but got ""
 [FAIL] x/x;x="Ä";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ä\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ä\\";bonus=x" but got ""
 [PASS] Å/x (Blob/File)
 [PASS] Å/x (Request/Response)
 [PASS] x/Å (Blob/File)
@@ -2149,13 +2149,13 @@
 [FAIL] x/x;Å=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Å;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Å\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Å\\";bonus=x" but got ""
 [FAIL] x/x;x=Å;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Å\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Å\\";bonus=x" but got ""
 [FAIL] x/x;x="Å";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Å\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Å\\";bonus=x" but got ""
 [FAIL] x/x;x="Å";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Å\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Å\\";bonus=x" but got ""
 [PASS] Æ/x (Blob/File)
 [PASS] Æ/x (Request/Response)
 [PASS] x/Æ (Blob/File)
@@ -2165,13 +2165,13 @@
 [FAIL] x/x;Æ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Æ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Æ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Æ\\";bonus=x" but got ""
 [FAIL] x/x;x=Æ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Æ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Æ\\";bonus=x" but got ""
 [FAIL] x/x;x="Æ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Æ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Æ\\";bonus=x" but got ""
 [FAIL] x/x;x="Æ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Æ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Æ\\";bonus=x" but got ""
 [PASS] Ç/x (Blob/File)
 [PASS] Ç/x (Request/Response)
 [PASS] x/Ç (Blob/File)
@@ -2181,13 +2181,13 @@
 [FAIL] x/x;Ç=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ç;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ç\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ç\\";bonus=x" but got ""
 [FAIL] x/x;x=Ç;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ç\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ç\\";bonus=x" but got ""
 [FAIL] x/x;x="Ç";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ç\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ç\\";bonus=x" but got ""
 [FAIL] x/x;x="Ç";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ç\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ç\\";bonus=x" but got ""
 [PASS] È/x (Blob/File)
 [PASS] È/x (Request/Response)
 [PASS] x/È (Blob/File)
@@ -2197,13 +2197,13 @@
 [FAIL] x/x;È=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=È;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"È\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"È\\";bonus=x" but got ""
 [FAIL] x/x;x=È;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"È\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"È\\";bonus=x" but got ""
 [FAIL] x/x;x="È";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"È\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"È\\";bonus=x" but got ""
 [FAIL] x/x;x="È";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"È\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"È\\";bonus=x" but got ""
 [PASS] É/x (Blob/File)
 [PASS] É/x (Request/Response)
 [PASS] x/É (Blob/File)
@@ -2213,13 +2213,13 @@
 [FAIL] x/x;É=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=É;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"É\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"É\\";bonus=x" but got ""
 [FAIL] x/x;x=É;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"É\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"É\\";bonus=x" but got ""
 [FAIL] x/x;x="É";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"É\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"É\\";bonus=x" but got ""
 [FAIL] x/x;x="É";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"É\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"É\\";bonus=x" but got ""
 [PASS] Ê/x (Blob/File)
 [PASS] Ê/x (Request/Response)
 [PASS] x/Ê (Blob/File)
@@ -2229,13 +2229,13 @@
 [FAIL] x/x;Ê=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ê;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ê\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ê\\";bonus=x" but got ""
 [FAIL] x/x;x=Ê;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ê\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ê\\";bonus=x" but got ""
 [FAIL] x/x;x="Ê";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ê\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ê\\";bonus=x" but got ""
 [FAIL] x/x;x="Ê";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ê\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ê\\";bonus=x" but got ""
 [PASS] Ë/x (Blob/File)
 [PASS] Ë/x (Request/Response)
 [PASS] x/Ë (Blob/File)
@@ -2245,13 +2245,13 @@
 [FAIL] x/x;Ë=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ë;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ë\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ë\\";bonus=x" but got ""
 [FAIL] x/x;x=Ë;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ë\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ë\\";bonus=x" but got ""
 [FAIL] x/x;x="Ë";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ë\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ë\\";bonus=x" but got ""
 [FAIL] x/x;x="Ë";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ë\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ë\\";bonus=x" but got ""
 [PASS] Ì/x (Blob/File)
 [PASS] Ì/x (Request/Response)
 [PASS] x/Ì (Blob/File)
@@ -2261,13 +2261,13 @@
 [FAIL] x/x;Ì=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ì;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ì\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ì\\";bonus=x" but got ""
 [FAIL] x/x;x=Ì;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ì\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ì\\";bonus=x" but got ""
 [FAIL] x/x;x="Ì";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ì\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ì\\";bonus=x" but got ""
 [FAIL] x/x;x="Ì";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ì\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ì\\";bonus=x" but got ""
 [PASS] Í/x (Blob/File)
 [PASS] Í/x (Request/Response)
 [PASS] x/Í (Blob/File)
@@ -2277,13 +2277,13 @@
 [FAIL] x/x;Í=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Í;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Í\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Í\\";bonus=x" but got ""
 [FAIL] x/x;x=Í;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Í\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Í\\";bonus=x" but got ""
 [FAIL] x/x;x="Í";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Í\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Í\\";bonus=x" but got ""
 [FAIL] x/x;x="Í";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Í\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Í\\";bonus=x" but got ""
 [PASS] Î/x (Blob/File)
 [PASS] Î/x (Request/Response)
 [PASS] x/Î (Blob/File)
@@ -2293,13 +2293,13 @@
 [FAIL] x/x;Î=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Î;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Î\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Î\\";bonus=x" but got ""
 [FAIL] x/x;x=Î;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Î\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Î\\";bonus=x" but got ""
 [FAIL] x/x;x="Î";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Î\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Î\\";bonus=x" but got ""
 [FAIL] x/x;x="Î";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Î\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Î\\";bonus=x" but got ""
 [PASS] Ï/x (Blob/File)
 [PASS] Ï/x (Request/Response)
 [PASS] x/Ï (Blob/File)
@@ -2309,13 +2309,13 @@
 [FAIL] x/x;Ï=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ï;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ï\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ï\\";bonus=x" but got ""
 [FAIL] x/x;x=Ï;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ï\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ï\\";bonus=x" but got ""
 [FAIL] x/x;x="Ï";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ï\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ï\\";bonus=x" but got ""
 [FAIL] x/x;x="Ï";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ï\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ï\\";bonus=x" but got ""
 [PASS] Ð/x (Blob/File)
 [PASS] Ð/x (Request/Response)
 [PASS] x/Ð (Blob/File)
@@ -2325,13 +2325,13 @@
 [FAIL] x/x;Ð=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ð;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ð\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ð\\";bonus=x" but got ""
 [FAIL] x/x;x=Ð;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ð\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ð\\";bonus=x" but got ""
 [FAIL] x/x;x="Ð";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ð\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ð\\";bonus=x" but got ""
 [FAIL] x/x;x="Ð";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ð\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ð\\";bonus=x" but got ""
 [PASS] Ñ/x (Blob/File)
 [PASS] Ñ/x (Request/Response)
 [PASS] x/Ñ (Blob/File)
@@ -2341,13 +2341,13 @@
 [FAIL] x/x;Ñ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ñ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ñ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ñ\\";bonus=x" but got ""
 [FAIL] x/x;x=Ñ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ñ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ñ\\";bonus=x" but got ""
 [FAIL] x/x;x="Ñ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ñ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ñ\\";bonus=x" but got ""
 [FAIL] x/x;x="Ñ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ñ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ñ\\";bonus=x" but got ""
 [PASS] Ò/x (Blob/File)
 [PASS] Ò/x (Request/Response)
 [PASS] x/Ò (Blob/File)
@@ -2357,13 +2357,13 @@
 [FAIL] x/x;Ò=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ò;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ò\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ò\\";bonus=x" but got ""
 [FAIL] x/x;x=Ò;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ò\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ò\\";bonus=x" but got ""
 [FAIL] x/x;x="Ò";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ò\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ò\\";bonus=x" but got ""
 [FAIL] x/x;x="Ò";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ò\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ò\\";bonus=x" but got ""
 [PASS] Ó/x (Blob/File)
 [PASS] Ó/x (Request/Response)
 [PASS] x/Ó (Blob/File)
@@ -2373,13 +2373,13 @@
 [FAIL] x/x;Ó=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ó;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ó\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ó\\";bonus=x" but got ""
 [FAIL] x/x;x=Ó;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ó\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ó\\";bonus=x" but got ""
 [FAIL] x/x;x="Ó";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ó\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ó\\";bonus=x" but got ""
 [FAIL] x/x;x="Ó";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ó\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ó\\";bonus=x" but got ""
 [PASS] Ô/x (Blob/File)
 [PASS] Ô/x (Request/Response)
 [PASS] x/Ô (Blob/File)
@@ -2389,13 +2389,13 @@
 [FAIL] x/x;Ô=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ô;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ô\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ô\\";bonus=x" but got ""
 [FAIL] x/x;x=Ô;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ô\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ô\\";bonus=x" but got ""
 [FAIL] x/x;x="Ô";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ô\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ô\\";bonus=x" but got ""
 [FAIL] x/x;x="Ô";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ô\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ô\\";bonus=x" but got ""
 [PASS] Õ/x (Blob/File)
 [PASS] Õ/x (Request/Response)
 [PASS] x/Õ (Blob/File)
@@ -2405,13 +2405,13 @@
 [FAIL] x/x;Õ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Õ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Õ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Õ\\";bonus=x" but got ""
 [FAIL] x/x;x=Õ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Õ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Õ\\";bonus=x" but got ""
 [FAIL] x/x;x="Õ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Õ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Õ\\";bonus=x" but got ""
 [FAIL] x/x;x="Õ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Õ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Õ\\";bonus=x" but got ""
 [PASS] Ö/x (Blob/File)
 [PASS] Ö/x (Request/Response)
 [PASS] x/Ö (Blob/File)
@@ -2421,13 +2421,13 @@
 [FAIL] x/x;Ö=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ö;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ö\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ö\\";bonus=x" but got ""
 [FAIL] x/x;x=Ö;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ö\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ö\\";bonus=x" but got ""
 [FAIL] x/x;x="Ö";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ö\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ö\\";bonus=x" but got ""
 [FAIL] x/x;x="Ö";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ö\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ö\\";bonus=x" but got ""
 [PASS] ×/x (Blob/File)
 [PASS] ×/x (Request/Response)
 [PASS] x/× (Blob/File)
@@ -2437,13 +2437,13 @@
 [FAIL] x/x;×=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=×;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"×\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"×\\";bonus=x" but got ""
 [FAIL] x/x;x=×;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"×\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"×\\";bonus=x" but got ""
 [FAIL] x/x;x="×";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"×\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"×\\";bonus=x" but got ""
 [FAIL] x/x;x="×";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"×\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"×\\";bonus=x" but got ""
 [PASS] Ø/x (Blob/File)
 [PASS] Ø/x (Request/Response)
 [PASS] x/Ø (Blob/File)
@@ -2453,13 +2453,13 @@
 [FAIL] x/x;Ø=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ø;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ø\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ø\\";bonus=x" but got ""
 [FAIL] x/x;x=Ø;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ø\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ø\\";bonus=x" but got ""
 [FAIL] x/x;x="Ø";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ø\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ø\\";bonus=x" but got ""
 [FAIL] x/x;x="Ø";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ø\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ø\\";bonus=x" but got ""
 [PASS] Ù/x (Blob/File)
 [PASS] Ù/x (Request/Response)
 [PASS] x/Ù (Blob/File)
@@ -2469,13 +2469,13 @@
 [FAIL] x/x;Ù=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ù;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ù\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ù\\";bonus=x" but got ""
 [FAIL] x/x;x=Ù;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ù\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ù\\";bonus=x" but got ""
 [FAIL] x/x;x="Ù";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ù\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ù\\";bonus=x" but got ""
 [FAIL] x/x;x="Ù";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ù\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ù\\";bonus=x" but got ""
 [PASS] Ú/x (Blob/File)
 [PASS] Ú/x (Request/Response)
 [PASS] x/Ú (Blob/File)
@@ -2485,13 +2485,13 @@
 [FAIL] x/x;Ú=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ú;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ú\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ú\\";bonus=x" but got ""
 [FAIL] x/x;x=Ú;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ú\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ú\\";bonus=x" but got ""
 [FAIL] x/x;x="Ú";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ú\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ú\\";bonus=x" but got ""
 [FAIL] x/x;x="Ú";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ú\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ú\\";bonus=x" but got ""
 [PASS] Û/x (Blob/File)
 [PASS] Û/x (Request/Response)
 [PASS] x/Û (Blob/File)
@@ -2501,13 +2501,13 @@
 [FAIL] x/x;Û=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Û;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Û\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Û\\";bonus=x" but got ""
 [FAIL] x/x;x=Û;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Û\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Û\\";bonus=x" but got ""
 [FAIL] x/x;x="Û";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Û\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Û\\";bonus=x" but got ""
 [FAIL] x/x;x="Û";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Û\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Û\\";bonus=x" but got ""
 [PASS] Ü/x (Blob/File)
 [PASS] Ü/x (Request/Response)
 [PASS] x/Ü (Blob/File)
@@ -2517,13 +2517,13 @@
 [FAIL] x/x;Ü=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ü;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ü\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ü\\";bonus=x" but got ""
 [FAIL] x/x;x=Ü;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ü\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ü\\";bonus=x" but got ""
 [FAIL] x/x;x="Ü";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ü\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ü\\";bonus=x" but got ""
 [FAIL] x/x;x="Ü";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ü\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ü\\";bonus=x" but got ""
 [PASS] Ý/x (Blob/File)
 [PASS] Ý/x (Request/Response)
 [PASS] x/Ý (Blob/File)
@@ -2533,13 +2533,13 @@
 [FAIL] x/x;Ý=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ý;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ý\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ý\\";bonus=x" but got ""
 [FAIL] x/x;x=Ý;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ý\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ý\\";bonus=x" but got ""
 [FAIL] x/x;x="Ý";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ý\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ý\\";bonus=x" but got ""
 [FAIL] x/x;x="Ý";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ý\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ý\\";bonus=x" but got ""
 [PASS] Þ/x (Blob/File)
 [PASS] Þ/x (Request/Response)
 [PASS] x/Þ (Blob/File)
@@ -2549,13 +2549,13 @@
 [FAIL] x/x;Þ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Þ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Þ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Þ\\";bonus=x" but got ""
 [FAIL] x/x;x=Þ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Þ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Þ\\";bonus=x" but got ""
 [FAIL] x/x;x="Þ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Þ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Þ\\";bonus=x" but got ""
 [FAIL] x/x;x="Þ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Þ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Þ\\";bonus=x" but got ""
 [PASS] ß/x (Blob/File)
 [PASS] ß/x (Request/Response)
 [PASS] x/ß (Blob/File)
@@ -2565,13 +2565,13 @@
 [FAIL] x/x;ß=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ß;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ß\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ß\\";bonus=x" but got ""
 [FAIL] x/x;x=ß;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ß\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ß\\";bonus=x" but got ""
 [FAIL] x/x;x="ß";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ß\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ß\\";bonus=x" but got ""
 [FAIL] x/x;x="ß";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ß\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ß\\";bonus=x" but got ""
 [PASS] à/x (Blob/File)
 [PASS] à/x (Request/Response)
 [PASS] x/à (Blob/File)
@@ -2581,13 +2581,13 @@
 [FAIL] x/x;à=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=à;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"à\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"à\\";bonus=x" but got ""
 [FAIL] x/x;x=à;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"à\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"à\\";bonus=x" but got ""
 [FAIL] x/x;x="à";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"à\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"à\\";bonus=x" but got ""
 [FAIL] x/x;x="à";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"à\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"à\\";bonus=x" but got ""
 [PASS] á/x (Blob/File)
 [PASS] á/x (Request/Response)
 [PASS] x/á (Blob/File)
@@ -2597,13 +2597,13 @@
 [FAIL] x/x;á=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=á;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"á\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"á\\";bonus=x" but got ""
 [FAIL] x/x;x=á;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"á\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"á\\";bonus=x" but got ""
 [FAIL] x/x;x="á";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"á\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"á\\";bonus=x" but got ""
 [FAIL] x/x;x="á";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"á\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"á\\";bonus=x" but got ""
 [PASS] â/x (Blob/File)
 [PASS] â/x (Request/Response)
 [PASS] x/â (Blob/File)
@@ -2613,13 +2613,13 @@
 [FAIL] x/x;â=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=â;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"â\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"â\\";bonus=x" but got ""
 [FAIL] x/x;x=â;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"â\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"â\\";bonus=x" but got ""
 [FAIL] x/x;x="â";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"â\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"â\\";bonus=x" but got ""
 [FAIL] x/x;x="â";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"â\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"â\\";bonus=x" but got ""
 [PASS] ã/x (Blob/File)
 [PASS] ã/x (Request/Response)
 [PASS] x/ã (Blob/File)
@@ -2629,13 +2629,13 @@
 [FAIL] x/x;ã=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ã;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ã\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ã\\";bonus=x" but got ""
 [FAIL] x/x;x=ã;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ã\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ã\\";bonus=x" but got ""
 [FAIL] x/x;x="ã";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ã\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ã\\";bonus=x" but got ""
 [FAIL] x/x;x="ã";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ã\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ã\\";bonus=x" but got ""
 [PASS] ä/x (Blob/File)
 [PASS] ä/x (Request/Response)
 [PASS] x/ä (Blob/File)
@@ -2645,13 +2645,13 @@
 [FAIL] x/x;ä=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ä;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ä\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ä\\";bonus=x" but got ""
 [FAIL] x/x;x=ä;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ä\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ä\\";bonus=x" but got ""
 [FAIL] x/x;x="ä";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ä\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ä\\";bonus=x" but got ""
 [FAIL] x/x;x="ä";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ä\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ä\\";bonus=x" but got ""
 [PASS] å/x (Blob/File)
 [PASS] å/x (Request/Response)
 [PASS] x/å (Blob/File)
@@ -2661,13 +2661,13 @@
 [FAIL] x/x;å=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=å;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"å\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"å\\";bonus=x" but got ""
 [FAIL] x/x;x=å;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"å\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"å\\";bonus=x" but got ""
 [FAIL] x/x;x="å";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"å\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"å\\";bonus=x" but got ""
 [FAIL] x/x;x="å";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"å\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"å\\";bonus=x" but got ""
 [PASS] æ/x (Blob/File)
 [PASS] æ/x (Request/Response)
 [PASS] x/æ (Blob/File)
@@ -2677,13 +2677,13 @@
 [FAIL] x/x;æ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=æ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"æ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"æ\\";bonus=x" but got ""
 [FAIL] x/x;x=æ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"æ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"æ\\";bonus=x" but got ""
 [FAIL] x/x;x="æ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"æ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"æ\\";bonus=x" but got ""
 [FAIL] x/x;x="æ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"æ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"æ\\";bonus=x" but got ""
 [PASS] ç/x (Blob/File)
 [PASS] ç/x (Request/Response)
 [PASS] x/ç (Blob/File)
@@ -2693,13 +2693,13 @@
 [FAIL] x/x;ç=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ç;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ç\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ç\\";bonus=x" but got ""
 [FAIL] x/x;x=ç;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ç\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ç\\";bonus=x" but got ""
 [FAIL] x/x;x="ç";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ç\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ç\\";bonus=x" but got ""
 [FAIL] x/x;x="ç";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ç\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ç\\";bonus=x" but got ""
 [PASS] è/x (Blob/File)
 [PASS] è/x (Request/Response)
 [PASS] x/è (Blob/File)
@@ -2709,13 +2709,13 @@
 [FAIL] x/x;è=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=è;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"è\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"è\\";bonus=x" but got ""
 [FAIL] x/x;x=è;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"è\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"è\\";bonus=x" but got ""
 [FAIL] x/x;x="è";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"è\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"è\\";bonus=x" but got ""
 [FAIL] x/x;x="è";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"è\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"è\\";bonus=x" but got ""
 [PASS] é/x (Blob/File)
 [PASS] é/x (Request/Response)
 [PASS] x/é (Blob/File)
@@ -2725,13 +2725,13 @@
 [FAIL] x/x;é=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=é;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"é\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"é\\";bonus=x" but got ""
 [FAIL] x/x;x=é;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"é\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"é\\";bonus=x" but got ""
 [FAIL] x/x;x="é";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"é\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"é\\";bonus=x" but got ""
 [FAIL] x/x;x="é";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"é\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"é\\";bonus=x" but got ""
 [PASS] ê/x (Blob/File)
 [PASS] ê/x (Request/Response)
 [PASS] x/ê (Blob/File)
@@ -2741,13 +2741,13 @@
 [FAIL] x/x;ê=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ê;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ê\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ê\\";bonus=x" but got ""
 [FAIL] x/x;x=ê;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ê\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ê\\";bonus=x" but got ""
 [FAIL] x/x;x="ê";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ê\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ê\\";bonus=x" but got ""
 [FAIL] x/x;x="ê";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ê\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ê\\";bonus=x" but got ""
 [PASS] ë/x (Blob/File)
 [PASS] ë/x (Request/Response)
 [PASS] x/ë (Blob/File)
@@ -2757,13 +2757,13 @@
 [FAIL] x/x;ë=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ë;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ë\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ë\\";bonus=x" but got ""
 [FAIL] x/x;x=ë;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ë\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ë\\";bonus=x" but got ""
 [FAIL] x/x;x="ë";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ë\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ë\\";bonus=x" but got ""
 [FAIL] x/x;x="ë";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ë\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ë\\";bonus=x" but got ""
 [PASS] ì/x (Blob/File)
 [PASS] ì/x (Request/Response)
 [PASS] x/ì (Blob/File)
@@ -2773,13 +2773,13 @@
 [FAIL] x/x;ì=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ì;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ì\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ì\\";bonus=x" but got ""
 [FAIL] x/x;x=ì;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ì\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ì\\";bonus=x" but got ""
 [FAIL] x/x;x="ì";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ì\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ì\\";bonus=x" but got ""
 [FAIL] x/x;x="ì";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ì\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ì\\";bonus=x" but got ""
 [PASS] í/x (Blob/File)
 [PASS] í/x (Request/Response)
 [PASS] x/í (Blob/File)
@@ -2789,13 +2789,13 @@
 [FAIL] x/x;í=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=í;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"í\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"í\\";bonus=x" but got ""
 [FAIL] x/x;x=í;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"í\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"í\\";bonus=x" but got ""
 [FAIL] x/x;x="í";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"í\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"í\\";bonus=x" but got ""
 [FAIL] x/x;x="í";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"í\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"í\\";bonus=x" but got ""
 [PASS] î/x (Blob/File)
 [PASS] î/x (Request/Response)
 [PASS] x/î (Blob/File)
@@ -2805,13 +2805,13 @@
 [FAIL] x/x;î=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=î;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"î\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"î\\";bonus=x" but got ""
 [FAIL] x/x;x=î;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"î\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"î\\";bonus=x" but got ""
 [FAIL] x/x;x="î";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"î\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"î\\";bonus=x" but got ""
 [FAIL] x/x;x="î";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"î\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"î\\";bonus=x" but got ""
 [PASS] ï/x (Blob/File)
 [PASS] ï/x (Request/Response)
 [PASS] x/ï (Blob/File)
@@ -2821,13 +2821,13 @@
 [FAIL] x/x;ï=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ï;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ï\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ï\\";bonus=x" but got ""
 [FAIL] x/x;x=ï;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ï\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ï\\";bonus=x" but got ""
 [FAIL] x/x;x="ï";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ï\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ï\\";bonus=x" but got ""
 [FAIL] x/x;x="ï";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ï\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ï\\";bonus=x" but got ""
 [PASS] ð/x (Blob/File)
 [PASS] ð/x (Request/Response)
 [PASS] x/ð (Blob/File)
@@ -2837,13 +2837,13 @@
 [FAIL] x/x;ð=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ð;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ð\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ð\\";bonus=x" but got ""
 [FAIL] x/x;x=ð;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ð\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ð\\";bonus=x" but got ""
 [FAIL] x/x;x="ð";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ð\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ð\\";bonus=x" but got ""
 [FAIL] x/x;x="ð";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ð\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ð\\";bonus=x" but got ""
 [PASS] ñ/x (Blob/File)
 [PASS] ñ/x (Request/Response)
 [PASS] x/ñ (Blob/File)
@@ -2853,13 +2853,13 @@
 [FAIL] x/x;ñ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ñ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ñ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ñ\\";bonus=x" but got ""
 [FAIL] x/x;x=ñ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ñ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ñ\\";bonus=x" but got ""
 [FAIL] x/x;x="ñ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ñ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ñ\\";bonus=x" but got ""
 [FAIL] x/x;x="ñ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ñ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ñ\\";bonus=x" but got ""
 [PASS] ò/x (Blob/File)
 [PASS] ò/x (Request/Response)
 [PASS] x/ò (Blob/File)
@@ -2869,13 +2869,13 @@
 [FAIL] x/x;ò=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ò;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ò\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ò\\";bonus=x" but got ""
 [FAIL] x/x;x=ò;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ò\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ò\\";bonus=x" but got ""
 [FAIL] x/x;x="ò";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ò\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ò\\";bonus=x" but got ""
 [FAIL] x/x;x="ò";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ò\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ò\\";bonus=x" but got ""
 [PASS] ó/x (Blob/File)
 [PASS] ó/x (Request/Response)
 [PASS] x/ó (Blob/File)
@@ -2885,13 +2885,13 @@
 [FAIL] x/x;ó=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ó;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ó\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ó\\";bonus=x" but got ""
 [FAIL] x/x;x=ó;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ó\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ó\\";bonus=x" but got ""
 [FAIL] x/x;x="ó";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ó\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ó\\";bonus=x" but got ""
 [FAIL] x/x;x="ó";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ó\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ó\\";bonus=x" but got ""
 [PASS] ô/x (Blob/File)
 [PASS] ô/x (Request/Response)
 [PASS] x/ô (Blob/File)
@@ -2901,13 +2901,13 @@
 [FAIL] x/x;ô=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ô;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ô\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ô\\";bonus=x" but got ""
 [FAIL] x/x;x=ô;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ô\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ô\\";bonus=x" but got ""
 [FAIL] x/x;x="ô";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ô\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ô\\";bonus=x" but got ""
 [FAIL] x/x;x="ô";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ô\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ô\\";bonus=x" but got ""
 [PASS] õ/x (Blob/File)
 [PASS] õ/x (Request/Response)
 [PASS] x/õ (Blob/File)
@@ -2917,13 +2917,13 @@
 [FAIL] x/x;õ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=õ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"õ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"õ\\";bonus=x" but got ""
 [FAIL] x/x;x=õ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"õ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"õ\\";bonus=x" but got ""
 [FAIL] x/x;x="õ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"õ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"õ\\";bonus=x" but got ""
 [FAIL] x/x;x="õ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"õ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"õ\\";bonus=x" but got ""
 [PASS] ö/x (Blob/File)
 [PASS] ö/x (Request/Response)
 [PASS] x/ö (Blob/File)
@@ -2933,13 +2933,13 @@
 [FAIL] x/x;ö=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ö;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ö\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ö\\";bonus=x" but got ""
 [FAIL] x/x;x=ö;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ö\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ö\\";bonus=x" but got ""
 [FAIL] x/x;x="ö";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ö\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ö\\";bonus=x" but got ""
 [FAIL] x/x;x="ö";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ö\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ö\\";bonus=x" but got ""
 [PASS] ÷/x (Blob/File)
 [PASS] ÷/x (Request/Response)
 [PASS] x/÷ (Blob/File)
@@ -2949,13 +2949,13 @@
 [FAIL] x/x;÷=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=÷;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"÷\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"÷\\";bonus=x" but got ""
 [FAIL] x/x;x=÷;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"÷\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"÷\\";bonus=x" but got ""
 [FAIL] x/x;x="÷";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"÷\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"÷\\";bonus=x" but got ""
 [FAIL] x/x;x="÷";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"÷\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"÷\\";bonus=x" but got ""
 [PASS] ø/x (Blob/File)
 [PASS] ø/x (Request/Response)
 [PASS] x/ø (Blob/File)
@@ -2965,13 +2965,13 @@
 [FAIL] x/x;ø=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ø;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ø\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ø\\";bonus=x" but got ""
 [FAIL] x/x;x=ø;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ø\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ø\\";bonus=x" but got ""
 [FAIL] x/x;x="ø";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ø\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ø\\";bonus=x" but got ""
 [FAIL] x/x;x="ø";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ø\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ø\\";bonus=x" but got ""
 [PASS] ù/x (Blob/File)
 [PASS] ù/x (Request/Response)
 [PASS] x/ù (Blob/File)
@@ -2981,13 +2981,13 @@
 [FAIL] x/x;ù=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ù;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ù\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ù\\";bonus=x" but got ""
 [FAIL] x/x;x=ù;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ù\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ù\\";bonus=x" but got ""
 [FAIL] x/x;x="ù";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ù\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ù\\";bonus=x" but got ""
 [FAIL] x/x;x="ù";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ù\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ù\\";bonus=x" but got ""
 [PASS] ú/x (Blob/File)
 [PASS] ú/x (Request/Response)
 [PASS] x/ú (Blob/File)
@@ -2997,13 +2997,13 @@
 [FAIL] x/x;ú=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ú;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ú\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ú\\";bonus=x" but got ""
 [FAIL] x/x;x=ú;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ú\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ú\\";bonus=x" but got ""
 [FAIL] x/x;x="ú";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ú\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ú\\";bonus=x" but got ""
 [FAIL] x/x;x="ú";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ú\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ú\\";bonus=x" but got ""
 [PASS] û/x (Blob/File)
 [PASS] û/x (Request/Response)
 [PASS] x/û (Blob/File)
@@ -3013,13 +3013,13 @@
 [FAIL] x/x;û=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=û;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"û\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"û\\";bonus=x" but got ""
 [FAIL] x/x;x=û;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"û\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"û\\";bonus=x" but got ""
 [FAIL] x/x;x="û";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"û\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"û\\";bonus=x" but got ""
 [FAIL] x/x;x="û";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"û\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"û\\";bonus=x" but got ""
 [PASS] ü/x (Blob/File)
 [PASS] ü/x (Request/Response)
 [PASS] x/ü (Blob/File)
@@ -3029,13 +3029,13 @@
 [FAIL] x/x;ü=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ü;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ü\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ü\\";bonus=x" but got ""
 [FAIL] x/x;x=ü;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ü\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ü\\";bonus=x" but got ""
 [FAIL] x/x;x="ü";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ü\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ü\\";bonus=x" but got ""
 [FAIL] x/x;x="ü";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ü\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ü\\";bonus=x" but got ""
 [PASS] ý/x (Blob/File)
 [PASS] ý/x (Request/Response)
 [PASS] x/ý (Blob/File)
@@ -3045,13 +3045,13 @@
 [FAIL] x/x;ý=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ý;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ý\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ý\\";bonus=x" but got ""
 [FAIL] x/x;x=ý;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ý\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ý\\";bonus=x" but got ""
 [FAIL] x/x;x="ý";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ý\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ý\\";bonus=x" but got ""
 [FAIL] x/x;x="ý";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ý\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ý\\";bonus=x" but got ""
 [PASS] þ/x (Blob/File)
 [PASS] þ/x (Request/Response)
 [PASS] x/þ (Blob/File)
@@ -3061,13 +3061,13 @@
 [FAIL] x/x;þ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=þ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"þ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"þ\\";bonus=x" but got ""
 [FAIL] x/x;x=þ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"þ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"þ\\";bonus=x" but got ""
 [FAIL] x/x;x="þ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"þ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"þ\\";bonus=x" but got ""
 [FAIL] x/x;x="þ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"þ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"þ\\";bonus=x" but got ""
 [PASS] ÿ/x (Blob/File)
 [PASS] ÿ/x (Request/Response)
 [PASS] x/ÿ (Blob/File)
@@ -3077,12 +3077,12 @@
 [FAIL] x/x;ÿ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ÿ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ÿ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ÿ\\";bonus=x" but got ""
 [FAIL] x/x;x=ÿ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ÿ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ÿ\\";bonus=x" but got ""
 [FAIL] x/x;x="ÿ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ÿ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ÿ\\";bonus=x" but got ""
 [FAIL] x/x;x="ÿ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ÿ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ÿ\\";bonus=x" but got ""
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/parsing.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/parsing.any.worker-expected.txt
index 29e055b..63a3fbe5 100644
--- a/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/parsing.any.worker-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/mimesniff/mime-types/parsing.any.worker-expected.txt
@@ -8,21 +8,21 @@
 [FAIL] TEXT/HTML;CHARSET=GBK (Request/Response)
   assert_equals: expected "text/html;charset=GBK" but got "text/html;charset=gbk"
 [FAIL] text/html;charset=gbk( (Blob/File)
-  assert_equals: Blob expected "text/html;charset=\"gbk(\"" but got "text/html;charset=gbk("
+  assert_equals: Blob expected "text/html;charset=\\"gbk(\\"" but got "text/html;charset=gbk("
 [FAIL] text/html;charset=gbk( (Request/Response)
-  assert_equals: expected "text/html;charset=\"gbk(\"" but got "text/html;charset=gbk("
+  assert_equals: expected "text/html;charset=\\"gbk(\\"" but got "text/html;charset=gbk("
 [FAIL] text/html;x=(;charset=gbk (Blob/File)
-  assert_equals: Blob expected "text/html;x=\"(\";charset=gbk" but got "text/html;x=(;charset=gbk"
+  assert_equals: Blob expected "text/html;x=\\"(\\";charset=gbk" but got "text/html;x=(;charset=gbk"
 [FAIL] text/html;x=(;charset=gbk (Request/Response)
-  assert_equals: expected "text/html;x=\"(\";charset=gbk" but got "text/html;x=(;charset=gbk"
+  assert_equals: expected "text/html;x=\\"(\\";charset=gbk" but got "text/html;x=(;charset=gbk"
 [FAIL] text/html;charset=gbk;charset=windows-1255 (Blob/File)
   assert_equals: Blob expected "text/html;charset=gbk" but got "text/html;charset=gbk;charset=windows-1255"
 [FAIL] text/html;charset=gbk;charset=windows-1255 (Request/Response)
   assert_equals: expected "text/html;charset=gbk" but got "text/html;charset=gbk;charset=windows-1255"
 [FAIL] text/html;charset=();charset=GBK (Blob/File)
-  assert_equals: Blob expected "text/html;charset=\"()\"" but got "text/html;charset=();charset=gbk"
+  assert_equals: Blob expected "text/html;charset=\\"()\\"" but got "text/html;charset=();charset=gbk"
 [FAIL] text/html;charset=();charset=GBK (Request/Response)
-  assert_equals: expected "text/html;charset=\"()\"" but got "text/html;charset=();charset=gbk"
+  assert_equals: expected "text/html;charset=\\"()\\"" but got "text/html;charset=();charset=gbk"
 [FAIL] text/html;charset =gbk (Blob/File)
   assert_equals: Blob expected "text/html" but got "text/html;charset =gbk"
 [FAIL] text/html;charset =gbk (Request/Response)
@@ -36,13 +36,13 @@
 [FAIL] text/html; charset=gbk (Request/Response)
   assert_equals: expected "text/html;charset=gbk" but got "text/html; charset=gbk"
 [FAIL] text/html;charset= gbk (Blob/File)
-  assert_equals: Blob expected "text/html;charset=\" gbk\"" but got "text/html;charset= gbk"
+  assert_equals: Blob expected "text/html;charset=\\" gbk\\"" but got "text/html;charset= gbk"
 [FAIL] text/html;charset= gbk (Request/Response)
-  assert_equals: expected "text/html;charset=\" gbk\"" but got "text/html;charset= gbk"
+  assert_equals: expected "text/html;charset=\\" gbk\\"" but got "text/html;charset= gbk"
 [FAIL] text/html;charset= "gbk" (Blob/File)
-  assert_equals: Blob expected "text/html;charset=\" \\\"gbk\\\"\"" but got "text/html;charset= \"gbk\""
+  assert_equals: Blob expected "text/html;charset=\\" \\\\\\"gbk\\\\\\"\\"" but got "text/html;charset= \\"gbk\\""
 [FAIL] text/html;charset= "gbk" (Request/Response)
-  assert_equals: expected "text/html;charset=\" \\\"gbk\\\"\"" but got "text/html;charset= \"gbk\""
+  assert_equals: expected "text/html;charset=\\" \\\\\\"gbk\\\\\\"\\"" but got "text/html;charset= \\"gbk\\""
 [FAIL] text/html;charset=gbk (Blob/File)
   assert_equals: Blob expected "text/html" but got ""
 [FAIL] text/html;charset=gbk (Request/Response)
@@ -82,9 +82,9 @@
 [FAIL] text/html;';charset=gbk (Request/Response)
   assert_equals: expected "text/html;charset=gbk" but got "text/html;';charset=gbk"
 [FAIL] text/html;";charset=gbk (Blob/File)
-  assert_equals: Blob expected "text/html;charset=gbk" but got "text/html;\";charset=gbk"
+  assert_equals: Blob expected "text/html;charset=gbk" but got "text/html;\\";charset=gbk"
 [FAIL] text/html;";charset=gbk (Request/Response)
-  assert_equals: expected "text/html;charset=gbk" but got "text/html;\";charset=gbk"
+  assert_equals: expected "text/html;charset=gbk" but got "text/html;\\";charset=gbk"
 [FAIL] text/html ; ; charset=gbk (Blob/File)
   assert_equals: Blob expected "text/html;charset=gbk" but got "text/html ; ; charset=gbk"
 [FAIL] text/html ; ; charset=gbk (Request/Response)
@@ -102,45 +102,45 @@
 [FAIL] text/html;charset=";charset=foo";charset=GBK (Request/Response)
   assert_equals: expected "text/html;charset=GBK" but got ""
 [FAIL] text/html;charset="gbk" (Blob/File)
-  assert_equals: Blob expected "text/html;charset=gbk" but got "text/html;charset=\"gbk\""
+  assert_equals: Blob expected "text/html;charset=gbk" but got "text/html;charset=\\"gbk\\""
 [FAIL] text/html;charset="gbk" (Request/Response)
-  assert_equals: expected "text/html;charset=gbk" but got "text/html;charset=\"gbk\""
+  assert_equals: expected "text/html;charset=gbk" but got "text/html;charset=\\"gbk\\""
 [FAIL] text/html;charset="gbk (Blob/File)
-  assert_equals: Blob expected "text/html;charset=gbk" but got "text/html;charset=\"gbk"
+  assert_equals: Blob expected "text/html;charset=gbk" but got "text/html;charset=\\"gbk"
 [FAIL] text/html;charset="gbk (Request/Response)
-  assert_equals: expected "text/html;charset=gbk" but got "text/html;charset=\"gbk"
+  assert_equals: expected "text/html;charset=gbk" but got "text/html;charset=\\"gbk"
 [FAIL] text/html;charset=gbk" (Blob/File)
-  assert_equals: Blob expected "text/html;charset=\"gbk\\\"\"" but got "text/html;charset=gbk\""
+  assert_equals: Blob expected "text/html;charset=\\"gbk\\\\\\"\\"" but got "text/html;charset=gbk\\""
 [FAIL] text/html;charset=gbk" (Request/Response)
-  assert_equals: expected "text/html;charset=\"gbk\\\"\"" but got "text/html;charset=gbk\""
+  assert_equals: expected "text/html;charset=\\"gbk\\\\\\"\\"" but got "text/html;charset=gbk\\""
 [PASS] text/html;charset=" gbk" (Blob/File)
 [PASS] text/html;charset=" gbk" (Request/Response)
 [PASS] text/html;charset="gbk " (Blob/File)
 [PASS] text/html;charset="gbk " (Request/Response)
-[FAIL] text/html;charset="\ gbk" (Blob/File)
-  assert_equals: Blob expected "text/html;charset=\" gbk\"" but got "text/html;charset=\"\\ gbk\""
-[FAIL] text/html;charset="\ gbk" (Request/Response)
-  assert_equals: expected "text/html;charset=\" gbk\"" but got "text/html;charset=\"\\ gbk\""
-[FAIL] text/html;charset="\g\b\k" (Blob/File)
-  assert_equals: Blob expected "text/html;charset=gbk" but got "text/html;charset=\"\\g\\b\\k\""
-[FAIL] text/html;charset="\g\b\k" (Request/Response)
-  assert_equals: expected "text/html;charset=gbk" but got "text/html;charset=\"\\g\\b\\k\""
+[FAIL] text/html;charset="\\ gbk" (Blob/File)
+  assert_equals: Blob expected "text/html;charset=\\" gbk\\"" but got "text/html;charset=\\"\\\\ gbk\\""
+[FAIL] text/html;charset="\\ gbk" (Request/Response)
+  assert_equals: expected "text/html;charset=\\" gbk\\"" but got "text/html;charset=\\"\\\\ gbk\\""
+[FAIL] text/html;charset="\\g\\b\\k" (Blob/File)
+  assert_equals: Blob expected "text/html;charset=gbk" but got "text/html;charset=\\"\\\\g\\\\b\\\\k\\""
+[FAIL] text/html;charset="\\g\\b\\k" (Request/Response)
+  assert_equals: expected "text/html;charset=gbk" but got "text/html;charset=\\"\\\\g\\\\b\\\\k\\""
 [FAIL] text/html;charset="gbk"x (Blob/File)
-  assert_equals: Blob expected "text/html;charset=gbk" but got "text/html;charset=\"gbk\"x"
+  assert_equals: Blob expected "text/html;charset=gbk" but got "text/html;charset=\\"gbk\\"x"
 [FAIL] text/html;charset="gbk"x (Request/Response)
-  assert_equals: expected "text/html;charset=gbk" but got "text/html;charset=\"gbk\"x"
+  assert_equals: expected "text/html;charset=gbk" but got "text/html;charset=\\"gbk\\"x"
 [FAIL] text/html;charset="";charset=GBK (Blob/File)
-  assert_equals: Blob expected "text/html;charset=\"\"" but got "text/html;charset=\"\";charset=gbk"
+  assert_equals: Blob expected "text/html;charset=\\"\\"" but got "text/html;charset=\\"\\";charset=gbk"
 [FAIL] text/html;charset="";charset=GBK (Request/Response)
-  assert_equals: expected "text/html;charset=\"\"" but got "text/html;charset=\"\";charset=gbk"
+  assert_equals: expected "text/html;charset=\\"\\"" but got "text/html;charset=\\"\\";charset=gbk"
 [FAIL] text/html;charset=";charset=GBK (Blob/File)
-  assert_equals: Blob expected "text/html;charset=\";charset=GBK\"" but got "text/html;charset=\";charset=gbk"
+  assert_equals: Blob expected "text/html;charset=\\";charset=GBK\\"" but got "text/html;charset=\\";charset=gbk"
 [FAIL] text/html;charset=";charset=GBK (Request/Response)
-  assert_equals: expected "text/html;charset=\";charset=GBK\"" but got "text/html;charset=\";charset=gbk"
+  assert_equals: expected "text/html;charset=\\";charset=GBK\\"" but got "text/html;charset=\\";charset=gbk"
 [FAIL] text/html;charset={gbk} (Blob/File)
-  assert_equals: Blob expected "text/html;charset=\"{gbk}\"" but got "text/html;charset={gbk}"
+  assert_equals: Blob expected "text/html;charset=\\"{gbk}\\"" but got "text/html;charset={gbk}"
 [FAIL] text/html;charset={gbk} (Request/Response)
-  assert_equals: expected "text/html;charset=\"{gbk}\"" but got "text/html;charset={gbk}"
+  assert_equals: expected "text/html;charset=\\"{gbk}\\"" but got "text/html;charset={gbk}"
 [PASS] text/html;0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789=x;charset=gbk (Blob/File)
 [PASS] text/html;0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789=x;charset=gbk (Request/Response)
 [PASS] 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789/0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 (Blob/File)
@@ -152,25 +152,25 @@
 [PASS] text/html;valid=";";foo=bar (Blob/File)
 [PASS] text/html;valid=";";foo=bar (Request/Response)
 [FAIL] text/html;in]valid=";asd=foo";foo=bar (Blob/File)
-  assert_equals: Blob expected "text/html;foo=bar" but got "text/html;in]valid=\";asd=foo\";foo=bar"
+  assert_equals: Blob expected "text/html;foo=bar" but got "text/html;in]valid=\\";asd=foo\\";foo=bar"
 [FAIL] text/html;in]valid=";asd=foo";foo=bar (Request/Response)
-  assert_equals: expected "text/html;foo=bar" but got "text/html;in]valid=\";asd=foo\";foo=bar"
+  assert_equals: expected "text/html;foo=bar" but got "text/html;in]valid=\\";asd=foo\\";foo=bar"
 [FAIL] !#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz;!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz=!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz (Blob/File)
   assert_equals: Blob expected "!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz/!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz;!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz=!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" but got "!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz/!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz;!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz=!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"
 [FAIL] !#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz;!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz=!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz (Request/Response)
   assert_equals: expected "!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz/!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz;!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz=!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" but got "!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz/!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz;!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz=!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"
-[FAIL] x/x;x="	 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ" (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"\t !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"" but got ""
-[FAIL] x/x;x="	 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ" (Request/Response)
-  assert_equals: expected "x/x;x=\"\t !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"" but got ""
+[FAIL] x/x;x="	 !\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ" (Blob/File)
+  assert_equals: Blob expected "x/x;x=\\"\\t !\\\\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\\"" but got ""
+[FAIL] x/x;x="	 !\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ" (Request/Response)
+  assert_equals: expected "x/x;x=\\"\\t !\\\\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\\"" but got ""
 [FAIL] x/x;test (Blob/File)
   assert_equals: Blob expected "x/x" but got "x/x;test"
 [FAIL] x/x;test (Request/Response)
   assert_equals: expected "x/x" but got "x/x;test"
-[FAIL] x/x;test="\ (Blob/File)
-  assert_equals: Blob expected "x/x;test=\"\\\\\"" but got "x/x;test=\"\\"
-[FAIL] x/x;test="\ (Request/Response)
-  assert_equals: expected "x/x;test=\"\\\\\"" but got "x/x;test=\"\\"
+[FAIL] x/x;test="\\ (Blob/File)
+  assert_equals: Blob expected "x/x;test=\\"\\\\\\\\\\"" but got "x/x;test=\\"\\\\"
+[FAIL] x/x;test="\\ (Request/Response)
+  assert_equals: expected "x/x;test=\\"\\\\\\\\\\"" but got "x/x;test=\\"\\\\"
 [FAIL] x/x;x=  (Blob/File)
   assert_equals: Blob expected "x/x" but got "x/x;x= "
 [FAIL] x/x;x=	 (Blob/File)
@@ -184,9 +184,9 @@
   assert_equals: Blob expected "x/x;x=x" but got ""
 [PASS] x/x;\n\r	 x=x\n\r	 ;x=y (Request/Response)
 [FAIL] text/html;test=ÿ;charset=gbk (Blob/File)
-  assert_equals: Blob expected "text/html;test=\"ÿ\";charset=gbk" but got ""
+  assert_equals: Blob expected "text/html;test=\\"ÿ\\";charset=gbk" but got ""
 [FAIL] text/html;test=ÿ;charset=gbk (Request/Response)
-  assert_equals: expected "text/html;test=\"ÿ\";charset=gbk" but got ""
+  assert_equals: expected "text/html;test=\\"ÿ\\";charset=gbk" but got ""
 [FAIL] x/x;test=�;x=x (Blob/File)
   assert_equals: Blob expected "x/x;x=x" but got ""
 [PASS] x/x;test=�;x=x (Request/Response)
@@ -248,9 +248,9 @@
 [FAIL] text/ html (Request/Response)
   assert_equals: expected "" but got "text/ html"
 [FAIL] "text/html" (Blob/File)
-  assert_equals: Blob expected "" but got "\"text/html\""
+  assert_equals: Blob expected "" but got "\\"text/html\\""
 [FAIL] "text/html" (Request/Response)
-  assert_equals: expected "" but got "\"text/html\""
+  assert_equals: expected "" but got "\\"text/html\\""
 [PASS] \0/x (Blob/File)
 [PASS] \0/x (Request/Response)
 [PASS] x/\0 (Blob/File)
@@ -749,17 +749,17 @@
 [FAIL] x/x; =x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x; =x;bonus=x"
 [FAIL] "/x (Blob/File)
-  assert_equals: Blob expected "" but got "\"/x"
+  assert_equals: Blob expected "" but got "\\"/x"
 [FAIL] "/x (Request/Response)
-  assert_equals: expected "" but got "\"/x"
+  assert_equals: expected "" but got "\\"/x"
 [FAIL] x/" (Blob/File)
-  assert_equals: Blob expected "" but got "x/\""
+  assert_equals: Blob expected "" but got "x/\\""
 [FAIL] x/" (Request/Response)
-  assert_equals: expected "" but got "x/\""
+  assert_equals: expected "" but got "x/\\""
 [FAIL] x/x;"=x;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;bonus=x" but got "x/x;\"=x;bonus=x"
+  assert_equals: Blob expected "x/x;bonus=x" but got "x/x;\\"=x;bonus=x"
 [FAIL] x/x;"=x;bonus=x (Request/Response)
-  assert_equals: expected "x/x;bonus=x" but got "x/x;\"=x;bonus=x"
+  assert_equals: expected "x/x;bonus=x" but got "x/x;\\"=x;bonus=x"
 [FAIL] (/x (Blob/File)
   assert_equals: Blob expected "" but got "(/x"
 [FAIL] (/x (Request/Response)
@@ -773,9 +773,9 @@
 [FAIL] x/x;(=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;(=x;bonus=x"
 [FAIL] x/x;x=(;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"(\";bonus=x" but got "x/x;x=(;bonus=x"
+  assert_equals: Blob expected "x/x;x=\\"(\\";bonus=x" but got "x/x;x=(;bonus=x"
 [FAIL] x/x;x=(;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"(\";bonus=x" but got "x/x;x=(;bonus=x"
+  assert_equals: expected "x/x;x=\\"(\\";bonus=x" but got "x/x;x=(;bonus=x"
 [PASS] x/x;x="(";bonus=x (Blob/File)
 [PASS] x/x;x="(";bonus=x (Request/Response)
 [FAIL] )/x (Blob/File)
@@ -791,9 +791,9 @@
 [FAIL] x/x;)=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;)=x;bonus=x"
 [FAIL] x/x;x=);bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\")\";bonus=x" but got "x/x;x=);bonus=x"
+  assert_equals: Blob expected "x/x;x=\\")\\";bonus=x" but got "x/x;x=);bonus=x"
 [FAIL] x/x;x=);bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\")\";bonus=x" but got "x/x;x=);bonus=x"
+  assert_equals: expected "x/x;x=\\")\\";bonus=x" but got "x/x;x=);bonus=x"
 [PASS] x/x;x=")";bonus=x (Blob/File)
 [PASS] x/x;x=")";bonus=x (Request/Response)
 [FAIL] ,/x (Blob/File)
@@ -809,9 +809,9 @@
 [FAIL] x/x;,=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;,=x;bonus=x"
 [FAIL] x/x;x=,;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\",\";bonus=x" but got "x/x;x=,;bonus=x"
+  assert_equals: Blob expected "x/x;x=\\",\\";bonus=x" but got "x/x;x=,;bonus=x"
 [FAIL] x/x;x=,;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\",\";bonus=x" but got "x/x;x=,;bonus=x"
+  assert_equals: expected "x/x;x=\\",\\";bonus=x" but got "x/x;x=,;bonus=x"
 [PASS] x/x;x=",";bonus=x (Blob/File)
 [PASS] x/x;x=",";bonus=x (Request/Response)
 [FAIL] x/x;/=x;bonus=x (Blob/File)
@@ -819,9 +819,9 @@
 [FAIL] x/x;/=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;/=x;bonus=x"
 [FAIL] x/x;x=/;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"/\";bonus=x" but got "x/x;x=/;bonus=x"
+  assert_equals: Blob expected "x/x;x=\\"/\\";bonus=x" but got "x/x;x=/;bonus=x"
 [FAIL] x/x;x=/;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"/\";bonus=x" but got "x/x;x=/;bonus=x"
+  assert_equals: expected "x/x;x=\\"/\\";bonus=x" but got "x/x;x=/;bonus=x"
 [PASS] x/x;x="/";bonus=x (Blob/File)
 [PASS] x/x;x="/";bonus=x (Request/Response)
 [FAIL] :/x (Blob/File)
@@ -837,9 +837,9 @@
 [FAIL] x/x;:=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;:=x;bonus=x"
 [FAIL] x/x;x=:;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\":\";bonus=x" but got "x/x;x=:;bonus=x"
+  assert_equals: Blob expected "x/x;x=\\":\\";bonus=x" but got "x/x;x=:;bonus=x"
 [FAIL] x/x;x=:;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\":\";bonus=x" but got "x/x;x=:;bonus=x"
+  assert_equals: expected "x/x;x=\\":\\";bonus=x" but got "x/x;x=:;bonus=x"
 [PASS] x/x;x=":";bonus=x (Blob/File)
 [PASS] x/x;x=":";bonus=x (Request/Response)
 [FAIL] ;/x (Blob/File)
@@ -863,9 +863,9 @@
 [FAIL] x/x;<=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;<=x;bonus=x"
 [FAIL] x/x;x=<;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"<\";bonus=x" but got "x/x;x=<;bonus=x"
+  assert_equals: Blob expected "x/x;x=\\"<\\";bonus=x" but got "x/x;x=<;bonus=x"
 [FAIL] x/x;x=<;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"<\";bonus=x" but got "x/x;x=<;bonus=x"
+  assert_equals: expected "x/x;x=\\"<\\";bonus=x" but got "x/x;x=<;bonus=x"
 [PASS] x/x;x="<";bonus=x (Blob/File)
 [PASS] x/x;x="<";bonus=x (Request/Response)
 [FAIL] =/x (Blob/File)
@@ -877,9 +877,9 @@
 [FAIL] x/= (Request/Response)
   assert_equals: expected "" but got "x/="
 [FAIL] x/x;x==;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"=\";bonus=x" but got "x/x;x==;bonus=x"
+  assert_equals: Blob expected "x/x;x=\\"=\\";bonus=x" but got "x/x;x==;bonus=x"
 [FAIL] x/x;x==;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"=\";bonus=x" but got "x/x;x==;bonus=x"
+  assert_equals: expected "x/x;x=\\"=\\";bonus=x" but got "x/x;x==;bonus=x"
 [PASS] x/x;x="=";bonus=x (Blob/File)
 [PASS] x/x;x="=";bonus=x (Request/Response)
 [FAIL] >/x (Blob/File)
@@ -895,9 +895,9 @@
 [FAIL] x/x;>=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;>=x;bonus=x"
 [FAIL] x/x;x=>;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\">\";bonus=x" but got "x/x;x=>;bonus=x"
+  assert_equals: Blob expected "x/x;x=\\">\\";bonus=x" but got "x/x;x=>;bonus=x"
 [FAIL] x/x;x=>;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\">\";bonus=x" but got "x/x;x=>;bonus=x"
+  assert_equals: expected "x/x;x=\\">\\";bonus=x" but got "x/x;x=>;bonus=x"
 [PASS] x/x;x=">";bonus=x (Blob/File)
 [PASS] x/x;x=">";bonus=x (Request/Response)
 [FAIL] ?/x (Blob/File)
@@ -913,9 +913,9 @@
 [FAIL] x/x;?=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;?=x;bonus=x"
 [FAIL] x/x;x=?;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"?\";bonus=x" but got "x/x;x=?;bonus=x"
+  assert_equals: Blob expected "x/x;x=\\"?\\";bonus=x" but got "x/x;x=?;bonus=x"
 [FAIL] x/x;x=?;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"?\";bonus=x" but got "x/x;x=?;bonus=x"
+  assert_equals: expected "x/x;x=\\"?\\";bonus=x" but got "x/x;x=?;bonus=x"
 [PASS] x/x;x="?";bonus=x (Blob/File)
 [PASS] x/x;x="?";bonus=x (Request/Response)
 [FAIL] @/x (Blob/File)
@@ -931,9 +931,9 @@
 [FAIL] x/x;@=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;@=x;bonus=x"
 [FAIL] x/x;x=@;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"@\";bonus=x" but got "x/x;x=@;bonus=x"
+  assert_equals: Blob expected "x/x;x=\\"@\\";bonus=x" but got "x/x;x=@;bonus=x"
 [FAIL] x/x;x=@;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"@\";bonus=x" but got "x/x;x=@;bonus=x"
+  assert_equals: expected "x/x;x=\\"@\\";bonus=x" but got "x/x;x=@;bonus=x"
 [PASS] x/x;x="@";bonus=x (Blob/File)
 [PASS] x/x;x="@";bonus=x (Request/Response)
 [FAIL] [/x (Blob/File)
@@ -949,23 +949,23 @@
 [FAIL] x/x;[=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;[=x;bonus=x"
 [FAIL] x/x;x=[;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"[\";bonus=x" but got "x/x;x=[;bonus=x"
+  assert_equals: Blob expected "x/x;x=\\"[\\";bonus=x" but got "x/x;x=[;bonus=x"
 [FAIL] x/x;x=[;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"[\";bonus=x" but got "x/x;x=[;bonus=x"
+  assert_equals: expected "x/x;x=\\"[\\";bonus=x" but got "x/x;x=[;bonus=x"
 [PASS] x/x;x="[";bonus=x (Blob/File)
 [PASS] x/x;x="[";bonus=x (Request/Response)
-[FAIL] \/x (Blob/File)
-  assert_equals: Blob expected "" but got "\\/x"
-[FAIL] \/x (Request/Response)
-  assert_equals: expected "" but got "\\/x"
-[FAIL] x/\ (Blob/File)
-  assert_equals: Blob expected "" but got "x/\\"
-[FAIL] x/\ (Request/Response)
-  assert_equals: expected "" but got "x/\\"
-[FAIL] x/x;\=x;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;bonus=x" but got "x/x;\\=x;bonus=x"
-[FAIL] x/x;\=x;bonus=x (Request/Response)
-  assert_equals: expected "x/x;bonus=x" but got "x/x;\\=x;bonus=x"
+[FAIL] \\/x (Blob/File)
+  assert_equals: Blob expected "" but got "\\\\/x"
+[FAIL] \\/x (Request/Response)
+  assert_equals: expected "" but got "\\\\/x"
+[FAIL] x/\\ (Blob/File)
+  assert_equals: Blob expected "" but got "x/\\\\"
+[FAIL] x/\\ (Request/Response)
+  assert_equals: expected "" but got "x/\\\\"
+[FAIL] x/x;\\=x;bonus=x (Blob/File)
+  assert_equals: Blob expected "x/x;bonus=x" but got "x/x;\\\\=x;bonus=x"
+[FAIL] x/x;\\=x;bonus=x (Request/Response)
+  assert_equals: expected "x/x;bonus=x" but got "x/x;\\\\=x;bonus=x"
 [FAIL] ]/x (Blob/File)
   assert_equals: Blob expected "" but got "]/x"
 [FAIL] ]/x (Request/Response)
@@ -979,9 +979,9 @@
 [FAIL] x/x;]=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;]=x;bonus=x"
 [FAIL] x/x;x=];bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"]\";bonus=x" but got "x/x;x=];bonus=x"
+  assert_equals: Blob expected "x/x;x=\\"]\\";bonus=x" but got "x/x;x=];bonus=x"
 [FAIL] x/x;x=];bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"]\";bonus=x" but got "x/x;x=];bonus=x"
+  assert_equals: expected "x/x;x=\\"]\\";bonus=x" but got "x/x;x=];bonus=x"
 [PASS] x/x;x="]";bonus=x (Blob/File)
 [PASS] x/x;x="]";bonus=x (Request/Response)
 [FAIL] {/x (Blob/File)
@@ -997,9 +997,9 @@
 [FAIL] x/x;{=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;{=x;bonus=x"
 [FAIL] x/x;x={;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"{\";bonus=x" but got "x/x;x={;bonus=x"
+  assert_equals: Blob expected "x/x;x=\\"{\\";bonus=x" but got "x/x;x={;bonus=x"
 [FAIL] x/x;x={;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"{\";bonus=x" but got "x/x;x={;bonus=x"
+  assert_equals: expected "x/x;x=\\"{\\";bonus=x" but got "x/x;x={;bonus=x"
 [PASS] x/x;x="{";bonus=x (Blob/File)
 [PASS] x/x;x="{";bonus=x (Request/Response)
 [FAIL] }/x (Blob/File)
@@ -1015,9 +1015,9 @@
 [FAIL] x/x;}=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got "x/x;}=x;bonus=x"
 [FAIL] x/x;x=};bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"}\";bonus=x" but got "x/x;x=};bonus=x"
+  assert_equals: Blob expected "x/x;x=\\"}\\";bonus=x" but got "x/x;x=};bonus=x"
 [FAIL] x/x;x=};bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"}\";bonus=x" but got "x/x;x=};bonus=x"
+  assert_equals: expected "x/x;x=\\"}\\";bonus=x" but got "x/x;x=};bonus=x"
 [PASS] x/x;x="}";bonus=x (Blob/File)
 [PASS] x/x;x="}";bonus=x (Request/Response)
 [PASS] /x (Blob/File)
@@ -1045,13 +1045,13 @@
 [FAIL] x/x;€=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=€;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"€\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"€\\";bonus=x" but got ""
 [FAIL] x/x;x=€;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"€\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"€\\";bonus=x" but got ""
 [FAIL] x/x;x="€";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"€\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"€\\";bonus=x" but got ""
 [FAIL] x/x;x="€";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"€\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"€\\";bonus=x" but got ""
 [PASS] /x (Blob/File)
 [PASS] /x (Request/Response)
 [PASS] x/ (Blob/File)
@@ -1061,13 +1061,13 @@
 [FAIL] x/x;=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x=;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x="";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x="";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"\\";bonus=x" but got ""
 [PASS] ‚/x (Blob/File)
 [PASS] ‚/x (Request/Response)
 [PASS] x/‚ (Blob/File)
@@ -1077,13 +1077,13 @@
 [FAIL] x/x;‚=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=‚;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"‚\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"‚\\";bonus=x" but got ""
 [FAIL] x/x;x=‚;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"‚\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"‚\\";bonus=x" but got ""
 [FAIL] x/x;x="‚";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"‚\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"‚\\";bonus=x" but got ""
 [FAIL] x/x;x="‚";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"‚\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"‚\\";bonus=x" but got ""
 [PASS] ƒ/x (Blob/File)
 [PASS] ƒ/x (Request/Response)
 [PASS] x/ƒ (Blob/File)
@@ -1093,13 +1093,13 @@
 [FAIL] x/x;ƒ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ƒ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ƒ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ƒ\\";bonus=x" but got ""
 [FAIL] x/x;x=ƒ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ƒ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ƒ\\";bonus=x" but got ""
 [FAIL] x/x;x="ƒ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ƒ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ƒ\\";bonus=x" but got ""
 [FAIL] x/x;x="ƒ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ƒ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ƒ\\";bonus=x" but got ""
 [PASS] „/x (Blob/File)
 [PASS] „/x (Request/Response)
 [PASS] x/„ (Blob/File)
@@ -1109,13 +1109,13 @@
 [FAIL] x/x;„=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=„;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"„\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"„\\";bonus=x" but got ""
 [FAIL] x/x;x=„;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"„\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"„\\";bonus=x" but got ""
 [FAIL] x/x;x="„";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"„\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"„\\";bonus=x" but got ""
 [FAIL] x/x;x="„";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"„\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"„\\";bonus=x" but got ""
 [PASS] …/x (Blob/File)
 [PASS] …/x (Request/Response)
 [PASS] x/… (Blob/File)
@@ -1125,13 +1125,13 @@
 [FAIL] x/x;…=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=…;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"…\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"…\\";bonus=x" but got ""
 [FAIL] x/x;x=…;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"…\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"…\\";bonus=x" but got ""
 [FAIL] x/x;x="…";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"…\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"…\\";bonus=x" but got ""
 [FAIL] x/x;x="…";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"…\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"…\\";bonus=x" but got ""
 [PASS] †/x (Blob/File)
 [PASS] †/x (Request/Response)
 [PASS] x/† (Blob/File)
@@ -1141,13 +1141,13 @@
 [FAIL] x/x;†=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=†;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"†\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"†\\";bonus=x" but got ""
 [FAIL] x/x;x=†;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"†\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"†\\";bonus=x" but got ""
 [FAIL] x/x;x="†";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"†\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"†\\";bonus=x" but got ""
 [FAIL] x/x;x="†";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"†\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"†\\";bonus=x" but got ""
 [PASS] ‡/x (Blob/File)
 [PASS] ‡/x (Request/Response)
 [PASS] x/‡ (Blob/File)
@@ -1157,13 +1157,13 @@
 [FAIL] x/x;‡=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=‡;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"‡\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"‡\\";bonus=x" but got ""
 [FAIL] x/x;x=‡;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"‡\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"‡\\";bonus=x" but got ""
 [FAIL] x/x;x="‡";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"‡\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"‡\\";bonus=x" but got ""
 [FAIL] x/x;x="‡";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"‡\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"‡\\";bonus=x" but got ""
 [PASS] ˆ/x (Blob/File)
 [PASS] ˆ/x (Request/Response)
 [PASS] x/ˆ (Blob/File)
@@ -1173,13 +1173,13 @@
 [FAIL] x/x;ˆ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ˆ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ˆ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ˆ\\";bonus=x" but got ""
 [FAIL] x/x;x=ˆ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ˆ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ˆ\\";bonus=x" but got ""
 [FAIL] x/x;x="ˆ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ˆ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ˆ\\";bonus=x" but got ""
 [FAIL] x/x;x="ˆ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ˆ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ˆ\\";bonus=x" but got ""
 [PASS] ‰/x (Blob/File)
 [PASS] ‰/x (Request/Response)
 [PASS] x/‰ (Blob/File)
@@ -1189,13 +1189,13 @@
 [FAIL] x/x;‰=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=‰;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"‰\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"‰\\";bonus=x" but got ""
 [FAIL] x/x;x=‰;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"‰\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"‰\\";bonus=x" but got ""
 [FAIL] x/x;x="‰";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"‰\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"‰\\";bonus=x" but got ""
 [FAIL] x/x;x="‰";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"‰\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"‰\\";bonus=x" but got ""
 [PASS] Š/x (Blob/File)
 [PASS] Š/x (Request/Response)
 [PASS] x/Š (Blob/File)
@@ -1205,13 +1205,13 @@
 [FAIL] x/x;Š=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Š;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Š\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Š\\";bonus=x" but got ""
 [FAIL] x/x;x=Š;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Š\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Š\\";bonus=x" but got ""
 [FAIL] x/x;x="Š";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Š\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Š\\";bonus=x" but got ""
 [FAIL] x/x;x="Š";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Š\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Š\\";bonus=x" but got ""
 [PASS] ‹/x (Blob/File)
 [PASS] ‹/x (Request/Response)
 [PASS] x/‹ (Blob/File)
@@ -1221,13 +1221,13 @@
 [FAIL] x/x;‹=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=‹;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"‹\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"‹\\";bonus=x" but got ""
 [FAIL] x/x;x=‹;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"‹\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"‹\\";bonus=x" but got ""
 [FAIL] x/x;x="‹";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"‹\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"‹\\";bonus=x" but got ""
 [FAIL] x/x;x="‹";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"‹\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"‹\\";bonus=x" but got ""
 [PASS] Œ/x (Blob/File)
 [PASS] Œ/x (Request/Response)
 [PASS] x/Œ (Blob/File)
@@ -1237,13 +1237,13 @@
 [FAIL] x/x;Œ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Œ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Œ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Œ\\";bonus=x" but got ""
 [FAIL] x/x;x=Œ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Œ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Œ\\";bonus=x" but got ""
 [FAIL] x/x;x="Œ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Œ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Œ\\";bonus=x" but got ""
 [FAIL] x/x;x="Œ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Œ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Œ\\";bonus=x" but got ""
 [PASS] /x (Blob/File)
 [PASS] /x (Request/Response)
 [PASS] x/ (Blob/File)
@@ -1253,13 +1253,13 @@
 [FAIL] x/x;=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x=;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x="";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x="";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"\\";bonus=x" but got ""
 [PASS] Ž/x (Blob/File)
 [PASS] Ž/x (Request/Response)
 [PASS] x/Ž (Blob/File)
@@ -1269,13 +1269,13 @@
 [FAIL] x/x;Ž=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ž;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ž\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ž\\";bonus=x" but got ""
 [FAIL] x/x;x=Ž;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ž\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ž\\";bonus=x" but got ""
 [FAIL] x/x;x="Ž";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ž\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ž\\";bonus=x" but got ""
 [FAIL] x/x;x="Ž";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ž\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ž\\";bonus=x" but got ""
 [PASS] /x (Blob/File)
 [PASS] /x (Request/Response)
 [PASS] x/ (Blob/File)
@@ -1285,13 +1285,13 @@
 [FAIL] x/x;=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x=;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x="";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x="";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"\\";bonus=x" but got ""
 [PASS] /x (Blob/File)
 [PASS] /x (Request/Response)
 [PASS] x/ (Blob/File)
@@ -1301,13 +1301,13 @@
 [FAIL] x/x;=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x=;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x="";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x="";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"\\";bonus=x" but got ""
 [PASS] ‘/x (Blob/File)
 [PASS] ‘/x (Request/Response)
 [PASS] x/‘ (Blob/File)
@@ -1317,13 +1317,13 @@
 [FAIL] x/x;‘=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=‘;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"‘\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"‘\\";bonus=x" but got ""
 [FAIL] x/x;x=‘;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"‘\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"‘\\";bonus=x" but got ""
 [FAIL] x/x;x="‘";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"‘\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"‘\\";bonus=x" but got ""
 [FAIL] x/x;x="‘";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"‘\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"‘\\";bonus=x" but got ""
 [PASS] ’/x (Blob/File)
 [PASS] ’/x (Request/Response)
 [PASS] x/’ (Blob/File)
@@ -1333,13 +1333,13 @@
 [FAIL] x/x;’=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=’;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"’\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"’\\";bonus=x" but got ""
 [FAIL] x/x;x=’;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"’\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"’\\";bonus=x" but got ""
 [FAIL] x/x;x="’";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"’\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"’\\";bonus=x" but got ""
 [FAIL] x/x;x="’";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"’\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"’\\";bonus=x" but got ""
 [PASS] “/x (Blob/File)
 [PASS] “/x (Request/Response)
 [PASS] x/“ (Blob/File)
@@ -1349,13 +1349,13 @@
 [FAIL] x/x;“=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=“;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"“\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"“\\";bonus=x" but got ""
 [FAIL] x/x;x=“;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"“\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"“\\";bonus=x" but got ""
 [FAIL] x/x;x="“";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"“\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"“\\";bonus=x" but got ""
 [FAIL] x/x;x="“";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"“\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"“\\";bonus=x" but got ""
 [PASS] ”/x (Blob/File)
 [PASS] ”/x (Request/Response)
 [PASS] x/” (Blob/File)
@@ -1365,13 +1365,13 @@
 [FAIL] x/x;”=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=”;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"”\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"”\\";bonus=x" but got ""
 [FAIL] x/x;x=”;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"”\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"”\\";bonus=x" but got ""
 [FAIL] x/x;x="”";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"”\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"”\\";bonus=x" but got ""
 [FAIL] x/x;x="”";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"”\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"”\\";bonus=x" but got ""
 [PASS] •/x (Blob/File)
 [PASS] •/x (Request/Response)
 [PASS] x/• (Blob/File)
@@ -1381,13 +1381,13 @@
 [FAIL] x/x;•=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=•;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"•\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"•\\";bonus=x" but got ""
 [FAIL] x/x;x=•;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"•\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"•\\";bonus=x" but got ""
 [FAIL] x/x;x="•";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"•\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"•\\";bonus=x" but got ""
 [FAIL] x/x;x="•";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"•\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"•\\";bonus=x" but got ""
 [PASS] –/x (Blob/File)
 [PASS] –/x (Request/Response)
 [PASS] x/– (Blob/File)
@@ -1397,13 +1397,13 @@
 [FAIL] x/x;–=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=–;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"–\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"–\\";bonus=x" but got ""
 [FAIL] x/x;x=–;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"–\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"–\\";bonus=x" but got ""
 [FAIL] x/x;x="–";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"–\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"–\\";bonus=x" but got ""
 [FAIL] x/x;x="–";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"–\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"–\\";bonus=x" but got ""
 [PASS] —/x (Blob/File)
 [PASS] —/x (Request/Response)
 [PASS] x/— (Blob/File)
@@ -1413,13 +1413,13 @@
 [FAIL] x/x;—=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=—;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"—\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"—\\";bonus=x" but got ""
 [FAIL] x/x;x=—;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"—\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"—\\";bonus=x" but got ""
 [FAIL] x/x;x="—";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"—\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"—\\";bonus=x" but got ""
 [FAIL] x/x;x="—";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"—\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"—\\";bonus=x" but got ""
 [PASS] ˜/x (Blob/File)
 [PASS] ˜/x (Request/Response)
 [PASS] x/˜ (Blob/File)
@@ -1429,13 +1429,13 @@
 [FAIL] x/x;˜=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=˜;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"˜\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"˜\\";bonus=x" but got ""
 [FAIL] x/x;x=˜;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"˜\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"˜\\";bonus=x" but got ""
 [FAIL] x/x;x="˜";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"˜\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"˜\\";bonus=x" but got ""
 [FAIL] x/x;x="˜";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"˜\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"˜\\";bonus=x" but got ""
 [PASS] ™/x (Blob/File)
 [PASS] ™/x (Request/Response)
 [PASS] x/™ (Blob/File)
@@ -1445,13 +1445,13 @@
 [FAIL] x/x;™=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=™;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"™\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"™\\";bonus=x" but got ""
 [FAIL] x/x;x=™;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"™\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"™\\";bonus=x" but got ""
 [FAIL] x/x;x="™";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"™\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"™\\";bonus=x" but got ""
 [FAIL] x/x;x="™";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"™\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"™\\";bonus=x" but got ""
 [PASS] š/x (Blob/File)
 [PASS] š/x (Request/Response)
 [PASS] x/š (Blob/File)
@@ -1461,13 +1461,13 @@
 [FAIL] x/x;š=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=š;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"š\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"š\\";bonus=x" but got ""
 [FAIL] x/x;x=š;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"š\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"š\\";bonus=x" but got ""
 [FAIL] x/x;x="š";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"š\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"š\\";bonus=x" but got ""
 [FAIL] x/x;x="š";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"š\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"š\\";bonus=x" but got ""
 [PASS] ›/x (Blob/File)
 [PASS] ›/x (Request/Response)
 [PASS] x/› (Blob/File)
@@ -1477,13 +1477,13 @@
 [FAIL] x/x;›=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=›;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"›\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"›\\";bonus=x" but got ""
 [FAIL] x/x;x=›;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"›\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"›\\";bonus=x" but got ""
 [FAIL] x/x;x="›";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"›\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"›\\";bonus=x" but got ""
 [FAIL] x/x;x="›";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"›\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"›\\";bonus=x" but got ""
 [PASS] œ/x (Blob/File)
 [PASS] œ/x (Request/Response)
 [PASS] x/œ (Blob/File)
@@ -1493,13 +1493,13 @@
 [FAIL] x/x;œ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=œ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"œ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"œ\\";bonus=x" but got ""
 [FAIL] x/x;x=œ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"œ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"œ\\";bonus=x" but got ""
 [FAIL] x/x;x="œ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"œ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"œ\\";bonus=x" but got ""
 [FAIL] x/x;x="œ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"œ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"œ\\";bonus=x" but got ""
 [PASS] /x (Blob/File)
 [PASS] /x (Request/Response)
 [PASS] x/ (Blob/File)
@@ -1509,13 +1509,13 @@
 [FAIL] x/x;=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x=;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x="";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"\\";bonus=x" but got ""
 [FAIL] x/x;x="";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"\\";bonus=x" but got ""
 [PASS] ž/x (Blob/File)
 [PASS] ž/x (Request/Response)
 [PASS] x/ž (Blob/File)
@@ -1525,13 +1525,13 @@
 [FAIL] x/x;ž=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ž;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ž\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ž\\";bonus=x" but got ""
 [FAIL] x/x;x=ž;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ž\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ž\\";bonus=x" but got ""
 [FAIL] x/x;x="ž";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ž\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ž\\";bonus=x" but got ""
 [FAIL] x/x;x="ž";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ž\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ž\\";bonus=x" but got ""
 [PASS] Ÿ/x (Blob/File)
 [PASS] Ÿ/x (Request/Response)
 [PASS] x/Ÿ (Blob/File)
@@ -1541,13 +1541,13 @@
 [FAIL] x/x;Ÿ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ÿ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ÿ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ÿ\\";bonus=x" but got ""
 [FAIL] x/x;x=Ÿ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ÿ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ÿ\\";bonus=x" but got ""
 [FAIL] x/x;x="Ÿ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ÿ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ÿ\\";bonus=x" but got ""
 [FAIL] x/x;x="Ÿ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ÿ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ÿ\\";bonus=x" but got ""
 [PASS]  /x (Blob/File)
 [PASS]  /x (Request/Response)
 [PASS] x/  (Blob/File)
@@ -1557,13 +1557,13 @@
 [FAIL] x/x; =x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x= ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\" \";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\" \\";bonus=x" but got ""
 [FAIL] x/x;x= ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\" \";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\" \\";bonus=x" but got ""
 [FAIL] x/x;x=" ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\" \";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\" \\";bonus=x" but got ""
 [FAIL] x/x;x=" ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\" \";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\" \\";bonus=x" but got ""
 [PASS] ¡/x (Blob/File)
 [PASS] ¡/x (Request/Response)
 [PASS] x/¡ (Blob/File)
@@ -1573,13 +1573,13 @@
 [FAIL] x/x;¡=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¡;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¡\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¡\\";bonus=x" but got ""
 [FAIL] x/x;x=¡;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¡\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¡\\";bonus=x" but got ""
 [FAIL] x/x;x="¡";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¡\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¡\\";bonus=x" but got ""
 [FAIL] x/x;x="¡";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¡\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¡\\";bonus=x" but got ""
 [PASS] ¢/x (Blob/File)
 [PASS] ¢/x (Request/Response)
 [PASS] x/¢ (Blob/File)
@@ -1589,13 +1589,13 @@
 [FAIL] x/x;¢=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¢;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¢\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¢\\";bonus=x" but got ""
 [FAIL] x/x;x=¢;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¢\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¢\\";bonus=x" but got ""
 [FAIL] x/x;x="¢";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¢\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¢\\";bonus=x" but got ""
 [FAIL] x/x;x="¢";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¢\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¢\\";bonus=x" but got ""
 [PASS] £/x (Blob/File)
 [PASS] £/x (Request/Response)
 [PASS] x/£ (Blob/File)
@@ -1605,13 +1605,13 @@
 [FAIL] x/x;£=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=£;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"£\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"£\\";bonus=x" but got ""
 [FAIL] x/x;x=£;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"£\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"£\\";bonus=x" but got ""
 [FAIL] x/x;x="£";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"£\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"£\\";bonus=x" but got ""
 [FAIL] x/x;x="£";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"£\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"£\\";bonus=x" but got ""
 [PASS] ¤/x (Blob/File)
 [PASS] ¤/x (Request/Response)
 [PASS] x/¤ (Blob/File)
@@ -1621,13 +1621,13 @@
 [FAIL] x/x;¤=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¤;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¤\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¤\\";bonus=x" but got ""
 [FAIL] x/x;x=¤;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¤\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¤\\";bonus=x" but got ""
 [FAIL] x/x;x="¤";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¤\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¤\\";bonus=x" but got ""
 [FAIL] x/x;x="¤";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¤\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¤\\";bonus=x" but got ""
 [PASS] ¥/x (Blob/File)
 [PASS] ¥/x (Request/Response)
 [PASS] x/¥ (Blob/File)
@@ -1637,13 +1637,13 @@
 [FAIL] x/x;¥=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¥;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¥\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¥\\";bonus=x" but got ""
 [FAIL] x/x;x=¥;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¥\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¥\\";bonus=x" but got ""
 [FAIL] x/x;x="¥";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¥\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¥\\";bonus=x" but got ""
 [FAIL] x/x;x="¥";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¥\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¥\\";bonus=x" but got ""
 [PASS] ¦/x (Blob/File)
 [PASS] ¦/x (Request/Response)
 [PASS] x/¦ (Blob/File)
@@ -1653,13 +1653,13 @@
 [FAIL] x/x;¦=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¦;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¦\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¦\\";bonus=x" but got ""
 [FAIL] x/x;x=¦;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¦\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¦\\";bonus=x" but got ""
 [FAIL] x/x;x="¦";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¦\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¦\\";bonus=x" but got ""
 [FAIL] x/x;x="¦";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¦\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¦\\";bonus=x" but got ""
 [PASS] §/x (Blob/File)
 [PASS] §/x (Request/Response)
 [PASS] x/§ (Blob/File)
@@ -1669,13 +1669,13 @@
 [FAIL] x/x;§=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=§;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"§\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"§\\";bonus=x" but got ""
 [FAIL] x/x;x=§;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"§\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"§\\";bonus=x" but got ""
 [FAIL] x/x;x="§";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"§\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"§\\";bonus=x" but got ""
 [FAIL] x/x;x="§";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"§\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"§\\";bonus=x" but got ""
 [PASS] ¨/x (Blob/File)
 [PASS] ¨/x (Request/Response)
 [PASS] x/¨ (Blob/File)
@@ -1685,13 +1685,13 @@
 [FAIL] x/x;¨=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¨;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¨\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¨\\";bonus=x" but got ""
 [FAIL] x/x;x=¨;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¨\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¨\\";bonus=x" but got ""
 [FAIL] x/x;x="¨";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¨\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¨\\";bonus=x" but got ""
 [FAIL] x/x;x="¨";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¨\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¨\\";bonus=x" but got ""
 [PASS] ©/x (Blob/File)
 [PASS] ©/x (Request/Response)
 [PASS] x/© (Blob/File)
@@ -1701,13 +1701,13 @@
 [FAIL] x/x;©=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=©;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"©\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"©\\";bonus=x" but got ""
 [FAIL] x/x;x=©;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"©\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"©\\";bonus=x" but got ""
 [FAIL] x/x;x="©";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"©\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"©\\";bonus=x" but got ""
 [FAIL] x/x;x="©";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"©\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"©\\";bonus=x" but got ""
 [PASS] ª/x (Blob/File)
 [PASS] ª/x (Request/Response)
 [PASS] x/ª (Blob/File)
@@ -1717,13 +1717,13 @@
 [FAIL] x/x;ª=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ª;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ª\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ª\\";bonus=x" but got ""
 [FAIL] x/x;x=ª;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ª\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ª\\";bonus=x" but got ""
 [FAIL] x/x;x="ª";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ª\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ª\\";bonus=x" but got ""
 [FAIL] x/x;x="ª";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ª\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ª\\";bonus=x" but got ""
 [PASS] «/x (Blob/File)
 [PASS] «/x (Request/Response)
 [PASS] x/« (Blob/File)
@@ -1733,13 +1733,13 @@
 [FAIL] x/x;«=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=«;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"«\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"«\\";bonus=x" but got ""
 [FAIL] x/x;x=«;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"«\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"«\\";bonus=x" but got ""
 [FAIL] x/x;x="«";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"«\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"«\\";bonus=x" but got ""
 [FAIL] x/x;x="«";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"«\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"«\\";bonus=x" but got ""
 [PASS] ¬/x (Blob/File)
 [PASS] ¬/x (Request/Response)
 [PASS] x/¬ (Blob/File)
@@ -1749,13 +1749,13 @@
 [FAIL] x/x;¬=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¬;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¬\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¬\\";bonus=x" but got ""
 [FAIL] x/x;x=¬;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¬\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¬\\";bonus=x" but got ""
 [FAIL] x/x;x="¬";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¬\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¬\\";bonus=x" but got ""
 [FAIL] x/x;x="¬";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¬\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¬\\";bonus=x" but got ""
 [PASS] ­/x (Blob/File)
 [PASS] ­/x (Request/Response)
 [PASS] x/­ (Blob/File)
@@ -1765,13 +1765,13 @@
 [FAIL] x/x;­=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=­;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"­\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"­\\";bonus=x" but got ""
 [FAIL] x/x;x=­;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"­\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"­\\";bonus=x" but got ""
 [FAIL] x/x;x="­";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"­\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"­\\";bonus=x" but got ""
 [FAIL] x/x;x="­";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"­\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"­\\";bonus=x" but got ""
 [PASS] ®/x (Blob/File)
 [PASS] ®/x (Request/Response)
 [PASS] x/® (Blob/File)
@@ -1781,13 +1781,13 @@
 [FAIL] x/x;®=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=®;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"®\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"®\\";bonus=x" but got ""
 [FAIL] x/x;x=®;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"®\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"®\\";bonus=x" but got ""
 [FAIL] x/x;x="®";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"®\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"®\\";bonus=x" but got ""
 [FAIL] x/x;x="®";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"®\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"®\\";bonus=x" but got ""
 [PASS] ¯/x (Blob/File)
 [PASS] ¯/x (Request/Response)
 [PASS] x/¯ (Blob/File)
@@ -1797,13 +1797,13 @@
 [FAIL] x/x;¯=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¯;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¯\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¯\\";bonus=x" but got ""
 [FAIL] x/x;x=¯;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¯\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¯\\";bonus=x" but got ""
 [FAIL] x/x;x="¯";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¯\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¯\\";bonus=x" but got ""
 [FAIL] x/x;x="¯";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¯\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¯\\";bonus=x" but got ""
 [PASS] °/x (Blob/File)
 [PASS] °/x (Request/Response)
 [PASS] x/° (Blob/File)
@@ -1813,13 +1813,13 @@
 [FAIL] x/x;°=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=°;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"°\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"°\\";bonus=x" but got ""
 [FAIL] x/x;x=°;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"°\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"°\\";bonus=x" but got ""
 [FAIL] x/x;x="°";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"°\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"°\\";bonus=x" but got ""
 [FAIL] x/x;x="°";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"°\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"°\\";bonus=x" but got ""
 [PASS] ±/x (Blob/File)
 [PASS] ±/x (Request/Response)
 [PASS] x/± (Blob/File)
@@ -1829,13 +1829,13 @@
 [FAIL] x/x;±=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=±;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"±\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"±\\";bonus=x" but got ""
 [FAIL] x/x;x=±;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"±\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"±\\";bonus=x" but got ""
 [FAIL] x/x;x="±";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"±\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"±\\";bonus=x" but got ""
 [FAIL] x/x;x="±";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"±\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"±\\";bonus=x" but got ""
 [PASS] ²/x (Blob/File)
 [PASS] ²/x (Request/Response)
 [PASS] x/² (Blob/File)
@@ -1845,13 +1845,13 @@
 [FAIL] x/x;²=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=²;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"²\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"²\\";bonus=x" but got ""
 [FAIL] x/x;x=²;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"²\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"²\\";bonus=x" but got ""
 [FAIL] x/x;x="²";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"²\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"²\\";bonus=x" but got ""
 [FAIL] x/x;x="²";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"²\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"²\\";bonus=x" but got ""
 [PASS] ³/x (Blob/File)
 [PASS] ³/x (Request/Response)
 [PASS] x/³ (Blob/File)
@@ -1861,13 +1861,13 @@
 [FAIL] x/x;³=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=³;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"³\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"³\\";bonus=x" but got ""
 [FAIL] x/x;x=³;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"³\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"³\\";bonus=x" but got ""
 [FAIL] x/x;x="³";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"³\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"³\\";bonus=x" but got ""
 [FAIL] x/x;x="³";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"³\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"³\\";bonus=x" but got ""
 [PASS] ´/x (Blob/File)
 [PASS] ´/x (Request/Response)
 [PASS] x/´ (Blob/File)
@@ -1877,13 +1877,13 @@
 [FAIL] x/x;´=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=´;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"´\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"´\\";bonus=x" but got ""
 [FAIL] x/x;x=´;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"´\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"´\\";bonus=x" but got ""
 [FAIL] x/x;x="´";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"´\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"´\\";bonus=x" but got ""
 [FAIL] x/x;x="´";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"´\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"´\\";bonus=x" but got ""
 [PASS] µ/x (Blob/File)
 [PASS] µ/x (Request/Response)
 [PASS] x/µ (Blob/File)
@@ -1893,13 +1893,13 @@
 [FAIL] x/x;µ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=µ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"µ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"µ\\";bonus=x" but got ""
 [FAIL] x/x;x=µ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"µ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"µ\\";bonus=x" but got ""
 [FAIL] x/x;x="µ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"µ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"µ\\";bonus=x" but got ""
 [FAIL] x/x;x="µ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"µ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"µ\\";bonus=x" but got ""
 [PASS] ¶/x (Blob/File)
 [PASS] ¶/x (Request/Response)
 [PASS] x/¶ (Blob/File)
@@ -1909,13 +1909,13 @@
 [FAIL] x/x;¶=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¶;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¶\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¶\\";bonus=x" but got ""
 [FAIL] x/x;x=¶;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¶\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¶\\";bonus=x" but got ""
 [FAIL] x/x;x="¶";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¶\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¶\\";bonus=x" but got ""
 [FAIL] x/x;x="¶";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¶\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¶\\";bonus=x" but got ""
 [PASS] ·/x (Blob/File)
 [PASS] ·/x (Request/Response)
 [PASS] x/· (Blob/File)
@@ -1925,13 +1925,13 @@
 [FAIL] x/x;·=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=·;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"·\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"·\\";bonus=x" but got ""
 [FAIL] x/x;x=·;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"·\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"·\\";bonus=x" but got ""
 [FAIL] x/x;x="·";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"·\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"·\\";bonus=x" but got ""
 [FAIL] x/x;x="·";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"·\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"·\\";bonus=x" but got ""
 [PASS] ¸/x (Blob/File)
 [PASS] ¸/x (Request/Response)
 [PASS] x/¸ (Blob/File)
@@ -1941,13 +1941,13 @@
 [FAIL] x/x;¸=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¸;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¸\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¸\\";bonus=x" but got ""
 [FAIL] x/x;x=¸;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¸\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¸\\";bonus=x" but got ""
 [FAIL] x/x;x="¸";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¸\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¸\\";bonus=x" but got ""
 [FAIL] x/x;x="¸";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¸\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¸\\";bonus=x" but got ""
 [PASS] ¹/x (Blob/File)
 [PASS] ¹/x (Request/Response)
 [PASS] x/¹ (Blob/File)
@@ -1957,13 +1957,13 @@
 [FAIL] x/x;¹=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¹;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¹\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¹\\";bonus=x" but got ""
 [FAIL] x/x;x=¹;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¹\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¹\\";bonus=x" but got ""
 [FAIL] x/x;x="¹";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¹\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¹\\";bonus=x" but got ""
 [FAIL] x/x;x="¹";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¹\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¹\\";bonus=x" but got ""
 [PASS] º/x (Blob/File)
 [PASS] º/x (Request/Response)
 [PASS] x/º (Blob/File)
@@ -1973,13 +1973,13 @@
 [FAIL] x/x;º=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=º;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"º\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"º\\";bonus=x" but got ""
 [FAIL] x/x;x=º;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"º\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"º\\";bonus=x" but got ""
 [FAIL] x/x;x="º";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"º\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"º\\";bonus=x" but got ""
 [FAIL] x/x;x="º";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"º\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"º\\";bonus=x" but got ""
 [PASS] »/x (Blob/File)
 [PASS] »/x (Request/Response)
 [PASS] x/» (Blob/File)
@@ -1989,13 +1989,13 @@
 [FAIL] x/x;»=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=»;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"»\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"»\\";bonus=x" but got ""
 [FAIL] x/x;x=»;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"»\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"»\\";bonus=x" but got ""
 [FAIL] x/x;x="»";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"»\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"»\\";bonus=x" but got ""
 [FAIL] x/x;x="»";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"»\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"»\\";bonus=x" but got ""
 [PASS] ¼/x (Blob/File)
 [PASS] ¼/x (Request/Response)
 [PASS] x/¼ (Blob/File)
@@ -2005,13 +2005,13 @@
 [FAIL] x/x;¼=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¼;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¼\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¼\\";bonus=x" but got ""
 [FAIL] x/x;x=¼;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¼\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¼\\";bonus=x" but got ""
 [FAIL] x/x;x="¼";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¼\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¼\\";bonus=x" but got ""
 [FAIL] x/x;x="¼";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¼\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¼\\";bonus=x" but got ""
 [PASS] ½/x (Blob/File)
 [PASS] ½/x (Request/Response)
 [PASS] x/½ (Blob/File)
@@ -2021,13 +2021,13 @@
 [FAIL] x/x;½=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=½;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"½\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"½\\";bonus=x" but got ""
 [FAIL] x/x;x=½;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"½\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"½\\";bonus=x" but got ""
 [FAIL] x/x;x="½";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"½\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"½\\";bonus=x" but got ""
 [FAIL] x/x;x="½";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"½\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"½\\";bonus=x" but got ""
 [PASS] ¾/x (Blob/File)
 [PASS] ¾/x (Request/Response)
 [PASS] x/¾ (Blob/File)
@@ -2037,13 +2037,13 @@
 [FAIL] x/x;¾=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¾;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¾\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¾\\";bonus=x" but got ""
 [FAIL] x/x;x=¾;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¾\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¾\\";bonus=x" but got ""
 [FAIL] x/x;x="¾";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¾\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¾\\";bonus=x" but got ""
 [FAIL] x/x;x="¾";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¾\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¾\\";bonus=x" but got ""
 [PASS] ¿/x (Blob/File)
 [PASS] ¿/x (Request/Response)
 [PASS] x/¿ (Blob/File)
@@ -2053,13 +2053,13 @@
 [FAIL] x/x;¿=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=¿;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¿\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¿\\";bonus=x" but got ""
 [FAIL] x/x;x=¿;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¿\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¿\\";bonus=x" but got ""
 [FAIL] x/x;x="¿";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"¿\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"¿\\";bonus=x" but got ""
 [FAIL] x/x;x="¿";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"¿\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"¿\\";bonus=x" but got ""
 [PASS] À/x (Blob/File)
 [PASS] À/x (Request/Response)
 [PASS] x/À (Blob/File)
@@ -2069,13 +2069,13 @@
 [FAIL] x/x;À=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=À;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"À\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"À\\";bonus=x" but got ""
 [FAIL] x/x;x=À;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"À\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"À\\";bonus=x" but got ""
 [FAIL] x/x;x="À";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"À\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"À\\";bonus=x" but got ""
 [FAIL] x/x;x="À";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"À\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"À\\";bonus=x" but got ""
 [PASS] Á/x (Blob/File)
 [PASS] Á/x (Request/Response)
 [PASS] x/Á (Blob/File)
@@ -2085,13 +2085,13 @@
 [FAIL] x/x;Á=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Á;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Á\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Á\\";bonus=x" but got ""
 [FAIL] x/x;x=Á;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Á\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Á\\";bonus=x" but got ""
 [FAIL] x/x;x="Á";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Á\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Á\\";bonus=x" but got ""
 [FAIL] x/x;x="Á";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Á\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Á\\";bonus=x" but got ""
 [PASS] Â/x (Blob/File)
 [PASS] Â/x (Request/Response)
 [PASS] x/Â (Blob/File)
@@ -2101,13 +2101,13 @@
 [FAIL] x/x;Â=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Â;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Â\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Â\\";bonus=x" but got ""
 [FAIL] x/x;x=Â;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Â\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Â\\";bonus=x" but got ""
 [FAIL] x/x;x="Â";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Â\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Â\\";bonus=x" but got ""
 [FAIL] x/x;x="Â";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Â\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Â\\";bonus=x" but got ""
 [PASS] Ã/x (Blob/File)
 [PASS] Ã/x (Request/Response)
 [PASS] x/Ã (Blob/File)
@@ -2117,13 +2117,13 @@
 [FAIL] x/x;Ã=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ã;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ã\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ã\\";bonus=x" but got ""
 [FAIL] x/x;x=Ã;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ã\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ã\\";bonus=x" but got ""
 [FAIL] x/x;x="Ã";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ã\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ã\\";bonus=x" but got ""
 [FAIL] x/x;x="Ã";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ã\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ã\\";bonus=x" but got ""
 [PASS] Ä/x (Blob/File)
 [PASS] Ä/x (Request/Response)
 [PASS] x/Ä (Blob/File)
@@ -2133,13 +2133,13 @@
 [FAIL] x/x;Ä=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ä;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ä\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ä\\";bonus=x" but got ""
 [FAIL] x/x;x=Ä;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ä\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ä\\";bonus=x" but got ""
 [FAIL] x/x;x="Ä";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ä\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ä\\";bonus=x" but got ""
 [FAIL] x/x;x="Ä";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ä\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ä\\";bonus=x" but got ""
 [PASS] Å/x (Blob/File)
 [PASS] Å/x (Request/Response)
 [PASS] x/Å (Blob/File)
@@ -2149,13 +2149,13 @@
 [FAIL] x/x;Å=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Å;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Å\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Å\\";bonus=x" but got ""
 [FAIL] x/x;x=Å;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Å\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Å\\";bonus=x" but got ""
 [FAIL] x/x;x="Å";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Å\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Å\\";bonus=x" but got ""
 [FAIL] x/x;x="Å";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Å\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Å\\";bonus=x" but got ""
 [PASS] Æ/x (Blob/File)
 [PASS] Æ/x (Request/Response)
 [PASS] x/Æ (Blob/File)
@@ -2165,13 +2165,13 @@
 [FAIL] x/x;Æ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Æ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Æ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Æ\\";bonus=x" but got ""
 [FAIL] x/x;x=Æ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Æ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Æ\\";bonus=x" but got ""
 [FAIL] x/x;x="Æ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Æ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Æ\\";bonus=x" but got ""
 [FAIL] x/x;x="Æ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Æ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Æ\\";bonus=x" but got ""
 [PASS] Ç/x (Blob/File)
 [PASS] Ç/x (Request/Response)
 [PASS] x/Ç (Blob/File)
@@ -2181,13 +2181,13 @@
 [FAIL] x/x;Ç=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ç;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ç\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ç\\";bonus=x" but got ""
 [FAIL] x/x;x=Ç;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ç\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ç\\";bonus=x" but got ""
 [FAIL] x/x;x="Ç";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ç\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ç\\";bonus=x" but got ""
 [FAIL] x/x;x="Ç";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ç\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ç\\";bonus=x" but got ""
 [PASS] È/x (Blob/File)
 [PASS] È/x (Request/Response)
 [PASS] x/È (Blob/File)
@@ -2197,13 +2197,13 @@
 [FAIL] x/x;È=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=È;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"È\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"È\\";bonus=x" but got ""
 [FAIL] x/x;x=È;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"È\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"È\\";bonus=x" but got ""
 [FAIL] x/x;x="È";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"È\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"È\\";bonus=x" but got ""
 [FAIL] x/x;x="È";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"È\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"È\\";bonus=x" but got ""
 [PASS] É/x (Blob/File)
 [PASS] É/x (Request/Response)
 [PASS] x/É (Blob/File)
@@ -2213,13 +2213,13 @@
 [FAIL] x/x;É=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=É;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"É\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"É\\";bonus=x" but got ""
 [FAIL] x/x;x=É;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"É\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"É\\";bonus=x" but got ""
 [FAIL] x/x;x="É";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"É\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"É\\";bonus=x" but got ""
 [FAIL] x/x;x="É";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"É\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"É\\";bonus=x" but got ""
 [PASS] Ê/x (Blob/File)
 [PASS] Ê/x (Request/Response)
 [PASS] x/Ê (Blob/File)
@@ -2229,13 +2229,13 @@
 [FAIL] x/x;Ê=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ê;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ê\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ê\\";bonus=x" but got ""
 [FAIL] x/x;x=Ê;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ê\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ê\\";bonus=x" but got ""
 [FAIL] x/x;x="Ê";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ê\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ê\\";bonus=x" but got ""
 [FAIL] x/x;x="Ê";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ê\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ê\\";bonus=x" but got ""
 [PASS] Ë/x (Blob/File)
 [PASS] Ë/x (Request/Response)
 [PASS] x/Ë (Blob/File)
@@ -2245,13 +2245,13 @@
 [FAIL] x/x;Ë=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ë;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ë\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ë\\";bonus=x" but got ""
 [FAIL] x/x;x=Ë;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ë\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ë\\";bonus=x" but got ""
 [FAIL] x/x;x="Ë";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ë\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ë\\";bonus=x" but got ""
 [FAIL] x/x;x="Ë";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ë\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ë\\";bonus=x" but got ""
 [PASS] Ì/x (Blob/File)
 [PASS] Ì/x (Request/Response)
 [PASS] x/Ì (Blob/File)
@@ -2261,13 +2261,13 @@
 [FAIL] x/x;Ì=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ì;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ì\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ì\\";bonus=x" but got ""
 [FAIL] x/x;x=Ì;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ì\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ì\\";bonus=x" but got ""
 [FAIL] x/x;x="Ì";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ì\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ì\\";bonus=x" but got ""
 [FAIL] x/x;x="Ì";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ì\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ì\\";bonus=x" but got ""
 [PASS] Í/x (Blob/File)
 [PASS] Í/x (Request/Response)
 [PASS] x/Í (Blob/File)
@@ -2277,13 +2277,13 @@
 [FAIL] x/x;Í=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Í;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Í\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Í\\";bonus=x" but got ""
 [FAIL] x/x;x=Í;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Í\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Í\\";bonus=x" but got ""
 [FAIL] x/x;x="Í";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Í\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Í\\";bonus=x" but got ""
 [FAIL] x/x;x="Í";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Í\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Í\\";bonus=x" but got ""
 [PASS] Î/x (Blob/File)
 [PASS] Î/x (Request/Response)
 [PASS] x/Î (Blob/File)
@@ -2293,13 +2293,13 @@
 [FAIL] x/x;Î=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Î;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Î\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Î\\";bonus=x" but got ""
 [FAIL] x/x;x=Î;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Î\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Î\\";bonus=x" but got ""
 [FAIL] x/x;x="Î";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Î\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Î\\";bonus=x" but got ""
 [FAIL] x/x;x="Î";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Î\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Î\\";bonus=x" but got ""
 [PASS] Ï/x (Blob/File)
 [PASS] Ï/x (Request/Response)
 [PASS] x/Ï (Blob/File)
@@ -2309,13 +2309,13 @@
 [FAIL] x/x;Ï=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ï;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ï\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ï\\";bonus=x" but got ""
 [FAIL] x/x;x=Ï;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ï\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ï\\";bonus=x" but got ""
 [FAIL] x/x;x="Ï";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ï\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ï\\";bonus=x" but got ""
 [FAIL] x/x;x="Ï";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ï\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ï\\";bonus=x" but got ""
 [PASS] Ð/x (Blob/File)
 [PASS] Ð/x (Request/Response)
 [PASS] x/Ð (Blob/File)
@@ -2325,13 +2325,13 @@
 [FAIL] x/x;Ð=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ð;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ð\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ð\\";bonus=x" but got ""
 [FAIL] x/x;x=Ð;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ð\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ð\\";bonus=x" but got ""
 [FAIL] x/x;x="Ð";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ð\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ð\\";bonus=x" but got ""
 [FAIL] x/x;x="Ð";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ð\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ð\\";bonus=x" but got ""
 [PASS] Ñ/x (Blob/File)
 [PASS] Ñ/x (Request/Response)
 [PASS] x/Ñ (Blob/File)
@@ -2341,13 +2341,13 @@
 [FAIL] x/x;Ñ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ñ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ñ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ñ\\";bonus=x" but got ""
 [FAIL] x/x;x=Ñ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ñ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ñ\\";bonus=x" but got ""
 [FAIL] x/x;x="Ñ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ñ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ñ\\";bonus=x" but got ""
 [FAIL] x/x;x="Ñ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ñ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ñ\\";bonus=x" but got ""
 [PASS] Ò/x (Blob/File)
 [PASS] Ò/x (Request/Response)
 [PASS] x/Ò (Blob/File)
@@ -2357,13 +2357,13 @@
 [FAIL] x/x;Ò=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ò;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ò\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ò\\";bonus=x" but got ""
 [FAIL] x/x;x=Ò;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ò\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ò\\";bonus=x" but got ""
 [FAIL] x/x;x="Ò";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ò\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ò\\";bonus=x" but got ""
 [FAIL] x/x;x="Ò";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ò\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ò\\";bonus=x" but got ""
 [PASS] Ó/x (Blob/File)
 [PASS] Ó/x (Request/Response)
 [PASS] x/Ó (Blob/File)
@@ -2373,13 +2373,13 @@
 [FAIL] x/x;Ó=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ó;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ó\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ó\\";bonus=x" but got ""
 [FAIL] x/x;x=Ó;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ó\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ó\\";bonus=x" but got ""
 [FAIL] x/x;x="Ó";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ó\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ó\\";bonus=x" but got ""
 [FAIL] x/x;x="Ó";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ó\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ó\\";bonus=x" but got ""
 [PASS] Ô/x (Blob/File)
 [PASS] Ô/x (Request/Response)
 [PASS] x/Ô (Blob/File)
@@ -2389,13 +2389,13 @@
 [FAIL] x/x;Ô=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ô;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ô\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ô\\";bonus=x" but got ""
 [FAIL] x/x;x=Ô;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ô\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ô\\";bonus=x" but got ""
 [FAIL] x/x;x="Ô";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ô\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ô\\";bonus=x" but got ""
 [FAIL] x/x;x="Ô";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ô\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ô\\";bonus=x" but got ""
 [PASS] Õ/x (Blob/File)
 [PASS] Õ/x (Request/Response)
 [PASS] x/Õ (Blob/File)
@@ -2405,13 +2405,13 @@
 [FAIL] x/x;Õ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Õ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Õ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Õ\\";bonus=x" but got ""
 [FAIL] x/x;x=Õ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Õ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Õ\\";bonus=x" but got ""
 [FAIL] x/x;x="Õ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Õ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Õ\\";bonus=x" but got ""
 [FAIL] x/x;x="Õ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Õ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Õ\\";bonus=x" but got ""
 [PASS] Ö/x (Blob/File)
 [PASS] Ö/x (Request/Response)
 [PASS] x/Ö (Blob/File)
@@ -2421,13 +2421,13 @@
 [FAIL] x/x;Ö=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ö;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ö\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ö\\";bonus=x" but got ""
 [FAIL] x/x;x=Ö;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ö\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ö\\";bonus=x" but got ""
 [FAIL] x/x;x="Ö";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ö\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ö\\";bonus=x" but got ""
 [FAIL] x/x;x="Ö";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ö\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ö\\";bonus=x" but got ""
 [PASS] ×/x (Blob/File)
 [PASS] ×/x (Request/Response)
 [PASS] x/× (Blob/File)
@@ -2437,13 +2437,13 @@
 [FAIL] x/x;×=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=×;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"×\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"×\\";bonus=x" but got ""
 [FAIL] x/x;x=×;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"×\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"×\\";bonus=x" but got ""
 [FAIL] x/x;x="×";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"×\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"×\\";bonus=x" but got ""
 [FAIL] x/x;x="×";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"×\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"×\\";bonus=x" but got ""
 [PASS] Ø/x (Blob/File)
 [PASS] Ø/x (Request/Response)
 [PASS] x/Ø (Blob/File)
@@ -2453,13 +2453,13 @@
 [FAIL] x/x;Ø=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ø;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ø\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ø\\";bonus=x" but got ""
 [FAIL] x/x;x=Ø;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ø\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ø\\";bonus=x" but got ""
 [FAIL] x/x;x="Ø";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ø\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ø\\";bonus=x" but got ""
 [FAIL] x/x;x="Ø";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ø\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ø\\";bonus=x" but got ""
 [PASS] Ù/x (Blob/File)
 [PASS] Ù/x (Request/Response)
 [PASS] x/Ù (Blob/File)
@@ -2469,13 +2469,13 @@
 [FAIL] x/x;Ù=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ù;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ù\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ù\\";bonus=x" but got ""
 [FAIL] x/x;x=Ù;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ù\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ù\\";bonus=x" but got ""
 [FAIL] x/x;x="Ù";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ù\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ù\\";bonus=x" but got ""
 [FAIL] x/x;x="Ù";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ù\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ù\\";bonus=x" but got ""
 [PASS] Ú/x (Blob/File)
 [PASS] Ú/x (Request/Response)
 [PASS] x/Ú (Blob/File)
@@ -2485,13 +2485,13 @@
 [FAIL] x/x;Ú=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ú;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ú\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ú\\";bonus=x" but got ""
 [FAIL] x/x;x=Ú;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ú\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ú\\";bonus=x" but got ""
 [FAIL] x/x;x="Ú";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ú\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ú\\";bonus=x" but got ""
 [FAIL] x/x;x="Ú";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ú\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ú\\";bonus=x" but got ""
 [PASS] Û/x (Blob/File)
 [PASS] Û/x (Request/Response)
 [PASS] x/Û (Blob/File)
@@ -2501,13 +2501,13 @@
 [FAIL] x/x;Û=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Û;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Û\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Û\\";bonus=x" but got ""
 [FAIL] x/x;x=Û;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Û\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Û\\";bonus=x" but got ""
 [FAIL] x/x;x="Û";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Û\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Û\\";bonus=x" but got ""
 [FAIL] x/x;x="Û";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Û\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Û\\";bonus=x" but got ""
 [PASS] Ü/x (Blob/File)
 [PASS] Ü/x (Request/Response)
 [PASS] x/Ü (Blob/File)
@@ -2517,13 +2517,13 @@
 [FAIL] x/x;Ü=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ü;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ü\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ü\\";bonus=x" but got ""
 [FAIL] x/x;x=Ü;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ü\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ü\\";bonus=x" but got ""
 [FAIL] x/x;x="Ü";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ü\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ü\\";bonus=x" but got ""
 [FAIL] x/x;x="Ü";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ü\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ü\\";bonus=x" but got ""
 [PASS] Ý/x (Blob/File)
 [PASS] Ý/x (Request/Response)
 [PASS] x/Ý (Blob/File)
@@ -2533,13 +2533,13 @@
 [FAIL] x/x;Ý=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Ý;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ý\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ý\\";bonus=x" but got ""
 [FAIL] x/x;x=Ý;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ý\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ý\\";bonus=x" but got ""
 [FAIL] x/x;x="Ý";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Ý\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Ý\\";bonus=x" but got ""
 [FAIL] x/x;x="Ý";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Ý\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Ý\\";bonus=x" but got ""
 [PASS] Þ/x (Blob/File)
 [PASS] Þ/x (Request/Response)
 [PASS] x/Þ (Blob/File)
@@ -2549,13 +2549,13 @@
 [FAIL] x/x;Þ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=Þ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Þ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Þ\\";bonus=x" but got ""
 [FAIL] x/x;x=Þ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Þ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Þ\\";bonus=x" but got ""
 [FAIL] x/x;x="Þ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"Þ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"Þ\\";bonus=x" but got ""
 [FAIL] x/x;x="Þ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"Þ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"Þ\\";bonus=x" but got ""
 [PASS] ß/x (Blob/File)
 [PASS] ß/x (Request/Response)
 [PASS] x/ß (Blob/File)
@@ -2565,13 +2565,13 @@
 [FAIL] x/x;ß=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ß;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ß\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ß\\";bonus=x" but got ""
 [FAIL] x/x;x=ß;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ß\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ß\\";bonus=x" but got ""
 [FAIL] x/x;x="ß";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ß\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ß\\";bonus=x" but got ""
 [FAIL] x/x;x="ß";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ß\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ß\\";bonus=x" but got ""
 [PASS] à/x (Blob/File)
 [PASS] à/x (Request/Response)
 [PASS] x/à (Blob/File)
@@ -2581,13 +2581,13 @@
 [FAIL] x/x;à=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=à;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"à\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"à\\";bonus=x" but got ""
 [FAIL] x/x;x=à;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"à\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"à\\";bonus=x" but got ""
 [FAIL] x/x;x="à";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"à\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"à\\";bonus=x" but got ""
 [FAIL] x/x;x="à";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"à\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"à\\";bonus=x" but got ""
 [PASS] á/x (Blob/File)
 [PASS] á/x (Request/Response)
 [PASS] x/á (Blob/File)
@@ -2597,13 +2597,13 @@
 [FAIL] x/x;á=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=á;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"á\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"á\\";bonus=x" but got ""
 [FAIL] x/x;x=á;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"á\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"á\\";bonus=x" but got ""
 [FAIL] x/x;x="á";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"á\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"á\\";bonus=x" but got ""
 [FAIL] x/x;x="á";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"á\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"á\\";bonus=x" but got ""
 [PASS] â/x (Blob/File)
 [PASS] â/x (Request/Response)
 [PASS] x/â (Blob/File)
@@ -2613,13 +2613,13 @@
 [FAIL] x/x;â=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=â;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"â\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"â\\";bonus=x" but got ""
 [FAIL] x/x;x=â;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"â\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"â\\";bonus=x" but got ""
 [FAIL] x/x;x="â";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"â\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"â\\";bonus=x" but got ""
 [FAIL] x/x;x="â";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"â\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"â\\";bonus=x" but got ""
 [PASS] ã/x (Blob/File)
 [PASS] ã/x (Request/Response)
 [PASS] x/ã (Blob/File)
@@ -2629,13 +2629,13 @@
 [FAIL] x/x;ã=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ã;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ã\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ã\\";bonus=x" but got ""
 [FAIL] x/x;x=ã;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ã\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ã\\";bonus=x" but got ""
 [FAIL] x/x;x="ã";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ã\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ã\\";bonus=x" but got ""
 [FAIL] x/x;x="ã";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ã\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ã\\";bonus=x" but got ""
 [PASS] ä/x (Blob/File)
 [PASS] ä/x (Request/Response)
 [PASS] x/ä (Blob/File)
@@ -2645,13 +2645,13 @@
 [FAIL] x/x;ä=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ä;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ä\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ä\\";bonus=x" but got ""
 [FAIL] x/x;x=ä;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ä\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ä\\";bonus=x" but got ""
 [FAIL] x/x;x="ä";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ä\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ä\\";bonus=x" but got ""
 [FAIL] x/x;x="ä";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ä\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ä\\";bonus=x" but got ""
 [PASS] å/x (Blob/File)
 [PASS] å/x (Request/Response)
 [PASS] x/å (Blob/File)
@@ -2661,13 +2661,13 @@
 [FAIL] x/x;å=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=å;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"å\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"å\\";bonus=x" but got ""
 [FAIL] x/x;x=å;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"å\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"å\\";bonus=x" but got ""
 [FAIL] x/x;x="å";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"å\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"å\\";bonus=x" but got ""
 [FAIL] x/x;x="å";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"å\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"å\\";bonus=x" but got ""
 [PASS] æ/x (Blob/File)
 [PASS] æ/x (Request/Response)
 [PASS] x/æ (Blob/File)
@@ -2677,13 +2677,13 @@
 [FAIL] x/x;æ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=æ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"æ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"æ\\";bonus=x" but got ""
 [FAIL] x/x;x=æ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"æ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"æ\\";bonus=x" but got ""
 [FAIL] x/x;x="æ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"æ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"æ\\";bonus=x" but got ""
 [FAIL] x/x;x="æ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"æ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"æ\\";bonus=x" but got ""
 [PASS] ç/x (Blob/File)
 [PASS] ç/x (Request/Response)
 [PASS] x/ç (Blob/File)
@@ -2693,13 +2693,13 @@
 [FAIL] x/x;ç=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ç;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ç\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ç\\";bonus=x" but got ""
 [FAIL] x/x;x=ç;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ç\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ç\\";bonus=x" but got ""
 [FAIL] x/x;x="ç";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ç\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ç\\";bonus=x" but got ""
 [FAIL] x/x;x="ç";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ç\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ç\\";bonus=x" but got ""
 [PASS] è/x (Blob/File)
 [PASS] è/x (Request/Response)
 [PASS] x/è (Blob/File)
@@ -2709,13 +2709,13 @@
 [FAIL] x/x;è=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=è;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"è\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"è\\";bonus=x" but got ""
 [FAIL] x/x;x=è;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"è\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"è\\";bonus=x" but got ""
 [FAIL] x/x;x="è";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"è\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"è\\";bonus=x" but got ""
 [FAIL] x/x;x="è";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"è\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"è\\";bonus=x" but got ""
 [PASS] é/x (Blob/File)
 [PASS] é/x (Request/Response)
 [PASS] x/é (Blob/File)
@@ -2725,13 +2725,13 @@
 [FAIL] x/x;é=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=é;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"é\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"é\\";bonus=x" but got ""
 [FAIL] x/x;x=é;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"é\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"é\\";bonus=x" but got ""
 [FAIL] x/x;x="é";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"é\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"é\\";bonus=x" but got ""
 [FAIL] x/x;x="é";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"é\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"é\\";bonus=x" but got ""
 [PASS] ê/x (Blob/File)
 [PASS] ê/x (Request/Response)
 [PASS] x/ê (Blob/File)
@@ -2741,13 +2741,13 @@
 [FAIL] x/x;ê=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ê;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ê\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ê\\";bonus=x" but got ""
 [FAIL] x/x;x=ê;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ê\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ê\\";bonus=x" but got ""
 [FAIL] x/x;x="ê";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ê\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ê\\";bonus=x" but got ""
 [FAIL] x/x;x="ê";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ê\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ê\\";bonus=x" but got ""
 [PASS] ë/x (Blob/File)
 [PASS] ë/x (Request/Response)
 [PASS] x/ë (Blob/File)
@@ -2757,13 +2757,13 @@
 [FAIL] x/x;ë=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ë;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ë\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ë\\";bonus=x" but got ""
 [FAIL] x/x;x=ë;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ë\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ë\\";bonus=x" but got ""
 [FAIL] x/x;x="ë";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ë\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ë\\";bonus=x" but got ""
 [FAIL] x/x;x="ë";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ë\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ë\\";bonus=x" but got ""
 [PASS] ì/x (Blob/File)
 [PASS] ì/x (Request/Response)
 [PASS] x/ì (Blob/File)
@@ -2773,13 +2773,13 @@
 [FAIL] x/x;ì=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ì;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ì\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ì\\";bonus=x" but got ""
 [FAIL] x/x;x=ì;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ì\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ì\\";bonus=x" but got ""
 [FAIL] x/x;x="ì";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ì\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ì\\";bonus=x" but got ""
 [FAIL] x/x;x="ì";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ì\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ì\\";bonus=x" but got ""
 [PASS] í/x (Blob/File)
 [PASS] í/x (Request/Response)
 [PASS] x/í (Blob/File)
@@ -2789,13 +2789,13 @@
 [FAIL] x/x;í=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=í;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"í\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"í\\";bonus=x" but got ""
 [FAIL] x/x;x=í;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"í\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"í\\";bonus=x" but got ""
 [FAIL] x/x;x="í";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"í\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"í\\";bonus=x" but got ""
 [FAIL] x/x;x="í";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"í\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"í\\";bonus=x" but got ""
 [PASS] î/x (Blob/File)
 [PASS] î/x (Request/Response)
 [PASS] x/î (Blob/File)
@@ -2805,13 +2805,13 @@
 [FAIL] x/x;î=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=î;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"î\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"î\\";bonus=x" but got ""
 [FAIL] x/x;x=î;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"î\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"î\\";bonus=x" but got ""
 [FAIL] x/x;x="î";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"î\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"î\\";bonus=x" but got ""
 [FAIL] x/x;x="î";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"î\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"î\\";bonus=x" but got ""
 [PASS] ï/x (Blob/File)
 [PASS] ï/x (Request/Response)
 [PASS] x/ï (Blob/File)
@@ -2821,13 +2821,13 @@
 [FAIL] x/x;ï=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ï;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ï\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ï\\";bonus=x" but got ""
 [FAIL] x/x;x=ï;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ï\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ï\\";bonus=x" but got ""
 [FAIL] x/x;x="ï";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ï\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ï\\";bonus=x" but got ""
 [FAIL] x/x;x="ï";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ï\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ï\\";bonus=x" but got ""
 [PASS] ð/x (Blob/File)
 [PASS] ð/x (Request/Response)
 [PASS] x/ð (Blob/File)
@@ -2837,13 +2837,13 @@
 [FAIL] x/x;ð=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ð;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ð\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ð\\";bonus=x" but got ""
 [FAIL] x/x;x=ð;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ð\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ð\\";bonus=x" but got ""
 [FAIL] x/x;x="ð";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ð\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ð\\";bonus=x" but got ""
 [FAIL] x/x;x="ð";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ð\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ð\\";bonus=x" but got ""
 [PASS] ñ/x (Blob/File)
 [PASS] ñ/x (Request/Response)
 [PASS] x/ñ (Blob/File)
@@ -2853,13 +2853,13 @@
 [FAIL] x/x;ñ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ñ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ñ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ñ\\";bonus=x" but got ""
 [FAIL] x/x;x=ñ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ñ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ñ\\";bonus=x" but got ""
 [FAIL] x/x;x="ñ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ñ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ñ\\";bonus=x" but got ""
 [FAIL] x/x;x="ñ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ñ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ñ\\";bonus=x" but got ""
 [PASS] ò/x (Blob/File)
 [PASS] ò/x (Request/Response)
 [PASS] x/ò (Blob/File)
@@ -2869,13 +2869,13 @@
 [FAIL] x/x;ò=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ò;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ò\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ò\\";bonus=x" but got ""
 [FAIL] x/x;x=ò;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ò\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ò\\";bonus=x" but got ""
 [FAIL] x/x;x="ò";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ò\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ò\\";bonus=x" but got ""
 [FAIL] x/x;x="ò";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ò\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ò\\";bonus=x" but got ""
 [PASS] ó/x (Blob/File)
 [PASS] ó/x (Request/Response)
 [PASS] x/ó (Blob/File)
@@ -2885,13 +2885,13 @@
 [FAIL] x/x;ó=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ó;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ó\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ó\\";bonus=x" but got ""
 [FAIL] x/x;x=ó;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ó\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ó\\";bonus=x" but got ""
 [FAIL] x/x;x="ó";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ó\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ó\\";bonus=x" but got ""
 [FAIL] x/x;x="ó";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ó\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ó\\";bonus=x" but got ""
 [PASS] ô/x (Blob/File)
 [PASS] ô/x (Request/Response)
 [PASS] x/ô (Blob/File)
@@ -2901,13 +2901,13 @@
 [FAIL] x/x;ô=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ô;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ô\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ô\\";bonus=x" but got ""
 [FAIL] x/x;x=ô;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ô\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ô\\";bonus=x" but got ""
 [FAIL] x/x;x="ô";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ô\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ô\\";bonus=x" but got ""
 [FAIL] x/x;x="ô";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ô\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ô\\";bonus=x" but got ""
 [PASS] õ/x (Blob/File)
 [PASS] õ/x (Request/Response)
 [PASS] x/õ (Blob/File)
@@ -2917,13 +2917,13 @@
 [FAIL] x/x;õ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=õ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"õ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"õ\\";bonus=x" but got ""
 [FAIL] x/x;x=õ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"õ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"õ\\";bonus=x" but got ""
 [FAIL] x/x;x="õ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"õ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"õ\\";bonus=x" but got ""
 [FAIL] x/x;x="õ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"õ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"õ\\";bonus=x" but got ""
 [PASS] ö/x (Blob/File)
 [PASS] ö/x (Request/Response)
 [PASS] x/ö (Blob/File)
@@ -2933,13 +2933,13 @@
 [FAIL] x/x;ö=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ö;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ö\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ö\\";bonus=x" but got ""
 [FAIL] x/x;x=ö;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ö\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ö\\";bonus=x" but got ""
 [FAIL] x/x;x="ö";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ö\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ö\\";bonus=x" but got ""
 [FAIL] x/x;x="ö";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ö\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ö\\";bonus=x" but got ""
 [PASS] ÷/x (Blob/File)
 [PASS] ÷/x (Request/Response)
 [PASS] x/÷ (Blob/File)
@@ -2949,13 +2949,13 @@
 [FAIL] x/x;÷=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=÷;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"÷\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"÷\\";bonus=x" but got ""
 [FAIL] x/x;x=÷;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"÷\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"÷\\";bonus=x" but got ""
 [FAIL] x/x;x="÷";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"÷\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"÷\\";bonus=x" but got ""
 [FAIL] x/x;x="÷";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"÷\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"÷\\";bonus=x" but got ""
 [PASS] ø/x (Blob/File)
 [PASS] ø/x (Request/Response)
 [PASS] x/ø (Blob/File)
@@ -2965,13 +2965,13 @@
 [FAIL] x/x;ø=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ø;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ø\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ø\\";bonus=x" but got ""
 [FAIL] x/x;x=ø;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ø\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ø\\";bonus=x" but got ""
 [FAIL] x/x;x="ø";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ø\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ø\\";bonus=x" but got ""
 [FAIL] x/x;x="ø";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ø\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ø\\";bonus=x" but got ""
 [PASS] ù/x (Blob/File)
 [PASS] ù/x (Request/Response)
 [PASS] x/ù (Blob/File)
@@ -2981,13 +2981,13 @@
 [FAIL] x/x;ù=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ù;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ù\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ù\\";bonus=x" but got ""
 [FAIL] x/x;x=ù;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ù\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ù\\";bonus=x" but got ""
 [FAIL] x/x;x="ù";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ù\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ù\\";bonus=x" but got ""
 [FAIL] x/x;x="ù";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ù\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ù\\";bonus=x" but got ""
 [PASS] ú/x (Blob/File)
 [PASS] ú/x (Request/Response)
 [PASS] x/ú (Blob/File)
@@ -2997,13 +2997,13 @@
 [FAIL] x/x;ú=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ú;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ú\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ú\\";bonus=x" but got ""
 [FAIL] x/x;x=ú;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ú\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ú\\";bonus=x" but got ""
 [FAIL] x/x;x="ú";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ú\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ú\\";bonus=x" but got ""
 [FAIL] x/x;x="ú";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ú\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ú\\";bonus=x" but got ""
 [PASS] û/x (Blob/File)
 [PASS] û/x (Request/Response)
 [PASS] x/û (Blob/File)
@@ -3013,13 +3013,13 @@
 [FAIL] x/x;û=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=û;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"û\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"û\\";bonus=x" but got ""
 [FAIL] x/x;x=û;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"û\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"û\\";bonus=x" but got ""
 [FAIL] x/x;x="û";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"û\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"û\\";bonus=x" but got ""
 [FAIL] x/x;x="û";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"û\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"û\\";bonus=x" but got ""
 [PASS] ü/x (Blob/File)
 [PASS] ü/x (Request/Response)
 [PASS] x/ü (Blob/File)
@@ -3029,13 +3029,13 @@
 [FAIL] x/x;ü=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ü;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ü\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ü\\";bonus=x" but got ""
 [FAIL] x/x;x=ü;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ü\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ü\\";bonus=x" but got ""
 [FAIL] x/x;x="ü";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ü\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ü\\";bonus=x" but got ""
 [FAIL] x/x;x="ü";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ü\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ü\\";bonus=x" but got ""
 [PASS] ý/x (Blob/File)
 [PASS] ý/x (Request/Response)
 [PASS] x/ý (Blob/File)
@@ -3045,13 +3045,13 @@
 [FAIL] x/x;ý=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ý;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ý\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ý\\";bonus=x" but got ""
 [FAIL] x/x;x=ý;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ý\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ý\\";bonus=x" but got ""
 [FAIL] x/x;x="ý";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ý\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ý\\";bonus=x" but got ""
 [FAIL] x/x;x="ý";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ý\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ý\\";bonus=x" but got ""
 [PASS] þ/x (Blob/File)
 [PASS] þ/x (Request/Response)
 [PASS] x/þ (Blob/File)
@@ -3061,13 +3061,13 @@
 [FAIL] x/x;þ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=þ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"þ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"þ\\";bonus=x" but got ""
 [FAIL] x/x;x=þ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"þ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"þ\\";bonus=x" but got ""
 [FAIL] x/x;x="þ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"þ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"þ\\";bonus=x" but got ""
 [FAIL] x/x;x="þ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"þ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"þ\\";bonus=x" but got ""
 [PASS] ÿ/x (Blob/File)
 [PASS] ÿ/x (Request/Response)
 [PASS] x/ÿ (Blob/File)
@@ -3077,12 +3077,12 @@
 [FAIL] x/x;ÿ=x;bonus=x (Request/Response)
   assert_equals: expected "x/x;bonus=x" but got ""
 [FAIL] x/x;x=ÿ;bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ÿ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ÿ\\";bonus=x" but got ""
 [FAIL] x/x;x=ÿ;bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ÿ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ÿ\\";bonus=x" but got ""
 [FAIL] x/x;x="ÿ";bonus=x (Blob/File)
-  assert_equals: Blob expected "x/x;x=\"ÿ\";bonus=x" but got ""
+  assert_equals: Blob expected "x/x;x=\\"ÿ\\";bonus=x" but got ""
 [FAIL] x/x;x="ÿ";bonus=x (Request/Response)
-  assert_equals: expected "x/x;x=\"ÿ\";bonus=x" but got ""
+  assert_equals: expected "x/x;x=\\"ÿ\\";bonus=x" but got ""
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/scroll-animations/css/animation-shorthand-expected.txt b/third_party/blink/web_tests/external/wpt/scroll-animations/css/animation-shorthand-expected.txt
index 63c5718..80deb03 100644
--- a/third_party/blink/web_tests/external/wpt/scroll-animations/css/animation-shorthand-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/scroll-animations/css/animation-shorthand-expected.txt
@@ -6,18 +6,18 @@
 [PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim view()" should not set the property value
 [PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim timeline" should not set the property value
 [PASS] Property animation value '1s linear 1s 2 reverse forwards paused anim'
-[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\n   1s linear 1s 2 reverse forwards paused anim2,\n   1s linear 1s 2 reverse forwards paused anim3" should set animation-delay
-[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\n   1s linear 1s 2 reverse forwards paused anim2,\n   1s linear 1s 2 reverse forwards paused anim3" should set animation-direction
-[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\n   1s linear 1s 2 reverse forwards paused anim2,\n   1s linear 1s 2 reverse forwards paused anim3" should set animation-duration
-[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\n   1s linear 1s 2 reverse forwards paused anim2,\n   1s linear 1s 2 reverse forwards paused anim3" should set animation-fill-mode
-[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\n   1s linear 1s 2 reverse forwards paused anim2,\n   1s linear 1s 2 reverse forwards paused anim3" should set animation-iteration-count
-[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\n   1s linear 1s 2 reverse forwards paused anim2,\n   1s linear 1s 2 reverse forwards paused anim3" should set animation-name
-[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\n   1s linear 1s 2 reverse forwards paused anim2,\n   1s linear 1s 2 reverse forwards paused anim3" should set animation-play-state
-[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\n   1s linear 1s 2 reverse forwards paused anim2,\n   1s linear 1s 2 reverse forwards paused anim3" should set animation-range-end
-[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\n   1s linear 1s 2 reverse forwards paused anim2,\n   1s linear 1s 2 reverse forwards paused anim3" should set animation-range-start
-[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\n   1s linear 1s 2 reverse forwards paused anim2,\n   1s linear 1s 2 reverse forwards paused anim3" should set animation-timeline
-[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\n   1s linear 1s 2 reverse forwards paused anim2,\n   1s linear 1s 2 reverse forwards paused anim3" should set animation-timing-function
-[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\n   1s linear 1s 2 reverse forwards paused anim2,\n   1s linear 1s 2 reverse forwards paused anim3" should not set unrelated longhands
+[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\\n   1s linear 1s 2 reverse forwards paused anim2,\\n   1s linear 1s 2 reverse forwards paused anim3" should set animation-delay
+[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\\n   1s linear 1s 2 reverse forwards paused anim2,\\n   1s linear 1s 2 reverse forwards paused anim3" should set animation-direction
+[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\\n   1s linear 1s 2 reverse forwards paused anim2,\\n   1s linear 1s 2 reverse forwards paused anim3" should set animation-duration
+[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\\n   1s linear 1s 2 reverse forwards paused anim2,\\n   1s linear 1s 2 reverse forwards paused anim3" should set animation-fill-mode
+[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\\n   1s linear 1s 2 reverse forwards paused anim2,\\n   1s linear 1s 2 reverse forwards paused anim3" should set animation-iteration-count
+[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\\n   1s linear 1s 2 reverse forwards paused anim2,\\n   1s linear 1s 2 reverse forwards paused anim3" should set animation-name
+[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\\n   1s linear 1s 2 reverse forwards paused anim2,\\n   1s linear 1s 2 reverse forwards paused anim3" should set animation-play-state
+[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\\n   1s linear 1s 2 reverse forwards paused anim2,\\n   1s linear 1s 2 reverse forwards paused anim3" should set animation-range-end
+[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\\n   1s linear 1s 2 reverse forwards paused anim2,\\n   1s linear 1s 2 reverse forwards paused anim3" should set animation-range-start
+[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\\n   1s linear 1s 2 reverse forwards paused anim2,\\n   1s linear 1s 2 reverse forwards paused anim3" should set animation-timeline
+[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\\n   1s linear 1s 2 reverse forwards paused anim2,\\n   1s linear 1s 2 reverse forwards paused anim3" should set animation-timing-function
+[PASS] e.style['animation'] = "1s linear 1s 2 reverse forwards paused anim1,\\n   1s linear 1s 2 reverse forwards paused anim2,\\n   1s linear 1s 2 reverse forwards paused anim3" should not set unrelated longhands
 [PASS] Animation shorthand can not represent non-initial timelines (specified)
 [PASS] Animation shorthand can not represent non-initial timelines (computed)
 [FAIL] Animation shorthand can not represent non-initial animation-delay-end (specified)
diff --git a/third_party/blink/web_tests/external/wpt/selection/modify-line-flex-row.tentative-expected.txt b/third_party/blink/web_tests/external/wpt/selection/modify-line-flex-row.tentative-expected.txt
index fce00789..2c52fb30 100644
--- a/third_party/blink/web_tests/external/wpt/selection/modify-line-flex-row.tentative-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/selection/modify-line-flex-row.tentative-expected.txt
@@ -1,7 +1,7 @@
 This is a testharness.js-based test.
 [FAIL] forward
-  assert_equals: expected "e\n\nTwo\n\nTh" but got "e\nTwo\nTh"
+  assert_equals: expected "e\\n\\nTwo\\n\\nTh" but got "e\\nTwo\\nTh"
 [FAIL] backward
-  assert_equals: expected "e\n\nTwo\n\nTh" but got "e\nTwo\nTh"
+  assert_equals: expected "e\\n\\nTwo\\n\\nTh" but got "e\\nTwo\\nTh"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/selection/script-and-style-elements-expected.txt b/third_party/blink/web_tests/external/wpt/selection/script-and-style-elements-expected.txt
index ea0f2ca..bfb7c0c8 100644
--- a/third_party/blink/web_tests/external/wpt/selection/script-and-style-elements-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/selection/script-and-style-elements-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
 [FAIL] Selection: STYLE and SCRIPT elements should be included in Selection.toString() if they are display!=none
-  assert_equals: expected "\nstyle { display:block; color: green; } script { color: blue; }\nfunction test_block_script() { let pre = document.createElement(\"pre\"); pre.append(document.createTextNode(\"PASS\")); document.getElementById(\"p1\").append(pre); }\n\nPASS" but got "style { display:block; color: green; } script { color: blue; }\nfunction test_block_script() { let pre = document.createElement(\"pre\"); pre.append(document.createTextNode(\"PASS\")); document.getElementById(\"p1\").append(pre); }\nPASS"
+  assert_equals: expected "\\nstyle { display:block; color: green; } script { color: blue; }\\nfunction test_block_script() { let pre = document.createElement(\\"pre\\"); pre.append(document.createTextNode(\\"PASS\\")); document.getElementById(\\"p1\\").append(pre); }\\n\\nPASS" but got "style { display:block; color: green; } script { color: blue; }\\nfunction test_block_script() { let pre = document.createElement(\\"pre\\"); pre.append(document.createTextNode(\\"PASS\\")); document.getElementById(\\"p1\\").append(pre); }\\nPASS"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/local-url-inherit-controller.https-expected.txt b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/local-url-inherit-controller.https-expected.txt
index 8e867339..a71326e 100644
--- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/local-url-inherit-controller.https-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/local-url-inherit-controller.https-expected.txt
@@ -2,7 +2,7 @@
 [FAIL] Same-origin blob URL iframe should inherit service worker controller.
   assert_equals: blob URL iframe should inherit controller expected (string) "https://web-platform.test:8444/service-workers/service-worker/resources/local-url-inherit-controller-worker.js" but got (object) null
 [FAIL] Same-origin blob URL iframe should intercept fetch().
-  assert_equals: blob URL iframe should intercept fetch expected "intercepted" but got "var hello = \"world\";\n"
+  assert_equals: blob URL iframe should intercept fetch expected "intercepted" but got "var hello = \\"world\\";\\n"
 [FAIL] Same-origin blob URL worker should inherit service worker controller.
   promise_test: Unhandled rejection with value: "Uncaught TypeError: Cannot read properties of undefined (reading 'controller')"
 [PASS] Same-origin blob URL worker should intercept fetch().
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/worker-interception-redirect.https-expected.txt b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/worker-interception-redirect.https-expected.txt
index 5555a5f..26fc548b 100644
--- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/worker-interception-redirect.https-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/worker-interception-redirect.https-expected.txt
@@ -34,11 +34,11 @@
 [FAIL] Case #4: sw scope1->out-scope (classic SharedWorker, importScripts())
   assert_equals: expected "sw1 saw importScripts from the worker: /service-workers/service-worker/resources/import-scripts-echo.py" but got "importScripts: served from network"
 [FAIL] Case #4: sw scope1->out-scope (classic SharedWorker, fetch())
-  assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/simple.txt" but got "fetch(): a simple text file\n"
+  assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/simple.txt" but got "fetch(): a simple text file\\n"
 [PASS] Case #4: sw scope1->out-scope (classic SharedWorker, location.href)
 [PASS] Case #4: sw scope1->out-scope (module SharedWorker, importScripts())
 [FAIL] Case #4: sw scope1->out-scope (module SharedWorker, fetch())
-  assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/simple.txt" but got "fetch(): a simple text file\n"
+  assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/simple.txt" but got "fetch(): a simple text file\\n"
 [PASS] Case #4: sw scope1->out-scope (module SharedWorker, location.href)
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/svg/interact/scripted/async-01-expected.txt b/third_party/blink/web_tests/external/wpt/svg/interact/scripted/async-01-expected.txt
index 990ceb8..a3a1135a 100644
--- a/third_party/blink/web_tests/external/wpt/svg/interact/scripted/async-01-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/svg/interact/scripted/async-01-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
 [FAIL] An async script does not block the parser while downloading
-  assert_equals: expected "[\"2\",\"1\"]" but got "[\"1\",\"2\"]"
+  assert_equals: expected "[\\"2\\",\\"1\\"]" but got "[\\"1\\",\\"2\\"]"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/svg/painting/parsing/fill-valid-expected.txt b/third_party/blink/web_tests/external/wpt/svg/painting/parsing/fill-valid-expected.txt
index c60d719..3be9002 100644
--- a/third_party/blink/web_tests/external/wpt/svg/painting/parsing/fill-valid-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/svg/painting/parsing/fill-valid-expected.txt
@@ -5,8 +5,8 @@
 [FAIL] e.style['fill'] = "context-stroke" should set the property value
   assert_not_equals: property should be set got disallowed value ""
 [PASS] e.style['fill'] = "rgb(12, 34, 56)" should set the property value
-[PASS] e.style['fill'] = "url(\"https://example.com/\")" should set the property value
-[PASS] e.style['fill'] = "url(\"https://example.com/\") none" should set the property value
-[PASS] e.style['fill'] = "url(\"https://example.com/\") rgb(12, 34, 56)" should set the property value
+[PASS] e.style['fill'] = "url(\\"https://example.com/\\")" should set the property value
+[PASS] e.style['fill'] = "url(\\"https://example.com/\\") none" should set the property value
+[PASS] e.style['fill'] = "url(\\"https://example.com/\\") rgb(12, 34, 56)" should set the property value
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/svg/painting/parsing/stroke-valid-expected.txt b/third_party/blink/web_tests/external/wpt/svg/painting/parsing/stroke-valid-expected.txt
index e7e47576..4da72f55 100644
--- a/third_party/blink/web_tests/external/wpt/svg/painting/parsing/stroke-valid-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/svg/painting/parsing/stroke-valid-expected.txt
@@ -5,8 +5,8 @@
 [FAIL] e.style['stroke'] = "context-stroke" should set the property value
   assert_not_equals: property should be set got disallowed value ""
 [PASS] e.style['stroke'] = "rgb(12, 34, 56)" should set the property value
-[PASS] e.style['stroke'] = "url(\"https://example.com/\")" should set the property value
-[PASS] e.style['stroke'] = "url(\"https://example.com/\") none" should set the property value
-[PASS] e.style['stroke'] = "url(\"https://example.com/\") rgb(12, 34, 56)" should set the property value
+[PASS] e.style['stroke'] = "url(\\"https://example.com/\\")" should set the property value
+[PASS] e.style['stroke'] = "url(\\"https://example.com/\\") none" should set the property value
+[PASS] e.style['stroke'] = "url(\\"https://example.com/\\") rgb(12, 34, 56)" should set the property value
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/svg/path/property/serialization-expected.txt b/third_party/blink/web_tests/external/wpt/svg/path/property/serialization-expected.txt
index d548f29..1e5c916 100644
--- a/third_party/blink/web_tests/external/wpt/svg/path/property/serialization-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/svg/path/property/serialization-expected.txt
@@ -1,14 +1,14 @@
 This is a testharness.js-based test.
-[PASS] e.style['d'] = "path(\"m 10 20 q 30 60 40 50 q 100 70 90 80\")" should set the property value
+[PASS] e.style['d'] = "path(\\"m 10 20 q 30 60 40 50 q 100 70 90 80\\")" should set the property value
 [PASS] Property d value 'path("m 10 20 q 30 60 40 50 q 100 70 90 80")'
-[PASS] e.style['d'] = "path(\"M 0 0 L 100 100 m 0 100 l 100 0 Z l 160 20 Z\")" should set the property value
+[PASS] e.style['d'] = "path(\\"M 0 0 L 100 100 m 0 100 l 100 0 Z l 160 20 Z\\")" should set the property value
 [FAIL] Property d value 'path("M 0 0 L 100 100 m 0 100 l 100 0 Z l 160 20 Z")'
-  assert_equals: expected "path(\"M 0 0 L 100 100 m 0 100 l 100 0 Z l 160 20 Z\")" but got "path(\"M 0 0 L 100 100 M 100 200 L 200 200 Z L 260 220 Z\")"
-[PASS] e.style['d'] = "path(\"m 10 20   l 20 30   Z   l 50 60   Z   m 70 80   l 90 60   Z   t 70 120\")" should set the property value
+  assert_equals: expected "path(\\"M 0 0 L 100 100 m 0 100 l 100 0 Z l 160 20 Z\\")" but got "path(\\"M 0 0 L 100 100 M 100 200 L 200 200 Z L 260 220 Z\\")"
+[PASS] e.style['d'] = "path(\\"m 10 20   l 20 30   Z   l 50 60   Z   m 70 80   l 90 60   Z   t 70 120\\")" should set the property value
 [PASS] Property d value 'path("m 10 20   l 20 30   Z   l 50 60   Z   m 70 80   l 90 60   Z   t 70 120")'
-[PASS] e.style['d'] = "path(\"m 10.0 170.0 h 90.00 v 30.00 m 0 0 s 1 2 3 4 z c 9 8 7 6 5 4\")" should set the property value
+[PASS] e.style['d'] = "path(\\"m 10.0 170.0 h 90.00 v 30.00 m 0 0 s 1 2 3 4 z c 9 8 7 6 5 4\\")" should set the property value
 [PASS] Property d value 'path("m 10.0 170.0 h 90.00 v 30.00 m 0 0 s 1 2 3 4 z c 9 8 7 6 5 4")'
-[PASS] e.style['d'] = "  path(  \"m 10 20 a 10 20 30 1 0 40 50 a 110 120 30 1 1 140 50\"  )" should set the property value
+[PASS] e.style['d'] = "  path(  \\"m 10 20 a 10 20 30 1 0 40 50 a 110 120 30 1 1 140 50\\"  )" should set the property value
 [PASS] Property d value '  path(  "m 10 20 a 10 20 30 1 0 40 50 a 110 120 30 1 1 140 50"  )'
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/svg/text/parsing/shape-inside-valid-expected.txt b/third_party/blink/web_tests/external/wpt/svg/text/parsing/shape-inside-valid-expected.txt
index 7d9ccb9a..559dd04 100644
--- a/third_party/blink/web_tests/external/wpt/svg/text/parsing/shape-inside-valid-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/svg/text/parsing/shape-inside-valid-expected.txt
@@ -7,9 +7,9 @@
   assert_not_equals: property should be set got disallowed value ""
 [FAIL] e.style['shape-inside'] = "polygon(10px 20px, -30px 40px, 50px 60px)" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['shape-inside'] = "url(\"https://example.com/\")" should set the property value
+[FAIL] e.style['shape-inside'] = "url(\\"https://example.com/\\")" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['shape-inside'] = "circle(10px at 20px -30px) url(\"https://example.com/\") ellipse(10px 20px at -30px 40px)" should set the property value
+[FAIL] e.style['shape-inside'] = "circle(10px at 20px -30px) url(\\"https://example.com/\\") ellipse(10px 20px at -30px 40px)" should set the property value
   assert_not_equals: property should be set got disallowed value ""
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/svg/text/parsing/shape-subtract-valid-expected.txt b/third_party/blink/web_tests/external/wpt/svg/text/parsing/shape-subtract-valid-expected.txt
index 42dbd50e..fa65eda 100644
--- a/third_party/blink/web_tests/external/wpt/svg/text/parsing/shape-subtract-valid-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/svg/text/parsing/shape-subtract-valid-expected.txt
@@ -7,9 +7,9 @@
   assert_not_equals: property should be set got disallowed value ""
 [FAIL] e.style['shape-subtract'] = "polygon(10px 20px, -30px 40px, 50px 60px)" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['shape-subtract'] = "url(\"https://example.com/\")" should set the property value
+[FAIL] e.style['shape-subtract'] = "url(\\"https://example.com/\\")" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['shape-subtract'] = "circle(10px at 20px -30px) url(\"https://example.com/\") ellipse(10px 20px at -30px 40px)" should set the property value
+[FAIL] e.style['shape-subtract'] = "circle(10px at 20px -30px) url(\\"https://example.com/\\") ellipse(10px 20px at -30px 40px)" should set the property value
   assert_not_equals: property should be set got disallowed value ""
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/svg/text/parsing/text-decoration-fill-valid-expected.txt b/third_party/blink/web_tests/external/wpt/svg/text/parsing/text-decoration-fill-valid-expected.txt
index 0c3e387..46b17dcc 100644
--- a/third_party/blink/web_tests/external/wpt/svg/text/parsing/text-decoration-fill-valid-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/svg/text/parsing/text-decoration-fill-valid-expected.txt
@@ -7,11 +7,11 @@
   assert_not_equals: property should be set got disallowed value ""
 [FAIL] e.style['text-decoration-fill'] = "rgb(12, 34, 56)" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['text-decoration-fill'] = "url(\"https://example.com/\")" should set the property value
+[FAIL] e.style['text-decoration-fill'] = "url(\\"https://example.com/\\")" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['text-decoration-fill'] = "url(\"https://example.com/\") none" should set the property value
+[FAIL] e.style['text-decoration-fill'] = "url(\\"https://example.com/\\") none" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['text-decoration-fill'] = "url(\"https://example.com/\") rgb(12, 34, 56)" should set the property value
+[FAIL] e.style['text-decoration-fill'] = "url(\\"https://example.com/\\") rgb(12, 34, 56)" should set the property value
   assert_not_equals: property should be set got disallowed value ""
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/svg/text/parsing/text-decoration-stroke-valid-expected.txt b/third_party/blink/web_tests/external/wpt/svg/text/parsing/text-decoration-stroke-valid-expected.txt
index a481d22..aeff9bb 100644
--- a/third_party/blink/web_tests/external/wpt/svg/text/parsing/text-decoration-stroke-valid-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/svg/text/parsing/text-decoration-stroke-valid-expected.txt
@@ -7,11 +7,11 @@
   assert_not_equals: property should be set got disallowed value ""
 [FAIL] e.style['text-decoration-stroke'] = "rgb(12, 34, 56)" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['text-decoration-stroke'] = "url(\"https://example.com/\")" should set the property value
+[FAIL] e.style['text-decoration-stroke'] = "url(\\"https://example.com/\\")" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['text-decoration-stroke'] = "url(\"https://example.com/\") none" should set the property value
+[FAIL] e.style['text-decoration-stroke'] = "url(\\"https://example.com/\\") none" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['text-decoration-stroke'] = "url(\"https://example.com/\") rgb(12, 34, 56)" should set the property value
+[FAIL] e.style['text-decoration-stroke'] = "url(\\"https://example.com/\\") rgb(12, 34, 56)" should set the property value
   assert_not_equals: property should be set got disallowed value ""
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/url/url-setters-a-area.window_include=file-expected.txt b/third_party/blink/web_tests/external/wpt/url/url-setters-a-area.window_include=file-expected.txt
index 3eb6bf2..3f4d392 100644
--- a/third_party/blink/web_tests/external/wpt/url/url-setters-a-area.window_include=file-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/url/url-setters-a-area.window_include=file-expected.txt
@@ -48,11 +48,11 @@
   assert_equals: expected "file:///" but got "file://localhost/"
 [PASS] <a>: Setting <file:///some/path>.pathname = '' Special URLs cannot have their paths erased
 [PASS] <area>: Setting <file:///some/path>.pathname = '' Special URLs cannot have their paths erased
-[PASS] <a>: Setting <file://monkey/>.pathname = '\\' File URLs and (back)slashes
-[PASS] <area>: Setting <file://monkey/>.pathname = '\\' File URLs and (back)slashes
-[FAIL] <a>: Setting <file:///unicorn>.pathname = '//\/' File URLs and (back)slashes
+[PASS] <a>: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes
+[PASS] <area>: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes
+[FAIL] <a>: Setting <file:///unicorn>.pathname = '//\\/' File URLs and (back)slashes
   assert_equals: expected "file://////" but got "file:///"
-[FAIL] <area>: Setting <file:///unicorn>.pathname = '//\/' File URLs and (back)slashes
+[FAIL] <area>: Setting <file:///unicorn>.pathname = '//\\/' File URLs and (back)slashes
   assert_equals: expected "file://////" but got "file:///"
 [FAIL] <a>: Setting <file:///unicorn>.pathname = '//monkey/..//' File URLs and (back)slashes
   assert_equals: expected "file://///" but got "file:///"
diff --git a/third_party/blink/web_tests/external/wpt/url/url-setters.any.worker_include=file-expected.txt b/third_party/blink/web_tests/external/wpt/url/url-setters.any.worker_include=file-expected.txt
index 691e438..9b64d7f 100644
--- a/third_party/blink/web_tests/external/wpt/url/url-setters.any.worker_include=file-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/url/url-setters.any.worker_include=file-expected.txt
@@ -24,8 +24,8 @@
 [FAIL] URL: Setting <file://localhost/>.port = '12'
   assert_equals: expected "file:///" but got "file://localhost/"
 [PASS] URL: Setting <file:///some/path>.pathname = '' Special URLs cannot have their paths erased
-[PASS] URL: Setting <file://monkey/>.pathname = '\\' File URLs and (back)slashes
-[PASS] URL: Setting <file:///unicorn>.pathname = '//\/' File URLs and (back)slashes
+[PASS] URL: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes
+[PASS] URL: Setting <file:///unicorn>.pathname = '//\\/' File URLs and (back)slashes
 [PASS] URL: Setting <file:///unicorn>.pathname = '//monkey/..//' File URLs and (back)slashes
 [PASS] URL: Setting <file:///var/log/system.log>.href = 'http://0300.168.0xF0'
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/url/url-setters.any_include=file-expected.txt b/third_party/blink/web_tests/external/wpt/url/url-setters.any_include=file-expected.txt
index 691e438..9b64d7f 100644
--- a/third_party/blink/web_tests/external/wpt/url/url-setters.any_include=file-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/url/url-setters.any_include=file-expected.txt
@@ -24,8 +24,8 @@
 [FAIL] URL: Setting <file://localhost/>.port = '12'
   assert_equals: expected "file:///" but got "file://localhost/"
 [PASS] URL: Setting <file:///some/path>.pathname = '' Special URLs cannot have their paths erased
-[PASS] URL: Setting <file://monkey/>.pathname = '\\' File URLs and (back)slashes
-[PASS] URL: Setting <file:///unicorn>.pathname = '//\/' File URLs and (back)slashes
+[PASS] URL: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes
+[PASS] URL: Setting <file:///unicorn>.pathname = '//\\/' File URLs and (back)slashes
 [PASS] URL: Setting <file:///unicorn>.pathname = '//monkey/..//' File URLs and (back)slashes
 [PASS] URL: Setting <file:///var/log/system.log>.href = 'http://0300.168.0xF0'
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/urlpattern/resources/urlpatterntestdata.json b/third_party/blink/web_tests/external/wpt/urlpattern/resources/urlpatterntestdata.json
index 56b3a0c..4a05e4c 100644
--- a/third_party/blink/web_tests/external/wpt/urlpattern/resources/urlpatterntestdata.json
+++ b/third_party/blink/web_tests/external/wpt/urlpattern/resources/urlpatterntestdata.json
@@ -80,16 +80,19 @@
                  "baseURL": "https://example.com?query#hash" }],
     "inputs": [{ "protocol": "https", "hostname": "example.com",
                  "pathname": "/foo/bar" }],
-    "exactly_empty_components": [ "username", "password", "port" ],
-    "expected_match": null
+    "exactly_empty_components": [ "port" ],
+    "expected_match": {
+      "hostname": { "input": "example.com", "groups": {} },
+      "pathname": { "input": "/foo/bar", "groups": {} },
+      "protocol": { "input": "https", "groups": {} }
+    }
   },
   {
     "pattern": [{ "pathname": "/foo/bar",
                  "baseURL": "https://example.com" }],
     "inputs": [{ "protocol": "https", "hostname": "example.com",
                  "pathname": "/foo/bar" }],
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_match": {
       "hostname": { "input": "example.com", "groups": {} },
       "pathname": { "input": "/foo/bar", "groups": {} },
@@ -109,8 +112,14 @@
     "inputs": [{ "protocol": "https", "hostname": "example.com",
                  "pathname": "/foo/bar", "search": "otherquery",
                  "hash": "otherhash" }],
-    "exactly_empty_components": [ "username", "password", "port" ],
-    "expected_match": null
+    "exactly_empty_components": [ "port" ],
+    "expected_match": {
+      "hash": { "input": "otherhash", "groups": { "0": "otherhash" } },
+      "hostname": { "input": "example.com", "groups": {} },
+      "pathname": { "input": "/foo/bar", "groups": {} },
+      "protocol": { "input": "https", "groups": {} },
+      "search": { "input": "otherquery", "groups": { "0": "otherquery" } }
+    }
   },
   {
     "pattern": [{ "pathname": "/foo/bar",
@@ -118,9 +127,14 @@
     "inputs": [{ "protocol": "https", "hostname": "example.com",
                  "pathname": "/foo/bar", "search": "otherquery",
                  "hash": "otherhash" }],
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
-    "expected_match": null
+    "exactly_empty_components": [ "port" ],
+    "expected_match": {
+      "hash": { "input": "otherhash", "groups": { "0": "otherhash" } },
+      "hostname": { "input": "example.com", "groups": {} },
+      "pathname": { "input": "/foo/bar", "groups": {} },
+      "protocol": { "input": "https", "groups": {} },
+      "search": { "input": "otherquery", "groups": { "0": "otherquery" } }
+    }
   },
   {
     "pattern": [{ "pathname": "/foo/bar",
@@ -128,40 +142,50 @@
     "inputs": [{ "protocol": "https", "hostname": "example.com",
                  "pathname": "/foo/bar", "search": "otherquery",
                  "hash": "otherhash" }],
-    "exactly_empty_components": [ "username", "password", "port" ],
+    "exactly_empty_components": [ "port" ],
     "expected_match": {
-      "hash": { "input": "otherhash", "groups": {} },
+      "hash": { "input": "otherhash", "groups": { "0": "otherhash" } },
       "hostname": { "input": "example.com", "groups": {} },
       "pathname": { "input": "/foo/bar", "groups": {} },
       "protocol": { "input": "https", "groups": {} },
-      "search": { "input": "otherquery", "groups": {} }
+      "search": { "input": "otherquery", "groups": { "0": "otherquery" } }
     }
   },
   {
     "pattern": [{ "pathname": "/foo/bar",
                  "baseURL": "https://example.com?query#hash" }],
     "inputs": [ "https://example.com/foo/bar" ],
-    "exactly_empty_components": [ "username", "password", "port" ],
-    "expected_match": null
+    "exactly_empty_components": [ "port" ],
+    "expected_match": {
+      "hostname": { "input": "example.com", "groups": {} },
+      "pathname": { "input": "/foo/bar", "groups": {} },
+      "protocol": { "input": "https", "groups": {} }
+    }
   },
   {
     "pattern": [{ "pathname": "/foo/bar",
                  "baseURL": "https://example.com?query#hash" }],
     "inputs": [ "https://example.com/foo/bar?otherquery#otherhash" ],
-    "exactly_empty_components": [ "username", "password", "port" ],
-    "expected_match": null
+    "exactly_empty_components": [ "port" ],
+    "expected_match": {
+      "hash": { "input": "otherhash", "groups": { "0": "otherhash" } },
+      "hostname": { "input": "example.com", "groups": {} },
+      "pathname": { "input": "/foo/bar", "groups": {} },
+      "protocol": { "input": "https", "groups": {} },
+      "search": { "input": "otherquery", "groups": { "0": "otherquery" } }
+    }
   },
   {
     "pattern": [{ "pathname": "/foo/bar",
                  "baseURL": "https://example.com?query#hash" }],
     "inputs": [ "https://example.com/foo/bar?query#hash" ],
-    "exactly_empty_components": [ "username", "password", "port" ],
+    "exactly_empty_components": [ "port" ],
     "expected_match": {
-      "hash": { "input": "hash", "groups": {} },
+      "hash": { "input": "hash", "groups": { "0": "hash" } },
       "hostname": { "input": "example.com", "groups": {} },
       "pathname": { "input": "/foo/bar", "groups": {} },
       "protocol": { "input": "https", "groups": {} },
-      "search": { "input": "query", "groups": {} }
+      "search": { "input": "query", "groups": { "0": "query" } }
     }
   },
   {
@@ -186,21 +210,23 @@
     "pattern": [{ "pathname": "/foo/bar",
                  "baseURL": "https://example.com?query#hash" }],
     "inputs": [{ "pathname": "/foo/bar", "baseURL": "https://example.com" }],
-    "exactly_empty_components": [ "username", "password", "port" ],
-    "expected_match": null
+    "exactly_empty_components": [ "port" ],
+    "expected_match": {
+      "hostname": { "input": "example.com", "groups": {} },
+      "pathname": { "input": "/foo/bar", "groups": {} },
+      "protocol": { "input": "https", "groups": {} }
+    }
   },
   {
     "pattern": [{ "pathname": "/foo/bar",
                  "baseURL": "https://example.com?query#hash" }],
     "inputs": [{ "pathname": "/foo/bar",
                  "baseURL": "https://example.com?query#hash" }],
-    "exactly_empty_components": [ "username", "password", "port" ],
+    "exactly_empty_components": [ "port" ],
     "expected_match": {
-      "hash": { "input": "hash", "groups": {} },
       "hostname": { "input": "example.com", "groups": {} },
       "pathname": { "input": "/foo/bar", "groups": {} },
-      "protocol": { "input": "https", "groups": {} },
-      "search": { "input": "query", "groups": {} }
+      "protocol": { "input": "https", "groups": {} }
     }
   },
   {
@@ -1209,8 +1235,7 @@
   {
     "pattern": [{ "pathname": "./foo/bar", "baseURL": "https://example.com" }],
     "inputs": [{ "pathname": "foo/bar", "baseURL": "https://example.com" }],
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "pathname": "/foo/bar"
     },
@@ -1223,8 +1248,7 @@
   {
     "pattern": [{ "pathname": "", "baseURL": "https://example.com" }],
     "inputs": [{ "pathname": "/", "baseURL": "https://example.com" }],
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "pathname": "/"
     },
@@ -1237,8 +1261,7 @@
   {
     "pattern": [{ "pathname": "{/bar}", "baseURL": "https://example.com/foo/" }],
     "inputs": [{ "pathname": "./bar", "baseURL": "https://example.com/foo/" }],
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "pathname": "/bar"
     },
@@ -1247,8 +1270,7 @@
   {
     "pattern": [{ "pathname": "\\/bar", "baseURL": "https://example.com/foo/" }],
     "inputs": [{ "pathname": "./bar", "baseURL": "https://example.com/foo/" }],
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "pathname": "/bar"
     },
@@ -1257,8 +1279,7 @@
   {
     "pattern": [{ "pathname": "b", "baseURL": "https://example.com/foo/" }],
     "inputs": [{ "pathname": "./b", "baseURL": "https://example.com/foo/" }],
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "pathname": "/foo/b"
     },
@@ -1276,8 +1297,7 @@
   {
     "pattern": [{ "pathname": "foo/bar", "baseURL": "https://example.com" }],
     "inputs": [ "https://example.com/foo/bar" ],
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "pathname": "/foo/bar"
     },
@@ -1290,8 +1310,7 @@
   {
     "pattern": [{ "pathname": ":name.html", "baseURL": "https://example.com" }],
     "inputs": [ "https://example.com/foo.html"] ,
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "pathname": "/:name.html"
     },
@@ -1464,9 +1483,10 @@
     "pattern": [ "https://example.com:8080/foo?bar#baz" ],
     "inputs": [{ "pathname": "/foo", "search": "bar", "hash": "baz",
                  "baseURL": "https://example.com:8080" }],
-    "exactly_empty_components": [ "username", "password" ],
     "expected_obj": {
       "protocol": "https",
+      "username": "*",
+      "password": "*",
       "hostname": "example.com",
       "port": "8080",
       "pathname": "/foo",
@@ -1486,7 +1506,6 @@
     "pattern": [ "/foo?bar#baz", "https://example.com:8080" ],
     "inputs": [{ "pathname": "/foo", "search": "bar", "hash": "baz",
                  "baseURL": "https://example.com:8080" }],
-    "exactly_empty_components": [ "username", "password" ],
     "expected_obj": {
       "pathname": "/foo",
       "search": "bar",
@@ -1512,8 +1531,7 @@
   {
     "pattern": [ "http{s}?://{*.}?example.com/:product/:endpoint" ],
     "inputs": [ "https://sub.example.com/foo/bar" ],
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "http{s}?",
       "hostname": "{*.}?example.com",
@@ -1529,8 +1547,7 @@
   {
     "pattern": [ "https://example.com?foo" ],
     "inputs": [ "https://example.com/?foo" ],
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "example.com",
@@ -1547,8 +1564,7 @@
   {
     "pattern": [ "https://example.com#foo" ],
     "inputs": [ "https://example.com/#foo" ],
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
+    "exactly_empty_components": [ "port", "search" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "example.com",
@@ -1565,7 +1581,6 @@
   {
     "pattern": [ "https://example.com:8080?foo" ],
     "inputs": [ "https://example.com:8080/?foo" ],
-    "exactly_empty_components": [ "username", "password", "hash" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "example.com",
@@ -1584,7 +1599,7 @@
   {
     "pattern": [ "https://example.com:8080#foo" ],
     "inputs": [ "https://example.com:8080/#foo" ],
-    "exactly_empty_components": [ "username", "password", "search" ],
+    "exactly_empty_components": [ "search" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "example.com",
@@ -1603,7 +1618,7 @@
   {
     "pattern": [ "https://example.com/?foo" ],
     "inputs": [ "https://example.com/?foo" ],
-    "exactly_empty_components": [ "username", "password", "port", "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "example.com",
@@ -1620,7 +1635,7 @@
   {
     "pattern": [ "https://example.com/#foo" ],
     "inputs": [ "https://example.com/#foo" ],
-    "exactly_empty_components": [ "username", "password", "port", "search" ],
+    "exactly_empty_components": [ "port", "search" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "example.com",
@@ -1637,8 +1652,7 @@
   {
     "pattern": [ "https://example.com/*?foo" ],
     "inputs": [ "https://example.com/?foo" ],
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "example.com",
@@ -1649,7 +1663,7 @@
   {
     "pattern": [ "https://example.com/*\\?foo" ],
     "inputs": [ "https://example.com/?foo" ],
-    "exactly_empty_components": [ "username", "password", "port", "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "example.com",
@@ -1666,8 +1680,7 @@
   {
     "pattern": [ "https://example.com/:name?foo" ],
     "inputs": [ "https://example.com/bar?foo" ],
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "example.com",
@@ -1678,7 +1691,7 @@
   {
     "pattern": [ "https://example.com/:name\\?foo" ],
     "inputs": [ "https://example.com/bar?foo" ],
-    "exactly_empty_components": [ "username", "password", "port", "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "example.com",
@@ -1695,7 +1708,7 @@
   {
     "pattern": [ "https://example.com/(bar)?foo" ],
     "inputs": [ "https://example.com/bar?foo" ],
-    "exactly_empty_components": [ "username", "password", "port", "search", "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "example.com",
@@ -1706,7 +1719,7 @@
   {
     "pattern": [ "https://example.com/(bar)\\?foo" ],
     "inputs": [ "https://example.com/bar?foo" ],
-    "exactly_empty_components": [ "username", "password", "port", "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "example.com",
@@ -1723,7 +1736,7 @@
   {
     "pattern": [ "https://example.com/{bar}?foo" ],
     "inputs": [ "https://example.com/bar?foo" ],
-    "exactly_empty_components": [ "username", "password", "port", "search", "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "example.com",
@@ -1734,7 +1747,7 @@
   {
     "pattern": [ "https://example.com/{bar}\\?foo" ],
     "inputs": [ "https://example.com/bar?foo" ],
-    "exactly_empty_components": [ "username", "password", "port", "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "example.com",
@@ -1751,8 +1764,7 @@
   {
     "pattern": [ "https://example.com/" ],
     "inputs": [ "https://example.com:8080/" ],
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "example.com",
@@ -1769,8 +1781,7 @@
   {
     "pattern": [ "data\\:foobar" ],
     "inputs": [ "data:foobar" ],
-    "exactly_empty_components": [ "username", "password", "hostname", "port",
-                                  "search", "hash" ],
+    "exactly_empty_components": [ "hostname", "port" ],
     "expected_obj": {
       "protocol": "data",
       "pathname": "foobar"
@@ -1783,8 +1794,7 @@
   {
     "pattern": [ "https://{sub.}?example.com/foo" ],
     "inputs": [ "https://example.com/foo" ],
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "{sub.}?example.com",
@@ -1809,8 +1819,7 @@
   {
     "pattern": [ "https://(sub.)?example.com/foo" ],
     "inputs": [ "https://example.com/foo" ],
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "(sub.)?example.com",
@@ -1826,12 +1835,11 @@
   {
     "pattern": [ "https://(sub.)?example(.com/)foo" ],
     "inputs": [ "https://example.com/foo" ],
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "(sub.)?example(.com/)foo",
-      "pathname": "/"
+      "pathname": "*"
     },
     "expected_match": null
   },
@@ -1848,8 +1856,7 @@
   {
     "pattern": [ "https://(sub(?:.))?example.com/foo" ],
     "inputs": [ "https://example.com/foo" ],
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "(sub(?:.))?example.com",
@@ -1865,8 +1872,7 @@
   {
     "pattern": [ "file:///foo/bar" ],
     "inputs": [ "file:///foo/bar" ],
-    "exactly_empty_components": [ "username", "password", "hostname", "port",
-                                  "search", "hash" ],
+    "exactly_empty_components": [ "hostname", "port" ],
     "expected_obj": {
       "protocol": "file",
       "pathname": "/foo/bar"
@@ -1879,8 +1885,7 @@
   {
     "pattern": [ "data:" ],
     "inputs": [ "data:" ],
-    "exactly_empty_components": [ "username", "password", "hostname", "port",
-                                  "pathname", "search", "hash" ],
+    "exactly_empty_components": [ "hostname", "port", "pathname" ],
     "expected_obj": {
       "protocol": "data"
     },
@@ -1891,8 +1896,7 @@
   {
     "pattern": [ "foo://bar" ],
     "inputs": [ "foo://bad_url_browser_interop" ],
-    "exactly_empty_components": [ "username", "password", "port", "pathname",
-                                  "search", "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "foo",
       "hostname": "bar"
@@ -1909,7 +1913,7 @@
                  "search": "?bar",
                  "hash": "#baz",
                  "baseURL": "http://example.com/foo" }],
-    "exactly_empty_components": [ "username", "password", "port" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "example.com",
@@ -1917,13 +1921,7 @@
       "search": "bar",
       "hash": "baz"
     },
-    "expected_match": {
-      "protocol": { "input": "https", "groups": {} },
-      "hostname": { "input": "example.com", "groups": {} },
-      "pathname": { "input": "/foo", "groups": {} },
-      "search": { "input": "bar", "groups": {} },
-      "hash": { "input": "baz", "groups": {} }
-    }
+    "expected_match": null
   },
   {
     "pattern": [{ "protocol": "http{s}?:",
@@ -1946,7 +1944,7 @@
   {
     "pattern": [ "?bar#baz", "https://example.com/foo" ],
     "inputs": [ "?bar#baz", "https://example.com/foo" ],
-    "exactly_empty_components": [ "username", "password", "port" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "example.com",
@@ -1965,12 +1963,13 @@
   {
     "pattern": [ "?bar", "https://example.com/foo#baz" ],
     "inputs": [ "?bar", "https://example.com/foo#snafu" ],
-    "exactly_empty_components": [ "username", "password", "port", "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "example.com",
       "pathname": "/foo",
-      "search": "bar"
+      "search": "bar",
+      "hash": "*"
     },
     "expected_match": {
       "protocol": { "input": "https", "groups": {} },
@@ -1982,7 +1981,7 @@
   {
     "pattern": [ "#baz", "https://example.com/foo?bar" ],
     "inputs": [ "#baz", "https://example.com/foo?bar" ],
-    "exactly_empty_components": [ "username", "password", "port" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "example.com",
@@ -2001,7 +2000,7 @@
   {
     "pattern": [ "#baz", "https://example.com/foo" ],
     "inputs": [ "#baz", "https://example.com/foo" ],
-    "exactly_empty_components": [ "username", "password", "port", "search" ],
+    "exactly_empty_components": [ "port", "search" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "example.com",
@@ -2028,99 +2027,98 @@
   {
     "pattern": [ "https://foo\\:bar@example.com" ],
     "inputs": [ "https://foo:bar@example.com" ],
-    "exactly_empty_components": [ "port", "search", "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "username": "foo",
       "password": "bar",
       "hostname": "example.com",
-      "pathname": "/"
+      "pathname": "*"
     },
     "expected_match": {
       "protocol": { "input": "https", "groups": {} },
       "username": { "input": "foo", "groups": {} },
       "password": { "input": "bar", "groups": {} },
       "hostname": { "input": "example.com", "groups": {} },
-      "pathname": { "input": "/", "groups": {} }
+      "pathname": { "input": "/", "groups": { "0": "/" } }
     }
   },
   {
     "pattern": [ "https://foo@example.com" ],
     "inputs": [ "https://foo@example.com" ],
-    "exactly_empty_components": [ "password", "port", "search", "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "username": "foo",
       "hostname": "example.com",
-      "pathname": "/"
+      "pathname": "*"
     },
     "expected_match": {
       "protocol": { "input": "https", "groups": {} },
       "username": { "input": "foo", "groups": {} },
       "hostname": { "input": "example.com", "groups": {} },
-      "pathname": { "input": "/", "groups": {} }
+      "pathname": { "input": "/", "groups": { "0": "/" } }
     }
   },
   {
     "pattern": [ "https://\\:bar@example.com" ],
     "inputs": [ "https://:bar@example.com" ],
-    "exactly_empty_components": [ "username", "port", "search", "hash" ],
+    "exactly_empty_components": [ "username", "port" ],
     "expected_obj": {
       "protocol": "https",
       "password": "bar",
       "hostname": "example.com",
-      "pathname": "/"
+      "pathname": "*"
     },
     "expected_match": {
       "protocol": { "input": "https", "groups": {} },
       "password": { "input": "bar", "groups": {} },
       "hostname": { "input": "example.com", "groups": {} },
-      "pathname": { "input": "/", "groups": {} }
+      "pathname": { "input": "/", "groups": { "0": "/" } }
     }
   },
   {
     "pattern": [ "https://:user::pass@example.com" ],
     "inputs": [ "https://foo:bar@example.com" ],
-    "exactly_empty_components": [ "port", "search", "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "username": ":user",
       "password": ":pass",
       "hostname": "example.com",
-      "pathname": "/"
+      "pathname": "*"
     },
     "expected_match": {
       "protocol": { "input": "https", "groups": {} },
       "username": { "input": "foo", "groups": { "user": "foo" } },
       "password": { "input": "bar", "groups": { "pass": "bar" } },
       "hostname": { "input": "example.com", "groups": {} },
-      "pathname": { "input": "/", "groups": {} }
+      "pathname": { "input": "/", "groups": { "0": "/" } }
     }
   },
   {
     "pattern": [ "https\\:foo\\:bar@example.com" ],
     "inputs": [ "https:foo:bar@example.com" ],
-    "exactly_empty_components": [ "port", "search", "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "username": "foo",
       "password": "bar",
       "hostname": "example.com",
-      "pathname": "/"
+      "pathname": "*"
     },
     "expected_match": {
       "protocol": { "input": "https", "groups": {} },
       "username": { "input": "foo", "groups": {} },
       "password": { "input": "bar", "groups": {} },
       "hostname": { "input": "example.com", "groups": {} },
-      "pathname": { "input": "/", "groups": {} }
+      "pathname": { "input": "/", "groups": { "0": "/" } }
     }
   },
   {
     "pattern": [ "data\\:foo\\:bar@example.com" ],
     "inputs": [ "data:foo:bar@example.com" ],
-    "exactly_empty_components": [ "username", "password", "hostname", "port",
-                                  "search", "hash" ],
+    "exactly_empty_components": [ "hostname", "port" ],
     "expected_obj": {
       "protocol": "data",
       "pathname": "foo\\:bar@example.com"
@@ -2133,24 +2131,24 @@
   {
     "pattern": [ "https://foo{\\:}bar@example.com" ],
     "inputs": [ "https://foo:bar@example.com" ],
-    "exactly_empty_components": [ "password", "port", "search", "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "username": "foo%3Abar",
-      "hostname": "example.com",
-      "pathname": "/"
+      "hostname": "example.com"
     },
     "expected_match": null
   },
   {
     "pattern": [ "data{\\:}channel.html", "https://example.com" ],
     "inputs": [ "https://example.com/data:channel.html" ],
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "example.com",
-      "pathname": "/data\\:channel.html"
+      "pathname": "/data\\:channel.html",
+      "search": "*",
+      "hash": "*"
     },
     "expected_match": {
       "protocol": { "input": "https", "groups": {} },
@@ -2161,8 +2159,7 @@
   {
     "pattern": [ "http://[\\:\\:1]/" ],
     "inputs": [ "http://[::1]/" ],
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "http",
       "hostname": "[\\:\\:1]",
@@ -2177,7 +2174,6 @@
   {
     "pattern": [ "http://[\\:\\:1]:8080/" ],
     "inputs": [ "http://[::1]:8080/" ],
-    "exactly_empty_components": [ "username", "password", "search", "hash" ],
     "expected_obj": {
       "protocol": "http",
       "hostname": "[\\:\\:1]",
@@ -2194,8 +2190,7 @@
   {
     "pattern": [ "http://[\\:\\:a]/" ],
     "inputs": [ "http://[::a]/" ],
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "http",
       "hostname": "[\\:\\:a]",
@@ -2210,8 +2205,7 @@
   {
     "pattern": [ "http://[:address]/" ],
     "inputs": [ "http://[::1]/" ],
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "http",
       "hostname": "[:address]",
@@ -2226,8 +2220,7 @@
   {
     "pattern": [ "http://[\\:\\:AB\\::num]/" ],
     "inputs": [ "http://[::ab:1]/" ],
-    "exactly_empty_components": [ "username", "password", "port", "search",
-                                  "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "protocol": "http",
       "hostname": "[\\:\\:ab\\::num]",
@@ -2299,8 +2292,7 @@
   {
     "pattern": [ "data\\:text/javascript,let x = 100/:tens?5;" ],
     "inputs": [ "data:text/javascript,let x = 100/5;" ],
-    "exactly_empty_components": [ "username", "password", "hostname", "port",
-                                  "search", "hash" ],
+    "exactly_empty_components": [ "hostname", "port" ],
     "expected_obj": {
       "protocol": "data",
       "pathname": "text/javascript,let x = 100/:tens?5;"
@@ -2747,7 +2739,6 @@
                  { "ignoreCase": true }],
     "inputs": [{ "pathname": "/FOO", "search": "BAR", "hash": "BAZ",
                  "baseURL": "https://example.com:8080" }],
-    "exactly_empty_components": [ "username", "password" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "example.com",
@@ -2770,7 +2761,6 @@
                  { "ignoreCase": true }],
     "inputs": [{ "pathname": "/FOO", "search": "BAR", "hash": "BAZ",
                  "baseURL": "https://example.com:8080" }],
-    "exactly_empty_components": [ "username", "password" ],
     "expected_obj": {
       "protocol": "https",
       "hostname": "example.com",
@@ -2798,7 +2788,7 @@
   {
     "pattern": [{ "search": "foo", "baseURL": "https://example.com/a/+/b" }],
     "inputs": [{ "search": "foo", "baseURL": "https://example.com/a/+/b" }],
-    "exactly_empty_components": [ "username", "password", "port", "hash" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "pathname": "/a/\\+/b"
     },
@@ -2812,7 +2802,7 @@
   {
     "pattern": [{ "hash": "foo", "baseURL": "https://example.com/?q=*&v=?&hmm={}&umm=()" }],
     "inputs": [{ "hash": "foo", "baseURL": "https://example.com/?q=*&v=?&hmm={}&umm=()" }],
-    "exactly_empty_components": [ "username", "password", "port" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "search": "q=\\*&v=\\?&hmm=\\{\\}&umm=\\(\\)"
     },
@@ -2827,7 +2817,7 @@
   {
     "pattern": [ "#foo", "https://example.com/?q=*&v=?&hmm={}&umm=()" ],
     "inputs": [ "https://example.com/?q=*&v=?&hmm={}&umm=()#foo" ],
-    "exactly_empty_components": [ "username", "password", "port" ],
+    "exactly_empty_components": [ "port" ],
     "expected_obj": {
       "search": "q=\\*&v=\\?&hmm=\\{\\}&umm=\\(\\)",
       "hash": "foo"
diff --git a/third_party/blink/web_tests/external/wpt/urlpattern/resources/urlpatterntests.js b/third_party/blink/web_tests/external/wpt/urlpattern/resources/urlpatterntests.js
index f774699b..761f96b6 100644
--- a/third_party/blink/web_tests/external/wpt/urlpattern/resources/urlpatterntests.js
+++ b/third_party/blink/web_tests/external/wpt/urlpattern/resources/urlpatterntests.js
@@ -46,22 +46,41 @@
             baseURL = new URL(entry.pattern[1]);
           }
 
+          const EARLIER_COMPONENTS = {
+            protocol: [],
+            hostname: ["protocol"],
+            port: ["protocol", "hostname"],
+            username: [],
+            password: [],
+            pathname: ["protocol", "hostname", "port"],
+            search: ["protocol", "hostname", "port", "pathname"],
+            hash: ["protocol", "hostname", "port", "pathname", "search"],
+          };
+
           // We automatically populate the expected pattern string using
           // the following options in priority order:
           //
           //  1. If the original input explicitly provided a pattern, then
           //     echo that back as the expected value.
-          //  2. If the baseURL exists and provides a component value then
+          //  2. If an "earlier" component is specified, then a wildcard
+          //     will be used rather than inheriting from the base URL.
+          //  3. If the baseURL exists and provides a component value then
           //     use that for the expected pattern.
-          //  3. Otherwise fall back on the default pattern of `*` for an
+          //  4. Otherwise fall back on the default pattern of `*` for an
           //     empty component pattern.
+          //
+          // Note that username and password are never inherited, and will only
+          // need to match if explicitly specified.
           if (entry.exactly_empty_components &&
               entry.exactly_empty_components.includes(component)) {
             expected = '';
           } else if (typeof entry.pattern[0] === 'object' &&
               entry.pattern[0][component]) {
             expected = entry.pattern[0][component];
-          } else if (baseURL) {
+          } else if (typeof entry.pattern[0] === 'object' &&
+              EARLIER_COMPONENTS[component].some(c => c in entry.pattern[0])) {
+            expected = '*';
+          } else if (baseURL && component !== 'username' && component !== 'password') {
             let base_value = baseURL[component];
             // Unfortunately some URL() getters include separator chars; e.g.
             // the trailing `:` for the protocol.  Strip those off if necessary.
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt b/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt
index a5936d8..f89b59f 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt
@@ -305,7 +305,7 @@
 [PASS] grid-template-areas (type: discrete) has testAccumulation function
 [PASS] grid-template-areas: "none" onto "". . a b" ". .a b""
 [FAIL] grid-template-areas: "". . a b" ". .a b"" onto "none"
-  assert_equals: The value should be ". . a b" ". .a b" at 0ms expected "\". . a b\" \". .a b\"" but got "\". . a b\" \". . a b\""
+  assert_equals: The value should be ". . a b" ". .a b" at 0ms expected "\\". . a b\\" \\". .a b\\"" but got "\\". . a b\\" \\". . a b\\""
 [PASS] hyphens (type: discrete) has testAccumulation function
 [PASS] hyphens: "none" onto "manual"
 [PASS] hyphens: "manual" onto "none"
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt b/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt
index 89f3400..c88df621 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt
@@ -305,7 +305,7 @@
 [PASS] grid-template-areas (type: discrete) has testAddition function
 [PASS] grid-template-areas: "none" onto "". . a b" ". .a b""
 [FAIL] grid-template-areas: "". . a b" ". .a b"" onto "none"
-  assert_equals: The value should be ". . a b" ". .a b" at 0ms expected "\". . a b\" \". .a b\"" but got "\". . a b\" \". . a b\""
+  assert_equals: The value should be ". . a b" ". .a b" at 0ms expected "\\". . a b\\" \\". .a b\\"" but got "\\". . a b\\" \\". . a b\\""
 [PASS] hyphens (type: discrete) has testAddition function
 [PASS] hyphens: "none" onto "manual"
 [PASS] hyphens: "manual" onto "none"
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt b/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt
index 62e8399..5edf710 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt
@@ -38,11 +38,11 @@
 [PASS] background-clip uses discrete animation when animating between "padding-box" and "content-box" with keyframe easing
 [PASS] background-image (type: discrete) has testInterpolation function
 [FAIL] background-image uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with linear easing
-  assert_equals: The value should be url("http://localhost/test-1") at 499ms expected "url(\"http://localhost/test-1\")" but got "-webkit-cross-fade(url(\"http://localhost/test-1\"), url(\"http://localhost/test-2\"), 0.499)"
+  assert_equals: The value should be url("http://localhost/test-1") at 499ms expected "url(\\"http://localhost/test-1\\")" but got "-webkit-cross-fade(url(\\"http://localhost/test-1\\"), url(\\"http://localhost/test-2\\"), 0.499)"
 [FAIL] background-image uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with effect easing
-  assert_equals: The value should be url("http://localhost/test-1") at 940ms expected "url(\"http://localhost/test-1\")" but got "-webkit-cross-fade(url(\"http://localhost/test-1\"), url(\"http://localhost/test-2\"), 0.428259)"
+  assert_equals: The value should be url("http://localhost/test-1") at 940ms expected "url(\\"http://localhost/test-1\\")" but got "-webkit-cross-fade(url(\\"http://localhost/test-1\\"), url(\\"http://localhost/test-2\\"), 0.428259)"
 [FAIL] background-image uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with keyframe easing
-  assert_equals: The value should be url("http://localhost/test-1") at 940ms expected "url(\"http://localhost/test-1\")" but got "-webkit-cross-fade(url(\"http://localhost/test-1\"), url(\"http://localhost/test-2\"), 0.428259)"
+  assert_equals: The value should be url("http://localhost/test-1") at 940ms expected "url(\\"http://localhost/test-1\\")" but got "-webkit-cross-fade(url(\\"http://localhost/test-1\\"), url(\\"http://localhost/test-2\\"), 0.428259)"
 [PASS] background-origin (type: discrete) has testInterpolation function
 [PASS] background-origin uses discrete animation when animating between "padding-box" and "content-box" with linear easing
 [PASS] background-origin uses discrete animation when animating between "padding-box" and "content-box" with effect easing
@@ -75,11 +75,11 @@
 [PASS] border-image-repeat uses discrete animation when animating between "stretch repeat" and "round space" with keyframe easing
 [PASS] border-image-source (type: discrete) has testInterpolation function
 [FAIL] border-image-source uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with linear easing
-  assert_equals: The value should be url("http://localhost/test-1") at 499ms expected "url(\"http://localhost/test-1\")" but got "-webkit-cross-fade(url(\"http://localhost/test-1\"), url(\"http://localhost/test-2\"), 0.499)"
+  assert_equals: The value should be url("http://localhost/test-1") at 499ms expected "url(\\"http://localhost/test-1\\")" but got "-webkit-cross-fade(url(\\"http://localhost/test-1\\"), url(\\"http://localhost/test-2\\"), 0.499)"
 [FAIL] border-image-source uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with effect easing
-  assert_equals: The value should be url("http://localhost/test-1") at 940ms expected "url(\"http://localhost/test-1\")" but got "-webkit-cross-fade(url(\"http://localhost/test-1\"), url(\"http://localhost/test-2\"), 0.428259)"
+  assert_equals: The value should be url("http://localhost/test-1") at 940ms expected "url(\\"http://localhost/test-1\\")" but got "-webkit-cross-fade(url(\\"http://localhost/test-1\\"), url(\\"http://localhost/test-2\\"), 0.428259)"
 [FAIL] border-image-source uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with keyframe easing
-  assert_equals: The value should be url("http://localhost/test-1") at 940ms expected "url(\"http://localhost/test-1\")" but got "-webkit-cross-fade(url(\"http://localhost/test-1\"), url(\"http://localhost/test-2\"), 0.428259)"
+  assert_equals: The value should be url("http://localhost/test-1") at 940ms expected "url(\\"http://localhost/test-1\\")" but got "-webkit-cross-fade(url(\\"http://localhost/test-1\\"), url(\\"http://localhost/test-2\\"), 0.428259)"
 [PASS] border-left-color (type: color) has testInterpolation function
 [PASS] border-left-color supports animating as color of rgb()
 [PASS] border-left-color supports animating as color of #RGB
@@ -384,11 +384,11 @@
 [PASS] grid-row-start uses discrete animation when animating between "1" and "5" with keyframe easing
 [PASS] grid-template-areas (type: discrete) has testInterpolation function
 [FAIL] grid-template-areas uses discrete animation when animating between "". . a b" ". .a b"" and "none" with linear easing
-  assert_equals: The value should be ". . a b" ". .a b" at 0ms expected "\". . a b\" \". .a b\"" but got "\". . a b\" \". . a b\""
+  assert_equals: The value should be ". . a b" ". .a b" at 0ms expected "\\". . a b\\" \\". .a b\\"" but got "\\". . a b\\" \\". . a b\\""
 [FAIL] grid-template-areas uses discrete animation when animating between "". . a b" ". .a b"" and "none" with effect easing
-  assert_equals: The value should be ". . a b" ". .a b" at 0ms expected "\". . a b\" \". .a b\"" but got "\". . a b\" \". . a b\""
+  assert_equals: The value should be ". . a b" ". .a b" at 0ms expected "\\". . a b\\" \\". .a b\\"" but got "\\". . a b\\" \\". . a b\\""
 [FAIL] grid-template-areas uses discrete animation when animating between "". . a b" ". .a b"" and "none" with keyframe easing
-  assert_equals: The value should be ". . a b" ". .a b" at 0ms expected "\". . a b\" \". .a b\"" but got "\". . a b\" \". . a b\""
+  assert_equals: The value should be ". . a b" ". .a b" at 0ms expected "\\". . a b\\" \\". .a b\\"" but got "\\". . a b\\" \\". . a b\\""
 [PASS] hyphens (type: discrete) has testInterpolation function
 [PASS] hyphens uses discrete animation when animating between "manual" and "none" with linear easing
 [PASS] hyphens uses discrete animation when animating between "manual" and "none" with effect easing
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt b/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt
index ddce1f4..cb351cf 100644
--- a/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt
@@ -36,11 +36,11 @@
 [PASS] line-height uses discrete animation when animating between "normal" and "10" with keyframe easing
 [PASS] list-style-image (type: discrete) has testInterpolation function
 [FAIL] list-style-image uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with linear easing
-  assert_equals: The value should be url("http://localhost/test-1") at 499ms expected "url(\"http://localhost/test-1\")" but got "-webkit-cross-fade(url(\"http://localhost/test-1\"), url(\"http://localhost/test-2\"), 0.499)"
+  assert_equals: The value should be url("http://localhost/test-1") at 499ms expected "url(\\"http://localhost/test-1\\")" but got "-webkit-cross-fade(url(\\"http://localhost/test-1\\"), url(\\"http://localhost/test-2\\"), 0.499)"
 [FAIL] list-style-image uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with effect easing
-  assert_equals: The value should be url("http://localhost/test-1") at 940ms expected "url(\"http://localhost/test-1\")" but got "-webkit-cross-fade(url(\"http://localhost/test-1\"), url(\"http://localhost/test-2\"), 0.428259)"
+  assert_equals: The value should be url("http://localhost/test-1") at 940ms expected "url(\\"http://localhost/test-1\\")" but got "-webkit-cross-fade(url(\\"http://localhost/test-1\\"), url(\\"http://localhost/test-2\\"), 0.428259)"
 [FAIL] list-style-image uses discrete animation when animating between "url("http://localhost/test-1")" and "url("http://localhost/test-2")" with keyframe easing
-  assert_equals: The value should be url("http://localhost/test-1") at 940ms expected "url(\"http://localhost/test-1\")" but got "-webkit-cross-fade(url(\"http://localhost/test-1\"), url(\"http://localhost/test-2\"), 0.428259)"
+  assert_equals: The value should be url("http://localhost/test-1") at 940ms expected "url(\\"http://localhost/test-1\\")" but got "-webkit-cross-fade(url(\\"http://localhost/test-1\\"), url(\\"http://localhost/test-2\\"), 0.428259)"
 [PASS] list-style-position (type: discrete) has testInterpolation function
 [PASS] list-style-position uses discrete animation when animating between "inside" and "outside" with linear easing
 [PASS] list-style-position uses discrete animation when animating between "inside" and "outside" with effect easing
diff --git a/third_party/blink/web_tests/external/wpt/webvtt/api/VTTCue/getCueAsHTML-expected.txt b/third_party/blink/web_tests/external/wpt/webvtt/api/VTTCue/getCueAsHTML-expected.txt
index 49b6199a..6205b1f1 100644
--- a/third_party/blink/web_tests/external/wpt/webvtt/api/VTTCue/getCueAsHTML-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/webvtt/api/VTTCue/getCueAsHTML-expected.txt
@@ -10,7 +10,7 @@
 [PASS] VTTCue.getCueAsHTML(), <v>
 [PASS] VTTCue.getCueAsHTML(), <v a b>
 [PASS] VTTCue.getCueAsHTML(), <1:00:00.500>
-[FAIL] VTTCue.getCueAsHTML(), x\0
-  assert_equals: data expected "x\0" but got "x"
+[FAIL] VTTCue.getCueAsHTML(), x\\0
+  assert_equals: data expected "x\\0" but got "x"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/xhr/overridemimetype-blob-expected.txt b/third_party/blink/web_tests/external/wpt/xhr/overridemimetype-blob-expected.txt
index a2f3978..6f86cc33 100644
--- a/third_party/blink/web_tests/external/wpt/xhr/overridemimetype-blob-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/xhr/overridemimetype-blob-expected.txt
@@ -8,22 +8,22 @@
 [FAIL] 2) MIME types need to be parsed and serialized: TEXT/HTML;CHARSET=GBK
   assert_equals: expected "text/html;charset=GBK" but got "text/html"
 [FAIL] 3) MIME types need to be parsed and serialized: text/html;charset=gbk(
-  assert_equals: expected "text/html;charset=\"gbk(\"" but got "application/octet-stream"
+  assert_equals: expected "text/html;charset=\\"gbk(\\"" but got "application/octet-stream"
 [FAIL] 4) MIME types need to be parsed and serialized: text/html;x=(;charset=gbk
-  assert_equals: expected "text/html;x=\"(\";charset=gbk" but got "application/octet-stream"
+  assert_equals: expected "text/html;x=\\"(\\";charset=gbk" but got "application/octet-stream"
 [FAIL] 5) MIME types need to be parsed and serialized: text/html;charset=gbk;charset=windows-1255
   assert_equals: expected "text/html;charset=gbk" but got "text/html"
 [FAIL] 6) MIME types need to be parsed and serialized: text/html;charset=();charset=GBK
-  assert_equals: expected "text/html;charset=\"()\"" but got "application/octet-stream"
+  assert_equals: expected "text/html;charset=\\"()\\"" but got "application/octet-stream"
 [PASS] 7) MIME types need to be parsed and serialized: text/html;charset =gbk
 [FAIL] 8) MIME types need to be parsed and serialized: text/html ;charset=gbk
   assert_equals: expected "text/html;charset=gbk" but got "text/html"
 [FAIL] 9) MIME types need to be parsed and serialized: text/html; charset=gbk
   assert_equals: expected "text/html;charset=gbk" but got "text/html"
 [FAIL] 10) MIME types need to be parsed and serialized: text/html;charset= gbk
-  assert_equals: expected "text/html;charset=\" gbk\"" but got "text/html"
+  assert_equals: expected "text/html;charset=\\" gbk\\"" but got "text/html"
 [FAIL] 11) MIME types need to be parsed and serialized: text/html;charset= "gbk"
-  assert_equals: expected "text/html;charset=\" \\\"gbk\\\"\"" but got "text/html"
+  assert_equals: expected "text/html;charset=\\" \\\\\\"gbk\\\\\\"\\"" but got "text/html"
 [FAIL] 12) MIME types need to be parsed and serialized: text/html;charset=gbk
   assert_equals: expected "text/html" but got "application/octet-stream"
 [FAIL] 13) MIME types need to be parsed and serialized: text/html;charset=gbk
@@ -61,40 +61,40 @@
 [FAIL] 29) MIME types need to be parsed and serialized: text/html;charset="gbk
   assert_equals: expected "text/html;charset=gbk" but got "application/octet-stream"
 [FAIL] 30) MIME types need to be parsed and serialized: text/html;charset=gbk"
-  assert_equals: expected "text/html;charset=\"gbk\\\"\"" but got "application/octet-stream"
+  assert_equals: expected "text/html;charset=\\"gbk\\\\\\"\\"" but got "application/octet-stream"
 [FAIL] 31) MIME types need to be parsed and serialized: text/html;charset=" gbk"
-  assert_equals: expected "text/html;charset=\" gbk\"" but got "text/html"
+  assert_equals: expected "text/html;charset=\\" gbk\\"" but got "text/html"
 [FAIL] 32) MIME types need to be parsed and serialized: text/html;charset="gbk "
-  assert_equals: expected "text/html;charset=\"gbk \"" but got "text/html"
-[FAIL] 33) MIME types need to be parsed and serialized: text/html;charset="\ gbk"
-  assert_equals: expected "text/html;charset=\" gbk\"" but got "text/html"
-[FAIL] 34) MIME types need to be parsed and serialized: text/html;charset="\g\b\k"
+  assert_equals: expected "text/html;charset=\\"gbk \\"" but got "text/html"
+[FAIL] 33) MIME types need to be parsed and serialized: text/html;charset="\\ gbk"
+  assert_equals: expected "text/html;charset=\\" gbk\\"" but got "text/html"
+[FAIL] 34) MIME types need to be parsed and serialized: text/html;charset="\\g\\b\\k"
   assert_equals: expected "text/html;charset=gbk" but got "text/html"
 [FAIL] 35) MIME types need to be parsed and serialized: text/html;charset="gbk"x
   assert_equals: expected "text/html;charset=gbk" but got "application/octet-stream"
 [FAIL] 36) MIME types need to be parsed and serialized: text/html;charset="";charset=GBK
-  assert_equals: expected "text/html;charset=\"\"" but got "text/html"
+  assert_equals: expected "text/html;charset=\\"\\"" but got "text/html"
 [FAIL] 37) MIME types need to be parsed and serialized: text/html;charset=";charset=GBK
-  assert_equals: expected "text/html;charset=\";charset=GBK\"" but got "application/octet-stream"
+  assert_equals: expected "text/html;charset=\\";charset=GBK\\"" but got "application/octet-stream"
 [FAIL] 38) MIME types need to be parsed and serialized: text/html;charset={gbk}
-  assert_equals: expected "text/html;charset=\"{gbk}\"" but got "text/html"
+  assert_equals: expected "text/html;charset=\\"{gbk}\\"" but got "text/html"
 [FAIL] 39) MIME types need to be parsed and serialized: text/html;0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789=x;charset=gbk
   assert_equals: expected "text/html;0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789=x;charset=gbk" but got "text/html"
 [PASS] 40) MIME types need to be parsed and serialized: 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789/0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
 [FAIL] 41) MIME types need to be parsed and serialized: text/html;a]=bar;b[=bar;c=bar
   assert_equals: expected "text/html;c=bar" but got "application/octet-stream"
 [FAIL] 42) MIME types need to be parsed and serialized: text/html;valid=";";foo=bar
-  assert_equals: expected "text/html;valid=\";\";foo=bar" but got "text/html"
+  assert_equals: expected "text/html;valid=\\";\\";foo=bar" but got "text/html"
 [FAIL] 43) MIME types need to be parsed and serialized: text/html;in]valid=";asd=foo";foo=bar
   assert_equals: expected "text/html;foo=bar" but got "application/octet-stream"
 [FAIL] 44) MIME types need to be parsed and serialized: !#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz;!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz=!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
   assert_equals: expected "!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz/!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz;!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz=!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" but got "!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz/!#$%&'*+-.^_`|~0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"
-[FAIL] 45) MIME types need to be parsed and serialized: x/x;x="	 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
-  assert_equals: expected "x/x;x=\"\t !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"" but got "x/x"
+[FAIL] 45) MIME types need to be parsed and serialized: x/x;x="	 !\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
+  assert_equals: expected "x/x;x=\\"\\t !\\\\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\\"" but got "x/x"
 [FAIL] 46) MIME types need to be parsed and serialized: x/x;test
   assert_equals: expected "x/x" but got "application/octet-stream"
-[FAIL] 47) MIME types need to be parsed and serialized: x/x;test="\
-  assert_equals: expected "x/x;test=\"\\\\\"" but got "application/octet-stream"
+[FAIL] 47) MIME types need to be parsed and serialized: x/x;test="\\
+  assert_equals: expected "x/x;test=\\"\\\\\\\\\\"" but got "application/octet-stream"
 [FAIL] 48) MIME types need to be parsed and serialized: x/x;x= 
   assert_equals: expected "x/x" but got "application/octet-stream"
 [FAIL] 49) MIME types need to be parsed and serialized: x/x;x=	
@@ -106,7 +106,7 @@
 [FAIL] 52) MIME types need to be parsed and serialized: x/x;\n\r	 x=x\n\r	 ;x=y
   assert_equals: expected "x/x;x=x" but got "application/octet-stream"
 [FAIL] 53) MIME types need to be parsed and serialized: text/html;test=ÿ;charset=gbk
-  assert_equals: expected "text/html;test=\"ÿ\";charset=gbk" but got "application/octet-stream"
+  assert_equals: expected "text/html;test=\\"ÿ\\";charset=gbk" but got "application/octet-stream"
 [FAIL] 54) MIME types need to be parsed and serialized: x/x;test=�;x=x
   assert_equals: expected "x/x;x=x" but got "application/octet-stream"
 [PASS] 55) MIME types need to be parsed and serialized: x/x
diff --git a/third_party/blink/web_tests/external/wpt/xhr/send-content-type-charset-expected.txt b/third_party/blink/web_tests/external/wpt/xhr/send-content-type-charset-expected.txt
index 2fdae1f3..1f5705f 100644
--- a/third_party/blink/web_tests/external/wpt/xhr/send-content-type-charset-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/xhr/send-content-type-charset-expected.txt
@@ -22,11 +22,11 @@
 [FAIL] charset with trailing space that is UTF-8 does not change
   assert_equals: expected "text/plain;charset=utf-8 ;x=x" but got "text/plain;charset=UTF-8 ;x=x"
 [FAIL] charset in double quotes that is UTF-8 does not change
-  assert_equals: expected "text/plain;charset=\"utf-8\"" but got "text/plain;charset=\"UTF-8\""
+  assert_equals: expected "text/plain;charset=\\"utf-8\\"" but got "text/plain;charset=\\"UTF-8\\""
 [FAIL] charset in double quotes with space
-  assert_equals: expected "text/plain;charset=UTF-8" but got "text/plain;charset=\" UTF-8\""
+  assert_equals: expected "text/plain;charset=UTF-8" but got "text/plain;charset=\\" UTF-8\\""
 [FAIL] charset in double quotes with backslashes that is UTF-8 does not change
-  assert_equals: expected "text/plain;charset=\"u\\t\\f-8\"" but got "text/plain;charset=\"UTF-8\""
+  assert_equals: expected "text/plain;charset=\\"u\\\\t\\\\f-8\\"" but got "text/plain;charset=\\"UTF-8\\""
 [FAIL] unknown parameters need to be preserved
   assert_equals: expected "yo/yo;charset=UTF-8;yo=YO;x=y" but got "YO/yo;charset=UTF-8;yo=YO; X=y"
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/xhr/setrequestheader-combining.window-expected.txt b/third_party/blink/web_tests/external/wpt/xhr/setrequestheader-combining.window-expected.txt
index 21c2b74..ed6f451 100644
--- a/third_party/blink/web_tests/external/wpt/xhr/setrequestheader-combining.window-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/xhr/setrequestheader-combining.window-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
 [FAIL] setRequestHeader() combining header values
-  assert_equals: expected "test-me: , , , , x\tx, \n" but got "test-me: , , , , x\tx,\n"
+  assert_equals: expected "test-me: , , , , x\\tx, \\n" but got "test-me: , , , , x\\tx,\\n"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/fast/css/variables/variables-in-at-rules-expected.txt b/third_party/blink/web_tests/fast/css/variables/variables-in-at-rules-expected.txt
index 6a47201..a67170f 100644
--- a/third_party/blink/web_tests/fast/css/variables/variables-in-at-rules-expected.txt
+++ b/third_party/blink/web_tests/fast/css/variables/variables-in-at-rules-expected.txt
@@ -1,6 +1,6 @@
 This is a testharness.js-based test.
 [PASS] Custom properties are not allowed in @font-face rules
 [FAIL] Custom properties are not allowed in the outer scope of @keyframes rules
-  assert_equals: expected "@keyframes foo {\n  0% { --valid-var: 4; }\n  100% { left: 10px; }\n}" but got "@keyframes foo { \n  100% { left: 10px; }\n}"
+  assert_equals: expected "@keyframes foo {\\n  0% { --valid-var: 4; }\\n  100% { left: 10px; }\\n}" but got "@keyframes foo { \\n  100% { left: 10px; }\\n}"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/flag-specific/disable-site-isolation-trials/external/wpt/mediacapture-record/passthrough/MediaRecorder-passthrough.https-expected.txt b/third_party/blink/web_tests/flag-specific/disable-site-isolation-trials/external/wpt/mediacapture-record/passthrough/MediaRecorder-passthrough.https-expected.txt
new file mode 100644
index 0000000..5efaa26
--- /dev/null
+++ b/third_party/blink/web_tests/flag-specific/disable-site-isolation-trials/external/wpt/mediacapture-record/passthrough/MediaRecorder-passthrough.https-expected.txt
@@ -0,0 +1,8 @@
+This is a testharness.js-based test.
+[PASS] PeerConnection passthrough MediaRecorder receives VP8 after onstart with a video stream.
+[PASS] PeerConnection passthrough MediaRecorder receives VP8 after onstart with a audio/video stream.
+[PASS] PeerConnection passthrough MediaRecorder receives VP9 after onstart with a video stream.
+[PASS] PeerConnection passthrough MediaRecorder receives VP9 after onstart with a audio/video stream.
+[PASS] PeerConnection passthrough MediaRecorder should be prepared to handle the codec switching from VP8 to VP9
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/flag-specific/disable-site-isolation-trials/external/wpt/url/a-element-origin-xhtml-expected.txt b/third_party/blink/web_tests/flag-specific/disable-site-isolation-trials/external/wpt/url/a-element-origin-xhtml-expected.txt
new file mode 100644
index 0000000..1dff093
--- /dev/null
+++ b/third_party/blink/web_tests/flag-specific/disable-site-isolation-trials/external/wpt/url/a-element-origin-xhtml-expected.txt
@@ -0,0 +1,376 @@
+This is a testharness.js-based test.
+Found 363 tests; 354 PASS, 9 FAIL, 0 TIMEOUT, 0 NOTRUN.
+[PASS] Loading data…
+[PASS] Parsing origin: <http://example	.\norg> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://user:pass@foo:21/bar;par?b#c> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <https://test:@test> against <about:blank>
+[PASS] Parsing origin: <https://:@test> against <about:blank>
+[PASS] Parsing origin: <non-special://test:@test/x> against <about:blank>
+[PASS] Parsing origin: <non-special://:@test/x> against <about:blank>
+[PASS] Parsing origin: <http:foo.com> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <	   :foo.com   \n> against <http://example.org/foo/bar>
+[PASS] Parsing origin: < foo.com  > against <http://example.org/foo/bar>
+[PASS] Parsing origin: <a:	 foo.com> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://f:21/ b ? d # e > against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://f:/c> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://f:0/c> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://f:00000000000000/c> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://f:00000000000000000000080/c> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://f:\n/c> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <  	> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <:foo.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <:> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <:a> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <:/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <:\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <:#> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <#> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <#/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <#\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <#;?> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <?> against <http://example.org/foo/bar>
+[PASS] Parsing origin: </> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <:23> against <http://example.org/foo/bar>
+[PASS] Parsing origin: </:23> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <\x> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <::> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <::23> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <foo://> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://a:b@c:29/d> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http::@c:29> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://::@c@d:2> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://foo.com:b@d/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://foo.com/\@> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http:\\foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <foo:/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <foo:/bar.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <foo://///////> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <foo://///////bar.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <foo:////://///> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <c:/foo> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <//foo/bar> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://foo/path;a??e#f#g> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://foo/abcd?efgh?ijkl> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://foo/abcd#foo?bar> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <[61:24:74]:98> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http:[61:27]/:foo> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://[2001::1]> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://[::127.0.0.1]> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://[0:0:0:0:0:0:13.1.68.3]> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://[2001::1]:80> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http:/example.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <ftp:/example.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <https:/example.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <madeupscheme:/example.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <ftps:/example.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <gopher:/example.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <ws:/example.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <wss:/example.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <data:/example.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <javascript:/example.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <mailto:/example.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http:example.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <ftp:example.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <https:example.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <madeupscheme:example.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <ftps:example.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <gopher:example.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <ws:example.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <wss:example.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <data:example.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <javascript:example.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <mailto:example.com/> against <http://example.org/foo/bar>
+[PASS] Parsing origin: </a/b/c> against <http://example.org/foo/bar>
+[PASS] Parsing origin: </a/ /c> against <http://example.org/foo/bar>
+[PASS] Parsing origin: </a%2fc> against <http://example.org/foo/bar>
+[PASS] Parsing origin: </a/%2f/c> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <#β> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <data:text/html,test#test> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <tel:1234567890> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <ssh://example.com/foo/bar.git> against <http://example.org/>
+[PASS] Parsing origin: <http://example.com/././foo> against <about:blank>
+[PASS] Parsing origin: <http://example.com/./.foo> against <about:blank>
+[PASS] Parsing origin: <http://example.com/foo/.> against <about:blank>
+[PASS] Parsing origin: <http://example.com/foo/./> against <about:blank>
+[PASS] Parsing origin: <http://example.com/foo/bar/..> against <about:blank>
+[PASS] Parsing origin: <http://example.com/foo/bar/../> against <about:blank>
+[PASS] Parsing origin: <http://example.com/foo/..bar> against <about:blank>
+[PASS] Parsing origin: <http://example.com/foo/bar/../ton> against <about:blank>
+[PASS] Parsing origin: <http://example.com/foo/bar/../ton/../../a> against <about:blank>
+[PASS] Parsing origin: <http://example.com/foo/../../..> against <about:blank>
+[PASS] Parsing origin: <http://example.com/foo/../../../ton> against <about:blank>
+[PASS] Parsing origin: <http://example.com/foo/%2e> against <about:blank>
+[PASS] Parsing origin: <http://example.com/foo/%2e%2> against <about:blank>
+[PASS] Parsing origin: <http://example.com/foo/%2e./%2e%2e/.%2e/%2e.bar> against <about:blank>
+[PASS] Parsing origin: <http://example.com////../..> against <about:blank>
+[PASS] Parsing origin: <http://example.com/foo/bar//../..> against <about:blank>
+[PASS] Parsing origin: <http://example.com/foo/bar//..> against <about:blank>
+[PASS] Parsing origin: <http://example.com/foo> against <about:blank>
+[PASS] Parsing origin: <http://example.com/%20foo> against <about:blank>
+[PASS] Parsing origin: <http://example.com/foo%> against <about:blank>
+[PASS] Parsing origin: <http://example.com/foo%2> against <about:blank>
+[PASS] Parsing origin: <http://example.com/foo%2zbar> against <about:blank>
+[PASS] Parsing origin: <http://example.com/foo%2©zbar> against <about:blank>
+[PASS] Parsing origin: <http://example.com/foo%41%7a> against <about:blank>
+[PASS] Parsing origin: <http://example.com/foo	‘%91> against <about:blank>
+[PASS] Parsing origin: <http://example.com/foo%00%51> against <about:blank>
+[PASS] Parsing origin: <http://example.com/(%28:%3A%29)> against <about:blank>
+[PASS] Parsing origin: <http://example.com/%3A%3a%3C%3c> against <about:blank>
+[PASS] Parsing origin: <http://example.com/foo	bar> against <about:blank>
+[PASS] Parsing origin: <http://example.com\\foo\\bar> against <about:blank>
+[PASS] Parsing origin: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
+[PASS] Parsing origin: <http://example.com/@asdf%40> against <about:blank>
+[PASS] Parsing origin: <http://example.com/你好你好> against <about:blank>
+[PASS] Parsing origin: <http://example.com/‥/foo> against <about:blank>
+[PASS] Parsing origin: <http://example.com//foo> against <about:blank>
+[PASS] Parsing origin: <http://example.com/‮/foo/‭/bar> against <about:blank>
+[PASS] Parsing origin: <http://www.google.com/foo?bar=baz#> against <about:blank>
+[PASS] Parsing origin: <http://www.google.com/foo?bar=baz# »> against <about:blank>
+[PASS] Parsing origin: <data:test# »> against <about:blank>
+[PASS] Parsing origin: <http://www.google.com> against <about:blank>
+[PASS] Parsing origin: <http://192.0x00A80001> against <about:blank>
+[PASS] Parsing origin: <http://www/foo%2Ehtml> against <about:blank>
+[PASS] Parsing origin: <http://www/foo/%2E/html> against <about:blank>
+[PASS] Parsing origin: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
+[PASS] Parsing origin: <http:\\www.google.com\foo> against <about:blank>
+[PASS] Parsing origin: <http://foo:80/> against <about:blank>
+[PASS] Parsing origin: <http://foo:81/> against <about:blank>
+[PASS] Parsing origin: <httpa://foo:80/> against <about:blank>
+[PASS] Parsing origin: <https://foo:443/> against <about:blank>
+[PASS] Parsing origin: <https://foo:80/> against <about:blank>
+[PASS] Parsing origin: <ftp://foo:21/> against <about:blank>
+[PASS] Parsing origin: <ftp://foo:80/> against <about:blank>
+[PASS] Parsing origin: <gopher://foo:70/> against <about:blank>
+[PASS] Parsing origin: <gopher://foo:443/> against <about:blank>
+[PASS] Parsing origin: <ws://foo:80/> against <about:blank>
+[PASS] Parsing origin: <ws://foo:81/> against <about:blank>
+[PASS] Parsing origin: <ws://foo:443/> against <about:blank>
+[PASS] Parsing origin: <ws://foo:815/> against <about:blank>
+[PASS] Parsing origin: <wss://foo:80/> against <about:blank>
+[PASS] Parsing origin: <wss://foo:81/> against <about:blank>
+[PASS] Parsing origin: <wss://foo:443/> against <about:blank>
+[PASS] Parsing origin: <wss://foo:815/> against <about:blank>
+[PASS] Parsing origin: <http:/example.com/> against <about:blank>
+[PASS] Parsing origin: <ftp:/example.com/> against <about:blank>
+[PASS] Parsing origin: <https:/example.com/> against <about:blank>
+[PASS] Parsing origin: <madeupscheme:/example.com/> against <about:blank>
+[PASS] Parsing origin: <ftps:/example.com/> against <about:blank>
+[PASS] Parsing origin: <gopher:/example.com/> against <about:blank>
+[PASS] Parsing origin: <ws:/example.com/> against <about:blank>
+[PASS] Parsing origin: <wss:/example.com/> against <about:blank>
+[PASS] Parsing origin: <data:/example.com/> against <about:blank>
+[PASS] Parsing origin: <javascript:/example.com/> against <about:blank>
+[PASS] Parsing origin: <mailto:/example.com/> against <about:blank>
+[PASS] Parsing origin: <http:example.com/> against <about:blank>
+[PASS] Parsing origin: <ftp:example.com/> against <about:blank>
+[PASS] Parsing origin: <https:example.com/> against <about:blank>
+[PASS] Parsing origin: <madeupscheme:example.com/> against <about:blank>
+[PASS] Parsing origin: <ftps:example.com/> against <about:blank>
+[PASS] Parsing origin: <gopher:example.com/> against <about:blank>
+[PASS] Parsing origin: <ws:example.com/> against <about:blank>
+[PASS] Parsing origin: <wss:example.com/> against <about:blank>
+[PASS] Parsing origin: <data:example.com/> against <about:blank>
+[PASS] Parsing origin: <javascript:example.com/> against <about:blank>
+[PASS] Parsing origin: <mailto:example.com/> against <about:blank>
+[PASS] Parsing origin: <http:@www.example.com> against <about:blank>
+[PASS] Parsing origin: <http:/@www.example.com> against <about:blank>
+[PASS] Parsing origin: <http://@www.example.com> against <about:blank>
+[PASS] Parsing origin: <http:a:b@www.example.com> against <about:blank>
+[PASS] Parsing origin: <http:/a:b@www.example.com> against <about:blank>
+[PASS] Parsing origin: <http://a:b@www.example.com> against <about:blank>
+[PASS] Parsing origin: <http://@pple.com> against <about:blank>
+[PASS] Parsing origin: <http::b@www.example.com> against <about:blank>
+[PASS] Parsing origin: <http:/:b@www.example.com> against <about:blank>
+[PASS] Parsing origin: <http://:b@www.example.com> against <about:blank>
+[PASS] Parsing origin: <http:a:@www.example.com> against <about:blank>
+[PASS] Parsing origin: <http:/a:@www.example.com> against <about:blank>
+[PASS] Parsing origin: <http://a:@www.example.com> against <about:blank>
+[PASS] Parsing origin: <http://www.@pple.com> against <about:blank>
+[PASS] Parsing origin: <http://:@www.example.com> against <about:blank>
+[PASS] Parsing origin: </> against <http://www.example.com/test>
+[PASS] Parsing origin: </test.txt> against <http://www.example.com/test>
+[PASS] Parsing origin: <.> against <http://www.example.com/test>
+[PASS] Parsing origin: <..> against <http://www.example.com/test>
+[PASS] Parsing origin: <test.txt> against <http://www.example.com/test>
+[PASS] Parsing origin: <./test.txt> against <http://www.example.com/test>
+[PASS] Parsing origin: <../test.txt> against <http://www.example.com/test>
+[PASS] Parsing origin: <../aaa/test.txt> against <http://www.example.com/test>
+[PASS] Parsing origin: <../../test.txt> against <http://www.example.com/test>
+[PASS] Parsing origin: <中/test.txt> against <http://www.example.com/test>
+[PASS] Parsing origin: <http://www.example2.com> against <http://www.example.com/test>
+[PASS] Parsing origin: <//www.example2.com> against <http://www.example.com/test>
+[PASS] Parsing origin: <http://ExAmPlE.CoM> against <http://other.com/>
+[PASS] Parsing origin: <http://GOO​⁠goo.com> against <http://other.com/>
+[PASS] Parsing origin: <\0 http://example.com/ \r > against <about:blank>
+[PASS] Parsing origin: <http://www.foo。bar.com> against <http://other.com/>
+[PASS] Parsing origin: <https://x/�?�#�> against <about:blank>
+[PASS] Parsing origin: <http://Go.com> against <http://other.com/>
+[PASS] Parsing origin: <http://你好你好> against <http://other.com/>
+[PASS] Parsing origin: <https://faß.ExAmPlE/> against <about:blank>
+[PASS] Parsing origin: <sc://faß.ExAmPlE/> against <about:blank>
+[PASS] Parsing origin: <http://%30%78%63%30%2e%30%32%35%30.01> against <http://other.com/>
+[PASS] Parsing origin: <http://%30%78%63%30%2e%30%32%35%30.01%2e> against <http://other.com/>
+[PASS] Parsing origin: <http://0Xc0.0250.01> against <http://other.com/>
+[PASS] Parsing origin: <http://./> against <about:blank>
+[PASS] Parsing origin: <http://../> against <about:blank>
+[PASS] Parsing origin: <h://.> against <about:blank>
+[PASS] Parsing origin: <http://foo:💩@example.com/bar> against <http://other.com/>
+[PASS] Parsing origin: <#> against <test:test>
+[PASS] Parsing origin: <#x> against <mailto:x@x.com>
+[PASS] Parsing origin: <#x> against <about:blank>
+[PASS] Parsing origin: <#x:y> against <about:blank>
+[PASS] Parsing origin: <#> against <test:test?test>
+[PASS] Parsing origin: <https://@test@test@example:800/> against <http://doesnotmatter/>
+[PASS] Parsing origin: <https://@@@example> against <http://doesnotmatter/>
+[PASS] Parsing origin: <http://`{}:`{}@h/`{}?`{}> against <http://doesnotmatter/>
+[PASS] Parsing origin: <http://host/?'> against <about:blank>
+[PASS] Parsing origin: <notspecial://host/?'> against <about:blank>
+[PASS] Parsing origin: </some/path> against <http://user@example.org/smth>
+[PASS] Parsing origin: <> against <http://user:pass@example.org:21/smth>
+[PASS] Parsing origin: </some/path> against <http://user:pass@example.org:21/smth>
+[PASS] Parsing origin: <i> against <sc:/pa/pa>
+[PASS] Parsing origin: <i> against <sc://ho/pa>
+[PASS] Parsing origin: <i> against <sc:///pa/pa>
+[PASS] Parsing origin: <../i> against <sc:/pa/pa>
+[PASS] Parsing origin: <../i> against <sc://ho/pa>
+[PASS] Parsing origin: <../i> against <sc:///pa/pa>
+[PASS] Parsing origin: </i> against <sc:/pa/pa>
+[PASS] Parsing origin: </i> against <sc://ho/pa>
+[PASS] Parsing origin: </i> against <sc:///pa/pa>
+[PASS] Parsing origin: <?i> against <sc:/pa/pa>
+[PASS] Parsing origin: <?i> against <sc://ho/pa>
+[PASS] Parsing origin: <?i> against <sc:///pa/pa>
+[PASS] Parsing origin: <#i> against <sc:sd>
+[PASS] Parsing origin: <#i> against <sc:sd/sd>
+[PASS] Parsing origin: <#i> against <sc:/pa/pa>
+[PASS] Parsing origin: <#i> against <sc://ho/pa>
+[PASS] Parsing origin: <#i> against <sc:///pa/pa>
+[PASS] Parsing origin: <about:/../> against <about:blank>
+[PASS] Parsing origin: <data:/../> against <about:blank>
+[PASS] Parsing origin: <javascript:/../> against <about:blank>
+[PASS] Parsing origin: <mailto:/../> against <about:blank>
+[PASS] Parsing origin: <sc://ñ.test/> against <about:blank>
+[FAIL] Parsing origin: <x> against <sc://ñ>
+  assert_equals: origin expected "null" but got ""
+[PASS] Parsing origin: <sc:\../> against <about:blank>
+[PASS] Parsing origin: <sc::a@example.net> against <about:blank>
+[PASS] Parsing origin: <wow:%NBD> against <about:blank>
+[PASS] Parsing origin: <wow:%1G> against <about:blank>
+[PASS] Parsing origin: <wow:￿> against <about:blank>
+[FAIL] Parsing origin: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank>
+  assert_equals: origin expected "http://example.com" but got ""
+[FAIL] Parsing origin: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank>
+  assert_equals: origin expected "http://!\"$&'()*+,-.;=_`{}~" but got "http://!\"$&'()%2A+,-.;=_`{}~"
+[PASS] Parsing origin: <sc://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
+[PASS] Parsing origin: <ftp://%e2%98%83> against <about:blank>
+[PASS] Parsing origin: <https://%e2%98%83> against <about:blank>
+[PASS] Parsing origin: <http://127.0.0.1:10100/relative_import.html> against <about:blank>
+[PASS] Parsing origin: <http://facebook.com/?foo=%7B%22abc%22> against <about:blank>
+[PASS] Parsing origin: <https://localhost:3000/jqueryui@1.2.3> against <about:blank>
+[PASS] Parsing origin: <h	t\nt\rp://h	o\ns\rt:9	0\n0\r0/p	a\nt\rh?q	u\ne\rry#f	r\na\rg> against <about:blank>
+[PASS] Parsing origin: <?a=b&c=d> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <??a=b&c=d> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http:> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <sc:> against <https://example.org/foo/bar>
+[PASS] Parsing origin: <http://foo.bar/baz?qux#foobar> against <about:blank>
+[PASS] Parsing origin: <http://foo.bar/baz?qux#foo"bar> against <about:blank>
+[PASS] Parsing origin: <http://foo.bar/baz?qux#foo<bar> against <about:blank>
+[PASS] Parsing origin: <http://foo.bar/baz?qux#foo>bar> against <about:blank>
+[PASS] Parsing origin: <http://foo.bar/baz?qux#foo`bar> against <about:blank>
+[PASS] Parsing origin: <http://1.2.3.4/> against <http://other.com/>
+[PASS] Parsing origin: <http://1.2.3.4./> against <http://other.com/>
+[PASS] Parsing origin: <http://192.168.257> against <http://other.com/>
+[PASS] Parsing origin: <http://192.168.257.> against <http://other.com/>
+[PASS] Parsing origin: <http://192.168.257.com> against <http://other.com/>
+[PASS] Parsing origin: <http://256> against <http://other.com/>
+[PASS] Parsing origin: <http://256.com> against <http://other.com/>
+[PASS] Parsing origin: <http://999999999> against <http://other.com/>
+[PASS] Parsing origin: <http://999999999.> against <http://other.com/>
+[PASS] Parsing origin: <http://999999999.com> against <http://other.com/>
+[PASS] Parsing origin: <http://10000000000.com> against <http://other.com/>
+[PASS] Parsing origin: <http://4294967295> against <http://other.com/>
+[PASS] Parsing origin: <http://0xffffffff> against <http://other.com/>
+[PASS] Parsing origin: <https://0x.0x.0> against <about:blank>
+[PASS] Parsing origin: <asdf://%43%7C/> against <about:blank>
+[PASS] Parsing origin: <http://[1:0::]> against <http://example.net/>
+[PASS] Parsing origin: <sc://ñ> against <about:blank>
+[PASS] Parsing origin: <sc://ñ?x> against <about:blank>
+[PASS] Parsing origin: <sc://ñ#x> against <about:blank>
+[FAIL] Parsing origin: <#x> against <sc://ñ>
+  assert_equals: origin expected "null" but got ""
+[FAIL] Parsing origin: <?x> against <sc://ñ>
+  assert_equals: origin expected "null" but got ""
+[PASS] Parsing origin: <tftp://foobar.com/someconfig;mode=netascii> against <about:blank>
+[PASS] Parsing origin: <telnet://user:pass@foobar.com:23/> against <about:blank>
+[PASS] Parsing origin: <ut2004://10.10.10.10:7777/Index.ut2> against <about:blank>
+[PASS] Parsing origin: <redis://foo:bar@somehost:6379/0?baz=bam&qux=baz> against <about:blank>
+[PASS] Parsing origin: <rsync://foo@host:911/sup> against <about:blank>
+[PASS] Parsing origin: <git://github.com/foo/bar.git> against <about:blank>
+[PASS] Parsing origin: <irc://myserver.com:6999/channel?passwd> against <about:blank>
+[PASS] Parsing origin: <dns://fw.example.org:9999/foo.bar.org?type=TXT> against <about:blank>
+[PASS] Parsing origin: <ldap://localhost:389/ou=People,o=JNDITutorial> against <about:blank>
+[PASS] Parsing origin: <git+https://github.com/foo/bar> against <about:blank>
+[PASS] Parsing origin: <urn:ietf:rfc:2648> against <about:blank>
+[PASS] Parsing origin: <tag:joe@example.org,2001:foo/bar> against <about:blank>
+[PASS] Parsing origin: <blob:https://example.com:443/> against <about:blank>
+[PASS] Parsing origin: <blob:http://example.org:88/> against <about:blank>
+[PASS] Parsing origin: <blob:d3958f5c-0777-0845-9dcf-2cb28783acaf> against <about:blank>
+[PASS] Parsing origin: <blob:> against <about:blank>
+[PASS] Parsing origin: <blob:blob:> against <about:blank>
+[PASS] Parsing origin: <blob:blob:https://example.org/> against <about:blank>
+[PASS] Parsing origin: <blob:about:blank> against <about:blank>
+[FAIL] Parsing origin: <blob:ftp://host/path> against <about:blank>
+  assert_equals: origin expected "null" but got "ftp://host"
+[FAIL] Parsing origin: <blob:ws://example.org/> against <about:blank>
+  assert_equals: origin expected "null" but got "ws://example.org"
+[FAIL] Parsing origin: <blob:wss://example.org/> against <about:blank>
+  assert_equals: origin expected "null" but got "wss://example.org"
+[PASS] Parsing origin: <blob:http%3a//example.org/> against <about:blank>
+[PASS] Parsing origin: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
+[PASS] Parsing origin: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
+[PASS] Parsing origin: <https://user:pass[@foo/bar> against <http://example.org>
+[PASS] Parsing origin: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank>
+[PASS] Parsing origin: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank>
+[PASS] Parsing origin: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank>
+[PASS] Parsing origin: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank>
+[PASS] Parsing origin: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
+[FAIL] Parsing origin: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank>
+  assert_equals: origin expected "wss://!\"$&'()*+,-.;=_`{}~" but got "wss://!\"$&'()%2A+,-.;=_`{}~"
+[PASS] Parsing origin: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <https://example.com/"quoted"> against <about:blank>
+[PASS] Parsing origin: <https://a%C2%ADb/> against <about:blank>
+[PASS] Parsing origin: <data://example.com:8080/pathname?search#hash> against <about:blank>
+[PASS] Parsing origin: <data:///test> against <about:blank>
+[PASS] Parsing origin: <data://test/a/../b> against <about:blank>
+[PASS] Parsing origin: <javascript://example.com:8080/pathname?search#hash> against <about:blank>
+[PASS] Parsing origin: <javascript:///test> against <about:blank>
+[PASS] Parsing origin: <javascript://test/a/../b> against <about:blank>
+[PASS] Parsing origin: <mailto://example.com:8080/pathname?search#hash> against <about:blank>
+[PASS] Parsing origin: <mailto:///test> against <about:blank>
+[PASS] Parsing origin: <mailto://test/a/../b> against <about:blank>
+[PASS] Parsing origin: <intent://example.com:8080/pathname?search#hash> against <about:blank>
+[PASS] Parsing origin: <intent:///test> against <about:blank>
+[PASS] Parsing origin: <intent://test/a/../b> against <about:blank>
+[PASS] Parsing origin: <urn://example.com:8080/pathname?search#hash> against <about:blank>
+[PASS] Parsing origin: <urn:///test> against <about:blank>
+[PASS] Parsing origin: <urn://test/a/../b> against <about:blank>
+[PASS] Parsing origin: <turn://example.com:8080/pathname?search#hash> against <about:blank>
+[PASS] Parsing origin: <turn:///test> against <about:blank>
+[PASS] Parsing origin: <turn://test/a/../b> against <about:blank>
+[PASS] Parsing origin: <stun://example.com:8080/pathname?search#hash> against <about:blank>
+[PASS] Parsing origin: <stun:///test> against <about:blank>
+[PASS] Parsing origin: <stun://test/a/../b> against <about:blank>
+[PASS] Parsing origin: <w://x:0> against <about:blank>
+[PASS] Parsing origin: <west://x:0> against <about:blank>
+Harness: the test ran to completion.
+
diff --git "a/third_party/blink/web_tests/flag-specific/disable-site-isolation-trials/external/wpt/url/url-setters-a-area.window_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/flag-specific/disable-site-isolation-trials/external/wpt/url/url-setters-a-area.window_exclude=\050file_javascript_mailto\051-expected.txt"
new file mode 100644
index 0000000..04a93e20
--- /dev/null
+++ "b/third_party/blink/web_tests/flag-specific/disable-site-isolation-trials/external/wpt/url/url-setters-a-area.window_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -0,0 +1,581 @@
+This is a testharness.js-based test.
+Found 443 tests; 309 PASS, 134 FAIL, 0 TIMEOUT, 0 NOTRUN.
+[PASS] Loading data…
+[PASS] <a>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged.
+[PASS] <area>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged.
+[PASS] <a>: Setting <a://example.net>.protocol = 'b'
+[PASS] <area>: Setting <a://example.net>.protocol = 'b'
+[PASS] <a>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased
+[PASS] <area>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased
+[PASS] <a>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected
+[PASS] <area>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected
+[PASS] <a>: Setting <a://example.net>.protocol = '0b' No leading digit
+[PASS] <area>: Setting <a://example.net>.protocol = '0b' No leading digit
+[PASS] <a>: Setting <a://example.net>.protocol = '+b' No leading punctuation
+[PASS] <area>: Setting <a://example.net>.protocol = '+b' No leading punctuation
+[PASS] <a>: Setting <a://example.net>.protocol = 'bC0+-.'
+[PASS] <area>: Setting <a://example.net>.protocol = 'bC0+-.'
+[PASS] <a>: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable
+[PASS] <area>: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable
+[PASS] <a>: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected
+[PASS] <area>: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected
+[PASS] <a>: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file
+[PASS] <area>: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file
+[PASS] <a>: Setting <https://example.net:1234>.protocol = 'file'
+[PASS] <area>: Setting <https://example.net:1234>.protocol = 'file'
+[PASS] <a>: Setting <wss://x:x@example.net:1234>.protocol = 'file'
+[PASS] <area>: Setting <wss://x:x@example.net:1234>.protocol = 'file'
+[PASS] <a>: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special
+[PASS] <area>: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special
+[PASS] <a>: Setting <https://example.net>.protocol = 's'
+[PASS] <area>: Setting <https://example.net>.protocol = 's'
+[PASS] <a>: Setting <ftp://example.net>.protocol = 'test'
+[PASS] <area>: Setting <ftp://example.net>.protocol = 'test'
+[FAIL] <a>: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special
+  assert_equals: expected "ssh://me@example.net" but got "http://me@example.net/"
+[FAIL] <area>: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special
+  assert_equals: expected "ssh://me@example.net" but got "http://me@example.net/"
+[FAIL] <a>: Setting <ssh://me@example.net>.protocol = 'https'
+  assert_equals: expected "ssh://me@example.net" but got "https://me@example.net/"
+[FAIL] <area>: Setting <ssh://me@example.net>.protocol = 'https'
+  assert_equals: expected "ssh://me@example.net" but got "https://me@example.net/"
+[FAIL] <a>: Setting <ssh://me@example.net>.protocol = 'file'
+  assert_equals: expected "ssh://me@example.net" but got "file://me%40example.net/"
+[FAIL] <area>: Setting <ssh://me@example.net>.protocol = 'file'
+  assert_equals: expected "ssh://me@example.net" but got "file://me%40example.net/"
+[FAIL] <a>: Setting <ssh://example.net>.protocol = 'file'
+  assert_equals: expected "ssh://example.net" but got "file://example.net/"
+[FAIL] <area>: Setting <ssh://example.net>.protocol = 'file'
+  assert_equals: expected "ssh://example.net" but got "file://example.net/"
+[FAIL] <a>: Setting <nonsense:///test>.protocol = 'https'
+  assert_equals: expected "nonsense:///test" but got "https://test/"
+[FAIL] <area>: Setting <nonsense:///test>.protocol = 'https'
+  assert_equals: expected "nonsense:///test" but got "https://test/"
+[PASS] <a>: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored
+[PASS] <area>: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored
+[PASS] <a>: Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored
+[PASS] <area>: Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored
+[PASS] <a>: Setting <http://foo.com:443/>.protocol = 'https' Port is set to null if it is the default for new scheme.
+[PASS] <area>: Setting <http://foo.com:443/>.protocol = 'https' Port is set to null if it is the default for new scheme.
+[FAIL] <a>: Setting <http://test/>.protocol = 'h\r\ntt	ps' Tab and newline are stripped
+  assert_equals: expected "https://test/" but got "http://test/"
+[FAIL] <area>: Setting <http://test/>.protocol = 'h\r\ntt	ps' Tab and newline are stripped
+  assert_equals: expected "https://test/" but got "http://test/"
+[FAIL] <a>: Setting <http://test/>.protocol = 'https\r'
+  assert_equals: expected "https://test/" but got "http://test/"
+[FAIL] <area>: Setting <http://test/>.protocol = 'https\r'
+  assert_equals: expected "https://test/" but got "http://test/"
+[PASS] <a>: Setting <http://test/>.protocol = 'https\0' Non-tab/newline C0 controls result in no-op
+[PASS] <area>: Setting <http://test/>.protocol = 'https\0' Non-tab/newline C0 controls result in no-op
+[PASS] <a>: Setting <http://test/>.protocol = 'https'
+[PASS] <area>: Setting <http://test/>.protocol = 'https'
+[PASS] <a>: Setting <http://test/>.protocol = 'https'
+[PASS] <area>: Setting <http://test/>.protocol = 'https'
+[PASS] <a>: Setting <http://test/>.protocol = 'https '
+[PASS] <area>: Setting <http://test/>.protocol = 'https '
+[PASS] <a>: Setting <unix:/run/foo.socket>.username = 'me' No host means no username
+[PASS] <area>: Setting <unix:/run/foo.socket>.username = 'me' No host means no username
+[PASS] <a>: Setting <http://example.net>.username = 'me'
+[PASS] <area>: Setting <http://example.net>.username = 'me'
+[PASS] <a>: Setting <http://:secret@example.net>.username = 'me'
+[PASS] <area>: Setting <http://:secret@example.net>.username = 'me'
+[PASS] <a>: Setting <http://me@example.net>.username = ''
+[PASS] <area>: Setting <http://me@example.net>.username = ''
+[PASS] <a>: Setting <http://me:secret@example.net>.username = ''
+[PASS] <area>: Setting <http://me:secret@example.net>.username = ''
+[FAIL] <a>: Setting <http://example.net>.username = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+  assert_equals: expected "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
+[FAIL] <area>: Setting <http://example.net>.username = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+  assert_equals: expected "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
+[PASS] <a>: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is.
+[PASS] <area>: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is.
+[PASS] <a>: Setting <sc:///>.username = 'x'
+[PASS] <area>: Setting <sc:///>.username = 'x'
+[PASS] <a>: Setting <unix:/run/foo.socket>.password = 'secret' No host means no password
+[PASS] <area>: Setting <unix:/run/foo.socket>.password = 'secret' No host means no password
+[PASS] <a>: Setting <http://example.net>.password = 'secret'
+[PASS] <area>: Setting <http://example.net>.password = 'secret'
+[PASS] <a>: Setting <http://me@example.net>.password = 'secret'
+[PASS] <area>: Setting <http://me@example.net>.password = 'secret'
+[PASS] <a>: Setting <http://:secret@example.net>.password = ''
+[PASS] <area>: Setting <http://:secret@example.net>.password = ''
+[PASS] <a>: Setting <http://me:secret@example.net>.password = ''
+[PASS] <area>: Setting <http://me:secret@example.net>.password = ''
+[FAIL] <a>: Setting <http://example.net>.password = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+  assert_equals: expected "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://:%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
+[FAIL] <area>: Setting <http://example.net>.password = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+  assert_equals: expected "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://:%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
+[PASS] <a>: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is.
+[PASS] <area>: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is.
+[PASS] <a>: Setting <sc:///>.password = 'x'
+[PASS] <area>: Setting <sc:///>.password = 'x'
+[FAIL] <a>: Setting <sc://x/>.host = '\0' Non-special scheme
+  assert_equals: expected "x" but got ""
+[FAIL] <area>: Setting <sc://x/>.host = '\0' Non-special scheme
+  assert_equals: expected "x" but got ""
+[FAIL] <a>: Setting <sc://x/>.host = '	'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <area>: Setting <sc://x/>.host = '	'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <a>: Setting <sc://x/>.host = '\n'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <area>: Setting <sc://x/>.host = '\n'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <a>: Setting <sc://x/>.host = '\r'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <area>: Setting <sc://x/>.host = '\r'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <a>: Setting <sc://x/>.host = ' '
+  assert_equals: expected "x" but got ""
+[FAIL] <area>: Setting <sc://x/>.host = ' '
+  assert_equals: expected "x" but got ""
+[FAIL] <a>: Setting <sc://x/>.host = '#'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <area>: Setting <sc://x/>.host = '#'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <a>: Setting <sc://x/>.host = '/'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <area>: Setting <sc://x/>.host = '/'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <a>: Setting <sc://x/>.host = '?'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <area>: Setting <sc://x/>.host = '?'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <a>: Setting <sc://x/>.host = '@'
+  assert_equals: expected "x" but got ""
+[FAIL] <area>: Setting <sc://x/>.host = '@'
+  assert_equals: expected "x" but got ""
+[FAIL] <a>: Setting <sc://x/>.host = 'ß'
+  assert_equals: expected "sc://%C3%9F/" but got "sc://x/"
+[FAIL] <area>: Setting <sc://x/>.host = 'ß'
+  assert_equals: expected "sc://%C3%9F/" but got "sc://x/"
+[PASS] <a>: Setting <https://x/>.host = 'ß' IDNA Nontransitional_Processing
+[PASS] <area>: Setting <https://x/>.host = 'ß' IDNA Nontransitional_Processing
+[PASS] <a>: Setting <data:text/plain,Stuff>.host = 'example.net' Cannot-be-a-base means no host
+[PASS] <area>: Setting <data:text/plain,Stuff>.host = 'example.net' Cannot-be-a-base means no host
+[PASS] <a>: Setting <http://example.net>.host = 'example.com:8080'
+[PASS] <area>: Setting <http://example.net>.host = 'example.com:8080'
+[PASS] <a>: Setting <http://example.net:8080>.host = 'example.com' Port number is unchanged if not specified in the new value
+[PASS] <area>: Setting <http://example.net:8080>.host = 'example.com' Port number is unchanged if not specified in the new value
+[PASS] <a>: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified
+[PASS] <area>: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified
+[PASS] <a>: Setting <http://example.net>.host = '' The empty host is not valid for special schemes
+[PASS] <area>: Setting <http://example.net>.host = '' The empty host is not valid for special schemes
+[FAIL] <a>: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes
+  assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo"
+[FAIL] <area>: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes
+  assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo"
+[FAIL] <a>: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host
+  assert_equals: expected "a://example.net/foo" but got "a:/foo"
+[FAIL] <area>: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host
+  assert_equals: expected "a://example.net/foo" but got "a:/foo"
+[PASS] <a>: Setting <http://example.net>.host = '0x7F000001:8080' IPv4 address syntax is normalized
+[PASS] <area>: Setting <http://example.net>.host = '0x7F000001:8080' IPv4 address syntax is normalized
+[PASS] <a>: Setting <http://example.net>.host = '[::0:01]:2' IPv6 address syntax is normalized
+[PASS] <area>: Setting <http://example.net>.host = '[::0:01]:2' IPv6 address syntax is normalized
+[PASS] <a>: Setting <http://example.net>.host = '[2001:db8::2]:4002' IPv6 literal address with port, crbug.com/1012416
+[PASS] <area>: Setting <http://example.net>.host = '[2001:db8::2]:4002' IPv6 literal address with port, crbug.com/1012416
+[PASS] <a>: Setting <http://example.net>.host = 'example.com:80' Default port number is removed
+[PASS] <area>: Setting <http://example.net>.host = 'example.com:80' Default port number is removed
+[PASS] <a>: Setting <https://example.net>.host = 'example.com:443' Default port number is removed
+[PASS] <area>: Setting <https://example.net>.host = 'example.com:443' Default port number is removed
+[PASS] <a>: Setting <https://example.net>.host = 'example.com:80' Default port number is only removed for the relevant scheme
+[PASS] <area>: Setting <https://example.net>.host = 'example.com:80' Default port number is only removed for the relevant scheme
+[PASS] <a>: Setting <http://example.net:8080>.host = 'example.com:80' Port number is removed if new port is scheme default and existing URL has a non-default port
+[PASS] <area>: Setting <http://example.net:8080>.host = 'example.com:80' Port number is removed if new port is scheme default and existing URL has a non-default port
+[PASS] <a>: Setting <http://example.net/path>.host = 'example.com/stuff' Stuff after a / delimiter is ignored
+[PASS] <area>: Setting <http://example.net/path>.host = 'example.com/stuff' Stuff after a / delimiter is ignored
+[PASS] <a>: Setting <http://example.net/path>.host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored
+[PASS] <area>: Setting <http://example.net/path>.host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored
+[PASS] <a>: Setting <http://example.net/path>.host = 'example.com?stuff' Stuff after a ? delimiter is ignored
+[PASS] <area>: Setting <http://example.net/path>.host = 'example.com?stuff' Stuff after a ? delimiter is ignored
+[PASS] <a>: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored
+[PASS] <area>: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored
+[PASS] <a>: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored
+[PASS] <area>: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored
+[PASS] <a>: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored
+[PASS] <area>: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored
+[PASS] <a>: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
+[PASS] <area>: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
+[PASS] <a>: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes
+[PASS] <area>: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes
+[FAIL] <a>: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+  assert_equals: expected "example.net" but got ""
+[FAIL] <area>: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+  assert_equals: expected "example.net" but got ""
+[FAIL] <a>: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
+  assert_equals: expected "view-source+http://example.com:8080/path" but got "view-source+http://example.net/path"
+[FAIL] <area>: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
+  assert_equals: expected "view-source+http://example.com:8080/path" but got "view-source+http://example.net/path"
+[PASS] <a>: Setting <http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
+[PASS] <area>: Setting <http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
+[PASS] <a>: Setting <http://example.net/path>.host = 'example.com:8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error
+[PASS] <area>: Setting <http://example.net/path>.host = 'example.com:8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error
+[PASS] <a>: Setting <http://example.net/path>.host = 'example.com:65535' Port numbers are 16 bit integers
+[PASS] <area>: Setting <http://example.net/path>.host = 'example.com:65535' Port numbers are 16 bit integers
+[PASS] <a>: Setting <http://example.net/path>.host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though.
+[PASS] <area>: Setting <http://example.net/path>.host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though.
+[PASS] <a>: Setting <http://example.net/>.host = '[google.com]' Broken IPv6
+[PASS] <area>: Setting <http://example.net/>.host = '[google.com]' Broken IPv6
+[PASS] <a>: Setting <http://example.net/>.host = '[::1.2.3.4x]'
+[PASS] <area>: Setting <http://example.net/>.host = '[::1.2.3.4x]'
+[PASS] <a>: Setting <http://example.net/>.host = '[::1.2.3.]'
+[PASS] <area>: Setting <http://example.net/>.host = '[::1.2.3.]'
+[PASS] <a>: Setting <http://example.net/>.host = '[::1.2.]'
+[PASS] <area>: Setting <http://example.net/>.host = '[::1.2.]'
+[PASS] <a>: Setting <http://example.net/>.host = '[::1.]'
+[PASS] <area>: Setting <http://example.net/>.host = '[::1.]'
+[FAIL] <a>: Setting <sc://test@test/>.host = ''
+  assert_equals: expected "test" but got ""
+[FAIL] <area>: Setting <sc://test@test/>.host = ''
+  assert_equals: expected "test" but got ""
+[FAIL] <a>: Setting <sc://test:12/>.host = ''
+  assert_equals: expected "test:12" but got ""
+[FAIL] <area>: Setting <sc://test:12/>.host = ''
+  assert_equals: expected "test:12" but got ""
+[PASS] <a>: Setting <http://example.com/>.host = '///bad.com' Leading / is not stripped
+[PASS] <area>: Setting <http://example.com/>.host = '///bad.com' Leading / is not stripped
+[FAIL] <a>: Setting <sc://example.com/>.host = '///bad.com' Leading / is not stripped
+  assert_equals: expected "sc:///" but got "sc://example.com/"
+[FAIL] <area>: Setting <sc://example.com/>.host = '///bad.com' Leading / is not stripped
+  assert_equals: expected "sc:///" but got "sc://example.com/"
+[PASS] <a>: Setting <https://example.com/>.host = 'a%C2%ADb'
+[PASS] <area>: Setting <https://example.com/>.host = 'a%C2%ADb'
+[PASS] <a>: Setting <https://example.com/>.host = '­'
+[PASS] <area>: Setting <https://example.com/>.host = '­'
+[PASS] <a>: Setting <https://example.com/>.host = '%C2%AD'
+[PASS] <area>: Setting <https://example.com/>.host = '%C2%AD'
+[FAIL] <a>: Setting <https://example.com/>.host = 'xn--'
+  assert_equals: expected "https://example.com/" but got "https://xn--/"
+[FAIL] <area>: Setting <https://example.com/>.host = 'xn--'
+  assert_equals: expected "https://example.com/" but got "https://xn--/"
+[FAIL] <a>: Setting <sc://x/>.hostname = '\0' Non-special scheme
+  assert_equals: expected "x" but got ""
+[FAIL] <area>: Setting <sc://x/>.hostname = '\0' Non-special scheme
+  assert_equals: expected "x" but got ""
+[FAIL] <a>: Setting <sc://x/>.hostname = '	'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <area>: Setting <sc://x/>.hostname = '	'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <a>: Setting <sc://x/>.hostname = '\n'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <area>: Setting <sc://x/>.hostname = '\n'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <a>: Setting <sc://x/>.hostname = '\r'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <area>: Setting <sc://x/>.hostname = '\r'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <a>: Setting <sc://x/>.hostname = ' '
+  assert_equals: expected "x" but got ""
+[FAIL] <area>: Setting <sc://x/>.hostname = ' '
+  assert_equals: expected "x" but got ""
+[FAIL] <a>: Setting <sc://x/>.hostname = '#'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <area>: Setting <sc://x/>.hostname = '#'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <a>: Setting <sc://x/>.hostname = '/'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <area>: Setting <sc://x/>.hostname = '/'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <a>: Setting <sc://x/>.hostname = '?'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <area>: Setting <sc://x/>.hostname = '?'
+  assert_equals: expected "sc:///" but got "sc://x/"
+[FAIL] <a>: Setting <sc://x/>.hostname = '@'
+  assert_equals: expected "x" but got ""
+[FAIL] <area>: Setting <sc://x/>.hostname = '@'
+  assert_equals: expected "x" but got ""
+[PASS] <a>: Setting <data:text/plain,Stuff>.hostname = 'example.net' Cannot-be-a-base means no host
+[PASS] <area>: Setting <data:text/plain,Stuff>.hostname = 'example.net' Cannot-be-a-base means no host
+[PASS] <a>: Setting <http://example.net:8080>.hostname = 'example.com'
+[PASS] <area>: Setting <http://example.net:8080>.hostname = 'example.com'
+[PASS] <a>: Setting <http://example.net>.hostname = '' The empty host is not valid for special schemes
+[PASS] <area>: Setting <http://example.net>.hostname = '' The empty host is not valid for special schemes
+[FAIL] <a>: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes
+  assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo"
+[FAIL] <area>: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes
+  assert_equals: expected "view-source+http:///foo" but got "view-source+http://example.net/foo"
+[FAIL] <a>: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host
+  assert_equals: expected "a://example.net/foo" but got "a:/foo"
+[FAIL] <area>: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host
+  assert_equals: expected "a://example.net/foo" but got "a:/foo"
+[PASS] <a>: Setting <http://example.net:8080>.hostname = '0x7F000001' IPv4 address syntax is normalized
+[PASS] <area>: Setting <http://example.net:8080>.hostname = '0x7F000001' IPv4 address syntax is normalized
+[PASS] <a>: Setting <http://example.net>.hostname = '[::0:01]' IPv6 address syntax is normalized
+[PASS] <area>: Setting <http://example.net>.hostname = '[::0:01]' IPv6 address syntax is normalized
+[PASS] <a>: Setting <http://example.net/path>.hostname = 'example.com:8080' : delimiter invalidates entire value
+[PASS] <area>: Setting <http://example.net/path>.hostname = 'example.com:8080' : delimiter invalidates entire value
+[PASS] <a>: Setting <http://example.net:8080/path>.hostname = 'example.com:' : delimiter invalidates entire value
+[PASS] <area>: Setting <http://example.net:8080/path>.hostname = 'example.com:' : delimiter invalidates entire value
+[PASS] <a>: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored
+[PASS] <area>: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored
+[PASS] <a>: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored
+[PASS] <area>: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored
+[PASS] <a>: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored
+[PASS] <area>: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored
+[PASS] <a>: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
+[PASS] <area>: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
+[FAIL] <a>: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+  assert_equals: expected "example.net" but got ""
+[FAIL] <area>: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+  assert_equals: expected "example.net" but got ""
+[PASS] <a>: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6
+[PASS] <area>: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6
+[PASS] <a>: Setting <http://example.net/>.hostname = '[::1.2.3.4x]'
+[PASS] <area>: Setting <http://example.net/>.hostname = '[::1.2.3.4x]'
+[PASS] <a>: Setting <http://example.net/>.hostname = '[::1.2.3.]'
+[PASS] <area>: Setting <http://example.net/>.hostname = '[::1.2.3.]'
+[PASS] <a>: Setting <http://example.net/>.hostname = '[::1.2.]'
+[PASS] <area>: Setting <http://example.net/>.hostname = '[::1.2.]'
+[PASS] <a>: Setting <http://example.net/>.hostname = '[::1.]'
+[PASS] <area>: Setting <http://example.net/>.hostname = '[::1.]'
+[FAIL] <a>: Setting <sc://test@test/>.hostname = ''
+  assert_equals: expected "test" but got ""
+[FAIL] <area>: Setting <sc://test@test/>.hostname = ''
+  assert_equals: expected "test" but got ""
+[FAIL] <a>: Setting <sc://test:12/>.hostname = ''
+  assert_equals: expected "test:12" but got ""
+[FAIL] <area>: Setting <sc://test:12/>.hostname = ''
+  assert_equals: expected "test:12" but got ""
+[FAIL] <a>: Setting <non-spec:/.//p>.hostname = 'h' Drop /. from path
+  assert_equals: expected "non-spec://h//p" but got "non-spec:/.//p"
+[FAIL] <area>: Setting <non-spec:/.//p>.hostname = 'h' Drop /. from path
+  assert_equals: expected "non-spec://h//p" but got "non-spec:/.//p"
+[FAIL] <a>: Setting <non-spec:/.//p>.hostname = ''
+  assert_equals: expected "non-spec:////p" but got "non-spec:/.//p"
+[FAIL] <area>: Setting <non-spec:/.//p>.hostname = ''
+  assert_equals: expected "non-spec:////p" but got "non-spec:/.//p"
+[PASS] <a>: Setting <http://example.com/>.hostname = '///bad.com' Leading / is not stripped
+[PASS] <area>: Setting <http://example.com/>.hostname = '///bad.com' Leading / is not stripped
+[FAIL] <a>: Setting <sc://example.com/>.hostname = '///bad.com' Leading / is not stripped
+  assert_equals: expected "sc:///" but got "sc://example.com/"
+[FAIL] <area>: Setting <sc://example.com/>.hostname = '///bad.com' Leading / is not stripped
+  assert_equals: expected "sc:///" but got "sc://example.com/"
+[PASS] <a>: Setting <https://example.com/>.hostname = 'a%C2%ADb'
+[PASS] <area>: Setting <https://example.com/>.hostname = 'a%C2%ADb'
+[PASS] <a>: Setting <https://example.com/>.hostname = '­'
+[PASS] <area>: Setting <https://example.com/>.hostname = '­'
+[PASS] <a>: Setting <https://example.com/>.hostname = '%C2%AD'
+[PASS] <area>: Setting <https://example.com/>.hostname = '%C2%AD'
+[FAIL] <a>: Setting <https://example.com/>.hostname = 'xn--'
+  assert_equals: expected "https://example.com/" but got "https://xn--/"
+[FAIL] <area>: Setting <https://example.com/>.hostname = 'xn--'
+  assert_equals: expected "https://example.com/" but got "https://xn--/"
+[PASS] <a>: Setting <http://example.net>.port = '8080'
+[PASS] <area>: Setting <http://example.net>.port = '8080'
+[PASS] <a>: Setting <http://example.net:8080>.port = '' Port number is removed if empty is the new value
+[PASS] <area>: Setting <http://example.net:8080>.port = '' Port number is removed if empty is the new value
+[PASS] <a>: Setting <http://example.net:8080>.port = '80' Default port number is removed
+[PASS] <area>: Setting <http://example.net:8080>.port = '80' Default port number is removed
+[PASS] <a>: Setting <https://example.net:4433>.port = '443' Default port number is removed
+[PASS] <area>: Setting <https://example.net:4433>.port = '443' Default port number is removed
+[PASS] <a>: Setting <https://example.net>.port = '80' Default port number is only removed for the relevant scheme
+[PASS] <area>: Setting <https://example.net>.port = '80' Default port number is only removed for the relevant scheme
+[PASS] <a>: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored
+[PASS] <area>: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored
+[PASS] <a>: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored
+[PASS] <area>: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored
+[PASS] <a>: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored
+[PASS] <area>: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored
+[PASS] <a>: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes
+[PASS] <area>: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes
+[FAIL] <a>: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
+  assert_equals: expected "view-source+http://example.net:8080/path" but got "view-source+http://example.net/path"
+[FAIL] <area>: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
+  assert_equals: expected "view-source+http://example.net:8080/path" but got "view-source+http://example.net/path"
+[PASS] <a>: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
+[PASS] <area>: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
+[PASS] <a>: Setting <http://example.net/path>.port = '8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error
+[PASS] <area>: Setting <http://example.net/path>.port = '8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error
+[PASS] <a>: Setting <http://example.net/path>.port = '65535' Port numbers are 16 bit integers
+[PASS] <area>: Setting <http://example.net/path>.port = '65535' Port numbers are 16 bit integers
+[PASS] <a>: Setting <http://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error
+[PASS] <area>: Setting <http://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error
+[PASS] <a>: Setting <http://example.net:8080/path>.port = 'randomstring' Setting port to a string that doesn't parse as a number
+[PASS] <area>: Setting <http://example.net:8080/path>.port = 'randomstring' Setting port to a string that doesn't parse as a number
+[FAIL] <a>: Setting <non-special://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error
+  assert_equals: expected "example.net:8080" but got ""
+[FAIL] <area>: Setting <non-special://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error
+  assert_equals: expected "example.net:8080" but got ""
+[PASS] <a>: Setting <non-base:value>.port = '12'
+[PASS] <area>: Setting <non-base:value>.port = '12'
+[PASS] <a>: Setting <sc:///>.port = '12'
+[PASS] <area>: Setting <sc:///>.port = '12'
+[FAIL] <a>: Setting <sc://x/>.port = '12'
+  assert_equals: expected "sc://x:12/" but got "sc://x/"
+[FAIL] <area>: Setting <sc://x/>.port = '12'
+  assert_equals: expected "sc://x:12/" but got "sc://x/"
+[PASS] <a>: Setting <https://domain.com:443>.port = '	8080' Leading u0009 on special scheme
+[PASS] <area>: Setting <https://domain.com:443>.port = '	8080' Leading u0009 on special scheme
+[FAIL] <a>: Setting <wpt++://domain.com:443>.port = '	8080' Leading u0009 on non-special scheme
+  assert_equals: expected "8080" but got ""
+[FAIL] <area>: Setting <wpt++://domain.com:443>.port = '	8080' Leading u0009 on non-special scheme
+  assert_equals: expected "8080" but got ""
+[PASS] <a>: Setting <https://www.google.com:4343>.port = '4wpt' Should use all ascii prefixed characters as port
+[PASS] <area>: Setting <https://www.google.com:4343>.port = '4wpt' Should use all ascii prefixed characters as port
+[PASS] <a>: Setting <data:original>.pathname = 'new value'
+[PASS] <area>: Setting <data:original>.pathname = 'new value'
+[PASS] <a>: Setting <sc:original>.pathname = 'new value'
+[PASS] <area>: Setting <sc:original>.pathname = 'new value'
+[FAIL] <a>: Setting <foo://somehost/some/path>.pathname = '' Non-special URLs can have their paths erased
+  assert_equals: expected "foo://somehost" but got "foo://somehost/some/path"
+[FAIL] <area>: Setting <foo://somehost/some/path>.pathname = '' Non-special URLs can have their paths erased
+  assert_equals: expected "foo://somehost" but got "foo://somehost/some/path"
+[FAIL] <a>: Setting <foo:///some/path>.pathname = '' Non-special URLs with an empty host can have their paths erased
+  assert_equals: expected "foo://" but got "foo:///some/path"
+[FAIL] <area>: Setting <foo:///some/path>.pathname = '' Non-special URLs with an empty host can have their paths erased
+  assert_equals: expected "foo://" but got "foo:///some/path"
+[FAIL] <a>: Setting <foo:/some/path>.pathname = '' Path-only URLs cannot have their paths erased
+  assert_equals: expected "foo:/" but got "foo:/some/path"
+[FAIL] <area>: Setting <foo:/some/path>.pathname = '' Path-only URLs cannot have their paths erased
+  assert_equals: expected "foo:/" but got "foo:/some/path"
+[FAIL] <a>: Setting <foo:/some/path>.pathname = 'test' Path-only URLs always have an initial slash
+  assert_equals: expected "foo:/test" but got "foo:/some/path"
+[FAIL] <area>: Setting <foo:/some/path>.pathname = 'test' Path-only URLs always have an initial slash
+  assert_equals: expected "foo:/test" but got "foo:/some/path"
+[FAIL] <a>: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket'
+  assert_equals: expected "unix:/var/run/bar.socket?timeout=10" but got "unix:/run/foo.socket?timeout=10"
+[FAIL] <area>: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket'
+  assert_equals: expected "unix:/var/run/bar.socket?timeout=10" but got "unix:/run/foo.socket?timeout=10"
+[PASS] <a>: Setting <https://example.net#nav>.pathname = 'home'
+[PASS] <area>: Setting <https://example.net#nav>.pathname = 'home'
+[PASS] <a>: Setting <https://example.net#nav>.pathname = '../home'
+[PASS] <area>: Setting <https://example.net#nav>.pathname = '../home'
+[PASS] <a>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs
+[PASS] <area>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs
+[FAIL] <a>: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs
+  assert_equals: expected "view-source+http://example.net/\\a\\%2E\\b\\%2e.\\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav"
+[FAIL] <area>: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs
+  assert_equals: expected "view-source+http://example.net/\\a\\%2E\\b\\%2e.\\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav"
+[FAIL] <a>: Setting <a:/>.pathname = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/"
+[FAIL] <area>: Setting <a:/>.pathname = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/"
+[FAIL] <a>: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments.
+  assert_equals: expected "http://example.net/%2e%2E%c3%89t%C3%A9" but got "http://example.net/..%c3%89t%C3%A9"
+[FAIL] <area>: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments.
+  assert_equals: expected "http://example.net/%2e%2E%c3%89t%C3%A9" but got "http://example.net/..%c3%89t%C3%A9"
+[PASS] <a>: Setting <http://example.net>.pathname = '?' ? needs to be encoded
+[PASS] <area>: Setting <http://example.net>.pathname = '?' ? needs to be encoded
+[PASS] <a>: Setting <http://example.net>.pathname = '#' # needs to be encoded
+[PASS] <area>: Setting <http://example.net>.pathname = '#' # needs to be encoded
+[FAIL] <a>: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme
+  assert_equals: expected "sc://example.net/%3F" but got "sc://example.net"
+[FAIL] <area>: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme
+  assert_equals: expected "sc://example.net/%3F" but got "sc://example.net"
+[FAIL] <a>: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme
+  assert_equals: expected "sc://example.net/%23" but got "sc://example.net"
+[FAIL] <area>: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme
+  assert_equals: expected "sc://example.net/%23" but got "sc://example.net"
+[PASS] <a>: Setting <http://example.net>.pathname = '/?é' ? doesn't mess up encoding
+[PASS] <area>: Setting <http://example.net>.pathname = '/?é' ? doesn't mess up encoding
+[PASS] <a>: Setting <http://example.net>.pathname = '/#é' # doesn't mess up encoding
+[PASS] <area>: Setting <http://example.net>.pathname = '/#é' # doesn't mess up encoding
+[FAIL] <a>: Setting <non-spec:/>.pathname = '/.//p' Serialize /. in path
+  assert_equals: expected "non-spec:/.//p" but got "non-spec:/"
+[FAIL] <area>: Setting <non-spec:/>.pathname = '/.//p' Serialize /. in path
+  assert_equals: expected "non-spec:/.//p" but got "non-spec:/"
+[FAIL] <a>: Setting <non-spec:/>.pathname = '/..//p'
+  assert_equals: expected "non-spec:/.//p" but got "non-spec:/"
+[FAIL] <area>: Setting <non-spec:/>.pathname = '/..//p'
+  assert_equals: expected "non-spec:/.//p" but got "non-spec:/"
+[FAIL] <a>: Setting <non-spec:/>.pathname = '//p'
+  assert_equals: expected "non-spec:/.//p" but got "non-spec:/"
+[FAIL] <area>: Setting <non-spec:/>.pathname = '//p'
+  assert_equals: expected "non-spec:/.//p" but got "non-spec:/"
+[FAIL] <a>: Setting <non-spec:/.//>.pathname = 'p' Drop /. from path
+  assert_equals: expected "non-spec:/p" but got "non-spec:/.//"
+[FAIL] <area>: Setting <non-spec:/.//>.pathname = 'p' Drop /. from path
+  assert_equals: expected "non-spec:/p" but got "non-spec:/.//"
+[FAIL] <a>: Setting <data:/nospace>.pathname = 'space ' Non-special URLs with non-opaque paths percent-encode U+0020
+  assert_equals: expected "data:/space%20" but got "data:/nospace"
+[FAIL] <area>: Setting <data:/nospace>.pathname = 'space ' Non-special URLs with non-opaque paths percent-encode U+0020
+  assert_equals: expected "data:/space%20" but got "data:/nospace"
+[FAIL] <a>: Setting <sc:/nospace>.pathname = 'space '
+  assert_equals: expected "sc:/space%20" but got "sc:/nospace"
+[FAIL] <area>: Setting <sc:/nospace>.pathname = 'space '
+  assert_equals: expected "sc:/space%20" but got "sc:/nospace"
+[PASS] <a>: Setting <http://example.net>.pathname = ' ' Trailing space should be encoded
+[PASS] <area>: Setting <http://example.net>.pathname = ' ' Trailing space should be encoded
+[PASS] <a>: Setting <http://example.net>.pathname = '\0' Trailing C0 control should be encoded
+[PASS] <area>: Setting <http://example.net>.pathname = '\0' Trailing C0 control should be encoded
+[PASS] <a>: Setting <https://example.net#nav>.search = 'lang=fr'
+[PASS] <area>: Setting <https://example.net#nav>.search = 'lang=fr'
+[PASS] <a>: Setting <https://example.net?lang=en-US#nav>.search = 'lang=fr'
+[PASS] <area>: Setting <https://example.net?lang=en-US#nav>.search = 'lang=fr'
+[PASS] <a>: Setting <https://example.net?lang=en-US#nav>.search = '?lang=fr'
+[PASS] <area>: Setting <https://example.net?lang=en-US#nav>.search = '?lang=fr'
+[PASS] <a>: Setting <https://example.net?lang=en-US#nav>.search = '??lang=fr'
+[PASS] <area>: Setting <https://example.net?lang=en-US#nav>.search = '??lang=fr'
+[FAIL] <a>: Setting <https://example.net?lang=en-US#nav>.search = '?'
+  assert_equals: expected "https://example.net/?#nav" but got "https://example.net/#nav"
+[FAIL] <area>: Setting <https://example.net?lang=en-US#nav>.search = '?'
+  assert_equals: expected "https://example.net/?#nav" but got "https://example.net/#nav"
+[PASS] <a>: Setting <https://example.net?lang=en-US#nav>.search = ''
+[PASS] <area>: Setting <https://example.net?lang=en-US#nav>.search = ''
+[PASS] <a>: Setting <https://example.net?lang=en-US>.search = ''
+[PASS] <area>: Setting <https://example.net?lang=en-US>.search = ''
+[PASS] <a>: Setting <https://example.net>.search = ''
+[PASS] <area>: Setting <https://example.net>.search = ''
+[FAIL] <a>: Setting <a:/>.search = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/?%00%01%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
+[FAIL] <area>: Setting <a:/>.search = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/?%00%01%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
+[PASS] <a>: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is
+[PASS] <area>: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is
+[PASS] <a>: Setting <data:space ?query>.search = '' Drop trailing spaces from trailing opaque paths
+[PASS] <area>: Setting <data:space ?query>.search = '' Drop trailing spaces from trailing opaque paths
+[PASS] <a>: Setting <sc:space ?query>.search = ''
+[PASS] <area>: Setting <sc:space ?query>.search = ''
+[PASS] <a>: Setting <data:space  ?query#fragment>.search = '' Do not drop trailing spaces from non-trailing opaque paths
+[PASS] <area>: Setting <data:space  ?query#fragment>.search = '' Do not drop trailing spaces from non-trailing opaque paths
+[PASS] <a>: Setting <sc:space  ?query#fragment>.search = ''
+[PASS] <area>: Setting <sc:space  ?query#fragment>.search = ''
+[PASS] <a>: Setting <http://example.net>.search = ' ' Trailing space should be encoded
+[PASS] <area>: Setting <http://example.net>.search = ' ' Trailing space should be encoded
+[PASS] <a>: Setting <http://example.net>.search = '\0' Trailing C0 control should be encoded
+[PASS] <area>: Setting <http://example.net>.search = '\0' Trailing C0 control should be encoded
+[PASS] <a>: Setting <https://example.net>.hash = 'main'
+[PASS] <area>: Setting <https://example.net>.hash = 'main'
+[PASS] <a>: Setting <https://example.net#nav>.hash = 'main'
+[PASS] <area>: Setting <https://example.net#nav>.hash = 'main'
+[PASS] <a>: Setting <https://example.net?lang=en-US>.hash = '##nav'
+[PASS] <area>: Setting <https://example.net?lang=en-US>.hash = '##nav'
+[PASS] <a>: Setting <https://example.net?lang=en-US#nav>.hash = '#main'
+[PASS] <area>: Setting <https://example.net?lang=en-US#nav>.hash = '#main'
+[PASS] <a>: Setting <https://example.net?lang=en-US#nav>.hash = '#'
+[PASS] <area>: Setting <https://example.net?lang=en-US#nav>.hash = '#'
+[PASS] <a>: Setting <https://example.net?lang=en-US#nav>.hash = ''
+[PASS] <area>: Setting <https://example.net?lang=en-US#nav>.hash = ''
+[PASS] <a>: Setting <http://example.net>.hash = '#foo bar'
+[PASS] <area>: Setting <http://example.net>.hash = '#foo bar'
+[PASS] <a>: Setting <http://example.net>.hash = '#foo"bar'
+[PASS] <area>: Setting <http://example.net>.hash = '#foo"bar'
+[PASS] <a>: Setting <http://example.net>.hash = '#foo<bar'
+[PASS] <area>: Setting <http://example.net>.hash = '#foo<bar'
+[PASS] <a>: Setting <http://example.net>.hash = '#foo>bar'
+[PASS] <area>: Setting <http://example.net>.hash = '#foo>bar'
+[PASS] <a>: Setting <http://example.net>.hash = '#foo`bar'
+[PASS] <area>: Setting <http://example.net>.hash = '#foo`bar'
+[PASS] <a>: Setting <a:/>.hash = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed
+[PASS] <area>: Setting <a:/>.hash = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed
+[PASS] <a>: Setting <http://example.net>.hash = 'a\0b' Percent-encode NULLs in fragment
+[PASS] <area>: Setting <http://example.net>.hash = 'a\0b' Percent-encode NULLs in fragment
+[PASS] <a>: Setting <non-spec:/>.hash = 'a\0b' Percent-encode NULLs in fragment
+[PASS] <area>: Setting <non-spec:/>.hash = 'a\0b' Percent-encode NULLs in fragment
+[PASS] <a>: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is
+[PASS] <area>: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is
+[PASS] <a>: Setting <data:space                                                                                                                                  #fragment>.hash = '' Drop trailing spaces from trailing opaque paths
+[PASS] <area>: Setting <data:space                                                                                                                                  #fragment>.hash = '' Drop trailing spaces from trailing opaque paths
+[PASS] <a>: Setting <sc:space    #fragment>.hash = ''
+[PASS] <area>: Setting <sc:space    #fragment>.hash = ''
+[PASS] <a>: Setting <data:space  ?query#fragment>.hash = '' Do not drop trailing spaces from non-trailing opaque paths
+[PASS] <area>: Setting <data:space  ?query#fragment>.hash = '' Do not drop trailing spaces from non-trailing opaque paths
+[PASS] <a>: Setting <sc:space  ?query#fragment>.hash = ''
+[PASS] <area>: Setting <sc:space  ?query#fragment>.hash = ''
+[PASS] <a>: Setting <http://example.net>.hash = ' ' Trailing space should be encoded
+[PASS] <area>: Setting <http://example.net>.hash = ' ' Trailing space should be encoded
+[PASS] <a>: Setting <http://example.net>.hash = '\0' Trailing C0 control should be encoded
+[PASS] <area>: Setting <http://example.net>.hash = '\0' Trailing C0 control should be encoded
+Harness: the test ran to completion.
+
diff --git "a/third_party/blink/web_tests/flag-specific/highdpi/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/flag-specific/highdpi/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
index 9414cc8..3ec4a05 100644
--- "a/third_party/blink/web_tests/flag-specific/highdpi/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/flag-specific/highdpi/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -30,22 +30,22 @@
 [PASS] Parsing: <> against <http://example.org/foo/bar>
 [PASS] Parsing: <  	> against <http://example.org/foo/bar>
 [PASS] Parsing: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:> against <http://example.org/foo/bar>
 [PASS] Parsing: <:a> against <http://example.org/foo/bar>
 [PASS] Parsing: <:/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#/> against <http://example.org/foo/bar>
-[PASS] Parsing: <#\> against <http://example.org/foo/bar>
+[PASS] Parsing: <#\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <#;?> against <http://example.org/foo/bar>
 [PASS] Parsing: <?> against <http://example.org/foo/bar>
 [PASS] Parsing: </> against <http://example.org/foo/bar>
 [PASS] Parsing: <:23> against <http://example.org/foo/bar>
 [PASS] Parsing: </:23> against <http://example.org/foo/bar>
-[PASS] Parsing: <\x> against <http://example.org/foo/bar>
-[PASS] Parsing: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Parsing: <\\x> against <http://example.org/foo/bar>
+[PASS] Parsing: <\\\\x\\hello> against <http://example.org/foo/bar>
 [PASS] Parsing: <::> against <http://example.org/foo/bar>
 [PASS] Parsing: <::23> against <http://example.org/foo/bar>
 [FAIL] Parsing: <foo://> against <http://example.org/foo/bar>
@@ -55,9 +55,9 @@
 [PASS] Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
 [FAIL] Parsing: <foo://///////> against <http://example.org/foo/bar>
@@ -140,7 +140,7 @@
 [PASS] Parsing: <http://example.com/(%28:%3A%29)> against <about:blank>
 [PASS] Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank>
 [PASS] Parsing: <http://example.com/foo	bar> against <about:blank>
-[PASS] Parsing: <http://example.com\\foo\\bar> against <about:blank>
+[PASS] Parsing: <http://example.com\\\\foo\\\\bar> against <about:blank>
 [PASS] Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
 [PASS] Parsing: <http://example.com/@asdf%40> against <about:blank>
 [PASS] Parsing: <http://example.com/你好你好> against <about:blank>
@@ -157,7 +157,7 @@
 [PASS] Parsing: <http://www/foo/%2E/html> against <about:blank>
 [PASS] Parsing: <http://user:pass@/> against <about:blank>
 [PASS] Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
-[PASS] Parsing: <http:\\www.google.com\foo> against <about:blank>
+[PASS] Parsing: <http:\\\\www.google.com\\foo> against <about:blank>
 [PASS] Parsing: <http://foo:80/> against <about:blank>
 [PASS] Parsing: <http://foo:81/> against <about:blank>
 [FAIL] Parsing: <httpa://foo:80/> against <about:blank>
@@ -371,13 +371,13 @@
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <x> against <sc://ñ>
   assert_equals: href expected "sc://%C3%B1/x" but got "x"
-[PASS] Parsing: <sc:\../> against <about:blank>
+[PASS] Parsing: <sc:\\../> against <about:blank>
 [PASS] Parsing: <sc::a@example.net> against <about:blank>
 [PASS] Parsing: <wow:%NBD> against <about:blank>
 [PASS] Parsing: <wow:%1G> against <about:blank>
 [PASS] Parsing: <wow:￿> against <about:blank>
 [FAIL] Parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank>
-  assert_equals: href expected "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF" but got "http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ\ufffe\uffff?U+d800𐟾U+dfff﷐﷏﷯ﷰ\ufffe\uffff"
+  assert_equals: href expected "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF" but got "http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ\\ufffe\\uffff?U+d800𐟾U+dfff﷐﷏﷯ﷰ\\ufffe\\uffff"
 [FAIL] Parsing: <sc://a\0b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <sc://a b/> against <about:blank>
@@ -388,7 +388,7 @@
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <sc://a[b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
-[FAIL] Parsing: <sc://a\b/> against <about:blank>
+[FAIL] Parsing: <sc://a\\b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <sc://a]b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
@@ -492,9 +492,9 @@
 [PASS] Parsing: <http://ho%7Cst/> against <about:blank>
 [PASS] Parsing: <http://ho%7Fst/> against <about:blank>
 [FAIL] Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: href expected "http://!\"$&'()*+,-.;=_`{}~/" but got "http://!\"$&'()%2A+,-.;=_`{}~/"
+  assert_equals: href expected "http://!\\"$&'()*+,-.;=_`{}~/" but got "http://!\\"$&'()%2A+,-.;=_`{}~/"
 [FAIL] Parsing: <sc://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\\"$%&'()*+,-.;=_`{}~" but got ""
 [PASS] Parsing: <ftp://example.com%80/> against <about:blank>
 [PASS] Parsing: <ftp://example.com%A0/> against <about:blank>
 [PASS] Parsing: <https://example.com%80/> against <about:blank>
@@ -540,8 +540,8 @@
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <asdf://%43%7C/> against <about:blank>
   assert_equals: host expected "%43%7C" but got ""
-[PASS] Parsing: <\\\.\Y:> against <about:blank>
-[PASS] Parsing: <\\\.\y:> against <about:blank>
+[PASS] Parsing: <\\\\\\.\\Y:> against <about:blank>
+[PASS] Parsing: <\\\\\\.\\y:> against <about:blank>
 [PASS] Parsing: <http://[1:0::]> against <http://example.net/>
 [PASS] Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/>
 [PASS] Parsing: <https://[0::0::0]> against <about:blank>
@@ -682,28 +682,28 @@
 [PASS] Parsing: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
 [PASS] Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
 [PASS] Parsing: <https://user:pass[@foo/bar> against <http://example.org>
-[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank>
-  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> against <about:blank>
+  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\\"$%&'()*+,-.;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank>
   assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
-[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank>
-  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> against <about:blank>
+  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\\"$%&'()*+,-.:;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank>
   assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
 [FAIL] Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "!\\"$%&'()*+,-.;=_`{}~" but got ""
 [FAIL] Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: href expected "wss://!\"$&'()*+,-.;=_`{}~/" but got "wss://!\"$&'()%2A+,-.;=_`{}~/"
-[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
-  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
-[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
+  assert_equals: href expected "wss://!\\"$&'()*+,-.;=_`{}~/" but got "wss://!\\"$&'()%2A+,-.;=_`{}~/"
+[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
+  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\\\]^_%60%7B|%7D~" but got "foo://host/ !\\"$%&'()*+,-./:;<=>@[\\\\]^_`{|}~"
+[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
   assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
-[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~"
-[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~"
+[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
   assert_equals: host expected "host" but got ""
-[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
 [FAIL] Parsing: <abc:rootless> against <abc://host/path>
   assert_equals: href expected "abc:rootless" but got "abc://host/rootless"
 [FAIL] Parsing: <abc:rootless> against <abc:/path>
diff --git a/third_party/blink/web_tests/flag-specific/highdpi/external/wpt/url/a-element_include=file-expected.txt b/third_party/blink/web_tests/flag-specific/highdpi/external/wpt/url/a-element_include=file-expected.txt
index 57e0219..7b95049b 100644
--- a/third_party/blink/web_tests/flag-specific/highdpi/external/wpt/url/a-element_include=file-expected.txt
+++ b/third_party/blink/web_tests/flag-specific/highdpi/external/wpt/url/a-element_include=file-expected.txt
@@ -6,19 +6,19 @@
 [PASS] Parsing: <file://example:test/> against <about:blank>
 [PASS] Parsing: <file://example%/> against <about:blank>
 [PASS] Parsing: <file://[example]/> against <about:blank>
-[FAIL] Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html"
-[FAIL] Parsing: <  File:c|////foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <  File:c|////foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///tmp/mock/c%7C////foo/bar.html"
 [FAIL] Parsing: <C|/foo/bar> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///C:/foo/bar" but got "file:///tmp/mock/C%7C/foo/bar"
-[FAIL] Parsing: </C|\foo\bar> against <file:///tmp/mock/path>
+[FAIL] Parsing: </C|\\foo\\bar> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///C:/foo/bar" but got "file:///C%7C/foo/bar"
 [FAIL] Parsing: <//C|/foo/bar> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///C:/foo/bar" but got "//C|/foo/bar"
 [PASS] Parsing: <//server/file> against <file:///tmp/mock/path>
-[PASS] Parsing: <\\server\file> against <file:///tmp/mock/path>
-[PASS] Parsing: </\server/file> against <file:///tmp/mock/path>
+[PASS] Parsing: <\\\\server\\file> against <file:///tmp/mock/path>
+[PASS] Parsing: </\\server/file> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///home/me> against <file:///tmp/mock/path>
 [PASS] Parsing: <//> against <file:///tmp/mock/path>
@@ -65,26 +65,26 @@
 [PASS] Parsing: <file:?x> against <file:///test?test#test>
 [PASS] Parsing: <#x> against <file:///test?test#test>
 [PASS] Parsing: <file:#x> against <file:///test?test#test>
-[FAIL] Parsing: <file:\\//> against <about:blank>
+[FAIL] Parsing: <file:\\\\//> against <about:blank>
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\> against <about:blank>
+[FAIL] Parsing: <file:\\\\\\\\> against <about:blank>
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\?fox> against <about:blank>
+[FAIL] Parsing: <file:\\\\\\\\?fox> against <about:blank>
   assert_equals: href expected "file:////?fox" but got "file:///?fox"
-[FAIL] Parsing: <file:\\\\#guppy> against <about:blank>
+[FAIL] Parsing: <file:\\\\\\\\#guppy> against <about:blank>
   assert_equals: href expected "file:////#guppy" but got "file:///#guppy"
 [PASS] Parsing: <file://spider///> against <about:blank>
-[FAIL] Parsing: <file:\\localhost//> against <about:blank>
+[FAIL] Parsing: <file:\\\\localhost//> against <about:blank>
   assert_equals: href expected "file:////" but got "file://localhost//"
 [PASS] Parsing: <file:///localhost//cat> against <about:blank>
-[FAIL] Parsing: <file://\/localhost//cat> against <about:blank>
+[FAIL] Parsing: <file://\\/localhost//cat> against <about:blank>
   assert_equals: href expected "file:////localhost//cat" but got "file:///localhost//cat"
 [FAIL] Parsing: <file://localhost//a//../..//> against <about:blank>
   assert_equals: href expected "file://///" but got "file://localhost///"
 [FAIL] Parsing: </////mouse> against <file:///elephant>
   assert_equals: href expected "file://///mouse" but got "file:///mouse"
-[PASS] Parsing: <\//pig> against <file://lion/>
-[FAIL] Parsing: <\/localhost//pig> against <file://lion/>
+[PASS] Parsing: <\\//pig> against <file://lion/>
+[FAIL] Parsing: <\\/localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
 [FAIL] Parsing: <//localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
@@ -104,7 +104,7 @@
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
 [FAIL] Parsing: <C|\n/> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
-[FAIL] Parsing: <C|\> against <file://host/dir/file>
+[FAIL] Parsing: <C|\\> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
 [PASS] Parsing: <C> against <file://host/dir/file>
 [FAIL] Parsing: <C|a> against <file://host/dir/file>
@@ -112,7 +112,7 @@
 [PASS] Parsing: </c:/foo/bar> against <file:///c:/baz/qux>
 [FAIL] Parsing: </c|/foo/bar> against <file:///c:/baz/qux>
   assert_equals: href expected "file:///c:/foo/bar" but got "file:///c%7C/foo/bar"
-[PASS] Parsing: <file:\c:\foo\bar> against <file:///c:/baz/qux>
+[PASS] Parsing: <file:\\c:\\foo\\bar> against <file:///c:/baz/qux>
 [PASS] Parsing: </c:/foo/bar> against <file://host/path>
 [PASS] Parsing: <file://example.net/C:/> against <about:blank>
 [PASS] Parsing: <file://1.2.3.4/C:/> against <about:blank>
diff --git a/third_party/blink/web_tests/harness-tests/special-characters-expected.txt b/third_party/blink/web_tests/harness-tests/special-characters-expected.txt
index 97dddcb..0f9f564d 100644
--- a/third_party/blink/web_tests/harness-tests/special-characters-expected.txt
+++ b/third_party/blink/web_tests/harness-tests/special-characters-expected.txt
@@ -1,207 +1,207 @@
 This is a testharness.js-based test.
-[PASS] Unescaped \ in test name.
-[PASS] Escaped "\\" in test name.
-[FAIL] Unescaped "\\" in test message.
-  Expected Error: \ character.
-[FAIL] Escaped "\\" in test message.
-  Expected Error: "\\" character.
+[PASS] Unescaped \\ in test name.
+[PASS] Escaped "\\\\" in test name.
+[FAIL] Unescaped "\\\\" in test message.
+  Expected Error: \\ character.
+[FAIL] Escaped "\\\\" in test message.
+  Expected Error: "\\\\" character.
 [PASS] Unescaped \r\n in test name.
-[PASS] Escaped "\r\n" in test name.
-[FAIL] Unescaped "\r\n" in test message.
+[PASS] Escaped "\\r\\n" in test name.
+[FAIL] Unescaped "\\r\\n" in test message.
   Expected Error: \r\n character.
-[FAIL] Escaped "\r\n" in test message.
-  Expected Error: "\r\n" character.
+[FAIL] Escaped "\\r\\n" in test message.
+  Expected Error: "\\r\\n" character.
 [PASS] Unescaped \0 in test name.
-[PASS] Escaped "\0" in test name.
-[FAIL] Unescaped "\0" in test message.
+[PASS] Escaped "\\0" in test name.
+[FAIL] Unescaped "\\0" in test message.
   Expected Error: \0 character.
-[FAIL] Escaped "\0" in test message.
-  Expected Error: "\0" character.
+[FAIL] Escaped "\\0" in test message.
+  Expected Error: "\\0" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x01" in test name.
-[FAIL] Unescaped "\x01" in test message.
+[PASS] Escaped "\\x01" in test name.
+[FAIL] Unescaped "\\x01" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x01" in test message.
-  Expected Error: "\x01" character.
+[FAIL] Escaped "\\x01" in test message.
+  Expected Error: "\\x01" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x02" in test name.
-[FAIL] Unescaped "\x02" in test message.
+[PASS] Escaped "\\x02" in test name.
+[FAIL] Unescaped "\\x02" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x02" in test message.
-  Expected Error: "\x02" character.
+[FAIL] Escaped "\\x02" in test message.
+  Expected Error: "\\x02" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x03" in test name.
-[FAIL] Unescaped "\x03" in test message.
+[PASS] Escaped "\\x03" in test name.
+[FAIL] Unescaped "\\x03" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x03" in test message.
-  Expected Error: "\x03" character.
+[FAIL] Escaped "\\x03" in test message.
+  Expected Error: "\\x03" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x04" in test name.
-[FAIL] Unescaped "\x04" in test message.
+[PASS] Escaped "\\x04" in test name.
+[FAIL] Unescaped "\\x04" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x04" in test message.
-  Expected Error: "\x04" character.
+[FAIL] Escaped "\\x04" in test message.
+  Expected Error: "\\x04" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x05" in test name.
-[FAIL] Unescaped "\x05" in test message.
+[PASS] Escaped "\\x05" in test name.
+[FAIL] Unescaped "\\x05" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x05" in test message.
-  Expected Error: "\x05" character.
+[FAIL] Escaped "\\x05" in test message.
+  Expected Error: "\\x05" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x06" in test name.
-[FAIL] Unescaped "\x06" in test message.
+[PASS] Escaped "\\x06" in test name.
+[FAIL] Unescaped "\\x06" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x06" in test message.
-  Expected Error: "\x06" character.
+[FAIL] Escaped "\\x06" in test message.
+  Expected Error: "\\x06" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x07" in test name.
-[FAIL] Unescaped "\x07" in test message.
+[PASS] Escaped "\\x07" in test name.
+[FAIL] Unescaped "\\x07" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x07" in test message.
-  Expected Error: "\x07" character.
+[FAIL] Escaped "\\x07" in test message.
+  Expected Error: "\\x07" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\b" in test name.
-[FAIL] Unescaped "\b" in test message.
+[PASS] Escaped "\\b" in test name.
+[FAIL] Unescaped "\\b" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\b" in test message.
-  Expected Error: "\b" character.
+[FAIL] Escaped "\\b" in test message.
+  Expected Error: "\\b" character.
 [PASS] Unescaped 	 in test name.
-[PASS] Escaped "\t" in test name.
-[FAIL] Unescaped "\t" in test message.
+[PASS] Escaped "\\t" in test name.
+[FAIL] Unescaped "\\t" in test message.
   Expected Error: 	 character.
-[FAIL] Escaped "\t" in test message.
-  Expected Error: "\t" character.
+[FAIL] Escaped "\\t" in test message.
+  Expected Error: "\\t" character.
 [PASS] Unescaped \n in test name.
-[PASS] Escaped "\n" in test name.
-[FAIL] Unescaped "\n" in test message.
+[PASS] Escaped "\\n" in test name.
+[FAIL] Unescaped "\\n" in test message.
   Expected Error: \n character.
-[FAIL] Escaped "\n" in test message.
-  Expected Error: "\n" character.
+[FAIL] Escaped "\\n" in test message.
+  Expected Error: "\\n" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\v" in test name.
-[FAIL] Unescaped "\v" in test message.
+[PASS] Escaped "\\v" in test name.
+[FAIL] Unescaped "\\v" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\v" in test message.
-  Expected Error: "\v" character.
+[FAIL] Escaped "\\v" in test message.
+  Expected Error: "\\v" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\f" in test name.
-[FAIL] Unescaped "\f" in test message.
+[PASS] Escaped "\\f" in test name.
+[FAIL] Unescaped "\\f" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\f" in test message.
-  Expected Error: "\f" character.
+[FAIL] Escaped "\\f" in test message.
+  Expected Error: "\\f" character.
 [PASS] Unescaped \r in test name.
-[PASS] Escaped "\r" in test name.
-[FAIL] Unescaped "\r" in test message.
+[PASS] Escaped "\\r" in test name.
+[FAIL] Unescaped "\\r" in test message.
   Expected Error: \r character.
-[FAIL] Escaped "\r" in test message.
-  Expected Error: "\r" character.
+[FAIL] Escaped "\\r" in test message.
+  Expected Error: "\\r" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x0e" in test name.
-[FAIL] Unescaped "\x0e" in test message.
+[PASS] Escaped "\\x0e" in test name.
+[FAIL] Unescaped "\\x0e" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x0e" in test message.
-  Expected Error: "\x0e" character.
+[FAIL] Escaped "\\x0e" in test message.
+  Expected Error: "\\x0e" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x0f" in test name.
-[FAIL] Unescaped "\x0f" in test message.
+[PASS] Escaped "\\x0f" in test name.
+[FAIL] Unescaped "\\x0f" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x0f" in test message.
-  Expected Error: "\x0f" character.
+[FAIL] Escaped "\\x0f" in test message.
+  Expected Error: "\\x0f" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x10" in test name.
-[FAIL] Unescaped "\x10" in test message.
+[PASS] Escaped "\\x10" in test name.
+[FAIL] Unescaped "\\x10" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x10" in test message.
-  Expected Error: "\x10" character.
+[FAIL] Escaped "\\x10" in test message.
+  Expected Error: "\\x10" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x11" in test name.
-[FAIL] Unescaped "\x11" in test message.
+[PASS] Escaped "\\x11" in test name.
+[FAIL] Unescaped "\\x11" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x11" in test message.
-  Expected Error: "\x11" character.
+[FAIL] Escaped "\\x11" in test message.
+  Expected Error: "\\x11" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x12" in test name.
-[FAIL] Unescaped "\x12" in test message.
+[PASS] Escaped "\\x12" in test name.
+[FAIL] Unescaped "\\x12" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x12" in test message.
-  Expected Error: "\x12" character.
+[FAIL] Escaped "\\x12" in test message.
+  Expected Error: "\\x12" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x13" in test name.
-[FAIL] Unescaped "\x13" in test message.
+[PASS] Escaped "\\x13" in test name.
+[FAIL] Unescaped "\\x13" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x13" in test message.
-  Expected Error: "\x13" character.
+[FAIL] Escaped "\\x13" in test message.
+  Expected Error: "\\x13" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x14" in test name.
-[FAIL] Unescaped "\x14" in test message.
+[PASS] Escaped "\\x14" in test name.
+[FAIL] Unescaped "\\x14" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x14" in test message.
-  Expected Error: "\x14" character.
+[FAIL] Escaped "\\x14" in test message.
+  Expected Error: "\\x14" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x15" in test name.
-[FAIL] Unescaped "\x15" in test message.
+[PASS] Escaped "\\x15" in test name.
+[FAIL] Unescaped "\\x15" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x15" in test message.
-  Expected Error: "\x15" character.
+[FAIL] Escaped "\\x15" in test message.
+  Expected Error: "\\x15" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x16" in test name.
-[FAIL] Unescaped "\x16" in test message.
+[PASS] Escaped "\\x16" in test name.
+[FAIL] Unescaped "\\x16" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x16" in test message.
-  Expected Error: "\x16" character.
+[FAIL] Escaped "\\x16" in test message.
+  Expected Error: "\\x16" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x17" in test name.
-[FAIL] Unescaped "\x17" in test message.
+[PASS] Escaped "\\x17" in test name.
+[FAIL] Unescaped "\\x17" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x17" in test message.
-  Expected Error: "\x17" character.
+[FAIL] Escaped "\\x17" in test message.
+  Expected Error: "\\x17" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x18" in test name.
-[FAIL] Unescaped "\x18" in test message.
+[PASS] Escaped "\\x18" in test name.
+[FAIL] Unescaped "\\x18" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x18" in test message.
-  Expected Error: "\x18" character.
+[FAIL] Escaped "\\x18" in test message.
+  Expected Error: "\\x18" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x19" in test name.
-[FAIL] Unescaped "\x19" in test message.
+[PASS] Escaped "\\x19" in test name.
+[FAIL] Unescaped "\\x19" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x19" in test message.
-  Expected Error: "\x19" character.
+[FAIL] Escaped "\\x19" in test message.
+  Expected Error: "\\x19" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x1a" in test name.
-[FAIL] Unescaped "\x1a" in test message.
+[PASS] Escaped "\\x1a" in test name.
+[FAIL] Unescaped "\\x1a" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x1a" in test message.
-  Expected Error: "\x1a" character.
+[FAIL] Escaped "\\x1a" in test message.
+  Expected Error: "\\x1a" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x1b" in test name.
-[FAIL] Unescaped "\x1b" in test message.
+[PASS] Escaped "\\x1b" in test name.
+[FAIL] Unescaped "\\x1b" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x1b" in test message.
-  Expected Error: "\x1b" character.
+[FAIL] Escaped "\\x1b" in test message.
+  Expected Error: "\\x1b" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x1c" in test name.
-[FAIL] Unescaped "\x1c" in test message.
+[PASS] Escaped "\\x1c" in test name.
+[FAIL] Unescaped "\\x1c" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x1c" in test message.
-  Expected Error: "\x1c" character.
+[FAIL] Escaped "\\x1c" in test message.
+  Expected Error: "\\x1c" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x1d" in test name.
-[FAIL] Unescaped "\x1d" in test message.
+[PASS] Escaped "\\x1d" in test name.
+[FAIL] Unescaped "\\x1d" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x1d" in test message.
-  Expected Error: "\x1d" character.
+[FAIL] Escaped "\\x1d" in test message.
+  Expected Error: "\\x1d" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x1e" in test name.
-[FAIL] Unescaped "\x1e" in test message.
+[PASS] Escaped "\\x1e" in test name.
+[FAIL] Unescaped "\\x1e" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x1e" in test message.
-  Expected Error: "\x1e" character.
+[FAIL] Escaped "\\x1e" in test message.
+  Expected Error: "\\x1e" character.
 [PASS] Unescaped  in test name.
-[PASS] Escaped "\x1f" in test name.
-[FAIL] Unescaped "\x1f" in test message.
+[PASS] Escaped "\\x1f" in test name.
+[FAIL] Unescaped "\\x1f" in test message.
   Expected Error:  character.
-[FAIL] Escaped "\x1f" in test message.
-  Expected Error: "\x1f" character.
+[FAIL] Escaped "\\x1f" in test message.
+  Expected Error: "\\x1f" character.
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/service-worker/tentative/static-router/receive-router-rules-on-update-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/service-worker/tentative/static-router/receive-router-rules-on-update-expected.txt
index 57a93a79..6ac1ded 100644
--- a/third_party/blink/web_tests/http/tests/inspector-protocol/service-worker/tentative/static-router/receive-router-rules-on-update-expected.txt
+++ b/third_party/blink/web_tests/http/tests/inspector-protocol/service-worker/tentative/static-router/receive-router-rules-on-update-expected.txt
@@ -1,3 +1,3 @@
 Tests receiving static router rules from the service worker.
-[{"condition":{"request":{"method":"POST"}},"source":["network"]},{"condition":{"urlPattern":{"hash":"","hostname":"127.0.0.1","password":"","pathname":"/**/*.txt","port":"8000","protocol":"http","search":"*","username":""}},"source":["fetch-event"]}]
+[{"condition":{"request":{"method":"POST"}},"source":["network"]},{"condition":{"urlPattern":{"hash":"*","hostname":"127.0.0.1","password":"*","pathname":"/**/*.txt","port":"8000","protocol":"http","search":"*","username":"*"}},"source":["fetch-event"]}]
 
diff --git a/third_party/blink/web_tests/http/tests/security/dangling-markup/a-ping-expected.txt b/third_party/blink/web_tests/http/tests/security/dangling-markup/a-ping-expected.txt
index be2f37d5..e05dfdb 100644
--- a/third_party/blink/web_tests/http/tests/security/dangling-markup/a-ping-expected.txt
+++ b/third_party/blink/web_tests/http/tests/security/dangling-markup/a-ping-expected.txt
@@ -24,24 +24,24 @@
 PingLoader dispatched to 'http://127.0.0.1:8000/security/dangling-markup/are.png?img=&#10;&amp;14'.
 This is a testharness.js-based test.
 [PASS] URL: /resources/square.png?1
-[PASS] URL: /resources/squ\nare.png?2
-[PASS] URL: /resources/squ\tare.png?3
-[PASS] URL: /resources/squ\rare.png?4
+[PASS] URL: /resources/squ\\nare.png?2
+[PASS] URL: /resources/squ\\tare.png?3
+[PASS] URL: /resources/squ\\rare.png?4
 [PASS] URL: /resources/square.png?img=<&amp;5
 [PASS] URL: /resources/square.png?img=&lt;&amp;6
 [PASS] URL: /resources/square.png?img=%3C&amp;7
-[PASS] URL: /resources/squ\nare.png?img=%3C&amp;8
-[PASS] URL: /resources/squ\rare.png?img=%3C&amp;9
-[PASS] URL: /resources/squ\tare.png?img=%3C&amp;10
+[PASS] URL: /resources/squ\\nare.png?img=%3C&amp;8
+[PASS] URL: /resources/squ\\rare.png?img=%3C&amp;9
+[PASS] URL: /resources/squ\\tare.png?img=%3C&amp;10
 [PASS] URL: /resources/square.png?img=&#10;&amp;11
-[PASS] URL: /resources/squ\nare.png?img=&#10;&amp;12
-[PASS] URL: /resources/squ\rare.png?img=&#10;&amp;13
-[PASS] URL: /resources/squ\tare.png?img=&#10;&amp;14
-[PASS] URL: /resources/squ\nare.png?block=<
-[PASS] URL: /resources/squ\rare.png?block=<
-[PASS] URL: /resources/squ\tare.png?block=<
-[PASS] URL: /resources/square.png?<\n=block
-[PASS] URL: /resources/square.png?<\r=block
-[PASS] URL: /resources/square.png?<\t=block
+[PASS] URL: /resources/squ\\nare.png?img=&#10;&amp;12
+[PASS] URL: /resources/squ\\rare.png?img=&#10;&amp;13
+[PASS] URL: /resources/squ\\tare.png?img=&#10;&amp;14
+[PASS] URL: /resources/squ\\nare.png?block=<
+[PASS] URL: /resources/squ\\rare.png?block=<
+[PASS] URL: /resources/squ\\tare.png?block=<
+[PASS] URL: /resources/square.png?<\\n=block
+[PASS] URL: /resources/square.png?<\\r=block
+[PASS] URL: /resources/square.png?<\\t=block
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/http/tests/security/dangling-markup/link-prefetch-expected.txt b/third_party/blink/web_tests/http/tests/security/dangling-markup/link-prefetch-expected.txt
index 3f0e18c..549c494 100644
--- a/third_party/blink/web_tests/http/tests/security/dangling-markup/link-prefetch-expected.txt
+++ b/third_party/blink/web_tests/http/tests/security/dangling-markup/link-prefetch-expected.txt
@@ -5,24 +5,24 @@
 CONSOLE DEBUG: DNS prefetch triggered for 2.should.dns-prefetch.test
 This is a testharness.js-based test.
 [PASS] Prefetch: /resources/square.png?1
-[PASS] Prefetch: /resources/squ\nare.png?2
-[PASS] Prefetch: /resources/squ\tare.png?3
-[PASS] Prefetch: /resources/squ\rare.png?4
+[PASS] Prefetch: /resources/squ\\nare.png?2
+[PASS] Prefetch: /resources/squ\\tare.png?3
+[PASS] Prefetch: /resources/squ\\rare.png?4
 [PASS] Prefetch: /resources/square.png?img=<&amp;5
 [PASS] Prefetch: /resources/square.png?img=&lt;&amp;6
 [PASS] Prefetch: /resources/square.png?img=%3C&amp;7
-[PASS] Prefetch: /resources/squ\nare.png?img=%3C&amp;8
-[PASS] Prefetch: /resources/squ\rare.png?img=%3C&amp;9
-[PASS] Prefetch: /resources/squ\tare.png?img=%3C&amp;10
+[PASS] Prefetch: /resources/squ\\nare.png?img=%3C&amp;8
+[PASS] Prefetch: /resources/squ\\rare.png?img=%3C&amp;9
+[PASS] Prefetch: /resources/squ\\tare.png?img=%3C&amp;10
 [PASS] Prefetch: /resources/square.png?img=&#10;&amp;11
-[PASS] Prefetch: /resources/squ\nare.png?img=&#10;&amp;12
-[PASS] Prefetch: /resources/squ\rare.png?img=&#10;&amp;13
-[PASS] Prefetch: /resources/squ\tare.png?img=&#10;&amp;14
-[PASS] Prefetch: /resources/squ\nare.png?block=<
-[PASS] Prefetch: /resources/squ\rare.png?block=<
-[PASS] Prefetch: /resources/squ\tare.png?block=<
-[PASS] Prefetch: /resources/square.png?<\n=block
-[PASS] Prefetch: /resources/square.png?<\r=block
-[PASS] Prefetch: /resources/square.png?<\t=block
+[PASS] Prefetch: /resources/squ\\nare.png?img=&#10;&amp;12
+[PASS] Prefetch: /resources/squ\\rare.png?img=&#10;&amp;13
+[PASS] Prefetch: /resources/squ\\tare.png?img=&#10;&amp;14
+[PASS] Prefetch: /resources/squ\\nare.png?block=<
+[PASS] Prefetch: /resources/squ\\rare.png?block=<
+[PASS] Prefetch: /resources/squ\\tare.png?block=<
+[PASS] Prefetch: /resources/square.png?<\\n=block
+[PASS] Prefetch: /resources/square.png?<\\r=block
+[PASS] Prefetch: /resources/square.png?<\\t=block
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-origin-expected.txt b/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-origin-expected.txt
index 1dff093..96b04e8a 100644
--- a/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-origin-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-origin-expected.txt
@@ -20,22 +20,22 @@
 [PASS] Parsing origin: <> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <  	> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:a> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <:\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <:\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:#> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <#> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <#/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <#\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <#\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <#;?> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <?> against <http://example.org/foo/bar>
 [PASS] Parsing origin: </> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:23> against <http://example.org/foo/bar>
 [PASS] Parsing origin: </:23> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <\x> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <\\x> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <\\\\x\\hello> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <::> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <::23> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <foo://> against <http://example.org/foo/bar>
@@ -44,9 +44,9 @@
 [PASS] Parsing origin: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <foo:/> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <foo:/bar.com/> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <foo://///////> against <http://example.org/foo/bar>
@@ -122,7 +122,7 @@
 [PASS] Parsing origin: <http://example.com/(%28:%3A%29)> against <about:blank>
 [PASS] Parsing origin: <http://example.com/%3A%3a%3C%3c> against <about:blank>
 [PASS] Parsing origin: <http://example.com/foo	bar> against <about:blank>
-[PASS] Parsing origin: <http://example.com\\foo\\bar> against <about:blank>
+[PASS] Parsing origin: <http://example.com\\\\foo\\\\bar> against <about:blank>
 [PASS] Parsing origin: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
 [PASS] Parsing origin: <http://example.com/@asdf%40> against <about:blank>
 [PASS] Parsing origin: <http://example.com/你好你好> against <about:blank>
@@ -137,7 +137,7 @@
 [PASS] Parsing origin: <http://www/foo%2Ehtml> against <about:blank>
 [PASS] Parsing origin: <http://www/foo/%2E/html> against <about:blank>
 [PASS] Parsing origin: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
-[PASS] Parsing origin: <http:\\www.google.com\foo> against <about:blank>
+[PASS] Parsing origin: <http:\\\\www.google.com\\foo> against <about:blank>
 [PASS] Parsing origin: <http://foo:80/> against <about:blank>
 [PASS] Parsing origin: <http://foo:81/> against <about:blank>
 [PASS] Parsing origin: <httpa://foo:80/> against <about:blank>
@@ -257,7 +257,7 @@
 [PASS] Parsing origin: <sc://ñ.test/> against <about:blank>
 [FAIL] Parsing origin: <x> against <sc://ñ>
   assert_equals: origin expected "null" but got ""
-[PASS] Parsing origin: <sc:\../> against <about:blank>
+[PASS] Parsing origin: <sc:\\../> against <about:blank>
 [PASS] Parsing origin: <sc::a@example.net> against <about:blank>
 [PASS] Parsing origin: <wow:%NBD> against <about:blank>
 [PASS] Parsing origin: <wow:%1G> against <about:blank>
@@ -265,7 +265,7 @@
 [FAIL] Parsing origin: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank>
   assert_equals: origin expected "http://example.com" but got ""
 [FAIL] Parsing origin: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: origin expected "http://!\"$&'()*+,-.;=_`{}~" but got "http://!\"$&'()%2A+,-.;=_`{}~"
+  assert_equals: origin expected "http://!\\"$&'()*+,-.;=_`{}~" but got "http://!\\"$&'()%2A+,-.;=_`{}~"
 [PASS] Parsing origin: <sc://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
 [PASS] Parsing origin: <ftp://%e2%98%83> against <about:blank>
 [PASS] Parsing origin: <https://%e2%98%83> against <about:blank>
@@ -334,19 +334,19 @@
 [PASS] Parsing origin: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
 [PASS] Parsing origin: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
 [PASS] Parsing origin: <https://user:pass[@foo/bar> against <http://example.org>
-[PASS] Parsing origin: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank>
+[PASS] Parsing origin: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> against <about:blank>
 [PASS] Parsing origin: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank>
-[PASS] Parsing origin: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank>
+[PASS] Parsing origin: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> against <about:blank>
 [PASS] Parsing origin: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank>
 [PASS] Parsing origin: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
 [FAIL] Parsing origin: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: origin expected "wss://!\"$&'()*+,-.;=_`{}~" but got "wss://!\"$&'()%2A+,-.;=_`{}~"
-[PASS] Parsing origin: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+  assert_equals: origin expected "wss://!\\"$&'()*+,-.;=_`{}~" but got "wss://!\\"$&'()%2A+,-.;=_`{}~"
+[PASS] Parsing origin: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
 [PASS] Parsing origin: <https://example.com/"quoted"> against <about:blank>
 [PASS] Parsing origin: <https://a%C2%ADb/> against <about:blank>
 [PASS] Parsing origin: <data://example.com:8080/pathname?search#hash> against <about:blank>
diff --git a/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-origin-xhtml-expected.txt b/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-origin-xhtml-expected.txt
index 1dff093..96b04e8a 100644
--- a/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-origin-xhtml-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-origin-xhtml-expected.txt
@@ -20,22 +20,22 @@
 [PASS] Parsing origin: <> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <  	> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:a> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <:\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <:\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:#> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <#> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <#/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <#\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <#\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <#;?> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <?> against <http://example.org/foo/bar>
 [PASS] Parsing origin: </> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:23> against <http://example.org/foo/bar>
 [PASS] Parsing origin: </:23> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <\x> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <\\x> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <\\\\x\\hello> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <::> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <::23> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <foo://> against <http://example.org/foo/bar>
@@ -44,9 +44,9 @@
 [PASS] Parsing origin: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <foo:/> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <foo:/bar.com/> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <foo://///////> against <http://example.org/foo/bar>
@@ -122,7 +122,7 @@
 [PASS] Parsing origin: <http://example.com/(%28:%3A%29)> against <about:blank>
 [PASS] Parsing origin: <http://example.com/%3A%3a%3C%3c> against <about:blank>
 [PASS] Parsing origin: <http://example.com/foo	bar> against <about:blank>
-[PASS] Parsing origin: <http://example.com\\foo\\bar> against <about:blank>
+[PASS] Parsing origin: <http://example.com\\\\foo\\\\bar> against <about:blank>
 [PASS] Parsing origin: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
 [PASS] Parsing origin: <http://example.com/@asdf%40> against <about:blank>
 [PASS] Parsing origin: <http://example.com/你好你好> against <about:blank>
@@ -137,7 +137,7 @@
 [PASS] Parsing origin: <http://www/foo%2Ehtml> against <about:blank>
 [PASS] Parsing origin: <http://www/foo/%2E/html> against <about:blank>
 [PASS] Parsing origin: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
-[PASS] Parsing origin: <http:\\www.google.com\foo> against <about:blank>
+[PASS] Parsing origin: <http:\\\\www.google.com\\foo> against <about:blank>
 [PASS] Parsing origin: <http://foo:80/> against <about:blank>
 [PASS] Parsing origin: <http://foo:81/> against <about:blank>
 [PASS] Parsing origin: <httpa://foo:80/> against <about:blank>
@@ -257,7 +257,7 @@
 [PASS] Parsing origin: <sc://ñ.test/> against <about:blank>
 [FAIL] Parsing origin: <x> against <sc://ñ>
   assert_equals: origin expected "null" but got ""
-[PASS] Parsing origin: <sc:\../> against <about:blank>
+[PASS] Parsing origin: <sc:\\../> against <about:blank>
 [PASS] Parsing origin: <sc::a@example.net> against <about:blank>
 [PASS] Parsing origin: <wow:%NBD> against <about:blank>
 [PASS] Parsing origin: <wow:%1G> against <about:blank>
@@ -265,7 +265,7 @@
 [FAIL] Parsing origin: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank>
   assert_equals: origin expected "http://example.com" but got ""
 [FAIL] Parsing origin: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: origin expected "http://!\"$&'()*+,-.;=_`{}~" but got "http://!\"$&'()%2A+,-.;=_`{}~"
+  assert_equals: origin expected "http://!\\"$&'()*+,-.;=_`{}~" but got "http://!\\"$&'()%2A+,-.;=_`{}~"
 [PASS] Parsing origin: <sc://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
 [PASS] Parsing origin: <ftp://%e2%98%83> against <about:blank>
 [PASS] Parsing origin: <https://%e2%98%83> against <about:blank>
@@ -334,19 +334,19 @@
 [PASS] Parsing origin: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
 [PASS] Parsing origin: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
 [PASS] Parsing origin: <https://user:pass[@foo/bar> against <http://example.org>
-[PASS] Parsing origin: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank>
+[PASS] Parsing origin: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> against <about:blank>
 [PASS] Parsing origin: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank>
-[PASS] Parsing origin: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank>
+[PASS] Parsing origin: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> against <about:blank>
 [PASS] Parsing origin: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank>
 [PASS] Parsing origin: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
 [FAIL] Parsing origin: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: origin expected "wss://!\"$&'()*+,-.;=_`{}~" but got "wss://!\"$&'()%2A+,-.;=_`{}~"
-[PASS] Parsing origin: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+  assert_equals: origin expected "wss://!\\"$&'()*+,-.;=_`{}~" but got "wss://!\\"$&'()%2A+,-.;=_`{}~"
+[PASS] Parsing origin: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
 [PASS] Parsing origin: <https://example.com/"quoted"> against <about:blank>
 [PASS] Parsing origin: <https://a%C2%ADb/> against <about:blank>
 [PASS] Parsing origin: <data://example.com:8080/pathname?search#hash> against <about:blank>
diff --git "a/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt"
index 9414cc8..3ec4a05 100644
--- "a/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -30,22 +30,22 @@
 [PASS] Parsing: <> against <http://example.org/foo/bar>
 [PASS] Parsing: <  	> against <http://example.org/foo/bar>
 [PASS] Parsing: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:> against <http://example.org/foo/bar>
 [PASS] Parsing: <:a> against <http://example.org/foo/bar>
 [PASS] Parsing: <:/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#/> against <http://example.org/foo/bar>
-[PASS] Parsing: <#\> against <http://example.org/foo/bar>
+[PASS] Parsing: <#\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <#;?> against <http://example.org/foo/bar>
 [PASS] Parsing: <?> against <http://example.org/foo/bar>
 [PASS] Parsing: </> against <http://example.org/foo/bar>
 [PASS] Parsing: <:23> against <http://example.org/foo/bar>
 [PASS] Parsing: </:23> against <http://example.org/foo/bar>
-[PASS] Parsing: <\x> against <http://example.org/foo/bar>
-[PASS] Parsing: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Parsing: <\\x> against <http://example.org/foo/bar>
+[PASS] Parsing: <\\\\x\\hello> against <http://example.org/foo/bar>
 [PASS] Parsing: <::> against <http://example.org/foo/bar>
 [PASS] Parsing: <::23> against <http://example.org/foo/bar>
 [FAIL] Parsing: <foo://> against <http://example.org/foo/bar>
@@ -55,9 +55,9 @@
 [PASS] Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
 [FAIL] Parsing: <foo://///////> against <http://example.org/foo/bar>
@@ -140,7 +140,7 @@
 [PASS] Parsing: <http://example.com/(%28:%3A%29)> against <about:blank>
 [PASS] Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank>
 [PASS] Parsing: <http://example.com/foo	bar> against <about:blank>
-[PASS] Parsing: <http://example.com\\foo\\bar> against <about:blank>
+[PASS] Parsing: <http://example.com\\\\foo\\\\bar> against <about:blank>
 [PASS] Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
 [PASS] Parsing: <http://example.com/@asdf%40> against <about:blank>
 [PASS] Parsing: <http://example.com/你好你好> against <about:blank>
@@ -157,7 +157,7 @@
 [PASS] Parsing: <http://www/foo/%2E/html> against <about:blank>
 [PASS] Parsing: <http://user:pass@/> against <about:blank>
 [PASS] Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
-[PASS] Parsing: <http:\\www.google.com\foo> against <about:blank>
+[PASS] Parsing: <http:\\\\www.google.com\\foo> against <about:blank>
 [PASS] Parsing: <http://foo:80/> against <about:blank>
 [PASS] Parsing: <http://foo:81/> against <about:blank>
 [FAIL] Parsing: <httpa://foo:80/> against <about:blank>
@@ -371,13 +371,13 @@
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <x> against <sc://ñ>
   assert_equals: href expected "sc://%C3%B1/x" but got "x"
-[PASS] Parsing: <sc:\../> against <about:blank>
+[PASS] Parsing: <sc:\\../> against <about:blank>
 [PASS] Parsing: <sc::a@example.net> against <about:blank>
 [PASS] Parsing: <wow:%NBD> against <about:blank>
 [PASS] Parsing: <wow:%1G> against <about:blank>
 [PASS] Parsing: <wow:￿> against <about:blank>
 [FAIL] Parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank>
-  assert_equals: href expected "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF" but got "http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ\ufffe\uffff?U+d800𐟾U+dfff﷐﷏﷯ﷰ\ufffe\uffff"
+  assert_equals: href expected "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF" but got "http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ\\ufffe\\uffff?U+d800𐟾U+dfff﷐﷏﷯ﷰ\\ufffe\\uffff"
 [FAIL] Parsing: <sc://a\0b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <sc://a b/> against <about:blank>
@@ -388,7 +388,7 @@
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <sc://a[b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
-[FAIL] Parsing: <sc://a\b/> against <about:blank>
+[FAIL] Parsing: <sc://a\\b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <sc://a]b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
@@ -492,9 +492,9 @@
 [PASS] Parsing: <http://ho%7Cst/> against <about:blank>
 [PASS] Parsing: <http://ho%7Fst/> against <about:blank>
 [FAIL] Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: href expected "http://!\"$&'()*+,-.;=_`{}~/" but got "http://!\"$&'()%2A+,-.;=_`{}~/"
+  assert_equals: href expected "http://!\\"$&'()*+,-.;=_`{}~/" but got "http://!\\"$&'()%2A+,-.;=_`{}~/"
 [FAIL] Parsing: <sc://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\\"$%&'()*+,-.;=_`{}~" but got ""
 [PASS] Parsing: <ftp://example.com%80/> against <about:blank>
 [PASS] Parsing: <ftp://example.com%A0/> against <about:blank>
 [PASS] Parsing: <https://example.com%80/> against <about:blank>
@@ -540,8 +540,8 @@
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <asdf://%43%7C/> against <about:blank>
   assert_equals: host expected "%43%7C" but got ""
-[PASS] Parsing: <\\\.\Y:> against <about:blank>
-[PASS] Parsing: <\\\.\y:> against <about:blank>
+[PASS] Parsing: <\\\\\\.\\Y:> against <about:blank>
+[PASS] Parsing: <\\\\\\.\\y:> against <about:blank>
 [PASS] Parsing: <http://[1:0::]> against <http://example.net/>
 [PASS] Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/>
 [PASS] Parsing: <https://[0::0::0]> against <about:blank>
@@ -682,28 +682,28 @@
 [PASS] Parsing: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
 [PASS] Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
 [PASS] Parsing: <https://user:pass[@foo/bar> against <http://example.org>
-[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank>
-  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> against <about:blank>
+  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\\"$%&'()*+,-.;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank>
   assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
-[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank>
-  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> against <about:blank>
+  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\\"$%&'()*+,-.:;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank>
   assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
 [FAIL] Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "!\\"$%&'()*+,-.;=_`{}~" but got ""
 [FAIL] Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: href expected "wss://!\"$&'()*+,-.;=_`{}~/" but got "wss://!\"$&'()%2A+,-.;=_`{}~/"
-[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
-  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
-[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
+  assert_equals: href expected "wss://!\\"$&'()*+,-.;=_`{}~/" but got "wss://!\\"$&'()%2A+,-.;=_`{}~/"
+[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
+  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\\\]^_%60%7B|%7D~" but got "foo://host/ !\\"$%&'()*+,-./:;<=>@[\\\\]^_`{|}~"
+[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
   assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
-[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~"
-[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~"
+[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
   assert_equals: host expected "host" but got ""
-[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
 [FAIL] Parsing: <abc:rootless> against <abc://host/path>
   assert_equals: href expected "abc:rootless" but got "abc://host/rootless"
 [FAIL] Parsing: <abc:rootless> against <abc:/path>
diff --git a/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-xhtml_include=file-expected.txt b/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-xhtml_include=file-expected.txt
index 57e0219..7b95049b 100644
--- a/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-xhtml_include=file-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-xhtml_include=file-expected.txt
@@ -6,19 +6,19 @@
 [PASS] Parsing: <file://example:test/> against <about:blank>
 [PASS] Parsing: <file://example%/> against <about:blank>
 [PASS] Parsing: <file://[example]/> against <about:blank>
-[FAIL] Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html"
-[FAIL] Parsing: <  File:c|////foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <  File:c|////foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///tmp/mock/c%7C////foo/bar.html"
 [FAIL] Parsing: <C|/foo/bar> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///C:/foo/bar" but got "file:///tmp/mock/C%7C/foo/bar"
-[FAIL] Parsing: </C|\foo\bar> against <file:///tmp/mock/path>
+[FAIL] Parsing: </C|\\foo\\bar> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///C:/foo/bar" but got "file:///C%7C/foo/bar"
 [FAIL] Parsing: <//C|/foo/bar> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///C:/foo/bar" but got "//C|/foo/bar"
 [PASS] Parsing: <//server/file> against <file:///tmp/mock/path>
-[PASS] Parsing: <\\server\file> against <file:///tmp/mock/path>
-[PASS] Parsing: </\server/file> against <file:///tmp/mock/path>
+[PASS] Parsing: <\\\\server\\file> against <file:///tmp/mock/path>
+[PASS] Parsing: </\\server/file> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///home/me> against <file:///tmp/mock/path>
 [PASS] Parsing: <//> against <file:///tmp/mock/path>
@@ -65,26 +65,26 @@
 [PASS] Parsing: <file:?x> against <file:///test?test#test>
 [PASS] Parsing: <#x> against <file:///test?test#test>
 [PASS] Parsing: <file:#x> against <file:///test?test#test>
-[FAIL] Parsing: <file:\\//> against <about:blank>
+[FAIL] Parsing: <file:\\\\//> against <about:blank>
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\> against <about:blank>
+[FAIL] Parsing: <file:\\\\\\\\> against <about:blank>
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\?fox> against <about:blank>
+[FAIL] Parsing: <file:\\\\\\\\?fox> against <about:blank>
   assert_equals: href expected "file:////?fox" but got "file:///?fox"
-[FAIL] Parsing: <file:\\\\#guppy> against <about:blank>
+[FAIL] Parsing: <file:\\\\\\\\#guppy> against <about:blank>
   assert_equals: href expected "file:////#guppy" but got "file:///#guppy"
 [PASS] Parsing: <file://spider///> against <about:blank>
-[FAIL] Parsing: <file:\\localhost//> against <about:blank>
+[FAIL] Parsing: <file:\\\\localhost//> against <about:blank>
   assert_equals: href expected "file:////" but got "file://localhost//"
 [PASS] Parsing: <file:///localhost//cat> against <about:blank>
-[FAIL] Parsing: <file://\/localhost//cat> against <about:blank>
+[FAIL] Parsing: <file://\\/localhost//cat> against <about:blank>
   assert_equals: href expected "file:////localhost//cat" but got "file:///localhost//cat"
 [FAIL] Parsing: <file://localhost//a//../..//> against <about:blank>
   assert_equals: href expected "file://///" but got "file://localhost///"
 [FAIL] Parsing: </////mouse> against <file:///elephant>
   assert_equals: href expected "file://///mouse" but got "file:///mouse"
-[PASS] Parsing: <\//pig> against <file://lion/>
-[FAIL] Parsing: <\/localhost//pig> against <file://lion/>
+[PASS] Parsing: <\\//pig> against <file://lion/>
+[FAIL] Parsing: <\\/localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
 [FAIL] Parsing: <//localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
@@ -104,7 +104,7 @@
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
 [FAIL] Parsing: <C|\n/> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
-[FAIL] Parsing: <C|\> against <file://host/dir/file>
+[FAIL] Parsing: <C|\\> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
 [PASS] Parsing: <C> against <file://host/dir/file>
 [FAIL] Parsing: <C|a> against <file://host/dir/file>
@@ -112,7 +112,7 @@
 [PASS] Parsing: </c:/foo/bar> against <file:///c:/baz/qux>
 [FAIL] Parsing: </c|/foo/bar> against <file:///c:/baz/qux>
   assert_equals: href expected "file:///c:/foo/bar" but got "file:///c%7C/foo/bar"
-[PASS] Parsing: <file:\c:\foo\bar> against <file:///c:/baz/qux>
+[PASS] Parsing: <file:\\c:\\foo\\bar> against <file:///c:/baz/qux>
 [PASS] Parsing: </c:/foo/bar> against <file://host/path>
 [PASS] Parsing: <file://example.net/C:/> against <about:blank>
 [PASS] Parsing: <file://1.2.3.4/C:/> against <about:blank>
diff --git "a/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
index 9414cc8..3ec4a05 100644
--- "a/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -30,22 +30,22 @@
 [PASS] Parsing: <> against <http://example.org/foo/bar>
 [PASS] Parsing: <  	> against <http://example.org/foo/bar>
 [PASS] Parsing: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:> against <http://example.org/foo/bar>
 [PASS] Parsing: <:a> against <http://example.org/foo/bar>
 [PASS] Parsing: <:/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#/> against <http://example.org/foo/bar>
-[PASS] Parsing: <#\> against <http://example.org/foo/bar>
+[PASS] Parsing: <#\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <#;?> against <http://example.org/foo/bar>
 [PASS] Parsing: <?> against <http://example.org/foo/bar>
 [PASS] Parsing: </> against <http://example.org/foo/bar>
 [PASS] Parsing: <:23> against <http://example.org/foo/bar>
 [PASS] Parsing: </:23> against <http://example.org/foo/bar>
-[PASS] Parsing: <\x> against <http://example.org/foo/bar>
-[PASS] Parsing: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Parsing: <\\x> against <http://example.org/foo/bar>
+[PASS] Parsing: <\\\\x\\hello> against <http://example.org/foo/bar>
 [PASS] Parsing: <::> against <http://example.org/foo/bar>
 [PASS] Parsing: <::23> against <http://example.org/foo/bar>
 [FAIL] Parsing: <foo://> against <http://example.org/foo/bar>
@@ -55,9 +55,9 @@
 [PASS] Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
 [FAIL] Parsing: <foo://///////> against <http://example.org/foo/bar>
@@ -140,7 +140,7 @@
 [PASS] Parsing: <http://example.com/(%28:%3A%29)> against <about:blank>
 [PASS] Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank>
 [PASS] Parsing: <http://example.com/foo	bar> against <about:blank>
-[PASS] Parsing: <http://example.com\\foo\\bar> against <about:blank>
+[PASS] Parsing: <http://example.com\\\\foo\\\\bar> against <about:blank>
 [PASS] Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
 [PASS] Parsing: <http://example.com/@asdf%40> against <about:blank>
 [PASS] Parsing: <http://example.com/你好你好> against <about:blank>
@@ -157,7 +157,7 @@
 [PASS] Parsing: <http://www/foo/%2E/html> against <about:blank>
 [PASS] Parsing: <http://user:pass@/> against <about:blank>
 [PASS] Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
-[PASS] Parsing: <http:\\www.google.com\foo> against <about:blank>
+[PASS] Parsing: <http:\\\\www.google.com\\foo> against <about:blank>
 [PASS] Parsing: <http://foo:80/> against <about:blank>
 [PASS] Parsing: <http://foo:81/> against <about:blank>
 [FAIL] Parsing: <httpa://foo:80/> against <about:blank>
@@ -371,13 +371,13 @@
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <x> against <sc://ñ>
   assert_equals: href expected "sc://%C3%B1/x" but got "x"
-[PASS] Parsing: <sc:\../> against <about:blank>
+[PASS] Parsing: <sc:\\../> against <about:blank>
 [PASS] Parsing: <sc::a@example.net> against <about:blank>
 [PASS] Parsing: <wow:%NBD> against <about:blank>
 [PASS] Parsing: <wow:%1G> against <about:blank>
 [PASS] Parsing: <wow:￿> against <about:blank>
 [FAIL] Parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank>
-  assert_equals: href expected "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF" but got "http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ\ufffe\uffff?U+d800𐟾U+dfff﷐﷏﷯ﷰ\ufffe\uffff"
+  assert_equals: href expected "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF" but got "http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ\\ufffe\\uffff?U+d800𐟾U+dfff﷐﷏﷯ﷰ\\ufffe\\uffff"
 [FAIL] Parsing: <sc://a\0b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <sc://a b/> against <about:blank>
@@ -388,7 +388,7 @@
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <sc://a[b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
-[FAIL] Parsing: <sc://a\b/> against <about:blank>
+[FAIL] Parsing: <sc://a\\b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <sc://a]b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
@@ -492,9 +492,9 @@
 [PASS] Parsing: <http://ho%7Cst/> against <about:blank>
 [PASS] Parsing: <http://ho%7Fst/> against <about:blank>
 [FAIL] Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: href expected "http://!\"$&'()*+,-.;=_`{}~/" but got "http://!\"$&'()%2A+,-.;=_`{}~/"
+  assert_equals: href expected "http://!\\"$&'()*+,-.;=_`{}~/" but got "http://!\\"$&'()%2A+,-.;=_`{}~/"
 [FAIL] Parsing: <sc://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\\"$%&'()*+,-.;=_`{}~" but got ""
 [PASS] Parsing: <ftp://example.com%80/> against <about:blank>
 [PASS] Parsing: <ftp://example.com%A0/> against <about:blank>
 [PASS] Parsing: <https://example.com%80/> against <about:blank>
@@ -540,8 +540,8 @@
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <asdf://%43%7C/> against <about:blank>
   assert_equals: host expected "%43%7C" but got ""
-[PASS] Parsing: <\\\.\Y:> against <about:blank>
-[PASS] Parsing: <\\\.\y:> against <about:blank>
+[PASS] Parsing: <\\\\\\.\\Y:> against <about:blank>
+[PASS] Parsing: <\\\\\\.\\y:> against <about:blank>
 [PASS] Parsing: <http://[1:0::]> against <http://example.net/>
 [PASS] Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/>
 [PASS] Parsing: <https://[0::0::0]> against <about:blank>
@@ -682,28 +682,28 @@
 [PASS] Parsing: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
 [PASS] Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
 [PASS] Parsing: <https://user:pass[@foo/bar> against <http://example.org>
-[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank>
-  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> against <about:blank>
+  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\\"$%&'()*+,-.;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank>
   assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
-[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank>
-  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> against <about:blank>
+  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\\"$%&'()*+,-.:;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank>
   assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
 [FAIL] Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "!\\"$%&'()*+,-.;=_`{}~" but got ""
 [FAIL] Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: href expected "wss://!\"$&'()*+,-.;=_`{}~/" but got "wss://!\"$&'()%2A+,-.;=_`{}~/"
-[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
-  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
-[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
+  assert_equals: href expected "wss://!\\"$&'()*+,-.;=_`{}~/" but got "wss://!\\"$&'()%2A+,-.;=_`{}~/"
+[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
+  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\\\]^_%60%7B|%7D~" but got "foo://host/ !\\"$%&'()*+,-./:;<=>@[\\\\]^_`{|}~"
+[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
   assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
-[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~"
-[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~"
+[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
   assert_equals: host expected "host" but got ""
-[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
 [FAIL] Parsing: <abc:rootless> against <abc://host/path>
   assert_equals: href expected "abc:rootless" but got "abc://host/rootless"
 [FAIL] Parsing: <abc:rootless> against <abc:/path>
diff --git a/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element_include=file-expected.txt b/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element_include=file-expected.txt
index 57e0219..7b95049b 100644
--- a/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element_include=file-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element_include=file-expected.txt
@@ -6,19 +6,19 @@
 [PASS] Parsing: <file://example:test/> against <about:blank>
 [PASS] Parsing: <file://example%/> against <about:blank>
 [PASS] Parsing: <file://[example]/> against <about:blank>
-[FAIL] Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html"
-[FAIL] Parsing: <  File:c|////foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <  File:c|////foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///tmp/mock/c%7C////foo/bar.html"
 [FAIL] Parsing: <C|/foo/bar> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///C:/foo/bar" but got "file:///tmp/mock/C%7C/foo/bar"
-[FAIL] Parsing: </C|\foo\bar> against <file:///tmp/mock/path>
+[FAIL] Parsing: </C|\\foo\\bar> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///C:/foo/bar" but got "file:///C%7C/foo/bar"
 [FAIL] Parsing: <//C|/foo/bar> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///C:/foo/bar" but got "//C|/foo/bar"
 [PASS] Parsing: <//server/file> against <file:///tmp/mock/path>
-[PASS] Parsing: <\\server\file> against <file:///tmp/mock/path>
-[PASS] Parsing: </\server/file> against <file:///tmp/mock/path>
+[PASS] Parsing: <\\\\server\\file> against <file:///tmp/mock/path>
+[PASS] Parsing: </\\server/file> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///home/me> against <file:///tmp/mock/path>
 [PASS] Parsing: <//> against <file:///tmp/mock/path>
@@ -65,26 +65,26 @@
 [PASS] Parsing: <file:?x> against <file:///test?test#test>
 [PASS] Parsing: <#x> against <file:///test?test#test>
 [PASS] Parsing: <file:#x> against <file:///test?test#test>
-[FAIL] Parsing: <file:\\//> against <about:blank>
+[FAIL] Parsing: <file:\\\\//> against <about:blank>
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\> against <about:blank>
+[FAIL] Parsing: <file:\\\\\\\\> against <about:blank>
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\?fox> against <about:blank>
+[FAIL] Parsing: <file:\\\\\\\\?fox> against <about:blank>
   assert_equals: href expected "file:////?fox" but got "file:///?fox"
-[FAIL] Parsing: <file:\\\\#guppy> against <about:blank>
+[FAIL] Parsing: <file:\\\\\\\\#guppy> against <about:blank>
   assert_equals: href expected "file:////#guppy" but got "file:///#guppy"
 [PASS] Parsing: <file://spider///> against <about:blank>
-[FAIL] Parsing: <file:\\localhost//> against <about:blank>
+[FAIL] Parsing: <file:\\\\localhost//> against <about:blank>
   assert_equals: href expected "file:////" but got "file://localhost//"
 [PASS] Parsing: <file:///localhost//cat> against <about:blank>
-[FAIL] Parsing: <file://\/localhost//cat> against <about:blank>
+[FAIL] Parsing: <file://\\/localhost//cat> against <about:blank>
   assert_equals: href expected "file:////localhost//cat" but got "file:///localhost//cat"
 [FAIL] Parsing: <file://localhost//a//../..//> against <about:blank>
   assert_equals: href expected "file://///" but got "file://localhost///"
 [FAIL] Parsing: </////mouse> against <file:///elephant>
   assert_equals: href expected "file://///mouse" but got "file:///mouse"
-[PASS] Parsing: <\//pig> against <file://lion/>
-[FAIL] Parsing: <\/localhost//pig> against <file://lion/>
+[PASS] Parsing: <\\//pig> against <file://lion/>
+[FAIL] Parsing: <\\/localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
 [FAIL] Parsing: <//localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
@@ -104,7 +104,7 @@
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
 [FAIL] Parsing: <C|\n/> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
-[FAIL] Parsing: <C|\> against <file://host/dir/file>
+[FAIL] Parsing: <C|\\> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
 [PASS] Parsing: <C> against <file://host/dir/file>
 [FAIL] Parsing: <C|a> against <file://host/dir/file>
@@ -112,7 +112,7 @@
 [PASS] Parsing: </c:/foo/bar> against <file:///c:/baz/qux>
 [FAIL] Parsing: </c|/foo/bar> against <file:///c:/baz/qux>
   assert_equals: href expected "file:///c:/foo/bar" but got "file:///c%7C/foo/bar"
-[PASS] Parsing: <file:\c:\foo\bar> against <file:///c:/baz/qux>
+[PASS] Parsing: <file:\\c:\\foo\\bar> against <file:///c:/baz/qux>
 [PASS] Parsing: </c:/foo/bar> against <file://host/path>
 [PASS] Parsing: <file://example.net/C:/> against <about:blank>
 [PASS] Parsing: <file://1.2.3.4/C:/> against <about:blank>
diff --git a/third_party/blink/web_tests/platform/linux/external/wpt/url/failure-expected.txt b/third_party/blink/web_tests/platform/linux/external/wpt/url/failure-expected.txt
index 47903f1d..846312c2 100644
--- a/third_party/blink/web_tests/platform/linux/external/wpt/url/failure-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/external/wpt/url/failure-expected.txt
@@ -280,16 +280,16 @@
   assert_throws_dom: function "() => frame.contentWindow.location = test.input" did not throw
 [FAIL] window.open(): sc://a[b/ should throw
   assert_throws_dom: function "() => self.open(test.input).close()" did not throw
-[FAIL] URL's constructor's base argument: sc://a\b/ should throw
+[FAIL] URL's constructor's base argument: sc://a\\b/ should throw
   assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
-[FAIL] URL's href: sc://a\b/ should throw
+[FAIL] URL's href: sc://a\\b/ should throw
   assert_throws_js: function "() => url.href = test.input" did not throw
-[FAIL] XHR: sc://a\b/ should throw
+[FAIL] XHR: sc://a\\b/ should throw
   assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
-[PASS] sendBeacon(): sc://a\b/ should throw
-[FAIL] Location's href: sc://a\b/ should throw
+[PASS] sendBeacon(): sc://a\\b/ should throw
+[FAIL] Location's href: sc://a\\b/ should throw
   assert_throws_dom: function "() => frame.contentWindow.location = test.input" did not throw
-[FAIL] window.open(): sc://a\b/ should throw
+[FAIL] window.open(): sc://a\\b/ should throw
   assert_throws_dom: function "() => self.open(test.input).close()" did not throw
 [FAIL] URL's constructor's base argument: sc://a]b/ should throw
   assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
@@ -923,10 +923,10 @@
   assert_throws_dom: function "() => frame.contentWindow.location = test.input" did not throw
 [FAIL] window.open(): asdf://%43|/ should throw
   assert_throws_dom: function "() => self.open(test.input).close()" did not throw
-[PASS] URL's constructor's base argument: \\\.\Y: should throw
-[PASS] URL's href: \\\.\Y: should throw
-[PASS] URL's constructor's base argument: \\\.\y: should throw
-[PASS] URL's href: \\\.\y: should throw
+[PASS] URL's constructor's base argument: \\\\\\.\\Y: should throw
+[PASS] URL's href: \\\\\\.\\Y: should throw
+[PASS] URL's constructor's base argument: \\\\\\.\\y: should throw
+[PASS] URL's href: \\\\\\.\\y: should throw
 [PASS] URL's constructor's base argument: https://[0::0::0] should throw
 [PASS] URL's href: https://[0::0::0] should throw
 [PASS] XHR: https://[0::0::0] should throw
diff --git "a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
index f3767ed..9d633a5 100644
--- "a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -30,22 +30,22 @@
 [PASS] Parsing: <> against <http://example.org/foo/bar>
 [PASS] Parsing: <  	> against <http://example.org/foo/bar>
 [PASS] Parsing: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:> against <http://example.org/foo/bar>
 [PASS] Parsing: <:a> against <http://example.org/foo/bar>
 [PASS] Parsing: <:/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#/> against <http://example.org/foo/bar>
-[PASS] Parsing: <#\> against <http://example.org/foo/bar>
+[PASS] Parsing: <#\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <#;?> against <http://example.org/foo/bar>
 [PASS] Parsing: <?> against <http://example.org/foo/bar>
 [PASS] Parsing: </> against <http://example.org/foo/bar>
 [PASS] Parsing: <:23> against <http://example.org/foo/bar>
 [PASS] Parsing: </:23> against <http://example.org/foo/bar>
-[PASS] Parsing: <\x> against <http://example.org/foo/bar>
-[PASS] Parsing: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Parsing: <\\x> against <http://example.org/foo/bar>
+[PASS] Parsing: <\\\\x\\hello> against <http://example.org/foo/bar>
 [PASS] Parsing: <::> against <http://example.org/foo/bar>
 [PASS] Parsing: <::23> against <http://example.org/foo/bar>
 [FAIL] Parsing: <foo://> against <http://example.org/foo/bar>
@@ -55,9 +55,9 @@
 [PASS] Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
 [FAIL] Parsing: <foo://///////> against <http://example.org/foo/bar>
@@ -140,7 +140,7 @@
 [PASS] Parsing: <http://example.com/(%28:%3A%29)> without base
 [PASS] Parsing: <http://example.com/%3A%3a%3C%3c> without base
 [PASS] Parsing: <http://example.com/foo	bar> without base
-[PASS] Parsing: <http://example.com\\foo\\bar> without base
+[PASS] Parsing: <http://example.com\\\\foo\\\\bar> without base
 [PASS] Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> without base
 [PASS] Parsing: <http://example.com/@asdf%40> without base
 [PASS] Parsing: <http://example.com/你好你好> without base
@@ -157,7 +157,7 @@
 [PASS] Parsing: <http://www/foo/%2E/html> without base
 [PASS] Parsing: <http://user:pass@/> without base
 [PASS] Parsing: <http://%25DOMAIN:foobar@foodomain.com/> without base
-[PASS] Parsing: <http:\\www.google.com\foo> without base
+[PASS] Parsing: <http:\\\\www.google.com\\foo> without base
 [PASS] Parsing: <http://foo:80/> without base
 [PASS] Parsing: <http://foo:81/> without base
 [FAIL] Parsing: <httpa://foo:80/> without base
@@ -372,7 +372,7 @@
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <x> against <sc://ñ>
   Failed to construct 'URL': Invalid URL
-[PASS] Parsing: <sc:\../> without base
+[PASS] Parsing: <sc:\\../> without base
 [PASS] Parsing: <sc::a@example.net> without base
 [PASS] Parsing: <wow:%NBD> without base
 [PASS] Parsing: <wow:%1G> without base
@@ -388,7 +388,7 @@
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <sc://a[b/> without base
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
-[FAIL] Parsing: <sc://a\b/> without base
+[FAIL] Parsing: <sc://a\\b/> without base
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <sc://a]b/> without base
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
@@ -492,9 +492,9 @@
 [PASS] Parsing: <http://ho%7Cst/> without base
 [PASS] Parsing: <http://ho%7Fst/> without base
 [FAIL] Parsing: <http://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: href expected "http://!\"$&'()*+,-.;=_`{}~/" but got "http://!\"$&'()%2A+,-.;=_`{}~/"
+  assert_equals: href expected "http://!\\"$&'()*+,-.;=_`{}~/" but got "http://!\\"$&'()%2A+,-.;=_`{}~/"
 [FAIL] Parsing: <sc://!"$%&'()*+,-.;=_`{}~/> without base
-  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\\"$%&'()*+,-.;=_`{}~" but got ""
 [PASS] Parsing: <ftp://example.com%80/> without base
 [PASS] Parsing: <ftp://example.com%A0/> without base
 [PASS] Parsing: <https://example.com%80/> without base
@@ -540,8 +540,8 @@
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <asdf://%43%7C/> without base
   assert_equals: host expected "%43%7C" but got ""
-[PASS] Parsing: <\\\.\Y:> without base
-[PASS] Parsing: <\\\.\y:> without base
+[PASS] Parsing: <\\\\\\.\\Y:> without base
+[PASS] Parsing: <\\\\\\.\\y:> without base
 [PASS] Parsing: <http://[1:0::]> against <http://example.net/>
 [PASS] Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/>
 [PASS] Parsing: <https://[0::0::0]> without base
@@ -682,28 +682,28 @@
 [PASS] Parsing: <non-special:cannot-be-a-base-url-\0~€> without base
 [PASS] Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> without base
 [PASS] Parsing: <https://user:pass[@foo/bar> against <http://example.org>
-[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> without base
-  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> without base
+  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\\"$%&'()*+,-.;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> without base
   assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
-[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> without base
-  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> without base
+  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\\"$%&'()*+,-.:;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> without base
   assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
 [FAIL] Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> without base
-  assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "!\\"$%&'()*+,-.;=_`{}~" but got ""
 [FAIL] Parsing: <wss://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: href expected "wss://!\"$&'()*+,-.;=_`{}~/" but got "wss://!\"$&'()%2A+,-.;=_`{}~/"
-[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
-  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
-[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
+  assert_equals: href expected "wss://!\\"$&'()*+,-.;=_`{}~/" but got "wss://!\\"$&'()%2A+,-.;=_`{}~/"
+[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
+  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\\\]^_%60%7B|%7D~" but got "foo://host/ !\\"$%&'()*+,-./:;<=>@[\\\\]^_`{|}~"
+[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
   assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
-[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~"
-[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
+[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~"
+[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
   assert_equals: host expected "host" but got ""
-[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
+[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
 [FAIL] Parsing: <abc:rootless> against <abc://host/path>
   assert_equals: href expected "abc:rootless" but got "abc://host/rootless"
 [FAIL] Parsing: <abc:rootless> against <abc:/path>
diff --git a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any.worker_include=file-expected.txt b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any.worker_include=file-expected.txt
index cd5bc491..7ec129d 100644
--- a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any.worker_include=file-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any.worker_include=file-expected.txt
@@ -6,19 +6,19 @@
 [PASS] Parsing: <file://example:test/> without base
 [PASS] Parsing: <file://example%/> without base
 [PASS] Parsing: <file://[example]/> without base
-[FAIL] Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html"
-[FAIL] Parsing: <  File:c|////foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <  File:c|////foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///tmp/mock/c%7C////foo/bar.html"
 [FAIL] Parsing: <C|/foo/bar> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///C:/foo/bar" but got "file:///tmp/mock/C%7C/foo/bar"
-[FAIL] Parsing: </C|\foo\bar> against <file:///tmp/mock/path>
+[FAIL] Parsing: </C|\\foo\\bar> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///C:/foo/bar" but got "file:///C%7C/foo/bar"
 [FAIL] Parsing: <//C|/foo/bar> against <file:///tmp/mock/path>
   Failed to construct 'URL': Invalid URL
 [PASS] Parsing: <//server/file> against <file:///tmp/mock/path>
-[PASS] Parsing: <\\server\file> against <file:///tmp/mock/path>
-[PASS] Parsing: </\server/file> against <file:///tmp/mock/path>
+[PASS] Parsing: <\\\\server\\file> against <file:///tmp/mock/path>
+[PASS] Parsing: </\\server/file> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///home/me> against <file:///tmp/mock/path>
 [PASS] Parsing: <//> against <file:///tmp/mock/path>
@@ -65,26 +65,26 @@
 [PASS] Parsing: <file:?x> against <file:///test?test#test>
 [PASS] Parsing: <#x> against <file:///test?test#test>
 [PASS] Parsing: <file:#x> against <file:///test?test#test>
-[FAIL] Parsing: <file:\\//> without base
+[FAIL] Parsing: <file:\\\\//> without base
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\> without base
+[FAIL] Parsing: <file:\\\\\\\\> without base
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\?fox> without base
+[FAIL] Parsing: <file:\\\\\\\\?fox> without base
   assert_equals: href expected "file:////?fox" but got "file:///?fox"
-[FAIL] Parsing: <file:\\\\#guppy> without base
+[FAIL] Parsing: <file:\\\\\\\\#guppy> without base
   assert_equals: href expected "file:////#guppy" but got "file:///#guppy"
 [PASS] Parsing: <file://spider///> without base
-[FAIL] Parsing: <file:\\localhost//> without base
+[FAIL] Parsing: <file:\\\\localhost//> without base
   assert_equals: href expected "file:////" but got "file://localhost//"
 [PASS] Parsing: <file:///localhost//cat> without base
-[FAIL] Parsing: <file://\/localhost//cat> without base
+[FAIL] Parsing: <file://\\/localhost//cat> without base
   assert_equals: href expected "file:////localhost//cat" but got "file:///localhost//cat"
 [FAIL] Parsing: <file://localhost//a//../..//> without base
   assert_equals: href expected "file://///" but got "file://localhost///"
 [FAIL] Parsing: </////mouse> against <file:///elephant>
   assert_equals: href expected "file://///mouse" but got "file:///mouse"
-[PASS] Parsing: <\//pig> against <file://lion/>
-[FAIL] Parsing: <\/localhost//pig> against <file://lion/>
+[PASS] Parsing: <\\//pig> against <file://lion/>
+[FAIL] Parsing: <\\/localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
 [FAIL] Parsing: <//localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
@@ -104,7 +104,7 @@
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
 [FAIL] Parsing: <C|\n/> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
-[FAIL] Parsing: <C|\> against <file://host/dir/file>
+[FAIL] Parsing: <C|\\> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
 [PASS] Parsing: <C> against <file://host/dir/file>
 [FAIL] Parsing: <C|a> against <file://host/dir/file>
@@ -112,7 +112,7 @@
 [PASS] Parsing: </c:/foo/bar> against <file:///c:/baz/qux>
 [FAIL] Parsing: </c|/foo/bar> against <file:///c:/baz/qux>
   assert_equals: href expected "file:///c:/foo/bar" but got "file:///c%7C/foo/bar"
-[PASS] Parsing: <file:\c:\foo\bar> against <file:///c:/baz/qux>
+[PASS] Parsing: <file:\\c:\\foo\\bar> against <file:///c:/baz/qux>
 [PASS] Parsing: </c:/foo/bar> against <file://host/path>
 [PASS] Parsing: <file://example.net/C:/> without base
 [PASS] Parsing: <file://1.2.3.4/C:/> without base
diff --git "a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
index f3767ed..9d633a5 100644
--- "a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -30,22 +30,22 @@
 [PASS] Parsing: <> against <http://example.org/foo/bar>
 [PASS] Parsing: <  	> against <http://example.org/foo/bar>
 [PASS] Parsing: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:> against <http://example.org/foo/bar>
 [PASS] Parsing: <:a> against <http://example.org/foo/bar>
 [PASS] Parsing: <:/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#/> against <http://example.org/foo/bar>
-[PASS] Parsing: <#\> against <http://example.org/foo/bar>
+[PASS] Parsing: <#\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <#;?> against <http://example.org/foo/bar>
 [PASS] Parsing: <?> against <http://example.org/foo/bar>
 [PASS] Parsing: </> against <http://example.org/foo/bar>
 [PASS] Parsing: <:23> against <http://example.org/foo/bar>
 [PASS] Parsing: </:23> against <http://example.org/foo/bar>
-[PASS] Parsing: <\x> against <http://example.org/foo/bar>
-[PASS] Parsing: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Parsing: <\\x> against <http://example.org/foo/bar>
+[PASS] Parsing: <\\\\x\\hello> against <http://example.org/foo/bar>
 [PASS] Parsing: <::> against <http://example.org/foo/bar>
 [PASS] Parsing: <::23> against <http://example.org/foo/bar>
 [FAIL] Parsing: <foo://> against <http://example.org/foo/bar>
@@ -55,9 +55,9 @@
 [PASS] Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
 [FAIL] Parsing: <foo://///////> against <http://example.org/foo/bar>
@@ -140,7 +140,7 @@
 [PASS] Parsing: <http://example.com/(%28:%3A%29)> without base
 [PASS] Parsing: <http://example.com/%3A%3a%3C%3c> without base
 [PASS] Parsing: <http://example.com/foo	bar> without base
-[PASS] Parsing: <http://example.com\\foo\\bar> without base
+[PASS] Parsing: <http://example.com\\\\foo\\\\bar> without base
 [PASS] Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> without base
 [PASS] Parsing: <http://example.com/@asdf%40> without base
 [PASS] Parsing: <http://example.com/你好你好> without base
@@ -157,7 +157,7 @@
 [PASS] Parsing: <http://www/foo/%2E/html> without base
 [PASS] Parsing: <http://user:pass@/> without base
 [PASS] Parsing: <http://%25DOMAIN:foobar@foodomain.com/> without base
-[PASS] Parsing: <http:\\www.google.com\foo> without base
+[PASS] Parsing: <http:\\\\www.google.com\\foo> without base
 [PASS] Parsing: <http://foo:80/> without base
 [PASS] Parsing: <http://foo:81/> without base
 [FAIL] Parsing: <httpa://foo:80/> without base
@@ -372,7 +372,7 @@
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <x> against <sc://ñ>
   Failed to construct 'URL': Invalid URL
-[PASS] Parsing: <sc:\../> without base
+[PASS] Parsing: <sc:\\../> without base
 [PASS] Parsing: <sc::a@example.net> without base
 [PASS] Parsing: <wow:%NBD> without base
 [PASS] Parsing: <wow:%1G> without base
@@ -388,7 +388,7 @@
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <sc://a[b/> without base
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
-[FAIL] Parsing: <sc://a\b/> without base
+[FAIL] Parsing: <sc://a\\b/> without base
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <sc://a]b/> without base
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
@@ -492,9 +492,9 @@
 [PASS] Parsing: <http://ho%7Cst/> without base
 [PASS] Parsing: <http://ho%7Fst/> without base
 [FAIL] Parsing: <http://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: href expected "http://!\"$&'()*+,-.;=_`{}~/" but got "http://!\"$&'()%2A+,-.;=_`{}~/"
+  assert_equals: href expected "http://!\\"$&'()*+,-.;=_`{}~/" but got "http://!\\"$&'()%2A+,-.;=_`{}~/"
 [FAIL] Parsing: <sc://!"$%&'()*+,-.;=_`{}~/> without base
-  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\\"$%&'()*+,-.;=_`{}~" but got ""
 [PASS] Parsing: <ftp://example.com%80/> without base
 [PASS] Parsing: <ftp://example.com%A0/> without base
 [PASS] Parsing: <https://example.com%80/> without base
@@ -540,8 +540,8 @@
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <asdf://%43%7C/> without base
   assert_equals: host expected "%43%7C" but got ""
-[PASS] Parsing: <\\\.\Y:> without base
-[PASS] Parsing: <\\\.\y:> without base
+[PASS] Parsing: <\\\\\\.\\Y:> without base
+[PASS] Parsing: <\\\\\\.\\y:> without base
 [PASS] Parsing: <http://[1:0::]> against <http://example.net/>
 [PASS] Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/>
 [PASS] Parsing: <https://[0::0::0]> without base
@@ -682,28 +682,28 @@
 [PASS] Parsing: <non-special:cannot-be-a-base-url-\0~€> without base
 [PASS] Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> without base
 [PASS] Parsing: <https://user:pass[@foo/bar> against <http://example.org>
-[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> without base
-  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> without base
+  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\\"$%&'()*+,-.;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> without base
   assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
-[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> without base
-  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> without base
+  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\\"$%&'()*+,-.:;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> without base
   assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
 [FAIL] Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> without base
-  assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "!\\"$%&'()*+,-.;=_`{}~" but got ""
 [FAIL] Parsing: <wss://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: href expected "wss://!\"$&'()*+,-.;=_`{}~/" but got "wss://!\"$&'()%2A+,-.;=_`{}~/"
-[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
-  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
-[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
+  assert_equals: href expected "wss://!\\"$&'()*+,-.;=_`{}~/" but got "wss://!\\"$&'()%2A+,-.;=_`{}~/"
+[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
+  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\\\]^_%60%7B|%7D~" but got "foo://host/ !\\"$%&'()*+,-./:;<=>@[\\\\]^_`{|}~"
+[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
   assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
-[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~"
-[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
+[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~"
+[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
   assert_equals: host expected "host" but got ""
-[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
+[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
 [FAIL] Parsing: <abc:rootless> against <abc://host/path>
   assert_equals: href expected "abc:rootless" but got "abc://host/rootless"
 [FAIL] Parsing: <abc:rootless> against <abc:/path>
diff --git a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any_include=file-expected.txt b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any_include=file-expected.txt
index cd5bc491..7ec129d 100644
--- a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any_include=file-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any_include=file-expected.txt
@@ -6,19 +6,19 @@
 [PASS] Parsing: <file://example:test/> without base
 [PASS] Parsing: <file://example%/> without base
 [PASS] Parsing: <file://[example]/> without base
-[FAIL] Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html"
-[FAIL] Parsing: <  File:c|////foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <  File:c|////foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///tmp/mock/c%7C////foo/bar.html"
 [FAIL] Parsing: <C|/foo/bar> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///C:/foo/bar" but got "file:///tmp/mock/C%7C/foo/bar"
-[FAIL] Parsing: </C|\foo\bar> against <file:///tmp/mock/path>
+[FAIL] Parsing: </C|\\foo\\bar> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///C:/foo/bar" but got "file:///C%7C/foo/bar"
 [FAIL] Parsing: <//C|/foo/bar> against <file:///tmp/mock/path>
   Failed to construct 'URL': Invalid URL
 [PASS] Parsing: <//server/file> against <file:///tmp/mock/path>
-[PASS] Parsing: <\\server\file> against <file:///tmp/mock/path>
-[PASS] Parsing: </\server/file> against <file:///tmp/mock/path>
+[PASS] Parsing: <\\\\server\\file> against <file:///tmp/mock/path>
+[PASS] Parsing: </\\server/file> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///home/me> against <file:///tmp/mock/path>
 [PASS] Parsing: <//> against <file:///tmp/mock/path>
@@ -65,26 +65,26 @@
 [PASS] Parsing: <file:?x> against <file:///test?test#test>
 [PASS] Parsing: <#x> against <file:///test?test#test>
 [PASS] Parsing: <file:#x> against <file:///test?test#test>
-[FAIL] Parsing: <file:\\//> without base
+[FAIL] Parsing: <file:\\\\//> without base
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\> without base
+[FAIL] Parsing: <file:\\\\\\\\> without base
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\?fox> without base
+[FAIL] Parsing: <file:\\\\\\\\?fox> without base
   assert_equals: href expected "file:////?fox" but got "file:///?fox"
-[FAIL] Parsing: <file:\\\\#guppy> without base
+[FAIL] Parsing: <file:\\\\\\\\#guppy> without base
   assert_equals: href expected "file:////#guppy" but got "file:///#guppy"
 [PASS] Parsing: <file://spider///> without base
-[FAIL] Parsing: <file:\\localhost//> without base
+[FAIL] Parsing: <file:\\\\localhost//> without base
   assert_equals: href expected "file:////" but got "file://localhost//"
 [PASS] Parsing: <file:///localhost//cat> without base
-[FAIL] Parsing: <file://\/localhost//cat> without base
+[FAIL] Parsing: <file://\\/localhost//cat> without base
   assert_equals: href expected "file:////localhost//cat" but got "file:///localhost//cat"
 [FAIL] Parsing: <file://localhost//a//../..//> without base
   assert_equals: href expected "file://///" but got "file://localhost///"
 [FAIL] Parsing: </////mouse> against <file:///elephant>
   assert_equals: href expected "file://///mouse" but got "file:///mouse"
-[PASS] Parsing: <\//pig> against <file://lion/>
-[FAIL] Parsing: <\/localhost//pig> against <file://lion/>
+[PASS] Parsing: <\\//pig> against <file://lion/>
+[FAIL] Parsing: <\\/localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
 [FAIL] Parsing: <//localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
@@ -104,7 +104,7 @@
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
 [FAIL] Parsing: <C|\n/> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
-[FAIL] Parsing: <C|\> against <file://host/dir/file>
+[FAIL] Parsing: <C|\\> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
 [PASS] Parsing: <C> against <file://host/dir/file>
 [FAIL] Parsing: <C|a> against <file://host/dir/file>
@@ -112,7 +112,7 @@
 [PASS] Parsing: </c:/foo/bar> against <file:///c:/baz/qux>
 [FAIL] Parsing: </c|/foo/bar> against <file:///c:/baz/qux>
   assert_equals: href expected "file:///c:/foo/bar" but got "file:///c%7C/foo/bar"
-[PASS] Parsing: <file:\c:\foo\bar> against <file:///c:/baz/qux>
+[PASS] Parsing: <file:\\c:\\foo\\bar> against <file:///c:/baz/qux>
 [PASS] Parsing: </c:/foo/bar> against <file://host/path>
 [PASS] Parsing: <file://example.net/C:/> without base
 [PASS] Parsing: <file://1.2.3.4/C:/> without base
diff --git a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-origin.any-expected.txt b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-origin.any-expected.txt
index ef630cac..9fff88d 100644
--- a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-origin.any-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-origin.any-expected.txt
@@ -20,22 +20,22 @@
 [PASS] Origin parsing: <> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <  	> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:a> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <:\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <:\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:#> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <#> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <#/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <#\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <#\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <#;?> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <?> against <http://example.org/foo/bar>
 [PASS] Origin parsing: </> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:23> against <http://example.org/foo/bar>
 [PASS] Origin parsing: </:23> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <\x> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <\\x> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <\\\\x\\hello> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <::> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <::23> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <foo://> against <http://example.org/foo/bar>
@@ -44,9 +44,9 @@
 [PASS] Origin parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <foo:/> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <foo://///////> against <http://example.org/foo/bar>
@@ -122,7 +122,7 @@
 [PASS] Origin parsing: <http://example.com/(%28:%3A%29)> without base
 [PASS] Origin parsing: <http://example.com/%3A%3a%3C%3c> without base
 [PASS] Origin parsing: <http://example.com/foo	bar> without base
-[PASS] Origin parsing: <http://example.com\\foo\\bar> without base
+[PASS] Origin parsing: <http://example.com\\\\foo\\\\bar> without base
 [PASS] Origin parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> without base
 [PASS] Origin parsing: <http://example.com/@asdf%40> without base
 [PASS] Origin parsing: <http://example.com/你好你好> without base
@@ -137,7 +137,7 @@
 [PASS] Origin parsing: <http://www/foo%2Ehtml> without base
 [PASS] Origin parsing: <http://www/foo/%2E/html> without base
 [PASS] Origin parsing: <http://%25DOMAIN:foobar@foodomain.com/> without base
-[PASS] Origin parsing: <http:\\www.google.com\foo> without base
+[PASS] Origin parsing: <http:\\\\www.google.com\\foo> without base
 [PASS] Origin parsing: <http://foo:80/> without base
 [PASS] Origin parsing: <http://foo:81/> without base
 [PASS] Origin parsing: <httpa://foo:80/> without base
@@ -258,14 +258,14 @@
 [PASS] Origin parsing: <sc://ñ.test/> without base
 [FAIL] Origin parsing: <x> against <sc://ñ>
   Failed to construct 'URL': Invalid URL
-[PASS] Origin parsing: <sc:\../> without base
+[PASS] Origin parsing: <sc:\\../> without base
 [PASS] Origin parsing: <sc::a@example.net> without base
 [PASS] Origin parsing: <wow:%NBD> without base
 [PASS] Origin parsing: <wow:%1G> without base
 [PASS] Origin parsing: <wow:￿> without base
 [PASS] Origin parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> without base
 [FAIL] Origin parsing: <http://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: origin expected "http://!\"$&'()*+,-.;=_`{}~" but got "http://!\"$&'()%2A+,-.;=_`{}~"
+  assert_equals: origin expected "http://!\\"$&'()*+,-.;=_`{}~" but got "http://!\\"$&'()%2A+,-.;=_`{}~"
 [PASS] Origin parsing: <sc://!"$%&'()*+,-.;=_`{}~/> without base
 [PASS] Origin parsing: <ftp://%e2%98%83> without base
 [PASS] Origin parsing: <https://%e2%98%83> without base
@@ -334,19 +334,19 @@
 [PASS] Origin parsing: <non-special:cannot-be-a-base-url-\0~€> without base
 [PASS] Origin parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> without base
 [PASS] Origin parsing: <https://user:pass[@foo/bar> against <http://example.org>
-[PASS] Origin parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> without base
+[PASS] Origin parsing: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> without base
 [PASS] Origin parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> without base
-[PASS] Origin parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> without base
+[PASS] Origin parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> without base
 [PASS] Origin parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> without base
 [PASS] Origin parsing: <foo://!"$%&'()*+,-.;=_`{}~/> without base
 [FAIL] Origin parsing: <wss://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: origin expected "wss://!\"$&'()*+,-.;=_`{}~" but got "wss://!\"$&'()%2A+,-.;=_`{}~"
-[PASS] Origin parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
-[PASS] Origin parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
-[PASS] Origin parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[PASS] Origin parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[PASS] Origin parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[PASS] Origin parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
+  assert_equals: origin expected "wss://!\\"$&'()*+,-.;=_`{}~" but got "wss://!\\"$&'()%2A+,-.;=_`{}~"
+[PASS] Origin parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
 [PASS] Origin parsing: <https://example.com/"quoted"> without base
 [PASS] Origin parsing: <https://a%C2%ADb/> without base
 [PASS] Origin parsing: <data://example.com:8080/pathname?search#hash> without base
diff --git a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-origin.any.worker-expected.txt b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-origin.any.worker-expected.txt
index ef630cac..9fff88d 100644
--- a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-origin.any.worker-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-origin.any.worker-expected.txt
@@ -20,22 +20,22 @@
 [PASS] Origin parsing: <> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <  	> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:a> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <:\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <:\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:#> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <#> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <#/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <#\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <#\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <#;?> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <?> against <http://example.org/foo/bar>
 [PASS] Origin parsing: </> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:23> against <http://example.org/foo/bar>
 [PASS] Origin parsing: </:23> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <\x> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <\\x> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <\\\\x\\hello> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <::> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <::23> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <foo://> against <http://example.org/foo/bar>
@@ -44,9 +44,9 @@
 [PASS] Origin parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <foo:/> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <foo://///////> against <http://example.org/foo/bar>
@@ -122,7 +122,7 @@
 [PASS] Origin parsing: <http://example.com/(%28:%3A%29)> without base
 [PASS] Origin parsing: <http://example.com/%3A%3a%3C%3c> without base
 [PASS] Origin parsing: <http://example.com/foo	bar> without base
-[PASS] Origin parsing: <http://example.com\\foo\\bar> without base
+[PASS] Origin parsing: <http://example.com\\\\foo\\\\bar> without base
 [PASS] Origin parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> without base
 [PASS] Origin parsing: <http://example.com/@asdf%40> without base
 [PASS] Origin parsing: <http://example.com/你好你好> without base
@@ -137,7 +137,7 @@
 [PASS] Origin parsing: <http://www/foo%2Ehtml> without base
 [PASS] Origin parsing: <http://www/foo/%2E/html> without base
 [PASS] Origin parsing: <http://%25DOMAIN:foobar@foodomain.com/> without base
-[PASS] Origin parsing: <http:\\www.google.com\foo> without base
+[PASS] Origin parsing: <http:\\\\www.google.com\\foo> without base
 [PASS] Origin parsing: <http://foo:80/> without base
 [PASS] Origin parsing: <http://foo:81/> without base
 [PASS] Origin parsing: <httpa://foo:80/> without base
@@ -258,14 +258,14 @@
 [PASS] Origin parsing: <sc://ñ.test/> without base
 [FAIL] Origin parsing: <x> against <sc://ñ>
   Failed to construct 'URL': Invalid URL
-[PASS] Origin parsing: <sc:\../> without base
+[PASS] Origin parsing: <sc:\\../> without base
 [PASS] Origin parsing: <sc::a@example.net> without base
 [PASS] Origin parsing: <wow:%NBD> without base
 [PASS] Origin parsing: <wow:%1G> without base
 [PASS] Origin parsing: <wow:￿> without base
 [PASS] Origin parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> without base
 [FAIL] Origin parsing: <http://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: origin expected "http://!\"$&'()*+,-.;=_`{}~" but got "http://!\"$&'()%2A+,-.;=_`{}~"
+  assert_equals: origin expected "http://!\\"$&'()*+,-.;=_`{}~" but got "http://!\\"$&'()%2A+,-.;=_`{}~"
 [PASS] Origin parsing: <sc://!"$%&'()*+,-.;=_`{}~/> without base
 [PASS] Origin parsing: <ftp://%e2%98%83> without base
 [PASS] Origin parsing: <https://%e2%98%83> without base
@@ -334,19 +334,19 @@
 [PASS] Origin parsing: <non-special:cannot-be-a-base-url-\0~€> without base
 [PASS] Origin parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> without base
 [PASS] Origin parsing: <https://user:pass[@foo/bar> against <http://example.org>
-[PASS] Origin parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> without base
+[PASS] Origin parsing: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> without base
 [PASS] Origin parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> without base
-[PASS] Origin parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> without base
+[PASS] Origin parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> without base
 [PASS] Origin parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> without base
 [PASS] Origin parsing: <foo://!"$%&'()*+,-.;=_`{}~/> without base
 [FAIL] Origin parsing: <wss://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: origin expected "wss://!\"$&'()*+,-.;=_`{}~" but got "wss://!\"$&'()%2A+,-.;=_`{}~"
-[PASS] Origin parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
-[PASS] Origin parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
-[PASS] Origin parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[PASS] Origin parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[PASS] Origin parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[PASS] Origin parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
+  assert_equals: origin expected "wss://!\\"$&'()*+,-.;=_`{}~" but got "wss://!\\"$&'()%2A+,-.;=_`{}~"
+[PASS] Origin parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
 [PASS] Origin parsing: <https://example.com/"quoted"> without base
 [PASS] Origin parsing: <https://a%C2%ADb/> without base
 [PASS] Origin parsing: <data://example.com:8080/pathname?search#hash> without base
diff --git "a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-setters-a-area.window_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-setters-a-area.window_exclude=\050file_javascript_mailto\051-expected.txt"
index 04a93e20..d441110 100644
--- "a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-setters-a-area.window_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-setters-a-area.window_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -83,9 +83,9 @@
 [PASS] <area>: Setting <http://me@example.net>.username = ''
 [PASS] <a>: Setting <http://me:secret@example.net>.username = ''
 [PASS] <area>: Setting <http://me:secret@example.net>.username = ''
-[FAIL] <a>: Setting <http://example.net>.username = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+[FAIL] <a>: Setting <http://example.net>.username = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
   assert_equals: expected "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
-[FAIL] <area>: Setting <http://example.net>.username = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+[FAIL] <area>: Setting <http://example.net>.username = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
   assert_equals: expected "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
 [PASS] <a>: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is.
 [PASS] <area>: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is.
@@ -101,9 +101,9 @@
 [PASS] <area>: Setting <http://:secret@example.net>.password = ''
 [PASS] <a>: Setting <http://me:secret@example.net>.password = ''
 [PASS] <area>: Setting <http://me:secret@example.net>.password = ''
-[FAIL] <a>: Setting <http://example.net>.password = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+[FAIL] <a>: Setting <http://example.net>.password = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
   assert_equals: expected "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://:%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
-[FAIL] <area>: Setting <http://example.net>.password = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+[FAIL] <area>: Setting <http://example.net>.password = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
   assert_equals: expected "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://:%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
 [PASS] <a>: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is.
 [PASS] <area>: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is.
@@ -195,13 +195,13 @@
 [PASS] <area>: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored
 [PASS] <a>: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored
 [PASS] <area>: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored
-[PASS] <a>: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
-[PASS] <area>: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
-[PASS] <a>: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes
-[PASS] <area>: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes
-[FAIL] <a>: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+[PASS] <a>: Setting <http://example.net/path>.host = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[PASS] <area>: Setting <http://example.net/path>.host = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[PASS] <a>: Setting <http://example.net/path>.host = 'example.com:8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[PASS] <area>: Setting <http://example.net/path>.host = 'example.com:8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[FAIL] <a>: Setting <view-source+http://example.net/path>.host = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts
   assert_equals: expected "example.net" but got ""
-[FAIL] <area>: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+[FAIL] <area>: Setting <view-source+http://example.net/path>.host = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts
   assert_equals: expected "example.net" but got ""
 [FAIL] <a>: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
   assert_equals: expected "view-source+http://example.com:8080/path" but got "view-source+http://example.net/path"
@@ -313,11 +313,11 @@
 [PASS] <area>: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored
 [PASS] <a>: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored
 [PASS] <area>: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored
-[PASS] <a>: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
-[PASS] <area>: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
-[FAIL] <a>: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+[PASS] <a>: Setting <http://example.net/path>.hostname = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[PASS] <area>: Setting <http://example.net/path>.hostname = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[FAIL] <a>: Setting <view-source+http://example.net/path>.hostname = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts
   assert_equals: expected "example.net" but got ""
-[FAIL] <area>: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+[FAIL] <area>: Setting <view-source+http://example.net/path>.hostname = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts
   assert_equals: expected "example.net" but got ""
 [PASS] <a>: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6
 [PASS] <area>: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6
@@ -377,8 +377,8 @@
 [PASS] <area>: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored
 [PASS] <a>: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored
 [PASS] <area>: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored
-[PASS] <a>: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes
-[PASS] <area>: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes
+[PASS] <a>: Setting <http://example.net/path>.port = '8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[PASS] <area>: Setting <http://example.net/path>.port = '8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes
 [FAIL] <a>: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
   assert_equals: expected "view-source+http://example.net:8080/path" but got "view-source+http://example.net/path"
 [FAIL] <area>: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
@@ -441,16 +441,16 @@
 [PASS] <area>: Setting <https://example.net#nav>.pathname = 'home'
 [PASS] <a>: Setting <https://example.net#nav>.pathname = '../home'
 [PASS] <area>: Setting <https://example.net#nav>.pathname = '../home'
-[PASS] <a>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs
-[PASS] <area>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs
-[FAIL] <a>: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs
-  assert_equals: expected "view-source+http://example.net/\\a\\%2E\\b\\%2e.\\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav"
-[FAIL] <area>: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs
-  assert_equals: expected "view-source+http://example.net/\\a\\%2E\\b\\%2e.\\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav"
-[FAIL] <a>: Setting <a:/>.pathname = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.
-  assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/"
-[FAIL] <area>: Setting <a:/>.pathname = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.
-  assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/"
+[PASS] <a>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs
+[PASS] <area>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs
+[FAIL] <a>: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is *not* a segment delimiter for non-'special' URLs
+  assert_equals: expected "view-source+http://example.net/\\\\a\\\\%2E\\\\b\\\\%2e.\\\\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav"
+[FAIL] <area>: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is *not* a segment delimiter for non-'special' URLs
+  assert_equals: expected "view-source+http://example.net/\\\\a\\\\%2E\\\\b\\\\%2e.\\\\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav"
+[FAIL] <a>: Setting <a:/>.pathname = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/"
+[FAIL] <area>: Setting <a:/>.pathname = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/"
 [FAIL] <a>: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments.
   assert_equals: expected "http://example.net/%2e%2E%c3%89t%C3%A9" but got "http://example.net/..%c3%89t%C3%A9"
 [FAIL] <area>: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments.
@@ -517,10 +517,10 @@
 [PASS] <area>: Setting <https://example.net?lang=en-US>.search = ''
 [PASS] <a>: Setting <https://example.net>.search = ''
 [PASS] <area>: Setting <https://example.net>.search = ''
-[FAIL] <a>: Setting <a:/>.search = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.
-  assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/?%00%01%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
-[FAIL] <area>: Setting <a:/>.search = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.
-  assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/?%00%01%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
+[FAIL] <a>: Setting <a:/>.search = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/?%00%01%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
+[FAIL] <area>: Setting <a:/>.search = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/?%00%01%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
 [PASS] <a>: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is
 [PASS] <area>: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is
 [PASS] <a>: Setting <data:space ?query>.search = '' Drop trailing spaces from trailing opaque paths
@@ -557,8 +557,8 @@
 [PASS] <area>: Setting <http://example.net>.hash = '#foo>bar'
 [PASS] <a>: Setting <http://example.net>.hash = '#foo`bar'
 [PASS] <area>: Setting <http://example.net>.hash = '#foo`bar'
-[PASS] <a>: Setting <a:/>.hash = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed
-[PASS] <area>: Setting <a:/>.hash = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed
+[PASS] <a>: Setting <a:/>.hash = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed
+[PASS] <area>: Setting <a:/>.hash = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed
 [PASS] <a>: Setting <http://example.net>.hash = 'a\0b' Percent-encode NULLs in fragment
 [PASS] <area>: Setting <http://example.net>.hash = 'a\0b' Percent-encode NULLs in fragment
 [PASS] <a>: Setting <non-spec:/>.hash = 'a\0b' Percent-encode NULLs in fragment
diff --git "a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-setters.any.worker_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-setters.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
index a399780..0dfb4a6 100644
--- "a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-setters.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-setters.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -42,7 +42,7 @@
 [PASS] URL: Setting <http://:secret@example.net>.username = 'me'
 [PASS] URL: Setting <http://me@example.net>.username = ''
 [PASS] URL: Setting <http://me:secret@example.net>.username = ''
-[FAIL] URL: Setting <http://example.net>.username = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+[FAIL] URL: Setting <http://example.net>.username = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
   assert_equals: expected "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
 [PASS] URL: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is.
 [PASS] URL: Setting <sc:///>.username = 'x'
@@ -51,7 +51,7 @@
 [PASS] URL: Setting <http://me@example.net>.password = 'secret'
 [PASS] URL: Setting <http://:secret@example.net>.password = ''
 [PASS] URL: Setting <http://me:secret@example.net>.password = ''
-[FAIL] URL: Setting <http://example.net>.password = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+[FAIL] URL: Setting <http://example.net>.password = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
   assert_equals: expected "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://:%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
 [PASS] URL: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is.
 [PASS] URL: Setting <sc:///>.password = 'x'
@@ -98,9 +98,9 @@
 [PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored
-[PASS] URL: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
-[PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes
-[FAIL] URL: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+[PASS] URL: Setting <http://example.net/path>.host = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[FAIL] URL: Setting <view-source+http://example.net/path>.host = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts
   assert_equals: expected "example.net" but got ""
 [FAIL] URL: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
   assert_equals: expected "view-source+http://example.com:8080/path" but got "view-source+http://example.net/path"
@@ -157,8 +157,8 @@
 [PASS] URL: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored
-[PASS] URL: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
-[FAIL] URL: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+[PASS] URL: Setting <http://example.net/path>.hostname = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[FAIL] URL: Setting <view-source+http://example.net/path>.hostname = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts
   assert_equals: expected "example.net" but got ""
 [PASS] URL: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6
 [PASS] URL: Setting <http://example.net/>.hostname = '[::1.2.3.4x]'
@@ -189,7 +189,7 @@
 [PASS] URL: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored
-[PASS] URL: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes
+[PASS] URL: Setting <http://example.net/path>.port = '8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes
 [FAIL] URL: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
   assert_equals: expected "view-source+http://example.net:8080/path" but got "view-source+http://example.net/path"
 [PASS] URL: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
@@ -221,11 +221,11 @@
   assert_equals: expected "unix:/var/run/bar.socket?timeout=10" but got "unix:/run/foo.socket?timeout=10"
 [PASS] URL: Setting <https://example.net#nav>.pathname = 'home'
 [PASS] URL: Setting <https://example.net#nav>.pathname = '../home'
-[PASS] URL: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs
-[FAIL] URL: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs
-  assert_equals: expected "view-source+http://example.net/\\a\\%2E\\b\\%2e.\\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav"
-[FAIL] URL: Setting <a:/>.pathname = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.
-  assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/"
+[PASS] URL: Setting <http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs
+[FAIL] URL: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is *not* a segment delimiter for non-'special' URLs
+  assert_equals: expected "view-source+http://example.net/\\\\a\\\\%2E\\\\b\\\\%2e.\\\\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav"
+[FAIL] URL: Setting <a:/>.pathname = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/"
 [FAIL] URL: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments.
   assert_equals: expected "http://example.net/%2e%2E%c3%89t%C3%A9" but got "http://example.net/..%c3%89t%C3%A9"
 [PASS] URL: Setting <http://example.net>.pathname = '?' ? needs to be encoded
@@ -259,8 +259,8 @@
 [PASS] URL: Setting <https://example.net?lang=en-US#nav>.search = ''
 [PASS] URL: Setting <https://example.net?lang=en-US>.search = ''
 [PASS] URL: Setting <https://example.net>.search = ''
-[FAIL] URL: Setting <a:/>.search = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.
-  assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/?%00%01%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
+[FAIL] URL: Setting <a:/>.search = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/?%00%01%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
 [PASS] URL: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is
 [FAIL] URL: Setting <data:space ?query>.search = '' Drop trailing spaces from trailing opaque paths
   assert_equals: expected "data:space" but got "data:space "
@@ -281,7 +281,7 @@
 [PASS] URL: Setting <http://example.net>.hash = '#foo<bar'
 [PASS] URL: Setting <http://example.net>.hash = '#foo>bar'
 [PASS] URL: Setting <http://example.net>.hash = '#foo`bar'
-[PASS] URL: Setting <a:/>.hash = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed
+[PASS] URL: Setting <a:/>.hash = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed
 [PASS] URL: Setting <http://example.net>.hash = 'a\0b' Percent-encode NULLs in fragment
 [PASS] URL: Setting <non-spec:/>.hash = 'a\0b' Percent-encode NULLs in fragment
 [PASS] URL: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is
diff --git "a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-setters.any_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-setters.any_exclude=\050file_javascript_mailto\051-expected.txt"
index a399780..0dfb4a6 100644
--- "a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-setters.any_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-setters.any_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -42,7 +42,7 @@
 [PASS] URL: Setting <http://:secret@example.net>.username = 'me'
 [PASS] URL: Setting <http://me@example.net>.username = ''
 [PASS] URL: Setting <http://me:secret@example.net>.username = ''
-[FAIL] URL: Setting <http://example.net>.username = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+[FAIL] URL: Setting <http://example.net>.username = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
   assert_equals: expected "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
 [PASS] URL: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is.
 [PASS] URL: Setting <sc:///>.username = 'x'
@@ -51,7 +51,7 @@
 [PASS] URL: Setting <http://me@example.net>.password = 'secret'
 [PASS] URL: Setting <http://:secret@example.net>.password = ''
 [PASS] URL: Setting <http://me:secret@example.net>.password = ''
-[FAIL] URL: Setting <http://example.net>.password = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+[FAIL] URL: Setting <http://example.net>.password = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
   assert_equals: expected "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://:%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
 [PASS] URL: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is.
 [PASS] URL: Setting <sc:///>.password = 'x'
@@ -98,9 +98,9 @@
 [PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored
-[PASS] URL: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
-[PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes
-[FAIL] URL: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+[PASS] URL: Setting <http://example.net/path>.host = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[FAIL] URL: Setting <view-source+http://example.net/path>.host = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts
   assert_equals: expected "example.net" but got ""
 [FAIL] URL: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
   assert_equals: expected "view-source+http://example.com:8080/path" but got "view-source+http://example.net/path"
@@ -157,8 +157,8 @@
 [PASS] URL: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored
-[PASS] URL: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
-[FAIL] URL: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+[PASS] URL: Setting <http://example.net/path>.hostname = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[FAIL] URL: Setting <view-source+http://example.net/path>.hostname = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts
   assert_equals: expected "example.net" but got ""
 [PASS] URL: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6
 [PASS] URL: Setting <http://example.net/>.hostname = '[::1.2.3.4x]'
@@ -189,7 +189,7 @@
 [PASS] URL: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored
-[PASS] URL: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes
+[PASS] URL: Setting <http://example.net/path>.port = '8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes
 [FAIL] URL: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
   assert_equals: expected "view-source+http://example.net:8080/path" but got "view-source+http://example.net/path"
 [PASS] URL: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
@@ -221,11 +221,11 @@
   assert_equals: expected "unix:/var/run/bar.socket?timeout=10" but got "unix:/run/foo.socket?timeout=10"
 [PASS] URL: Setting <https://example.net#nav>.pathname = 'home'
 [PASS] URL: Setting <https://example.net#nav>.pathname = '../home'
-[PASS] URL: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs
-[FAIL] URL: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs
-  assert_equals: expected "view-source+http://example.net/\\a\\%2E\\b\\%2e.\\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav"
-[FAIL] URL: Setting <a:/>.pathname = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.
-  assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/"
+[PASS] URL: Setting <http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs
+[FAIL] URL: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is *not* a segment delimiter for non-'special' URLs
+  assert_equals: expected "view-source+http://example.net/\\\\a\\\\%2E\\\\b\\\\%2e.\\\\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav"
+[FAIL] URL: Setting <a:/>.pathname = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/"
 [FAIL] URL: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments.
   assert_equals: expected "http://example.net/%2e%2E%c3%89t%C3%A9" but got "http://example.net/..%c3%89t%C3%A9"
 [PASS] URL: Setting <http://example.net>.pathname = '?' ? needs to be encoded
@@ -259,8 +259,8 @@
 [PASS] URL: Setting <https://example.net?lang=en-US#nav>.search = ''
 [PASS] URL: Setting <https://example.net?lang=en-US>.search = ''
 [PASS] URL: Setting <https://example.net>.search = ''
-[FAIL] URL: Setting <a:/>.search = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.
-  assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/?%00%01%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
+[FAIL] URL: Setting <a:/>.search = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/?%00%01%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
 [PASS] URL: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is
 [FAIL] URL: Setting <data:space ?query>.search = '' Drop trailing spaces from trailing opaque paths
   assert_equals: expected "data:space" but got "data:space "
@@ -281,7 +281,7 @@
 [PASS] URL: Setting <http://example.net>.hash = '#foo<bar'
 [PASS] URL: Setting <http://example.net>.hash = '#foo>bar'
 [PASS] URL: Setting <http://example.net>.hash = '#foo`bar'
-[PASS] URL: Setting <a:/>.hash = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed
+[PASS] URL: Setting <a:/>.hash = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed
 [PASS] URL: Setting <http://example.net>.hash = 'a\0b' Percent-encode NULLs in fragment
 [PASS] URL: Setting <non-spec:/>.hash = 'a\0b' Percent-encode NULLs in fragment
 [PASS] URL: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is
diff --git a/third_party/blink/web_tests/platform/linux/external/wpt/webxr/depth-sensing/gpu/depth_sensing_gpu_dataUnavailable.https-expected.txt b/third_party/blink/web_tests/platform/linux/external/wpt/webxr/depth-sensing/gpu/depth_sensing_gpu_dataUnavailable.https-expected.txt
index e85529e..c193700 100644
--- a/third_party/blink/web_tests/platform/linux/external/wpt/webxr/depth-sensing/gpu/depth_sensing_gpu_dataUnavailable.https-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/external/wpt/webxr/depth-sensing/gpu/depth_sensing_gpu_dataUnavailable.https-expected.txt
@@ -1,7 +1,7 @@
 This is a testharness.js-based test.
 [FAIL] Ensures depth data is not available when cleared in the controller, `gpu-optimized` - webgl
-  promise_test: Unhandled rejection with value: "Session with params \"immersive-ar\" was rejected on device {\"supportedModes\":[\"immersive-ar\"],\"views\":[{\"eye\":\"left\",\"projectionMatrix\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\"viewOffset\":{\"position\":[-0.1,0,0],\"orientation\":[0,0,0,1]},\"resolution\":{\"width\":200,\"height\":200}},{\"eye\":\"right\",\"projectionMatrix\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\"viewOffset\":{\"position\":[0.1,0,0],\"orientation\":[0,0,0,1]},\"resolution\":{\"width\":200,\"height\":200}}],\"supportedFeatures\":[\"viewer\",\"local\",\"local-floor\",\"bounded-floor\",\"unbounded\",\"hit-test\",\"dom-overlay\",\"light-estimation\",\"anchors\",\"depth-sensing\",\"secondary-views\",\"camera-access\",\"layers\"],\"depthSensingData\":{\"depthData\":{\"0\":1,\"1\":0,\"2\":1,\"3\":0,\"4\":1,\"5\":0,\"6\":1,\"7\":0,\"8\":1,\"9\":0,\"10\":1,\"11\":0,\"12\":1,\"13\":0,\"14\":1,\"15\":0,\"16\":2,\"17\":0,\"18\":3,\"19\":0,\"20\":4,\"21\":0,\"22\":5,\"23\":0,\"24\":6,\"25\":0,\"26\":7,\"27\":0,\"28\":1,\"29\":0,\"30\":4,\"31\":0,\"32\":9,\"33\":0,\"34\":16,\"35\":0,\"36\":25,\"37\":0,\"38\":36,\"39\":0,\"40\":49,\"41\":0,\"42\":1,\"43\":0,\"44\":8,\"45\":0,\"46\":27,\"47\":0,\"48\":64,\"49\":0,\"50\":125,\"51\":0,\"52\":216,\"53\":0,\"54\":87,\"55\":1,\"56\":1,\"57\":0,\"58\":16,\"59\":0,\"60\":81,\"61\":0,\"62\":0,\"63\":1,\"64\":113,\"65\":2,\"66\":16,\"67\":5,\"68\":97,\"69\":9},\"width\":7,\"height\":5,\"normDepthBufferFromNormView\":{\"position\":[1,1,0],\"orientation\":[0,0,1,0]},\"rawValueToMeters\":0.01}} with error: NotSupportedError: The specified session configuration is not supported."
+  promise_test: Unhandled rejection with value: "Session with params \\"immersive-ar\\" was rejected on device {\\"supportedModes\\":[\\"immersive-ar\\"],\\"views\\":[{\\"eye\\":\\"left\\",\\"projectionMatrix\\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\\"viewOffset\\":{\\"position\\":[-0.1,0,0],\\"orientation\\":[0,0,0,1]},\\"resolution\\":{\\"width\\":200,\\"height\\":200}},{\\"eye\\":\\"right\\",\\"projectionMatrix\\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\\"viewOffset\\":{\\"position\\":[0.1,0,0],\\"orientation\\":[0,0,0,1]},\\"resolution\\":{\\"width\\":200,\\"height\\":200}}],\\"supportedFeatures\\":[\\"viewer\\",\\"local\\",\\"local-floor\\",\\"bounded-floor\\",\\"unbounded\\",\\"hit-test\\",\\"dom-overlay\\",\\"light-estimation\\",\\"anchors\\",\\"depth-sensing\\",\\"secondary-views\\",\\"camera-access\\",\\"layers\\"],\\"depthSensingData\\":{\\"depthData\\":{\\"0\\":1,\\"1\\":0,\\"2\\":1,\\"3\\":0,\\"4\\":1,\\"5\\":0,\\"6\\":1,\\"7\\":0,\\"8\\":1,\\"9\\":0,\\"10\\":1,\\"11\\":0,\\"12\\":1,\\"13\\":0,\\"14\\":1,\\"15\\":0,\\"16\\":2,\\"17\\":0,\\"18\\":3,\\"19\\":0,\\"20\\":4,\\"21\\":0,\\"22\\":5,\\"23\\":0,\\"24\\":6,\\"25\\":0,\\"26\\":7,\\"27\\":0,\\"28\\":1,\\"29\\":0,\\"30\\":4,\\"31\\":0,\\"32\\":9,\\"33\\":0,\\"34\\":16,\\"35\\":0,\\"36\\":25,\\"37\\":0,\\"38\\":36,\\"39\\":0,\\"40\\":49,\\"41\\":0,\\"42\\":1,\\"43\\":0,\\"44\\":8,\\"45\\":0,\\"46\\":27,\\"47\\":0,\\"48\\":64,\\"49\\":0,\\"50\\":125,\\"51\\":0,\\"52\\":216,\\"53\\":0,\\"54\\":87,\\"55\\":1,\\"56\\":1,\\"57\\":0,\\"58\\":16,\\"59\\":0,\\"60\\":81,\\"61\\":0,\\"62\\":0,\\"63\\":1,\\"64\\":113,\\"65\\":2,\\"66\\":16,\\"67\\":5,\\"68\\":97,\\"69\\":9},\\"width\\":7,\\"height\\":5,\\"normDepthBufferFromNormView\\":{\\"position\\":[1,1,0],\\"orientation\\":[0,0,1,0]},\\"rawValueToMeters\\":0.01}} with error: NotSupportedError: The specified session configuration is not supported."
 [FAIL] Ensures depth data is not available when cleared in the controller, `gpu-optimized` - webgl2
-  promise_test: Unhandled rejection with value: "Session with params \"immersive-ar\" was rejected on device {\"supportedModes\":[\"immersive-ar\"],\"views\":[{\"eye\":\"left\",\"projectionMatrix\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\"viewOffset\":{\"position\":[-0.1,0,0],\"orientation\":[0,0,0,1]},\"resolution\":{\"width\":200,\"height\":200}},{\"eye\":\"right\",\"projectionMatrix\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\"viewOffset\":{\"position\":[0.1,0,0],\"orientation\":[0,0,0,1]},\"resolution\":{\"width\":200,\"height\":200}}],\"supportedFeatures\":[\"viewer\",\"local\",\"local-floor\",\"bounded-floor\",\"unbounded\",\"hit-test\",\"dom-overlay\",\"light-estimation\",\"anchors\",\"depth-sensing\",\"secondary-views\",\"camera-access\",\"layers\"],\"depthSensingData\":{\"depthData\":{\"0\":1,\"1\":0,\"2\":1,\"3\":0,\"4\":1,\"5\":0,\"6\":1,\"7\":0,\"8\":1,\"9\":0,\"10\":1,\"11\":0,\"12\":1,\"13\":0,\"14\":1,\"15\":0,\"16\":2,\"17\":0,\"18\":3,\"19\":0,\"20\":4,\"21\":0,\"22\":5,\"23\":0,\"24\":6,\"25\":0,\"26\":7,\"27\":0,\"28\":1,\"29\":0,\"30\":4,\"31\":0,\"32\":9,\"33\":0,\"34\":16,\"35\":0,\"36\":25,\"37\":0,\"38\":36,\"39\":0,\"40\":49,\"41\":0,\"42\":1,\"43\":0,\"44\":8,\"45\":0,\"46\":27,\"47\":0,\"48\":64,\"49\":0,\"50\":125,\"51\":0,\"52\":216,\"53\":0,\"54\":87,\"55\":1,\"56\":1,\"57\":0,\"58\":16,\"59\":0,\"60\":81,\"61\":0,\"62\":0,\"63\":1,\"64\":113,\"65\":2,\"66\":16,\"67\":5,\"68\":97,\"69\":9},\"width\":7,\"height\":5,\"normDepthBufferFromNormView\":{\"position\":[1,1,0],\"orientation\":[0,0,1,0]},\"rawValueToMeters\":0.01}} with error: NotSupportedError: The specified session configuration is not supported."
+  promise_test: Unhandled rejection with value: "Session with params \\"immersive-ar\\" was rejected on device {\\"supportedModes\\":[\\"immersive-ar\\"],\\"views\\":[{\\"eye\\":\\"left\\",\\"projectionMatrix\\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\\"viewOffset\\":{\\"position\\":[-0.1,0,0],\\"orientation\\":[0,0,0,1]},\\"resolution\\":{\\"width\\":200,\\"height\\":200}},{\\"eye\\":\\"right\\",\\"projectionMatrix\\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\\"viewOffset\\":{\\"position\\":[0.1,0,0],\\"orientation\\":[0,0,0,1]},\\"resolution\\":{\\"width\\":200,\\"height\\":200}}],\\"supportedFeatures\\":[\\"viewer\\",\\"local\\",\\"local-floor\\",\\"bounded-floor\\",\\"unbounded\\",\\"hit-test\\",\\"dom-overlay\\",\\"light-estimation\\",\\"anchors\\",\\"depth-sensing\\",\\"secondary-views\\",\\"camera-access\\",\\"layers\\"],\\"depthSensingData\\":{\\"depthData\\":{\\"0\\":1,\\"1\\":0,\\"2\\":1,\\"3\\":0,\\"4\\":1,\\"5\\":0,\\"6\\":1,\\"7\\":0,\\"8\\":1,\\"9\\":0,\\"10\\":1,\\"11\\":0,\\"12\\":1,\\"13\\":0,\\"14\\":1,\\"15\\":0,\\"16\\":2,\\"17\\":0,\\"18\\":3,\\"19\\":0,\\"20\\":4,\\"21\\":0,\\"22\\":5,\\"23\\":0,\\"24\\":6,\\"25\\":0,\\"26\\":7,\\"27\\":0,\\"28\\":1,\\"29\\":0,\\"30\\":4,\\"31\\":0,\\"32\\":9,\\"33\\":0,\\"34\\":16,\\"35\\":0,\\"36\\":25,\\"37\\":0,\\"38\\":36,\\"39\\":0,\\"40\\":49,\\"41\\":0,\\"42\\":1,\\"43\\":0,\\"44\\":8,\\"45\\":0,\\"46\\":27,\\"47\\":0,\\"48\\":64,\\"49\\":0,\\"50\\":125,\\"51\\":0,\\"52\\":216,\\"53\\":0,\\"54\\":87,\\"55\\":1,\\"56\\":1,\\"57\\":0,\\"58\\":16,\\"59\\":0,\\"60\\":81,\\"61\\":0,\\"62\\":0,\\"63\\":1,\\"64\\":113,\\"65\\":2,\\"66\\":16,\\"67\\":5,\\"68\\":97,\\"69\\":9},\\"width\\":7,\\"height\\":5,\\"normDepthBufferFromNormView\\":{\\"position\\":[1,1,0],\\"orientation\\":[0,0,1,0]},\\"rawValueToMeters\\":0.01}} with error: NotSupportedError: The specified session configuration is not supported."
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/linux/external/wpt/webxr/depth-sensing/gpu/depth_sensing_gpu_incorrectUsage.https-expected.txt b/third_party/blink/web_tests/platform/linux/external/wpt/webxr/depth-sensing/gpu/depth_sensing_gpu_incorrectUsage.https-expected.txt
index 18da098..7bde3ef 100644
--- a/third_party/blink/web_tests/platform/linux/external/wpt/webxr/depth-sensing/gpu/depth_sensing_gpu_incorrectUsage.https-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/external/wpt/webxr/depth-sensing/gpu/depth_sensing_gpu_incorrectUsage.https-expected.txt
@@ -1,7 +1,7 @@
 This is a testharness.js-based test.
 [FAIL] Ensures XRCPUDepthInformation is not obtainable in `gpu-optimized` usage mode - webgl
-  promise_test: Unhandled rejection with value: "Session with params \"immersive-ar\" was rejected on device {\"supportedModes\":[\"immersive-ar\"],\"views\":[{\"eye\":\"left\",\"projectionMatrix\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\"viewOffset\":{\"position\":[-0.1,0,0],\"orientation\":[0,0,0,1]},\"resolution\":{\"width\":200,\"height\":200}},{\"eye\":\"right\",\"projectionMatrix\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\"viewOffset\":{\"position\":[0.1,0,0],\"orientation\":[0,0,0,1]},\"resolution\":{\"width\":200,\"height\":200}}],\"supportedFeatures\":[\"viewer\",\"local\",\"local-floor\",\"bounded-floor\",\"unbounded\",\"hit-test\",\"dom-overlay\",\"light-estimation\",\"anchors\",\"depth-sensing\",\"secondary-views\",\"camera-access\",\"layers\"]} with error: NotSupportedError: The specified session configuration is not supported."
+  promise_test: Unhandled rejection with value: "Session with params \\"immersive-ar\\" was rejected on device {\\"supportedModes\\":[\\"immersive-ar\\"],\\"views\\":[{\\"eye\\":\\"left\\",\\"projectionMatrix\\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\\"viewOffset\\":{\\"position\\":[-0.1,0,0],\\"orientation\\":[0,0,0,1]},\\"resolution\\":{\\"width\\":200,\\"height\\":200}},{\\"eye\\":\\"right\\",\\"projectionMatrix\\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\\"viewOffset\\":{\\"position\\":[0.1,0,0],\\"orientation\\":[0,0,0,1]},\\"resolution\\":{\\"width\\":200,\\"height\\":200}}],\\"supportedFeatures\\":[\\"viewer\\",\\"local\\",\\"local-floor\\",\\"bounded-floor\\",\\"unbounded\\",\\"hit-test\\",\\"dom-overlay\\",\\"light-estimation\\",\\"anchors\\",\\"depth-sensing\\",\\"secondary-views\\",\\"camera-access\\",\\"layers\\"]} with error: NotSupportedError: The specified session configuration is not supported."
 [FAIL] Ensures XRCPUDepthInformation is not obtainable in `gpu-optimized` usage mode - webgl2
-  promise_test: Unhandled rejection with value: "Session with params \"immersive-ar\" was rejected on device {\"supportedModes\":[\"immersive-ar\"],\"views\":[{\"eye\":\"left\",\"projectionMatrix\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\"viewOffset\":{\"position\":[-0.1,0,0],\"orientation\":[0,0,0,1]},\"resolution\":{\"width\":200,\"height\":200}},{\"eye\":\"right\",\"projectionMatrix\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\"viewOffset\":{\"position\":[0.1,0,0],\"orientation\":[0,0,0,1]},\"resolution\":{\"width\":200,\"height\":200}}],\"supportedFeatures\":[\"viewer\",\"local\",\"local-floor\",\"bounded-floor\",\"unbounded\",\"hit-test\",\"dom-overlay\",\"light-estimation\",\"anchors\",\"depth-sensing\",\"secondary-views\",\"camera-access\",\"layers\"]} with error: NotSupportedError: The specified session configuration is not supported."
+  promise_test: Unhandled rejection with value: "Session with params \\"immersive-ar\\" was rejected on device {\\"supportedModes\\":[\\"immersive-ar\\"],\\"views\\":[{\\"eye\\":\\"left\\",\\"projectionMatrix\\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\\"viewOffset\\":{\\"position\\":[-0.1,0,0],\\"orientation\\":[0,0,0,1]},\\"resolution\\":{\\"width\\":200,\\"height\\":200}},{\\"eye\\":\\"right\\",\\"projectionMatrix\\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\\"viewOffset\\":{\\"position\\":[0.1,0,0],\\"orientation\\":[0,0,0,1]},\\"resolution\\":{\\"width\\":200,\\"height\\":200}}],\\"supportedFeatures\\":[\\"viewer\\",\\"local\\",\\"local-floor\\",\\"bounded-floor\\",\\"unbounded\\",\\"hit-test\\",\\"dom-overlay\\",\\"light-estimation\\",\\"anchors\\",\\"depth-sensing\\",\\"secondary-views\\",\\"camera-access\\",\\"layers\\"]} with error: NotSupportedError: The specified session configuration is not supported."
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/linux/external/wpt/webxr/depth-sensing/gpu/depth_sensing_gpu_staleView.https-expected.txt b/third_party/blink/web_tests/platform/linux/external/wpt/webxr/depth-sensing/gpu/depth_sensing_gpu_staleView.https-expected.txt
index 6718e24e..e6f8356 100644
--- a/third_party/blink/web_tests/platform/linux/external/wpt/webxr/depth-sensing/gpu/depth_sensing_gpu_staleView.https-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/external/wpt/webxr/depth-sensing/gpu/depth_sensing_gpu_staleView.https-expected.txt
@@ -1,7 +1,7 @@
 This is a testharness.js-based test.
 [FAIL] Ensures getDepthInformation() throws when not run with stale XRView, `gpu-optimized` - webgl
-  promise_test: Unhandled rejection with value: "Session with params \"immersive-ar\" was rejected on device {\"supportedModes\":[\"immersive-ar\"],\"views\":[{\"eye\":\"left\",\"projectionMatrix\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\"viewOffset\":{\"position\":[-0.1,0,0],\"orientation\":[0,0,0,1]},\"resolution\":{\"width\":200,\"height\":200}},{\"eye\":\"right\",\"projectionMatrix\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\"viewOffset\":{\"position\":[0.1,0,0],\"orientation\":[0,0,0,1]},\"resolution\":{\"width\":200,\"height\":200}}],\"supportedFeatures\":[\"viewer\",\"local\",\"local-floor\",\"bounded-floor\",\"unbounded\",\"hit-test\",\"dom-overlay\",\"light-estimation\",\"anchors\",\"depth-sensing\",\"secondary-views\",\"camera-access\",\"layers\"]} with error: NotSupportedError: The specified session configuration is not supported."
+  promise_test: Unhandled rejection with value: "Session with params \\"immersive-ar\\" was rejected on device {\\"supportedModes\\":[\\"immersive-ar\\"],\\"views\\":[{\\"eye\\":\\"left\\",\\"projectionMatrix\\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\\"viewOffset\\":{\\"position\\":[-0.1,0,0],\\"orientation\\":[0,0,0,1]},\\"resolution\\":{\\"width\\":200,\\"height\\":200}},{\\"eye\\":\\"right\\",\\"projectionMatrix\\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\\"viewOffset\\":{\\"position\\":[0.1,0,0],\\"orientation\\":[0,0,0,1]},\\"resolution\\":{\\"width\\":200,\\"height\\":200}}],\\"supportedFeatures\\":[\\"viewer\\",\\"local\\",\\"local-floor\\",\\"bounded-floor\\",\\"unbounded\\",\\"hit-test\\",\\"dom-overlay\\",\\"light-estimation\\",\\"anchors\\",\\"depth-sensing\\",\\"secondary-views\\",\\"camera-access\\",\\"layers\\"]} with error: NotSupportedError: The specified session configuration is not supported."
 [FAIL] Ensures getDepthInformation() throws when not run with stale XRView, `gpu-optimized` - webgl2
-  promise_test: Unhandled rejection with value: "Session with params \"immersive-ar\" was rejected on device {\"supportedModes\":[\"immersive-ar\"],\"views\":[{\"eye\":\"left\",\"projectionMatrix\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\"viewOffset\":{\"position\":[-0.1,0,0],\"orientation\":[0,0,0,1]},\"resolution\":{\"width\":200,\"height\":200}},{\"eye\":\"right\",\"projectionMatrix\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\"viewOffset\":{\"position\":[0.1,0,0],\"orientation\":[0,0,0,1]},\"resolution\":{\"width\":200,\"height\":200}}],\"supportedFeatures\":[\"viewer\",\"local\",\"local-floor\",\"bounded-floor\",\"unbounded\",\"hit-test\",\"dom-overlay\",\"light-estimation\",\"anchors\",\"depth-sensing\",\"secondary-views\",\"camera-access\",\"layers\"]} with error: NotSupportedError: The specified session configuration is not supported."
+  promise_test: Unhandled rejection with value: "Session with params \\"immersive-ar\\" was rejected on device {\\"supportedModes\\":[\\"immersive-ar\\"],\\"views\\":[{\\"eye\\":\\"left\\",\\"projectionMatrix\\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\\"viewOffset\\":{\\"position\\":[-0.1,0,0],\\"orientation\\":[0,0,0,1]},\\"resolution\\":{\\"width\\":200,\\"height\\":200}},{\\"eye\\":\\"right\\",\\"projectionMatrix\\":[1,0,0,0,0,1,0,0,3,2,-1,-1,0,0,-0.2,0],\\"viewOffset\\":{\\"position\\":[0.1,0,0],\\"orientation\\":[0,0,0,1]},\\"resolution\\":{\\"width\\":200,\\"height\\":200}}],\\"supportedFeatures\\":[\\"viewer\\",\\"local\\",\\"local-floor\\",\\"bounded-floor\\",\\"unbounded\\",\\"hit-test\\",\\"dom-overlay\\",\\"light-estimation\\",\\"anchors\\",\\"depth-sensing\\",\\"secondary-views\\",\\"camera-access\\",\\"layers\\"]} with error: NotSupportedError: The specified session configuration is not supported."
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/linux/virtual/plz-dedicated-worker/external/wpt/service-workers/service-worker/local-url-inherit-controller.https-expected.txt b/third_party/blink/web_tests/platform/linux/virtual/plz-dedicated-worker/external/wpt/service-workers/service-worker/local-url-inherit-controller.https-expected.txt
index 5139d49..9972d94 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/plz-dedicated-worker/external/wpt/service-workers/service-worker/local-url-inherit-controller.https-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/virtual/plz-dedicated-worker/external/wpt/service-workers/service-worker/local-url-inherit-controller.https-expected.txt
@@ -2,7 +2,7 @@
 [FAIL] Same-origin blob URL iframe should inherit service worker controller.
   assert_equals: blob URL iframe should inherit controller expected (string) "https://web-platform.test:8444/service-workers/service-worker/resources/local-url-inherit-controller-worker.js" but got (object) null
 [FAIL] Same-origin blob URL iframe should intercept fetch().
-  assert_equals: blob URL iframe should intercept fetch expected "intercepted" but got "var hello = \"world\";\n"
+  assert_equals: blob URL iframe should intercept fetch expected "intercepted" but got "var hello = \\"world\\";\\n"
 [FAIL] Same-origin blob URL worker should inherit service worker controller.
   promise_test: Unhandled rejection with value: "Uncaught TypeError: Cannot read properties of undefined (reading 'controller')"
 [PASS] Same-origin blob URL worker should intercept fetch().
diff --git a/third_party/blink/web_tests/platform/linux/virtual/plz-dedicated-worker/external/wpt/service-workers/service-worker/worker-interception-redirect.https-expected.txt b/third_party/blink/web_tests/platform/linux/virtual/plz-dedicated-worker/external/wpt/service-workers/service-worker/worker-interception-redirect.https-expected.txt
index 5a11b184..eb174529 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/plz-dedicated-worker/external/wpt/service-workers/service-worker/worker-interception-redirect.https-expected.txt
+++ b/third_party/blink/web_tests/platform/linux/virtual/plz-dedicated-worker/external/wpt/service-workers/service-worker/worker-interception-redirect.https-expected.txt
@@ -32,20 +32,20 @@
 [FAIL] Case #4: sw scope1->out-scope (classic DedicatedWorker, importScripts())
   assert_equals: expected "sw1 saw importScripts from the worker: /service-workers/service-worker/resources/import-scripts-echo.py" but got "importScripts: served from network"
 [FAIL] Case #4: sw scope1->out-scope (classic DedicatedWorker, fetch())
-  assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/simple.txt" but got "fetch(): a simple text file\n"
+  assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/simple.txt" but got "fetch(): a simple text file\\n"
 [PASS] Case #4: sw scope1->out-scope (classic DedicatedWorker, location.href)
 [PASS] Case #4: sw scope1->out-scope (module DedicatedWorker, importScripts())
 [FAIL] Case #4: sw scope1->out-scope (module DedicatedWorker, fetch())
-  assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/simple.txt" but got "fetch(): a simple text file\n"
+  assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/simple.txt" but got "fetch(): a simple text file\\n"
 [PASS] Case #4: sw scope1->out-scope (module DedicatedWorker, location.href)
 [FAIL] Case #4: sw scope1->out-scope (classic SharedWorker, importScripts())
   assert_equals: expected "sw1 saw importScripts from the worker: /service-workers/service-worker/resources/import-scripts-echo.py" but got "importScripts: served from network"
 [FAIL] Case #4: sw scope1->out-scope (classic SharedWorker, fetch())
-  assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/simple.txt" but got "fetch(): a simple text file\n"
+  assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/simple.txt" but got "fetch(): a simple text file\\n"
 [PASS] Case #4: sw scope1->out-scope (classic SharedWorker, location.href)
 [PASS] Case #4: sw scope1->out-scope (module SharedWorker, importScripts())
 [FAIL] Case #4: sw scope1->out-scope (module SharedWorker, fetch())
-  assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/simple.txt" but got "fetch(): a simple text file\n"
+  assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/simple.txt" but got "fetch(): a simple text file\\n"
 [PASS] Case #4: sw scope1->out-scope (module SharedWorker, location.href)
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/content-type/script.window-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/content-type/script.window-expected.txt
new file mode 100644
index 0000000..557127b2
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.15/external/wpt/fetch/content-type/script.window-expected.txt
@@ -0,0 +1,43 @@
+This is a testharness.js-based test.
+[PASS] Loading JSON…
+[PASS] separate text/javascript;charset=windows-1252
+[PASS] separate text/javascript;";charset=windows-1252
+[PASS] separate text/javascript
+[PASS] separate "text/javascript"
+[PASS] separate text/ javascript
+[PASS] separate text /javascript
+[FAIL] separate x/x text/javascript
+  assert_unreached: onerror Reached unreachable code
+[FAIL] combined x/x text/javascript
+  assert_unreached: onerror Reached unreachable code
+[FAIL] separate x/x;charset=windows-1252 text/javascript
+  assert_unreached: onerror Reached unreachable code
+[FAIL] combined x/x;charset=windows-1252 text/javascript
+  assert_unreached: onerror Reached unreachable code
+[FAIL] separate text/javascript x/x
+  assert_unreached: onload Reached unreachable code
+[FAIL] combined text/javascript x/x
+  assert_unreached: onload Reached unreachable code
+[PASS] separate text/javascript; charset=windows-1252 text/javascript
+[PASS] combined text/javascript; charset=windows-1252 text/javascript
+[PASS] separate text/javascript;" x/x
+[PASS] combined text/javascript;" x/x
+[PASS] separate text/javascript 
+[PASS] combined text/javascript 
+[PASS] separate text/javascript error
+[PASS] combined text/javascript error
+[PASS] separate text/javascript;charset=windows-1252 x/x text/javascript
+[PASS] combined text/javascript;charset=windows-1252 x/x text/javascript
+[PASS] separate text/javascript;charset=windows-1252 error text/javascript
+[PASS] combined text/javascript;charset=windows-1252 error text/javascript
+[PASS] separate text/javascript;charset=windows-1252  text/javascript
+[PASS] combined text/javascript;charset=windows-1252  text/javascript
+[FAIL] separate text/javascript;charset=windows-1252;" \" x/x
+  assert_equals: expected "€" but got "€"
+[PASS] combined text/javascript;charset=windows-1252;" \" x/x
+[FAIL] separate x/x;" x/y;\" text/javascript;charset=windows-1252;" text/javascript
+  assert_unreached: onerror Reached unreachable code
+[FAIL] combined x/x;" x/y;\" text/javascript;charset=windows-1252;" text/javascript
+  assert_unreached: onerror Reached unreachable code
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/service-workers/service-worker/worker-interception-redirect.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/service-workers/service-worker/worker-interception-redirect.https-expected.txt
new file mode 100644
index 0000000..26fc548b
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac11-arm64/external/wpt/service-workers/service-worker/worker-interception-redirect.https-expected.txt
@@ -0,0 +1,44 @@
+This is a testharness.js-based test.
+[PASS] initialize global state
+[FAIL] Case #1: network scope1->scope2 (classic DedicatedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #1: network scope1->scope2 (module DedicatedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #1: network scope1->scope2 (classic SharedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #1: network scope1->scope2 (module SharedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #2: network scope1->out-scope (classic DedicatedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #2: network scope1->out-scope (module DedicatedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #2: network scope1->out-scope (classic SharedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #2: network scope1->out-scope (module SharedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #3: sw scope1->scope2 (classic DedicatedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #3: sw scope1->scope2 (module DedicatedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #3: sw scope1->scope2 (classic SharedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #3: sw scope1->scope2 (module SharedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #4: sw scope1->out-scope (classic DedicatedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #4: sw scope1->out-scope (module DedicatedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[PASS] Case #4: sw scope1->out-scope (classic SharedWorker)
+[PASS] Case #4: sw scope1->out-scope (module SharedWorker)
+[PASS] cleanup global state
+[FAIL] Case #4: sw scope1->out-scope (classic SharedWorker, importScripts())
+  assert_equals: expected "sw1 saw importScripts from the worker: /service-workers/service-worker/resources/import-scripts-echo.py" but got "importScripts: served from network"
+[FAIL] Case #4: sw scope1->out-scope (classic SharedWorker, fetch())
+  assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/simple.txt" but got "fetch(): a simple text file\\n"
+[PASS] Case #4: sw scope1->out-scope (classic SharedWorker, location.href)
+[PASS] Case #4: sw scope1->out-scope (module SharedWorker, importScripts())
+[FAIL] Case #4: sw scope1->out-scope (module SharedWorker, fetch())
+  assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/simple.txt" but got "fetch(): a simple text file\\n"
+[PASS] Case #4: sw scope1->out-scope (module SharedWorker, location.href)
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/platform/mac-mac11/external/wpt/service-workers/service-worker/worker-interception-redirect.https-expected.txt b/third_party/blink/web_tests/platform/mac-mac11/external/wpt/service-workers/service-worker/worker-interception-redirect.https-expected.txt
new file mode 100644
index 0000000..5555a5f
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac11/external/wpt/service-workers/service-worker/worker-interception-redirect.https-expected.txt
@@ -0,0 +1,44 @@
+This is a testharness.js-based test.
+[PASS] initialize global state
+[FAIL] Case #1: network scope1->scope2 (classic DedicatedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #1: network scope1->scope2 (module DedicatedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #1: network scope1->scope2 (classic SharedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #1: network scope1->scope2 (module SharedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #2: network scope1->out-scope (classic DedicatedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #2: network scope1->out-scope (module DedicatedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #2: network scope1->out-scope (classic SharedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #2: network scope1->out-scope (module SharedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #3: sw scope1->scope2 (classic DedicatedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #3: sw scope1->scope2 (module DedicatedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #3: sw scope1->scope2 (classic SharedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #3: sw scope1->scope2 (module SharedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #4: sw scope1->out-scope (classic DedicatedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[FAIL] Case #4: sw scope1->out-scope (module DedicatedWorker)
+  assert_unreached: Worker error Reached unreachable code
+[PASS] Case #4: sw scope1->out-scope (classic SharedWorker)
+[PASS] Case #4: sw scope1->out-scope (module SharedWorker)
+[PASS] cleanup global state
+[FAIL] Case #4: sw scope1->out-scope (classic SharedWorker, importScripts())
+  assert_equals: expected "sw1 saw importScripts from the worker: /service-workers/service-worker/resources/import-scripts-echo.py" but got "importScripts: served from network"
+[FAIL] Case #4: sw scope1->out-scope (classic SharedWorker, fetch())
+  assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/simple.txt" but got "fetch(): a simple text file\n"
+[PASS] Case #4: sw scope1->out-scope (classic SharedWorker, location.href)
+[PASS] Case #4: sw scope1->out-scope (module SharedWorker, importScripts())
+[FAIL] Case #4: sw scope1->out-scope (module SharedWorker, fetch())
+  assert_equals: expected "fetch(): sw1 saw the fetch from the worker: /service-workers/service-worker/resources/simple.txt" but got "fetch(): a simple text file\n"
+[PASS] Case #4: sw scope1->out-scope (module SharedWorker, location.href)
+Harness: the test ran to completion.
+
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/css/cssom/font-family-serialization-001-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/css/cssom/font-family-serialization-001-expected.txt
index 2446976..75d4c5c6 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/css/cssom/font-family-serialization-001-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/css/cssom/font-family-serialization-001-expected.txt
@@ -1,9 +1,9 @@
 This is a testharness.js-based test.
 [PASS] Serialization of <generic-family>
 [FAIL] Serialization of quoted "<generic-family>"
-  assert_equals: expected "\"emoji\"" but got "emoji"
+  assert_equals: expected "\\"emoji\\"" but got "emoji"
 [PASS] Serialization of prefixed -webkit-<generic-family>
 [FAIL] Serialization of NonGenericFontFamilyName,-webkit-body,-webkit-standard,-webkit-pictograph,BlinkMacSystemFont
-  assert_equals: expected "BlinkMacSystemFont" but got "\"system-ui\""
+  assert_equals: expected "BlinkMacSystemFont" but got "\\"system-ui\\""
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/other/editable-state-and-focus-in-shadow-dom-in-designMode.tentative-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/other/editable-state-and-focus-in-shadow-dom-in-designMode.tentative-expected.txt
index 880a6c2..a2f1790 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/other/editable-state-and-focus-in-shadow-dom-in-designMode.tentative-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/other/editable-state-and-focus-in-shadow-dom-in-designMode.tentative-expected.txt
@@ -20,7 +20,7 @@
 [PASS] Typing "A" after Collapse selection into text in the open shadow DOM
 [PASS] Focus after Collapse selection into text in <div contenteditable> in the open shadow DOM
 [FAIL] Typing "A" after Collapse selection into text in <div contenteditable> in the open shadow DOM
-  assert_equals: The shadow DOM shouldn't be modified after Collapse selection into text in <div contenteditable> in the open shadow DOM expected "<style>:focus { outline: 3px red solid; }</style><div>text<div contenteditable=\"\">Aeditable</div><object tabindex=\"0\">object</object><p tabindex=\"0\">paragraph</p></div>" but got "<style>:focus { outline: 3px red solid; }</style><div>text<div contenteditable=\"\">editable</div><object tabindex=\"0\">object</object><p tabindex=\"0\">paragraph</p></div>"
+  assert_equals: The shadow DOM shouldn't be modified after Collapse selection into text in <div contenteditable> in the open shadow DOM expected "<style>:focus { outline: 3px red solid; }</style><div>text<div contenteditable=\\"\\">Aeditable</div><object tabindex=\\"0\\">object</object><p tabindex=\\"0\\">paragraph</p></div>" but got "<style>:focus { outline: 3px red solid; }</style><div>text<div contenteditable=\\"\\">editable</div><object tabindex=\\"0\\">object</object><p tabindex=\\"0\\">paragraph</p></div>"
 [PASS] Focus after Set focus to <object> in the open shadow DOM
 [PASS] Typing "A" after Set focus to <object> in the open shadow DOM
 [PASS] Focus after Set focus to <p tabindex="0"> in the open shadow DOM
@@ -29,7 +29,7 @@
 [PASS] Typing "A" after Collapse selection into text in the closed shadow DOM
 [PASS] Focus after Collapse selection into text in <div contenteditable> in the closed shadow DOM
 [FAIL] Typing "A" after Collapse selection into text in <div contenteditable> in the closed shadow DOM
-  assert_equals: The shadow DOM shouldn't be modified after Collapse selection into text in <div contenteditable> in the closed shadow DOM expected "<style>:focus { outline: 3px red solid; }</style><div>text<div contenteditable=\"\">Aeditable</div><object tabindex=\"0\">object</object><p tabindex=\"0\">paragraph</p></div>" but got "<style>:focus { outline: 3px red solid; }</style><div>text<div contenteditable=\"\">editable</div><object tabindex=\"0\">object</object><p tabindex=\"0\">paragraph</p></div>"
+  assert_equals: The shadow DOM shouldn't be modified after Collapse selection into text in <div contenteditable> in the closed shadow DOM expected "<style>:focus { outline: 3px red solid; }</style><div>text<div contenteditable=\\"\\">Aeditable</div><object tabindex=\\"0\\">object</object><p tabindex=\\"0\\">paragraph</p></div>" but got "<style>:focus { outline: 3px red solid; }</style><div>text<div contenteditable=\\"\\">editable</div><object tabindex=\\"0\\">object</object><p tabindex=\\"0\\">paragraph</p></div>"
 [PASS] Focus after Set focus to <object> in the closed shadow DOM
 [PASS] Typing "A" after Set focus to <object> in the closed shadow DOM
 [PASS] Focus after Set focus to <p tabindex="0"> in the closed shadow DOM
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/bold_1-1000-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/bold_1-1000-expected.txt
index a93a367..a95ba5b353 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/bold_1-1000-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/bold_1-1000-expected.txt
@@ -88,7 +88,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"font-weight:bold\">foo</span></p><p> <span style=\"font-weight:bold\"><span>bar</span></span> </p><p><span style=\"font-weight:bold\">baz</span></p>" but got "<p><span style=\"font-weight:bold\">foo</span></p><p> <span style=\"font-weight:bold\"><span>bar</span> </span></p><p><span style=\"font-weight:bold\">baz</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"font-weight:bold\\">foo</span></p><p> <span style=\\"font-weight:bold\\"><span>bar</span></span> </p><p><span style=\\"font-weight:bold\\">baz</span></p>" but got "<p><span style=\\"font-weight:bold\\">foo</span></p><p> <span style=\\"font-weight:bold\\"><span>bar</span> </span></p><p><span style=\\"font-weight:bold\\">baz</span></p>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandValue("stylewithcss") before
@@ -384,7 +384,7 @@
   assert_equals: expected false but got true
 [PASS] [["bold",""]] "fo[o<span contenteditable=false>b]ar</span>baz" checks for modifications to non-editable content
 [FAIL] [["bold",""]] "fo[o<span contenteditable=false>b]ar</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span contenteditable=\"false\">bar</span>baz" but got "fo<b>o</b><span contenteditable=\"false\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span contenteditable=\\"false\\">bar</span>baz" but got "fo<b>o</b><span contenteditable=\\"false\\">bar</span>baz"
 [PASS] [["bold",""]] "fo[o<span contenteditable=false>b]ar</span>baz" queryCommandIndeterm("bold") before
 [PASS] [["bold",""]] "fo[o<span contenteditable=false>b]ar</span>baz" queryCommandState("bold") before
 [FAIL] [["bold",""]] "fo[o<span contenteditable=false>b]ar</span>baz" queryCommandValue("bold") before
@@ -481,7 +481,7 @@
   assert_equals: expected false but got true
 [PASS] [["bold",""]] "<span contenteditable=false>foo<span contenteditable=true>ba[r</span>b]az</span>" checks for modifications to non-editable content
 [FAIL] [["bold",""]] "<span contenteditable=false>foo<span contenteditable=true>ba[r</span>b]az</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span contenteditable=\"false\">foo<span contenteditable=\"true\">bar</span>baz</span>" but got "<span contenteditable=\"false\">foo<span contenteditable=\"true\">ba<b>r</b></span>baz</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span contenteditable=\\"false\\">foo<span contenteditable=\\"true\\">bar</span>baz</span>" but got "<span contenteditable=\\"false\\">foo<span contenteditable=\\"true\\">ba<b>r</b></span>baz</span>"
 [PASS] [["bold",""]] "<span contenteditable=false>foo<span contenteditable=true>ba[r</span>b]az</span>" queryCommandIndeterm("bold") before
 [PASS] [["bold",""]] "<span contenteditable=false>foo<span contenteditable=true>ba[r</span>b]az</span>" queryCommandState("bold") before
 [FAIL] [["bold",""]] "<span contenteditable=false>foo<span contenteditable=true>ba[r</span>b]az</span>" queryCommandValue("bold") before
@@ -733,41 +733,41 @@
   assert_equals: Wrong result returned expected true but got false
 [FAIL] [["stylewithcss","false"],["bold",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
 [PASS] [["stylewithcss","true"],["bold",""]] "foo<b>[bar]</b>baz": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "foo<b>[bar]</b>baz": execCommand("bold", false, "") return value
@@ -1139,28 +1139,28 @@
 [PASS] [["bold",""]] "foo<strong>[bar</strong>]baz" queryCommandState("bold") after
 [FAIL] [["bold",""]] "foo<strong>[bar</strong>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/bold_1001-2000-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/bold_1001-2000-expected.txt
index 91d9ab5a..fdadb2f 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/bold_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/bold_1001-2000-expected.txt
@@ -1,98 +1,98 @@
 This is a testharness.js-based test.
 Found 1000 tests; 843 PASS, 157 FAIL, 0 TIMEOUT, 0 NOTRUN.
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandState("stylewithcss") after
   assert_equals: Wrong result returned expected false but got true
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandIndeterm("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandState("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandIndeterm("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandState("bold") after
   assert_equals: Wrong result returned expected false but got true
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandValue("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
 [PASS] [["stylewithcss","true"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p><span style=\"font-weight:bold\">baz</span></p>" but got "<p style=\"\">foo</p><p style=\"\">bar</p><p style=\"font-weight:bold\">baz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p><span style=\\"font-weight:bold\\">baz</span></p>" but got "<p style=\\"\\">foo</p><p style=\\"\\">bar</p><p style=\\"font-weight:bold\\">baz</p>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>" queryCommandValue("stylewithcss") before
@@ -111,7 +111,7 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p><b>baz</b></p>" but got "<p style=\"\">foo</p><p style=\"\">bar</p><p style=\"font-weight:bold\">baz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p><b>baz</b></p>" but got "<p style=\\"\\">foo</p><p style=\\"\\">bar</p><p style=\\"font-weight:bold\\">baz</p>"
 [PASS] [["stylewithcss","false"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>" queryCommandValue("stylewithcss") before
@@ -130,7 +130,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"font-weight:bold\">foo</span><i>bar</i></p><p><span style=\"font-weight:bold\">baz</span></p>" but got "<p style=\"\"><span style=\"font-weight:bold\">foo</span><i style=\"\">bar</i></p><p style=\"font-weight:bold\">baz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"font-weight:bold\\">foo</span><i>bar</i></p><p><span style=\\"font-weight:bold\\">baz</span></p>" but got "<p style=\\"\\"><span style=\\"font-weight:bold\\">foo</span><i style=\\"\\">bar</i></p><p style=\\"font-weight:bold\\">baz</p>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>" queryCommandValue("stylewithcss") before
@@ -149,7 +149,7 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b>foo</b><i>bar</i></p><p><b>baz</b></p>" but got "<p style=\"\"><b>foo</b><i style=\"\">bar</i></p><p style=\"font-weight:bold\">baz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b>foo</b><i>bar</i></p><p><b>baz</b></p>" but got "<p style=\\"\\"><b>foo</b><i style=\\"\\">bar</i></p><p style=\\"font-weight:bold\\">baz</p>"
 [PASS] [["stylewithcss","false"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>" queryCommandValue("stylewithcss") before
@@ -195,7 +195,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<b id=purple>bar [baz] qoz</b>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span id=\"purple\"><span style=\"font-weight:bold\">bar </span>baz<span style=\"font-weight:bold\"> qoz</span></span>" but got "<b id=\"purple\">bar </b>baz<b> qoz</b>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span id=\\"purple\\"><span style=\\"font-weight:bold\\">bar </span>baz<span style=\\"font-weight:bold\\"> qoz</span></span>" but got "<b id=\\"purple\\">bar </b>baz<b> qoz</b>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" queryCommandValue("stylewithcss") before
@@ -214,7 +214,7 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<b id=purple>bar [baz] qoz</b>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span id=\"purple\"><b>bar </b>baz<b> qoz</b></span>" but got "<b id=\"purple\">bar </b>baz<b> qoz</b>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span id=\\"purple\\"><b>bar </b>baz<b> qoz</b></span>" but got "<b id=\\"purple\\">bar </b>baz<b> qoz</b>"
 [PASS] [["stylewithcss","false"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" queryCommandValue("stylewithcss") before
@@ -229,933 +229,933 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" queryCommandState("bold") after
 [FAIL] [["stylewithcss","false"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:100\">foo<span style=\"font-weight:bold\">bar</span>baz</span>" but got "<span style=\"font-weight:100\">foo</span><span style=\"font-weight:bold\">bar</span><span style=\"font-weight:100\">baz</span>"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:100\\">foo<span style=\\"font-weight:bold\\">bar</span>baz</span>" but got "<span style=\\"font-weight:100\\">foo</span><span style=\\"font-weight:bold\\">bar</span><span style=\\"font-weight:100\\">baz</span>"
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:100\">foo<b>bar</b>baz</span>" but got "<span style=\"font-weight:100\">foo</span><b>bar</b><span style=\"font-weight:100\">baz</span>"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:100\\">foo<b>bar</b>baz</span>" but got "<span style=\\"font-weight:100\\">foo</span><b>bar</b><span style=\\"font-weight:100\\">baz</span>"
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:400\">foo<span style=\"font-weight:bold\">bar</span>baz</span>" but got "<span style=\"font-weight:400\">foo</span><span style=\"font-weight:bold\">bar</span><span style=\"font-weight:400\">baz</span>"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:400\\">foo<span style=\\"font-weight:bold\\">bar</span>baz</span>" but got "<span style=\\"font-weight:400\\">foo</span><span style=\\"font-weight:bold\\">bar</span><span style=\\"font-weight:400\\">baz</span>"
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:400\">foo<b>bar</b>baz</span>" but got "<span style=\"font-weight:400\">foo</span><b>bar</b><span style=\"font-weight:400\">baz</span>"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:400\\">foo<b>bar</b>baz</span>" but got "<span style=\\"font-weight:400\\">foo</span><b>bar</b><span style=\\"font-weight:400\\">baz</span>"
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foo</b>bar<b>baz</b>" but got "<span style=\"font-weight:700\">foo</span>bar<span style=\"font-weight:700\">baz</span>"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foo</b>bar<b>baz</b>" but got "<span style=\\"font-weight:700\\">foo</span>bar<span style=\\"font-weight:700\\">baz</span>"
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:100\"><span style=\"font-weight:bold\">foobar</span>baz</span>" but got "<span style=\"font-weight:bold\">foobar</span><span style=\"font-weight:100\">baz</span>"
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:100\\"><span style=\\"font-weight:bold\\">foobar</span>baz</span>" but got "<span style=\\"font-weight:bold\\">foobar</span><span style=\\"font-weight:100\\">baz</span>"
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:100\"><b>foobar</b>baz</span>" but got "<b>foobar</b><span style=\"font-weight:100\">baz</span>"
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:100\\"><b>foobar</b>baz</span>" but got "<b>foobar</b><span style=\\"font-weight:100\\">baz</span>"
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:400\"><span style=\"font-weight:bold\">foobar</span>baz</span>" but got "<span style=\"font-weight:bold\">foobar</span><span style=\"font-weight:400\">baz</span>"
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:400\\"><span style=\\"font-weight:bold\\">foobar</span>baz</span>" but got "<span style=\\"font-weight:bold\\">foobar</span><span style=\\"font-weight:400\\">baz</span>"
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:400\"><b>foobar</b>baz</span>" but got "<b>foobar</b><span style=\"font-weight:400\">baz</span>"
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:400\\"><b>foobar</b>baz</span>" but got "<b>foobar</b><span style=\\"font-weight:400\\">baz</span>"
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar<b>baz</b>" but got "foobar<span style=\"font-weight:700\">baz</span>"
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar<b>baz</b>" but got "foobar<span style=\\"font-weight:700\\">baz</span>"
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["bold",""]] "{<span style=\"font-weight: 900\">foobar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["bold",""]] "{<span style=\"font-weight: 900\">foobar]baz</span>" checks for modifications to non-editable content
-[PASS] [["bold",""]] "{<span style=\"font-weight: 900\">foobar]baz</span>" compare innerHTML
-[PASS] [["bold",""]] "{<span style=\"font-weight: 900\">foobar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["bold",""]] "{<span style=\"font-weight: 900\">foobar]baz</span>" queryCommandState("bold") before
-[FAIL] [["bold",""]] "{<span style=\"font-weight: 900\">foobar]baz</span>" queryCommandValue("bold") before
+[PASS] [["bold",""]] "{<span style=\\"font-weight: 900\\">foobar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["bold",""]] "{<span style=\\"font-weight: 900\\">foobar]baz</span>" checks for modifications to non-editable content
+[PASS] [["bold",""]] "{<span style=\\"font-weight: 900\\">foobar]baz</span>" compare innerHTML
+[PASS] [["bold",""]] "{<span style=\\"font-weight: 900\\">foobar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["bold",""]] "{<span style=\\"font-weight: 900\\">foobar]baz</span>" queryCommandState("bold") before
+[FAIL] [["bold",""]] "{<span style=\\"font-weight: 900\\">foobar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["bold",""]] "{<span style=\"font-weight: 900\">foobar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["bold",""]] "{<span style=\"font-weight: 900\">foobar]baz</span>" queryCommandState("bold") after
-[FAIL] [["bold",""]] "{<span style=\"font-weight: 900\">foobar]baz</span>" queryCommandValue("bold") after
+[PASS] [["bold",""]] "{<span style=\\"font-weight: 900\\">foobar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["bold",""]] "{<span style=\\"font-weight: 900\\">foobar]baz</span>" queryCommandState("bold") after
+[FAIL] [["bold",""]] "{<span style=\\"font-weight: 900\\">foobar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:100\">foo<span style=\"font-weight:bold\">barbaz</span></span>" but got "<span style=\"font-weight:100\">foo</span><span style=\"font-weight:bold\">barbaz</span>"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:100\\">foo<span style=\\"font-weight:bold\\">barbaz</span></span>" but got "<span style=\\"font-weight:100\\">foo</span><span style=\\"font-weight:bold\\">barbaz</span>"
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:100\">foo<b>barbaz</b></span>" but got "<span style=\"font-weight:100\">foo</span><b>barbaz</b>"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:100\\">foo<b>barbaz</b></span>" but got "<span style=\\"font-weight:100\\">foo</span><b>barbaz</b>"
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:400\">foo<span style=\"font-weight:bold\">barbaz</span></span>" but got "<span style=\"font-weight:400\">foo</span><span style=\"font-weight:bold\">barbaz</span>"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:400\\">foo<span style=\\"font-weight:bold\\">barbaz</span></span>" but got "<span style=\\"font-weight:400\\">foo</span><span style=\\"font-weight:bold\\">barbaz</span>"
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:400\">foo<b>barbaz</b></span>" but got "<span style=\"font-weight:400\">foo</span><b>barbaz</b>"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:400\\">foo<b>barbaz</b></span>" but got "<span style=\\"font-weight:400\\">foo</span><b>barbaz</b>"
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foo</b>barbaz" but got "<span style=\"font-weight:700\">foo</span>barbaz"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foo</b>barbaz" but got "<span style=\\"font-weight:700\\">foo</span>barbaz"
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["bold",""]] "<span style=\"font-weight: 900\">foo[barbaz</span>}": execCommand("bold", false, "") return value
-[PASS] [["bold",""]] "<span style=\"font-weight: 900\">foo[barbaz</span>}" checks for modifications to non-editable content
+[PASS] [["bold",""]] "<span style=\\"font-weight: 900\\">foo[barbaz</span>}": execCommand("bold", false, "") return value
+[PASS] [["bold",""]] "<span style=\\"font-weight: 900\\">foo[barbaz</span>}" checks for modifications to non-editable content
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/bold_2001-3000-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/bold_2001-3000-expected.txt
index 7149b5f..5335c43 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/bold_2001-3000-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/bold_2001-3000-expected.txt
@@ -1,15 +1,15 @@
 This is a testharness.js-based test.
 Found 1000 tests; 820 PASS, 180 FAIL, 0 TIMEOUT, 0 NOTRUN.
-[FAIL] [["bold",""]] "<span style=\"font-weight: 900\">foo[barbaz</span>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:900\">foo</span>barbaz" but got "<span style=\"font-weight:900\">foobarbaz</span>"
-[PASS] [["bold",""]] "<span style=\"font-weight: 900\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
-[PASS] [["bold",""]] "<span style=\"font-weight: 900\">foo[barbaz</span>}" queryCommandState("bold") before
-[FAIL] [["bold",""]] "<span style=\"font-weight: 900\">foo[barbaz</span>}" queryCommandValue("bold") before
+[FAIL] [["bold",""]] "<span style=\\"font-weight: 900\\">foo[barbaz</span>}" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:900\\">foo</span>barbaz" but got "<span style=\\"font-weight:900\\">foobarbaz</span>"
+[PASS] [["bold",""]] "<span style=\\"font-weight: 900\\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
+[PASS] [["bold",""]] "<span style=\\"font-weight: 900\\">foo[barbaz</span>}" queryCommandState("bold") before
+[FAIL] [["bold",""]] "<span style=\\"font-weight: 900\\">foo[barbaz</span>}" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["bold",""]] "<span style=\"font-weight: 900\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
-[FAIL] [["bold",""]] "<span style=\"font-weight: 900\">foo[barbaz</span>}" queryCommandState("bold") after
+[PASS] [["bold",""]] "<span style=\\"font-weight: 900\\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
+[FAIL] [["bold",""]] "<span style=\\"font-weight: 900\\">foo[barbaz</span>}" queryCommandState("bold") after
   assert_equals: Wrong result returned expected false but got true
-[FAIL] [["bold",""]] "<span style=\"font-weight: 900\">foo[barbaz</span>}" queryCommandValue("bold") after
+[FAIL] [["bold",""]] "<span style=\\"font-weight: 900\\">foo[barbaz</span>}" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["stylewithcss","true"],["bold",""]] "<h3>foo[bar]baz</h3>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<h3>foo[bar]baz</h3>": execCommand("bold", false, "") return value
@@ -264,85 +264,85 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "{<h3>foobarbaz</h3>}" queryCommandState("bold") after
 [FAIL] [["stylewithcss","false"],["bold",""]] "{<h3>foobarbaz</h3>}" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foo<span style=\"font-weight:normal\">barbazquz</span>qoz</b>" but got "<span style=\"font-weight:bold\">foo</span>barbazquz<span style=\"font-weight:bold\">qoz</span>"
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foo<span style=\\"font-weight:normal\\">barbazquz</span>qoz</b>" but got "<span style=\\"font-weight:bold\\">foo</span>barbazquz<span style=\\"font-weight:bold\\">qoz</span>"
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foo<span style=\"font-weight:normal\">barbazquz</span>qoz</b>" but got "<b>foo</b>barbazquz<b>qoz</b>"
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foo<span style=\\"font-weight:normal\\">barbazquz</span>qoz</b>" but got "<b>foo</b>barbazquz<b>qoz</b>"
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["stylewithcss","true"],["bold",""]] "{<b>foo</b> <b>bar</b>}": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "{<b>foo</b> <b>bar</b>}": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "{<b>foo</b> <b>bar</b>}" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "{<b>foo</b> <b>bar</b>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:bold\">foo bar</span>" but got "foo bar"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:bold\\">foo bar</span>" but got "foo bar"
 [PASS] [["stylewithcss","true"],["bold",""]] "{<b>foo</b> <b>bar</b>}" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "{<b>foo</b> <b>bar</b>}" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "{<b>foo</b> <b>bar</b>}" queryCommandValue("stylewithcss") before
@@ -422,7 +422,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<i><b>baz</b></i>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<i><b>baz</b></i>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<i><b>baz</b></i>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b><i>foo</i>bar<i>baz</i></b>" but got "<i><b>foo</b></i><span style=\"font-weight:bold\">bar</span><i><b>baz</b></i>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b><i>foo</i>bar<i>baz</i></b>" but got "<i><b>foo</b></i><span style=\\"font-weight:bold\\">bar</span><i><b>baz</b></i>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<i><b>baz</b></i>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<i><b>baz</b></i>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<i><b>baz</b></i>" queryCommandValue("stylewithcss") before
@@ -460,7 +460,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<b>baz</b>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<b>baz</b>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<b>baz</b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b><i>foo</i>barbaz</b>" but got "<i><b>foo</b></i><span style=\"font-weight:bold\">bar</span><b>baz</b>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b><i>foo</i>barbaz</b>" but got "<i><b>foo</b></i><span style=\\"font-weight:bold\\">bar</span><b>baz</b>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<b>baz</b>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<b>baz</b>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<b>baz</b>" queryCommandValue("stylewithcss") before
@@ -498,7 +498,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<b>foo</b>[bar]<i><b>baz</b></i>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<b>foo</b>[bar]<i><b>baz</b></i>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<b>foo</b>[bar]<i><b>baz</b></i>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foobar<i>baz</i></b>" but got "<b>foo</b><span style=\"font-weight:bold\">bar</span><i><b>baz</b></i>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foobar<i>baz</i></b>" but got "<b>foo</b><span style=\\"font-weight:bold\\">bar</span><i><b>baz</b></i>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<b>foo</b>[bar]<i><b>baz</b></i>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<b>foo</b>[bar]<i><b>baz</b></i>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<b>foo</b>[bar]<i><b>baz</b></i>" queryCommandValue("stylewithcss") before
@@ -535,7 +535,7 @@
 [PASS] [["bold",""]] "<font color=blue face=monospace><b>foo</b></font>[bar]": execCommand("bold", false, "") return value
 [PASS] [["bold",""]] "<font color=blue face=monospace><b>foo</b></font>[bar]" checks for modifications to non-editable content
 [FAIL] [["bold",""]] "<font color=blue face=monospace><b>foo</b></font>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b><font color=\"blue\" face=\"monospace\">foo</font>bar</b>" but got "<font color=\"blue\" face=\"monospace\"><b>foo</b></font><b>bar</b>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b><font color=\\"blue\\" face=\\"monospace\\">foo</font>bar</b>" but got "<font color=\\"blue\\" face=\\"monospace\\"><b>foo</b></font><b>bar</b>"
 [PASS] [["bold",""]] "<font color=blue face=monospace><b>foo</b></font>[bar]" queryCommandIndeterm("bold") before
 [PASS] [["bold",""]] "<font color=blue face=monospace><b>foo</b></font>[bar]" queryCommandState("bold") before
 [FAIL] [["bold",""]] "<font color=blue face=monospace><b>foo</b></font>[bar]" queryCommandValue("bold") before
@@ -544,47 +544,47 @@
 [PASS] [["bold",""]] "<font color=blue face=monospace><b>foo</b></font>[bar]" queryCommandState("bold") after
 [FAIL] [["bold",""]] "<font color=blue face=monospace><b>foo</b></font>[bar]" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
 [PASS] [["stylewithcss","true"],["bold",""]] "[foo<span class=notbold>bar</span>baz]": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "[foo<span class=notbold>bar</span>baz]": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "[foo<span class=notbold>bar</span>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "[foo<span class=notbold>bar</span>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:bold\">foo<span class=\"notbold\"><span style=\"font-weight:bold\">bar</span></span>baz</span>" but got "<span style=\"font-weight:bold\">foo<span class=\"notbold\">bar</span>baz</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:bold\\">foo<span class=\\"notbold\\"><span style=\\"font-weight:bold\\">bar</span></span>baz</span>" but got "<span style=\\"font-weight:bold\\">foo<span class=\\"notbold\\">bar</span>baz</span>"
 [PASS] [["stylewithcss","true"],["bold",""]] "[foo<span class=notbold>bar</span>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "[foo<span class=notbold>bar</span>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "[foo<span class=notbold>bar</span>baz]" queryCommandValue("stylewithcss") before
@@ -603,7 +603,7 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "[foo<span class=notbold>bar</span>baz]": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "[foo<span class=notbold>bar</span>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["bold",""]] "[foo<span class=notbold>bar</span>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foo<span class=\"notbold\"><b>bar</b></span>baz</b>" but got "<b>foo<span class=\"notbold\">bar</span>baz</b>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foo<span class=\\"notbold\\"><b>bar</b></span>baz</b>" but got "<b>foo<span class=\\"notbold\\">bar</span>baz</b>"
 [PASS] [["stylewithcss","false"],["bold",""]] "[foo<span class=notbold>bar</span>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "[foo<span class=notbold>bar</span>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "[foo<span class=notbold>bar</span>baz]" queryCommandValue("stylewithcss") before
@@ -622,7 +622,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<b><span class=notbold>[foo]</span></b>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<b><span class=notbold>[foo]</span></b>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<b><span class=notbold>[foo]</span></b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span class=\"notbold\"><span style=\"font-weight:bold\">foo</span></span>" but got "<span class=\"notbold\" style=\"font-weight:bold\">foo</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span class=\\"notbold\\"><span style=\\"font-weight:bold\\">foo</span></span>" but got "<span class=\\"notbold\\" style=\\"font-weight:bold\\">foo</span>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<b><span class=notbold>[foo]</span></b>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<b><span class=notbold>[foo]</span></b>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<b><span class=notbold>[foo]</span></b>" queryCommandValue("stylewithcss") before
@@ -691,43 +691,43 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<b><span class=notbold>foo[bar]baz</span></b>" queryCommandState("bold") after
 [FAIL] [["stylewithcss","false"],["bold",""]] "<b><span class=notbold>foo[bar]baz</span></b>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"font-weight:bold\">foo</span>bar<span style=\"font-weight:bold\">baz</span></p>" but got "<p style=\"\"><span style=\"font-weight:bold\">foo</span>bar<span style=\"font-weight:bold\">baz</span></p>"
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"font-weight:bold\\">foo</span>bar<span style=\\"font-weight:bold\\">baz</span></p>" but got "<p style=\\"\\"><span style=\\"font-weight:bold\\">foo</span>bar<span style=\\"font-weight:bold\\">baz</span></p>"
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b>foo</b>bar<b>baz</b></p>" but got "<p style=\"\"><span style=\"font-weight:bold\">foo</span>bar<b>baz</b></p>"
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b>foo</b>bar<b>baz</b></p>" but got "<p style=\\"\\"><span style=\\"font-weight:bold\\">foo</span>bar<b>baz</b></p>"
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
 [PASS] [["bold",""]] "fo[o<b>b]ar</b>baz": execCommand("bold", false, "") return value
 [PASS] [["bold",""]] "fo[o<b>b]ar</b>baz" checks for modifications to non-editable content
@@ -798,7 +798,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "foo[<b>b]ar</b>baz": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "foo[<b>b]ar</b>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "foo[<b>b]ar</b>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foob<span style=\"font-weight:bold\">ar</span>baz" but got "foob<b>ar</b>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foob<span style=\\"font-weight:bold\\">ar</span>baz" but got "foob<b>ar</b>baz"
 [PASS] [["stylewithcss","true"],["bold",""]] "foo[<b>b]ar</b>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "foo[<b>b]ar</b>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "foo[<b>b]ar</b>baz" queryCommandValue("stylewithcss") before
@@ -835,7 +835,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "foo<b>ba[r</b>]baz": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "foo<b>ba[r</b>]baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "foo<b>ba[r</b>]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"font-weight:bold\">ba</span>rbaz" but got "foo<b>ba</b>rbaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"font-weight:bold\\">ba</span>rbaz" but got "foo<b>ba</b>rbaz"
 [PASS] [["stylewithcss","true"],["bold",""]] "foo<b>ba[r</b>]baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "foo<b>ba[r</b>]baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "foo<b>ba[r</b>]baz" queryCommandValue("stylewithcss") before
@@ -907,7 +907,7 @@
 [PASS] [["bold",""]] "fo[o<span style=font-weight:bold>b]ar</span>baz": execCommand("bold", false, "") return value
 [PASS] [["bold",""]] "fo[o<span style=font-weight:bold>b]ar</span>baz" checks for modifications to non-editable content
 [FAIL] [["bold",""]] "fo[o<span style=font-weight:bold>b]ar</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\"font-weight:bold\">obar</span>baz" but got "fo<b>ob</b><span style=\"font-weight:bold\">ar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\\"font-weight:bold\\">obar</span>baz" but got "fo<b>ob</b><span style=\\"font-weight:bold\\">ar</span>baz"
 [FAIL] [["bold",""]] "fo[o<span style=font-weight:bold>b]ar</span>baz" queryCommandIndeterm("bold") before
   assert_equals: Wrong result returned expected true but got false
 [PASS] [["bold",""]] "fo[o<span style=font-weight:bold>b]ar</span>baz" queryCommandState("bold") before
@@ -950,7 +950,7 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:700>fo[o</span><span style=font-weight:800>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:700>fo[o</span><span style=font-weight:800>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:700>fo[o</span><span style=font-weight:800>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>fo</b>ob<span style=\"font-weight:800\">ar</span>" but got "<span style=\"font-weight:700\">fo</span>ob<span style=\"font-weight:800\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>fo</b>ob<span style=\\"font-weight:800\\">ar</span>" but got "<span style=\\"font-weight:700\\">fo</span>ob<span style=\\"font-weight:800\\">ar</span>"
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:700>fo[o</span><span style=font-weight:800>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:700>fo[o</span><span style=font-weight:800>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:700>fo[o</span><span style=font-weight:800>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -987,7 +987,7 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:600>fo[o</span><span style=font-weight:700>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:600>fo[o</span><span style=font-weight:700>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:600>fo[o</span><span style=font-weight:700>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:600\">fo</span>ob<b>ar</b>" but got "<span style=\"font-weight:600\">fo</span>ob<span style=\"font-weight:700\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:600\\">fo</span>ob<b>ar</b>" but got "<span style=\\"font-weight:600\\">fo</span>ob<span style=\\"font-weight:700\\">ar</span>"
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:600>fo[o</span><span style=font-weight:700>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:600>fo[o</span><span style=font-weight:700>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:600>fo[o</span><span style=font-weight:700>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1006,7 +1006,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:500\">fo<span style=\"font-weight:bold\">o</span></span><span style=\"font-weight:600\"><span style=\"font-weight:bold\">b</span>ar</span>" but got "<span style=\"font-weight:500\">fo</span><span style=\"font-weight:bold\">ob</span><span style=\"font-weight:600\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:500\\">fo<span style=\\"font-weight:bold\\">o</span></span><span style=\\"font-weight:600\\"><span style=\\"font-weight:bold\\">b</span>ar</span>" but got "<span style=\\"font-weight:500\\">fo</span><span style=\\"font-weight:bold\\">ob</span><span style=\\"font-weight:600\\">ar</span>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1026,7 +1026,7 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:500\">fo<b>o</b></span><span style=\"font-weight:600\"><b>b</b>ar</span>" but got "<span style=\"font-weight:500\">fo</span><b>ob</b><span style=\"font-weight:600\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:500\\">fo<b>o</b></span><span style=\\"font-weight:600\\"><b>b</b>ar</span>" but got "<span style=\\"font-weight:500\\">fo</span><b>ob</b><span style=\\"font-weight:600\\">ar</span>"
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1046,7 +1046,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:400\">fo<span style=\"font-weight:bold\">o</span></span><span style=\"font-weight:500\"><span style=\"font-weight:bold\">b</span>ar</span>" but got "<span style=\"font-weight:400\">fo</span><span style=\"font-weight:bold\">ob</span><span style=\"font-weight:500\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:400\\">fo<span style=\\"font-weight:bold\\">o</span></span><span style=\\"font-weight:500\\"><span style=\\"font-weight:bold\\">b</span>ar</span>" but got "<span style=\\"font-weight:400\\">fo</span><span style=\\"font-weight:bold\\">ob</span><span style=\\"font-weight:500\\">ar</span>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1065,7 +1065,7 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:400\">fo<b>o</b></span><span style=\"font-weight:500\"><b>b</b>ar</span>" but got "<span style=\"font-weight:400\">fo</span><b>ob</b><span style=\"font-weight:500\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:400\\">fo<b>o</b></span><span style=\\"font-weight:500\\"><b>b</b>ar</span>" but got "<span style=\\"font-weight:400\\">fo</span><b>ob</b><span style=\\"font-weight:500\\">ar</span>"
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1084,7 +1084,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:300\">fo<span style=\"font-weight:bold\">o</span></span><span style=\"font-weight:400\"><span style=\"font-weight:bold\">b</span>ar</span>" but got "<span style=\"font-weight:300\">fo</span><span style=\"font-weight:bold\">ob</span><span style=\"font-weight:400\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:300\\">fo<span style=\\"font-weight:bold\\">o</span></span><span style=\\"font-weight:400\\"><span style=\\"font-weight:bold\\">b</span>ar</span>" but got "<span style=\\"font-weight:300\\">fo</span><span style=\\"font-weight:bold\\">ob</span><span style=\\"font-weight:400\\">ar</span>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1103,7 +1103,7 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:300\">fo<b>o</b></span><span style=\"font-weight:400\"><b>b</b>ar</span>" but got "<span style=\"font-weight:300\">fo</span><b>ob</b><span style=\"font-weight:400\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:300\\">fo<b>o</b></span><span style=\\"font-weight:400\\"><b>b</b>ar</span>" but got "<span style=\\"font-weight:300\\">fo</span><b>ob</b><span style=\\"font-weight:400\\">ar</span>"
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1122,7 +1122,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:200\">fo<span style=\"font-weight:bold\">o</span></span><span style=\"font-weight:300\"><span style=\"font-weight:bold\">b</span>ar</span>" but got "<span style=\"font-weight:200\">fo</span><span style=\"font-weight:bold\">ob</span><span style=\"font-weight:300\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:200\\">fo<span style=\\"font-weight:bold\\">o</span></span><span style=\\"font-weight:300\\"><span style=\\"font-weight:bold\\">b</span>ar</span>" but got "<span style=\\"font-weight:200\\">fo</span><span style=\\"font-weight:bold\\">ob</span><span style=\\"font-weight:300\\">ar</span>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1141,7 +1141,7 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:200\">fo<b>o</b></span><span style=\"font-weight:300\"><b>b</b>ar</span>" but got "<span style=\"font-weight:200\">fo</span><b>ob</b><span style=\"font-weight:300\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:200\\">fo<b>o</b></span><span style=\\"font-weight:300\\"><b>b</b>ar</span>" but got "<span style=\\"font-weight:200\\">fo</span><b>ob</b><span style=\\"font-weight:300\\">ar</span>"
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1160,7 +1160,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:100>fo[o</span><span style=font-weight:200>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:100>fo[o</span><span style=font-weight:200>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:100>fo[o</span><span style=font-weight:200>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:100\">fo<span style=\"font-weight:bold\">o</span></span><span style=\"font-weight:200\"><span style=\"font-weight:bold\">b</span>ar</span>" but got "<span style=\"font-weight:100\">fo</span><span style=\"font-weight:bold\">ob</span><span style=\"font-weight:200\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:100\\">fo<span style=\\"font-weight:bold\\">o</span></span><span style=\\"font-weight:200\\"><span style=\\"font-weight:bold\\">b</span>ar</span>" but got "<span style=\\"font-weight:100\\">fo</span><span style=\\"font-weight:bold\\">ob</span><span style=\\"font-weight:200\\">ar</span>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:100>fo[o</span><span style=font-weight:200>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:100>fo[o</span><span style=font-weight:200>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:100>fo[o</span><span style=font-weight:200>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1179,6 +1179,6 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:100>fo[o</span><span style=font-weight:200>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:100>fo[o</span><span style=font-weight:200>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:100>fo[o</span><span style=font-weight:200>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:100\">fo<b>o</b></span><span style=\"font-weight:200\"><b>b</b>ar</span>" but got "<span style=\"font-weight:100\">fo</span><b>ob</b><span style=\"font-weight:200\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:100\\">fo<b>o</b></span><span style=\\"font-weight:200\\"><b>b</b>ar</span>" but got "<span style=\\"font-weight:100\\">fo</span><b>ob</b><span style=\\"font-weight:200\\">ar</span>"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/italic_1-1000-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/italic_1-1000-expected.txt
index 36dc042..2394f19 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/italic_1-1000-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/italic_1-1000-expected.txt
@@ -88,7 +88,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"font-style:italic\">foo</span></p><p> <span style=\"font-style:italic\"><span>bar</span></span> </p><p><span style=\"font-style:italic\">baz</span></p>" but got "<p><span style=\"font-style:italic\">foo</span></p><p> <span style=\"font-style:italic\"><span>bar</span> </span></p><p><span style=\"font-style:italic\">baz</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"font-style:italic\\">foo</span></p><p> <span style=\\"font-style:italic\\"><span>bar</span></span> </p><p><span style=\\"font-style:italic\\">baz</span></p>" but got "<p><span style=\\"font-style:italic\\">foo</span></p><p> <span style=\\"font-style:italic\\"><span>bar</span> </span></p><p><span style=\\"font-style:italic\\">baz</span></p>"
 [PASS] [["stylewithcss","true"],["italic",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandValue("stylewithcss") before
@@ -582,7 +582,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<cite>[bar]</cite>baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<cite>[bar]</cite>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo<cite>[bar]</cite>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<cite><span style=\"font-style:normal\">bar</span></cite>baz" but got "foo<cite style=\"font-style:normal\">bar</cite>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<cite><span style=\\"font-style:normal\\">bar</span></cite>baz" but got "foo<cite style=\\"font-style:normal\\">bar</cite>baz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<cite>[bar]</cite>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<cite>[bar]</cite>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<cite>[bar]</cite>baz" queryCommandValue("stylewithcss") before
@@ -601,7 +601,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<cite>[bar]</cite>baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<cite>[bar]</cite>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "foo<cite>[bar]</cite>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<cite><span style=\"font-style:normal\">bar</span></cite>baz" but got "foo<cite style=\"font-style:normal\">bar</cite>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<cite><span style=\\"font-style:normal\\">bar</span></cite>baz" but got "foo<cite style=\\"font-style:normal\\">bar</cite>baz"
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<cite>[bar]</cite>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<cite>[bar]</cite>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<cite>[bar]</cite>baz" queryCommandValue("stylewithcss") before
@@ -620,7 +620,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<dfn>[bar]</dfn>baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<dfn>[bar]</dfn>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo<dfn>[bar]</dfn>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<dfn><span style=\"font-style:normal\">bar</span></dfn>baz" but got "foo<dfn style=\"font-style:normal\">bar</dfn>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<dfn><span style=\\"font-style:normal\\">bar</span></dfn>baz" but got "foo<dfn style=\\"font-style:normal\\">bar</dfn>baz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<dfn>[bar]</dfn>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<dfn>[bar]</dfn>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<dfn>[bar]</dfn>baz" queryCommandValue("stylewithcss") before
@@ -639,7 +639,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<dfn>[bar]</dfn>baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<dfn>[bar]</dfn>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "foo<dfn>[bar]</dfn>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<dfn><span style=\"font-style:normal\">bar</span></dfn>baz" but got "foo<dfn style=\"font-style:normal\">bar</dfn>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<dfn><span style=\\"font-style:normal\\">bar</span></dfn>baz" but got "foo<dfn style=\\"font-style:normal\\">bar</dfn>baz"
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<dfn>[bar]</dfn>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<dfn>[bar]</dfn>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<dfn>[bar]</dfn>baz" queryCommandValue("stylewithcss") before
@@ -669,7 +669,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<var>[bar]</var>baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<var>[bar]</var>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo<var>[bar]</var>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<var><span style=\"font-style:normal\">bar</span></var>baz" but got "foo<var style=\"font-style:normal\">bar</var>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<var><span style=\\"font-style:normal\\">bar</span></var>baz" but got "foo<var style=\\"font-style:normal\\">bar</var>baz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<var>[bar]</var>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<var>[bar]</var>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<var>[bar]</var>baz" queryCommandValue("stylewithcss") before
@@ -688,7 +688,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<var>[bar]</var>baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<var>[bar]</var>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "foo<var>[bar]</var>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<var><span style=\"font-style:normal\">bar</span></var>baz" but got "foo<var style=\"font-style:normal\">bar</var>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<var><span style=\\"font-style:normal\\">bar</span></var>baz" but got "foo<var style=\\"font-style:normal\\">bar</var>baz"
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<var>[bar]</var>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<var>[bar]</var>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<var>[bar]</var>baz" queryCommandValue("stylewithcss") before
@@ -743,7 +743,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<cite>bar</cite>}baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<cite>bar</cite>}baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo{<cite>bar</cite>}baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<cite><span style=\"font-style:normal\">bar</span></cite>baz" but got "foo<cite style=\"font-style:normal\">bar</cite>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<cite><span style=\\"font-style:normal\\">bar</span></cite>baz" but got "foo<cite style=\\"font-style:normal\\">bar</cite>baz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<cite>bar</cite>}baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<cite>bar</cite>}baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<cite>bar</cite>}baz" queryCommandValue("stylewithcss") before
@@ -762,7 +762,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<cite>bar</cite>}baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<cite>bar</cite>}baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "foo{<cite>bar</cite>}baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<cite><span style=\"font-style:normal\">bar</span></cite>baz" but got "foo<cite style=\"font-style:normal\">bar</cite>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<cite><span style=\\"font-style:normal\\">bar</span></cite>baz" but got "foo<cite style=\\"font-style:normal\\">bar</cite>baz"
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<cite>bar</cite>}baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<cite>bar</cite>}baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<cite>bar</cite>}baz" queryCommandValue("stylewithcss") before
@@ -781,7 +781,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<dfn>bar</dfn>}baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<dfn>bar</dfn>}baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo{<dfn>bar</dfn>}baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<dfn><span style=\"font-style:normal\">bar</span></dfn>baz" but got "foo<dfn style=\"font-style:normal\">bar</dfn>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<dfn><span style=\\"font-style:normal\\">bar</span></dfn>baz" but got "foo<dfn style=\\"font-style:normal\\">bar</dfn>baz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<dfn>bar</dfn>}baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<dfn>bar</dfn>}baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<dfn>bar</dfn>}baz" queryCommandValue("stylewithcss") before
@@ -800,7 +800,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<dfn>bar</dfn>}baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<dfn>bar</dfn>}baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "foo{<dfn>bar</dfn>}baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<dfn><span style=\"font-style:normal\">bar</span></dfn>baz" but got "foo<dfn style=\"font-style:normal\">bar</dfn>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<dfn><span style=\\"font-style:normal\\">bar</span></dfn>baz" but got "foo<dfn style=\\"font-style:normal\\">bar</dfn>baz"
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<dfn>bar</dfn>}baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<dfn>bar</dfn>}baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<dfn>bar</dfn>}baz" queryCommandValue("stylewithcss") before
@@ -830,7 +830,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<var>bar</var>}baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<var>bar</var>}baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo{<var>bar</var>}baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<var><span style=\"font-style:normal\">bar</span></var>baz" but got "foo<var style=\"font-style:normal\">bar</var>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<var><span style=\\"font-style:normal\\">bar</span></var>baz" but got "foo<var style=\\"font-style:normal\\">bar</var>baz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<var>bar</var>}baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<var>bar</var>}baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<var>bar</var>}baz" queryCommandValue("stylewithcss") before
@@ -849,7 +849,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<var>bar</var>}baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<var>bar</var>}baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "foo{<var>bar</var>}baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<var><span style=\"font-style:normal\">bar</span></var>baz" but got "foo<var style=\"font-style:normal\">bar</var>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<var><span style=\\"font-style:normal\\">bar</span></var>baz" but got "foo<var style=\\"font-style:normal\\">bar</var>baz"
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<var>bar</var>}baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<var>bar</var>}baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<var>bar</var>}baz" queryCommandValue("stylewithcss") before
@@ -1012,7 +1012,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<i>b[a]r</i>baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<i>b[a]r</i>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo<i>b[a]r</i>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"font-style:italic\">b</span>a<span style=\"font-style:italic\">r</span>baz" but got "foo<i>b</i>a<i>r</i>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"font-style:italic\\">b</span>a<span style=\\"font-style:italic\\">r</span>baz" but got "foo<i>b</i>a<i>r</i>baz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<i>b[a]r</i>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<i>b[a]r</i>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<i>b[a]r</i>baz" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/italic_1001-2000-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/italic_1001-2000-expected.txt
index 3083679..e59d46d4 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/italic_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/italic_1001-2000-expected.txt
@@ -119,7 +119,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<address>bar</address>baz]": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<address>bar</address>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo[<address>bar</address>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<address>bar</address><span style=\"font-style:italic\">baz</span>" but got "foo<address><span style=\"font-style:normal\">bar</span></address>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<address>bar</address><span style=\\"font-style:italic\\">baz</span>" but got "foo<address><span style=\\"font-style:normal\\">bar</span></address>baz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<address>bar</address>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<address>bar</address>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<address>bar</address>baz]" queryCommandValue("stylewithcss") before
@@ -141,7 +141,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "foo[<address>bar</address>baz]": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "foo[<address>bar</address>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "foo[<address>bar</address>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<address>bar</address><i>baz</i>" but got "foo<address><span style=\"font-style:normal\">bar</span></address>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<address>bar</address><i>baz</i>" but got "foo<address><span style=\\"font-style:normal\\">bar</span></address>baz"
 [PASS] [["stylewithcss","false"],["italic",""]] "foo[<address>bar</address>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo[<address>bar</address>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo[<address>bar</address>baz]" queryCommandValue("stylewithcss") before
@@ -163,7 +163,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<cite>bar</cite>baz]": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<cite>bar</cite>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo[<cite>bar</cite>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<cite>bar</cite><span style=\"font-style:italic\">baz</span>" but got "foo<span style=\"font-style:normal\"><cite>bar</cite>baz</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<cite>bar</cite><span style=\\"font-style:italic\\">baz</span>" but got "foo<span style=\\"font-style:normal\\"><cite>bar</cite>baz</span>"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<cite>bar</cite>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<cite>bar</cite>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<cite>bar</cite>baz]" queryCommandValue("stylewithcss") before
@@ -184,7 +184,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "foo[<cite>bar</cite>baz]": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "foo[<cite>bar</cite>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "foo[<cite>bar</cite>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<cite>bar</cite><i>baz</i>" but got "foo<span style=\"font-style:normal\"><cite>bar</cite>baz</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<cite>bar</cite><i>baz</i>" but got "foo<span style=\\"font-style:normal\\"><cite>bar</cite>baz</span>"
 [PASS] [["stylewithcss","false"],["italic",""]] "foo[<cite>bar</cite>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo[<cite>bar</cite>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo[<cite>bar</cite>baz]" queryCommandValue("stylewithcss") before
@@ -205,7 +205,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<dfn>bar</dfn>baz]": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<dfn>bar</dfn>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo[<dfn>bar</dfn>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<dfn>bar</dfn><span style=\"font-style:italic\">baz</span>" but got "foo<span style=\"font-style:normal\"><dfn>bar</dfn>baz</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<dfn>bar</dfn><span style=\\"font-style:italic\\">baz</span>" but got "foo<span style=\\"font-style:normal\\"><dfn>bar</dfn>baz</span>"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<dfn>bar</dfn>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<dfn>bar</dfn>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<dfn>bar</dfn>baz]" queryCommandValue("stylewithcss") before
@@ -226,7 +226,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "foo[<dfn>bar</dfn>baz]": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "foo[<dfn>bar</dfn>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "foo[<dfn>bar</dfn>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<dfn>bar</dfn><i>baz</i>" but got "foo<span style=\"font-style:normal\"><dfn>bar</dfn>baz</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<dfn>bar</dfn><i>baz</i>" but got "foo<span style=\\"font-style:normal\\"><dfn>bar</dfn>baz</span>"
 [PASS] [["stylewithcss","false"],["italic",""]] "foo[<dfn>bar</dfn>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo[<dfn>bar</dfn>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo[<dfn>bar</dfn>baz]" queryCommandValue("stylewithcss") before
@@ -247,7 +247,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<em>bar</em>baz]": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<em>bar</em>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo[<em>bar</em>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"font-style:italic\">barbaz</span>" but got "foobarbaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"font-style:italic\\">barbaz</span>" but got "foobarbaz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<em>bar</em>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<em>bar</em>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<em>bar</em>baz]" queryCommandValue("stylewithcss") before
@@ -291,7 +291,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<i>bar</i>baz]": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<i>bar</i>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo[<i>bar</i>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"font-style:italic\">barbaz</span>" but got "foobarbaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"font-style:italic\\">barbaz</span>" but got "foobarbaz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<i>bar</i>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<i>bar</i>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<i>bar</i>baz]" queryCommandValue("stylewithcss") before
@@ -335,7 +335,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<var>bar</var>baz]": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<var>bar</var>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo[<var>bar</var>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<var>bar</var><span style=\"font-style:italic\">baz</span>" but got "foo<span style=\"font-style:normal\"><var>bar</var>baz</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<var>bar</var><span style=\\"font-style:italic\\">baz</span>" but got "foo<span style=\\"font-style:normal\\"><var>bar</var>baz</span>"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<var>bar</var>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<var>bar</var>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<var>bar</var>baz]" queryCommandValue("stylewithcss") before
@@ -356,7 +356,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "foo[<var>bar</var>baz]": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "foo[<var>bar</var>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "foo[<var>bar</var>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<var>bar</var><i>baz</i>" but got "foo<span style=\"font-style:normal\"><var>bar</var>baz</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<var>bar</var><i>baz</i>" but got "foo<span style=\\"font-style:normal\\"><var>bar</var>baz</span>"
 [PASS] [["stylewithcss","false"],["italic",""]] "foo[<var>bar</var>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo[<var>bar</var>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo[<var>bar</var>baz]" queryCommandValue("stylewithcss") before
@@ -601,119 +601,119 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "[foo<var>bar</var>]baz" queryCommandState("italic") after
 [FAIL] [["stylewithcss","false"],["italic",""]] "[foo<var>bar</var>]baz" queryCommandValue("italic") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz": execCommand("italic", false, "") return value
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandIndeterm("italic") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandState("italic") before
-[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandValue("italic") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz": execCommand("italic", false, "") return value
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandIndeterm("italic") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandState("italic") before
+[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandValue("italic") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandIndeterm("italic") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandState("italic") after
-[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandValue("italic") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandIndeterm("italic") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandState("italic") after
+[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandValue("italic") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz": execCommand("italic", false, "") return value
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandIndeterm("italic") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandState("italic") before
-[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandValue("italic") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz": execCommand("italic", false, "") return value
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandIndeterm("italic") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandState("italic") before
+[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandValue("italic") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandIndeterm("italic") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandState("italic") after
-[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandValue("italic") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandIndeterm("italic") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandState("italic") after
+[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandValue("italic") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz": execCommand("italic", false, "") return value
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandIndeterm("italic") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandState("italic") before
-[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandValue("italic") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz": execCommand("italic", false, "") return value
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandIndeterm("italic") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandState("italic") before
+[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandValue("italic") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandIndeterm("italic") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandState("italic") after
-[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandValue("italic") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandIndeterm("italic") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandState("italic") after
+[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandValue("italic") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz": execCommand("italic", false, "") return value
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandIndeterm("italic") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandState("italic") before
-[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandValue("italic") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz": execCommand("italic", false, "") return value
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandIndeterm("italic") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandState("italic") before
+[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandValue("italic") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandIndeterm("italic") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandState("italic") after
-[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandValue("italic") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandIndeterm("italic") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandState("italic") after
+[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandValue("italic") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz": execCommand("italic", false, "") return value
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandIndeterm("italic") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandState("italic") before
-[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandValue("italic") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz": execCommand("italic", false, "") return value
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandIndeterm("italic") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandState("italic") before
+[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandValue("italic") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandIndeterm("italic") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandState("italic") after
-[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandValue("italic") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandIndeterm("italic") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandState("italic") after
+[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandValue("italic") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz": execCommand("italic", false, "") return value
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandIndeterm("italic") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandState("italic") before
-[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandValue("italic") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz": execCommand("italic", false, "") return value
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandIndeterm("italic") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandState("italic") before
+[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandValue("italic") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandIndeterm("italic") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandState("italic") after
-[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandValue("italic") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandIndeterm("italic") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandState("italic") after
+[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandValue("italic") after
   assert_equals: Wrong result returned expected "" but got "false"
 [PASS] [["stylewithcss","true"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p><span style=\"font-style:italic\">baz</span></p>" but got "<p style=\"\">foo</p><p style=\"\">bar</p><p style=\"font-style:italic\">baz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p><span style=\\"font-style:italic\\">baz</span></p>" but got "<p style=\\"\\">foo</p><p style=\\"\\">bar</p><p style=\\"font-style:italic\\">baz</p>"
 [PASS] [["stylewithcss","true"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>" queryCommandValue("stylewithcss") before
@@ -732,7 +732,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p><i>baz</i></p>" but got "<p style=\"\">foo</p><p style=\"\">bar</p><p style=\"font-style:italic\">baz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p><i>baz</i></p>" but got "<p style=\\"\\">foo</p><p style=\\"\\">bar</p><p style=\\"font-style:italic\\">baz</p>"
 [PASS] [["stylewithcss","false"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>" queryCommandValue("stylewithcss") before
@@ -751,7 +751,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"font-style:italic\">foo</span><b>bar</b></p><p><span style=\"font-style:italic\">baz</span></p>" but got "<p style=\"\"><span style=\"font-style:italic\">foo</span><b style=\"\">bar</b></p><p style=\"font-style:italic\">baz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"font-style:italic\\">foo</span><b>bar</b></p><p><span style=\\"font-style:italic\\">baz</span></p>" but got "<p style=\\"\\"><span style=\\"font-style:italic\\">foo</span><b style=\\"\\">bar</b></p><p style=\\"font-style:italic\\">baz</p>"
 [PASS] [["stylewithcss","true"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>" queryCommandValue("stylewithcss") before
@@ -770,7 +770,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><i>foo</i><b>bar</b></p><p><i>baz</i></p>" but got "<p style=\"\"><i>foo</i><b style=\"\">bar</b></p><p style=\"font-style:italic\">baz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><i>foo</i><b>bar</b></p><p><i>baz</i></p>" but got "<p style=\\"\\"><i>foo</i><b style=\\"\\">bar</b></p><p style=\\"font-style:italic\\">baz</p>"
 [PASS] [["stylewithcss","false"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>" queryCommandValue("stylewithcss") before
@@ -953,7 +953,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<i>b]ar</i>baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<i>b]ar</i>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo[<i>b]ar</i>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foob<span style=\"font-style:italic\">ar</span>baz" but got "foob<i>ar</i>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foob<span style=\\"font-style:italic\\">ar</span>baz" but got "foob<i>ar</i>baz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<i>b]ar</i>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<i>b]ar</i>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<i>b]ar</i>baz" queryCommandValue("stylewithcss") before
@@ -990,7 +990,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<i>ba[r</i>]baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<i>ba[r</i>]baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo<i>ba[r</i>]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"font-style:italic\">ba</span>rbaz" but got "foo<i>ba</i>rbaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"font-style:italic\\">ba</span>rbaz" but got "foo<i>ba</i>rbaz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<i>ba[r</i>]baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<i>ba[r</i>]baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<i>ba[r</i>]baz" queryCommandValue("stylewithcss") before
@@ -1134,7 +1134,7 @@
 [PASS] [["italic",""]] "fo[o<span style=font-style:italic>b]ar</span>baz": execCommand("italic", false, "") return value
 [PASS] [["italic",""]] "fo[o<span style=font-style:italic>b]ar</span>baz" checks for modifications to non-editable content
 [FAIL] [["italic",""]] "fo[o<span style=font-style:italic>b]ar</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\"font-style:italic\">obar</span>baz" but got "fo<i>ob</i><span style=\"font-style:italic\">ar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\\"font-style:italic\\">obar</span>baz" but got "fo<i>ob</i><span style=\\"font-style:italic\\">ar</span>baz"
 [FAIL] [["italic",""]] "fo[o<span style=font-style:italic>b]ar</span>baz" queryCommandIndeterm("italic") before
   assert_equals: Wrong result returned expected true but got false
 [PASS] [["italic",""]] "fo[o<span style=font-style:italic>b]ar</span>baz" queryCommandState("italic") before
@@ -1148,7 +1148,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\"font-style:italic\">o</span><span style=\"font-style:oblique\"><span style=\"font-style:italic\">b</span>ar</span>baz" but got "fo<span style=\"font-style:italic\">ob</span><span style=\"font-style:oblique\">ar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\\"font-style:italic\\">o</span><span style=\\"font-style:oblique\\"><span style=\\"font-style:italic\\">b</span>ar</span>baz" but got "fo<span style=\\"font-style:italic\\">ob</span><span style=\\"font-style:oblique\\">ar</span>baz"
 [PASS] [["stylewithcss","true"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz" queryCommandValue("stylewithcss") before
@@ -1168,7 +1168,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<i>o</i><span style=\"font-style:oblique\"><i>b</i>ar</span>baz" but got "fo<i>ob</i><span style=\"font-style:oblique\">ar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<i>o</i><span style=\\"font-style:oblique\\"><i>b</i>ar</span>baz" but got "fo<i>ob</i><span style=\\"font-style:oblique\\">ar</span>baz"
 [PASS] [["stylewithcss","false"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz" queryCommandValue("stylewithcss") before
@@ -1206,7 +1206,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "<span style=font-style:italic>fo[o</span><span style=font-style:oblique>b]ar</span>": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "<span style=font-style:italic>fo[o</span><span style=font-style:oblique>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "<span style=font-style:italic>fo[o</span><span style=font-style:oblique>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<i>fo</i>ob<span style=\"font-style:oblique\">ar</span>" but got "<span style=\"font-style:italic\">fo</span>ob<span style=\"font-style:oblique\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<i>fo</i>ob<span style=\\"font-style:oblique\\">ar</span>" but got "<span style=\\"font-style:italic\\">fo</span>ob<span style=\\"font-style:oblique\\">ar</span>"
 [PASS] [["stylewithcss","false"],["italic",""]] "<span style=font-style:italic>fo[o</span><span style=font-style:oblique>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "<span style=font-style:italic>fo[o</span><span style=font-style:oblique>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "<span style=font-style:italic>fo[o</span><span style=font-style:oblique>b]ar</span>" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_1001-2000-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_1001-2000-expected.txt
index fa54f0d9..a93775a 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_1001-2000-expected.txt
@@ -3,7 +3,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p>foo</p><p>bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p>foo</p><p>bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("stylewithcss") before
@@ -32,7 +32,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -60,7 +60,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -86,7 +86,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -112,7 +112,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -138,7 +138,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -164,7 +164,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -190,7 +190,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -216,7 +216,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -242,7 +242,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:center\">foo</div></td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -268,7 +268,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:center\">foo</div></td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -294,7 +294,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:center\">foo</div></td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -320,7 +320,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:center\">foo</div></td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -346,7 +346,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -372,7 +372,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -398,7 +398,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -424,7 +424,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -450,7 +450,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -476,7 +476,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -502,7 +502,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -528,7 +528,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -554,7 +554,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -580,7 +580,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -606,7 +606,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -632,7 +632,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -658,7 +658,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -684,7 +684,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -710,7 +710,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -736,7 +736,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -762,7 +762,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -788,7 +788,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -814,7 +814,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -840,7 +840,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -866,7 +866,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td><div style=\"text-align:center\">foo</div></td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -892,7 +892,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td><div style=\"text-align:center\">foo</div></td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -918,7 +918,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td><div style=\"text-align:center\">foo</div></td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -944,7 +944,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td><div style=\"text-align:center\">foo</div></td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -970,7 +970,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -996,7 +996,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1022,7 +1022,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1048,7 +1048,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1074,7 +1074,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1100,7 +1100,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1126,7 +1126,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_2001-3000-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_2001-3000-expected.txt
index fd56290..d050a967e 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_2001-3000-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_2001-3000-expected.txt
@@ -19,7 +19,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -46,7 +46,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -72,7 +72,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -98,7 +98,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -124,7 +124,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -183,7 +183,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -209,7 +209,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -235,7 +235,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -261,7 +261,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -287,7 +287,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -314,7 +314,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -341,7 +341,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -368,7 +368,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -395,7 +395,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -422,7 +422,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -449,7 +449,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -476,7 +476,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -536,7 +536,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -562,7 +562,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -588,7 +588,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -614,7 +614,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -640,7 +640,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -667,7 +667,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -694,7 +694,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -721,7 +721,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -748,7 +748,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -775,7 +775,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -802,7 +802,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -829,7 +829,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -866,7 +866,7 @@
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p>foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p>foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -885,7 +885,7 @@
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p>foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p>foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -927,7 +927,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -953,7 +953,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -979,7 +979,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1005,7 +1005,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1030,7 +1030,7 @@
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:center\">foo</p><p style=\"text-align:center\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p style=\\"text-align:center\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1049,7 +1049,7 @@
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:center\">foo</p><p style=\"text-align:center\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p style=\\"text-align:center\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1069,7 +1069,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:justify\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1095,7 +1095,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:justify\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1121,7 +1121,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:justify\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1147,7 +1147,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:justify\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_4001-5000-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_4001-5000-expected.txt
index 0fb7376..b2eacf9 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_4001-5000-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_4001-5000-expected.txt
@@ -24,7 +24,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p>foo</p></div><p style=\"text-align:center\">bar</p><div style=\"text-align:center\"><p>baz</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p>foo</p></div><p style=\\"text-align:center\\">bar</p><div style=\\"text-align:center\\"><p>baz</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -51,7 +51,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p>foo</p></div><p style=\"text-align:center\">bar</p><div style=\"text-align:center\"><p>baz</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p>foo</p></div><p style=\\"text-align:center\\">bar</p><div style=\\"text-align:center\\"><p>baz</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandValue("stylewithcss") before
@@ -77,7 +77,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"center\">foo</p><div style=\"text-align:center\"><p>bar</p></div><p>extra</p>" but got "<p align=\"center\">foo</p><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -103,7 +103,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"center\">foo</p><div style=\"text-align:center\"><p>bar</p></div><p>extra</p>" but got "<p align=\"center\">foo</p><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -129,7 +129,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"center\">foo</p><div style=\"text-align:center\"><p>bar</p></div><p>extra</p>" but got "<p align=\"center\">foo</p><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -155,7 +155,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"center\">foo</p><div style=\"text-align:center\"><p>bar</p></div><p>extra</p>" but got "<p align=\"center\">foo</p><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -181,7 +181,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p></div><p align=\"center\">bar</p><p>extra</p>" but got "<p style=\"text-align:center\">foo</p><p align=\"center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p align=\\"center\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><p align=\\"center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("stylewithcss") before
@@ -207,7 +207,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p></div><p align=\"center\">bar</p><p>extra</p>" but got "<p style=\"text-align:center\">foo</p><p align=\"center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p align=\\"center\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><p align=\\"center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("stylewithcss") before
@@ -233,7 +233,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p></div><p align=\"center\">bar</p><p>extra</p>" but got "<p style=\"text-align:center\">foo</p><p align=\"center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p align=\\"center\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><p align=\\"center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("stylewithcss") before
@@ -259,7 +259,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p></div><p align=\"center\">bar</p><p>extra</p>" but got "<p style=\"text-align:center\">foo</p><p align=\"center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p align=\\"center\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><p align=\\"center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("stylewithcss") before
@@ -285,7 +285,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"center\">foo</p><div style=\"text-align:center\"><p>bar</p></div><p align=\"center\">baz</p><p>extra</p>" but got "<p align=\"center\">foo</p><p style=\"text-align:center\">bar</p><p align=\"center\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p align=\\"center\\">baz</p><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p align=\\"center\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -311,7 +311,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"center\">foo</p><div style=\"text-align:center\"><p>bar</p></div><p align=\"center\">baz</p><p>extra</p>" but got "<p align=\"center\">foo</p><p style=\"text-align:center\">bar</p><p align=\"center\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p align=\\"center\\">baz</p><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p align=\\"center\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -337,7 +337,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"center\">foo</p><div style=\"text-align:center\"><p>bar</p></div><p align=\"center\">baz</p><p>extra</p>" but got "<p align=\"center\">foo</p><p style=\"text-align:center\">bar</p><p align=\"center\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p align=\\"center\\">baz</p><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p align=\\"center\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -363,7 +363,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"center\">foo</p><div style=\"text-align:center\"><p>bar</p></div><p align=\"center\">baz</p><p>extra</p>" but got "<p align=\"center\">foo</p><p style=\"text-align:center\">bar</p><p align=\"center\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p align=\\"center\\">baz</p><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p align=\\"center\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -389,7 +389,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\"text-align:center\">bar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\\"text-align:center\\">bar</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -417,7 +417,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\"text-align:center\">bar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\\"text-align:center\\">bar</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -445,7 +445,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -473,7 +473,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -501,7 +501,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\"text-align:center\">bar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\\"text-align:center\\">bar</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -529,7 +529,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\"text-align:center\">bar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\\"text-align:center\\">bar</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -557,7 +557,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -585,7 +585,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -612,7 +612,7 @@
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<div align=\"center\">foo</div><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -633,7 +633,7 @@
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<div align=\"center\">foo</div><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -654,7 +654,7 @@
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<div align=\"center\">foo</div><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -675,7 +675,7 @@
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<div align=\"center\">foo</div><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -695,7 +695,7 @@
 [PASS] [["justifycenter",""]] "<div style=text-align:center>[foo</div>bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "<div style=text-align:center>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "<div style=text-align:center>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<div style=\"text-align:center\">foo</div><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [FAIL] [["justifycenter",""]] "<div style=text-align:center>[foo</div>bar]<p>extra" queryCommandIndeterm("justifycenter") before
   assert_equals: Wrong result returned expected true but got false
 [FAIL] [["justifycenter",""]] "<div style=text-align:center>[foo</div>bar]<p>extra" queryCommandState("justifycenter") before
@@ -709,7 +709,7 @@
 [PASS] [["justifycenter",""]] "<div style=text-align:center>fo[o</div>b]ar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "<div style=text-align:center>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "<div style=text-align:center>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<div style=\"text-align:center\">foo</div><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [FAIL] [["justifycenter",""]] "<div style=text-align:center>fo[o</div>b]ar<p>extra" queryCommandIndeterm("justifycenter") before
   assert_equals: Wrong result returned expected true but got false
 [FAIL] [["justifycenter",""]] "<div style=text-align:center>fo[o</div>b]ar<p>extra" queryCommandState("justifycenter") before
@@ -724,7 +724,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div><p>extra</p>" but got "<span style=\"text-align:center\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:center\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -744,7 +744,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div><p>extra</p>" but got "<span style=\"text-align:center\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:center\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -764,7 +764,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div><p>extra</p>" but got "<span style=\"text-align:center\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:center\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -784,7 +784,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div><p>extra</p>" but got "<span style=\"text-align:center\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:center\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -805,7 +805,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:center\">baz</div><p>extra</p>" but got "<div style=\"text-align:center\">foo<div style=\"text-align:center\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:center\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo<div style=\\"text-align:center\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -831,7 +831,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:center\">baz</div><p>extra</p>" but got "<div style=\"text-align:center\">foo<div style=\"text-align:center\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:center\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo<div style=\\"text-align:center\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -857,7 +857,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:center\">baz</div><p>extra</p>" but got "<div style=\"text-align:center\">foo<div style=\"text-align:center\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:center\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo<div style=\\"text-align:center\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -883,7 +883,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:center\">baz</div><p>extra</p>" but got "<div style=\"text-align:center\">foo<div style=\"text-align:center\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:center\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo<div style=\\"text-align:center\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -908,7 +908,7 @@
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p></div><p>extra</p>" but got "<div align=\"nonsense\"><p style=\"text-align:center\">foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:center\\">foo</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -927,7 +927,7 @@
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p></div><p>extra</p>" but got "<div align=\"nonsense\"><p style=\"text-align:center\">foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:center\\">foo</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -945,7 +945,7 @@
 [PASS] [["justifycenter",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p></div><p>extra</p>" but got "<div style=\"text-align:inherit\"><p style=\"text-align:center\">foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p>extra</p>" but got "<div style=\\"text-align:inherit\\"><p style=\\"text-align:center\\">foo</p></div><p>extra</p>"
 [PASS] [["justifycenter",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandIndeterm("justifycenter") before
 [PASS] [["justifycenter",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandState("justifycenter") before
 [FAIL] [["justifycenter",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifycenter") before
@@ -959,7 +959,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"right\"><p style=\"text-align:center\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"right\\"><p style=\\"text-align:center\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -985,7 +985,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"right\"><p style=\"text-align:center\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"right\\"><p style=\\"text-align:center\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -1011,7 +1011,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"right\"><p style=\"text-align:center\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"right\\"><p style=\\"text-align:center\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -1037,7 +1037,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"right\"><p style=\"text-align:center\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"right\\"><p style=\\"text-align:center\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -1063,7 +1063,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("stylewithcss") before
@@ -1089,7 +1089,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("stylewithcss") before
@@ -1115,7 +1115,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("stylewithcss") before
@@ -1141,7 +1141,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("stylewithcss") before
@@ -1167,7 +1167,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div>" but got "<div align=\"left\"><div align=\"center\">foo</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_5001-6000-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_5001-6000-expected.txt
index ebf03310..54754c6 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_5001-6000-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_5001-6000-expected.txt
@@ -14,7 +14,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div>" but got "<div align=\"left\"><div align=\"center\">foo</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("stylewithcss") before
@@ -40,7 +40,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div>" but got "<div align=\"left\"><div align=\"center\">foo</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("stylewithcss") before
@@ -66,7 +66,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div>" but got "<div align=\"left\"><div align=\"center\">foo</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("stylewithcss") before
@@ -92,7 +92,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div>bar</div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("stylewithcss") before
@@ -119,7 +119,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div>bar</div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("stylewithcss") before
@@ -146,7 +146,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div>bar</div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("stylewithcss") before
@@ -173,7 +173,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div>bar</div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("stylewithcss") before
@@ -200,7 +200,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div>" but got "<div align=\"left\"><div align=\"center\">foo</div><div style=\"text-align:center\">bar</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><div style=\\"text-align:center\\">bar</div></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("stylewithcss") before
@@ -228,7 +228,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div>" but got "<div align=\"left\"><div align=\"center\">foo</div><div style=\"text-align:center\">bar</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><div style=\\"text-align:center\\">bar</div></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("stylewithcss") before
@@ -256,7 +256,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div>" but got "<div align=\"left\"><div align=\"center\">foo</div><p style=\"text-align:center\">bar</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("stylewithcss") before
@@ -284,7 +284,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div>" but got "<div align=\"left\"><div align=\"center\">foo</div><p style=\"text-align:center\">bar</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("stylewithcss") before
@@ -312,7 +312,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br><img src=\"/img/lion.svg\"></div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div><img src=\"/img/lion.svg\"></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><img src=\\"/img/lion.svg\\"></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("stylewithcss") before
@@ -339,7 +339,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br><img src=\"/img/lion.svg\"></div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div><img src=\"/img/lion.svg\"></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><img src=\\"/img/lion.svg\\"></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("stylewithcss") before
@@ -366,7 +366,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br><img src=\"/img/lion.svg\"></div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div><img src=\"/img/lion.svg\"></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><img src=\\"/img/lion.svg\\"></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("stylewithcss") before
@@ -393,7 +393,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br><img src=\"/img/lion.svg\"></div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div><img src=\"/img/lion.svg\"></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><img src=\\"/img/lion.svg\\"></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("stylewithcss") before
@@ -420,7 +420,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br><img src=\"/img/lion.svg\"></div>" but got "<div align=\"left\"><div align=\"center\">foo</div><div style=\"text-align:center\"><img src=\"/img/lion.svg\"></div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><div style=\\"text-align:center\\"><img src=\\"/img/lion.svg\\"></div></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("stylewithcss") before
@@ -448,7 +448,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br><img src=\"/img/lion.svg\"></div>" but got "<div align=\"left\"><div align=\"center\">foo</div><div style=\"text-align:center\"><img src=\"/img/lion.svg\"></div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><div style=\\"text-align:center\\"><img src=\\"/img/lion.svg\\"></div></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("stylewithcss") before
@@ -476,7 +476,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br><img src=\"/img/lion.svg\"></div>" but got "<div align=\"left\"><div align=\"center\">foo</div><p style=\"text-align:center\"><img src=\"/img/lion.svg\"></p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><p style=\\"text-align:center\\"><img src=\\"/img/lion.svg\\"></p></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("stylewithcss") before
@@ -504,7 +504,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br><img src=\"/img/lion.svg\"></div>" but got "<div align=\"left\"><div align=\"center\">foo</div><p style=\"text-align:center\"><img src=\"/img/lion.svg\"></p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><p style=\\"text-align:center\\"><img src=\\"/img/lion.svg\\"></p></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("stylewithcss") before
@@ -532,7 +532,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<!-- bar --></div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div><!-- bar --></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><!-- bar --></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("stylewithcss") before
@@ -558,7 +558,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<!-- bar --></div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div><!-- bar --></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><!-- bar --></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("stylewithcss") before
@@ -584,7 +584,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<!-- bar --></div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div><!-- bar --></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><!-- bar --></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("stylewithcss") before
@@ -610,7 +610,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<!-- bar --></div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div><!-- bar --></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><!-- bar --></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("stylewithcss") before
@@ -636,7 +636,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<!-- bar --></div>" but got "<div align=\"left\"><div align=\"center\">foo</div><!-- bar --></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><!-- bar --></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("stylewithcss") before
@@ -662,7 +662,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<!-- bar --></div>" but got "<div align=\"left\"><div align=\"center\">foo</div><!-- bar --></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><!-- bar --></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("stylewithcss") before
@@ -688,7 +688,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<!-- bar --></div>" but got "<div align=\"left\"><div align=\"center\">foo</div><!-- bar --></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><!-- bar --></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("stylewithcss") before
@@ -714,7 +714,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<!-- bar --></div>" but got "<div align=\"left\"><div align=\"center\">foo</div><!-- bar --></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><!-- bar --></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("stylewithcss") before
@@ -761,7 +761,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div dir=\"rtl\">foo</div></div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:center\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:center\\">foo</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -780,7 +780,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div dir=\"rtl\">foo</div></div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:center\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:center\\">foo</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -799,7 +799,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div dir=\"rtl\">foo</div></div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:center\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:center\\">foo</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -818,7 +818,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div dir=\"rtl\">foo</div></div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:center\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:center\\">foo</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -836,7 +836,7 @@
 [PASS] [["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p> <p>bar</p></div>" but got "<div style=\"text-align:center\"><p>foo</p></div> <p style=\"text-align:center\">bar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> <p>bar</p></div>" but got "<div style=\\"text-align:center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p>"
 [PASS] [["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]" queryCommandIndeterm("justifycenter") before
 [PASS] [["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]" queryCommandState("justifycenter") before
 [FAIL] [["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]" queryCommandValue("justifycenter") before
@@ -848,7 +848,7 @@
 [PASS] [["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><p>foo</p> <p>bar</p></div>" but got "<div align=\"center\"><p>foo</p></div> <p style=\"text-align:center\">bar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><p>foo</p> <p>bar</p></div>" but got "<div align=\\"center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p>"
 [PASS] [["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]" queryCommandIndeterm("justifycenter") before
 [PASS] [["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]" queryCommandState("justifycenter") before
 [FAIL] [["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]" queryCommandValue("justifycenter") before
@@ -862,7 +862,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\"text-align:center\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\"text-align:center\">bar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("stylewithcss") before
@@ -888,7 +888,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\"text-align:center\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\"text-align:center\">bar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("stylewithcss") before
@@ -914,7 +914,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\"text-align:center\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\"text-align:center\">bar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("stylewithcss") before
@@ -940,7 +940,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\"text-align:center\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\"text-align:center\">bar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("stylewithcss") before
@@ -964,7 +964,7 @@
 [PASS] [["justifycenter",""]] "<p>[foo]</p> <div style=text-align:center><p>bar</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "<p>[foo]</p> <div style=text-align:center><p>bar</div>" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "<p>[foo]</p> <div style=text-align:center><p>bar</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p> <p>bar</p></div>" but got "<p style=\"text-align:center\">foo</p> <div style=\"text-align:center\"><p>bar</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:center\\">foo</p> <div style=\\"text-align:center\\"><p>bar</p></div>"
 [PASS] [["justifycenter",""]] "<p>[foo]</p> <div style=text-align:center><p>bar</div>" queryCommandIndeterm("justifycenter") before
 [PASS] [["justifycenter",""]] "<p>[foo]</p> <div style=text-align:center><p>bar</div>" queryCommandState("justifycenter") before
 [FAIL] [["justifycenter",""]] "<p>[foo]</p> <div style=text-align:center><p>bar</div>" queryCommandValue("justifycenter") before
@@ -976,7 +976,7 @@
 [PASS] [["justifycenter",""]] "<p>[foo]</p> <div align=center><p>bar</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "<p>[foo]</p> <div align=center><p>bar</div>" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "<p>[foo]</p> <div align=center><p>bar</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><p>foo</p> <p>bar</p></div>" but got "<p style=\"text-align:center\">foo</p> <div align=\"center\"><p>bar</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:center\\">foo</p> <div align=\\"center\\"><p>bar</p></div>"
 [PASS] [["justifycenter",""]] "<p>[foo]</p> <div align=center><p>bar</div>" queryCommandIndeterm("justifycenter") before
 [PASS] [["justifycenter",""]] "<p>[foo]</p> <div align=center><p>bar</div>" queryCommandState("justifycenter") before
 [FAIL] [["justifycenter",""]] "<p>[foo]</p> <div align=center><p>bar</div>" queryCommandValue("justifycenter") before
@@ -990,7 +990,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\"text-align:center\">foo</p> <center><p>bar</p></center>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\\"text-align:center\\">foo</p> <center><p>bar</p></center>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("stylewithcss") before
@@ -1016,7 +1016,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\"text-align:center\">foo</p> <center><p>bar</p></center>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\\"text-align:center\\">foo</p> <center><p>bar</p></center>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("stylewithcss") before
@@ -1042,7 +1042,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\"text-align:center\">foo</p> <center><p>bar</p></center>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\\"text-align:center\\">foo</p> <center><p>bar</p></center>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("stylewithcss") before
@@ -1068,7 +1068,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\"text-align:center\">foo</p> <center><p>bar</p></center>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\\"text-align:center\\">foo</p> <center><p>bar</p></center>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("stylewithcss") before
@@ -1094,7 +1094,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\"text-align:center\"><p>foo</p></div> <p style=\"text-align:center\">bar</p> <div style=\"text-align:center\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p> <div style=\\"text-align:center\\"><p>baz</p></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandValue("stylewithcss") before
@@ -1120,7 +1120,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\"text-align:center\"><p>foo</p></div> <p style=\"text-align:center\">bar</p> <div style=\"text-align:center\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p> <div style=\\"text-align:center\\"><p>baz</p></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandValue("stylewithcss") before
@@ -1146,7 +1146,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\"text-align:center\"><p>foo</p></div> <p style=\"text-align:center\">bar</p> <div style=\"text-align:center\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p> <div style=\\"text-align:center\\"><p>baz</p></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_1001-2000-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_1001-2000-expected.txt
index f535a1b..240a9779 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_1001-2000-expected.txt
@@ -22,7 +22,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\"text-align:justify\">foo</p><p style=\"text-align:justify\">bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -50,7 +50,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\"text-align:justify\">foo</p><p style=\"text-align:justify\">bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("stylewithcss") before
@@ -76,7 +76,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\"text-align:justify\">foo</p><p style=\"text-align:justify\">bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("stylewithcss") before
@@ -102,7 +102,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\"text-align:justify\">foo</p><p style=\"text-align:justify\">bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("stylewithcss") before
@@ -128,7 +128,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -154,7 +154,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -180,7 +180,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -206,7 +206,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -232,7 +232,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -258,7 +258,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -284,7 +284,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -310,7 +310,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -336,7 +336,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:justify\">foo</div></td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -362,7 +362,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:justify\">foo</div></td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -388,7 +388,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:justify\">foo</div></td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -414,7 +414,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:justify\">foo</div></td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -440,7 +440,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -466,7 +466,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -492,7 +492,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -518,7 +518,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -544,7 +544,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -570,7 +570,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -596,7 +596,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -622,7 +622,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -648,7 +648,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -674,7 +674,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -700,7 +700,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -726,7 +726,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -752,7 +752,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -778,7 +778,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -804,7 +804,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -830,7 +830,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -856,7 +856,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -882,7 +882,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -908,7 +908,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -934,7 +934,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -960,7 +960,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td><div style=\"text-align:justify\">foo</div></td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -986,7 +986,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td><div style=\"text-align:justify\">foo</div></td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1012,7 +1012,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td><div style=\"text-align:justify\">foo</div></td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1038,7 +1038,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td><div style=\"text-align:justify\">foo</div></td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1064,7 +1064,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1090,7 +1090,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1116,7 +1116,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_2001-3000-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_2001-3000-expected.txt
index 1fcfbf3..ef5aad4 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_2001-3000-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_2001-3000-expected.txt
@@ -7,7 +7,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -34,7 +34,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -60,7 +60,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -86,7 +86,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -112,7 +112,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -138,7 +138,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -164,7 +164,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -190,7 +190,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -216,7 +216,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -275,7 +275,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -301,7 +301,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -327,7 +327,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -353,7 +353,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -379,7 +379,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -406,7 +406,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -433,7 +433,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -460,7 +460,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -487,7 +487,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -514,7 +514,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -541,7 +541,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -568,7 +568,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -628,7 +628,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -654,7 +654,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -680,7 +680,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -706,7 +706,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -732,7 +732,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -759,7 +759,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -786,7 +786,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -813,7 +813,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -840,7 +840,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -867,7 +867,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -894,7 +894,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -921,7 +921,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -948,7 +948,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -974,7 +974,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1000,7 +1000,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1026,7 +1026,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1051,7 +1051,7 @@
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:justify\">foo</p><p style=\"text-align:justify\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1070,7 +1070,7 @@
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:justify\">foo</p><p style=\"text-align:justify\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1090,7 +1090,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1116,7 +1116,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1142,7 +1142,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_4001-last-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_4001-last-expected.txt
index 9d511e5..95c7e2ed 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_4001-last-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_4001-last-expected.txt
@@ -14,7 +14,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p></div><p align=\"justify\">bar</p><p>extra</p>" but got "<p style=\"text-align:justify\">foo</p><p align=\"justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p align=\\"justify\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:justify\\">foo</p><p align=\\"justify\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -41,7 +41,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p></div><p align=\"justify\">bar</p><p>extra</p>" but got "<p style=\"text-align:justify\">foo</p><p align=\"justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p align=\\"justify\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:justify\\">foo</p><p align=\\"justify\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandValue("stylewithcss") before
@@ -67,7 +67,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"justify\">foo</p><div style=\"text-align:justify\"><p>bar</p></div><p align=\"justify\">baz</p><p>extra</p>" but got "<p align=\"justify\">foo</p><p style=\"text-align:justify\">bar</p><p align=\"justify\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p align=\\"justify\\">baz</p><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p align=\\"justify\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -93,7 +93,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"justify\">foo</p><div style=\"text-align:justify\"><p>bar</p></div><p align=\"justify\">baz</p><p>extra</p>" but got "<p align=\"justify\">foo</p><p style=\"text-align:justify\">bar</p><p align=\"justify\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p align=\\"justify\\">baz</p><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p align=\\"justify\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -119,7 +119,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"justify\">foo</p><div style=\"text-align:justify\"><p>bar</p></div><p align=\"justify\">baz</p><p>extra</p>" but got "<p align=\"justify\">foo</p><p style=\"text-align:justify\">bar</p><p align=\"justify\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p align=\\"justify\\">baz</p><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p align=\\"justify\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -145,7 +145,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"justify\">foo</p><div style=\"text-align:justify\"><p>bar</p></div><p align=\"justify\">baz</p><p>extra</p>" but got "<p align=\"justify\">foo</p><p style=\"text-align:justify\">bar</p><p align=\"justify\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p align=\\"justify\\">baz</p><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p align=\\"justify\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -170,7 +170,7 @@
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<br>bar</div><p>extra</p>" but got "<div align=\"justify\">foo</div><p style=\"text-align:justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -191,7 +191,7 @@
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<br>bar</div><p>extra</p>" but got "<div align=\"justify\">foo</div><p style=\"text-align:justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -212,7 +212,7 @@
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<br>bar</div><p>extra</p>" but got "<div align=\"justify\">foo</div><p style=\"text-align:justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -233,7 +233,7 @@
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<br>bar</div><p>extra</p>" but got "<div align=\"justify\">foo</div><p style=\"text-align:justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -253,7 +253,7 @@
 [PASS] [["justifyfull",""]] "<div style=text-align:justify>[foo</div>bar]<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "<div style=text-align:justify>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "<div style=text-align:justify>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<br>bar</div><p>extra</p>" but got "<div style=\"text-align:justify\">foo</div><p style=\"text-align:justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>"
 [FAIL] [["justifyfull",""]] "<div style=text-align:justify>[foo</div>bar]<p>extra" queryCommandIndeterm("justifyfull") before
   assert_equals: Wrong result returned expected true but got false
 [FAIL] [["justifyfull",""]] "<div style=text-align:justify>[foo</div>bar]<p>extra" queryCommandState("justifyfull") before
@@ -267,7 +267,7 @@
 [PASS] [["justifyfull",""]] "<div style=text-align:justify>fo[o</div>b]ar<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "<div style=text-align:justify>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "<div style=text-align:justify>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<br>bar</div><p>extra</p>" but got "<div style=\"text-align:justify\">foo</div><p style=\"text-align:justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>"
 [FAIL] [["justifyfull",""]] "<div style=text-align:justify>fo[o</div>b]ar<p>extra" queryCommandIndeterm("justifyfull") before
   assert_equals: Wrong result returned expected true but got false
 [FAIL] [["justifyfull",""]] "<div style=text-align:justify>fo[o</div>b]ar<p>extra" queryCommandState("justifyfull") before
@@ -282,7 +282,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo</div><p>extra</p>" but got "<span style=\"text-align:justify\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:justify\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -302,7 +302,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo</div><p>extra</p>" but got "<span style=\"text-align:justify\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:justify\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -322,7 +322,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo</div><p>extra</p>" but got "<span style=\"text-align:justify\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:justify\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -342,7 +342,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo</div><p>extra</p>" but got "<span style=\"text-align:justify\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:justify\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -363,7 +363,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:justify\">baz</div><p>extra</p>" but got "<div style=\"text-align:justify\">foo<div style=\"text-align:justify\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:justify\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo<div style=\\"text-align:justify\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -389,7 +389,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:justify\">baz</div><p>extra</p>" but got "<div style=\"text-align:justify\">foo<div style=\"text-align:justify\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:justify\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo<div style=\\"text-align:justify\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -415,7 +415,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:justify\">baz</div><p>extra</p>" but got "<div style=\"text-align:justify\">foo<div style=\"text-align:justify\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:justify\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo<div style=\\"text-align:justify\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -441,7 +441,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:justify\">baz</div><p>extra</p>" but got "<div style=\"text-align:justify\">foo<div style=\"text-align:justify\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:justify\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo<div style=\\"text-align:justify\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -466,7 +466,7 @@
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p></div><p>extra</p>" but got "<div align=\"nonsense\"><p style=\"text-align:justify\">foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:justify\\">foo</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -485,7 +485,7 @@
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p></div><p>extra</p>" but got "<div align=\"nonsense\"><p style=\"text-align:justify\">foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:justify\\">foo</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -503,7 +503,7 @@
 [PASS] [["justifyfull",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p></div><p>extra</p>" but got "<div style=\"text-align:inherit\"><p style=\"text-align:justify\">foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p>extra</p>" but got "<div style=\\"text-align:inherit\\"><p style=\\"text-align:justify\\">foo</p></div><p>extra</p>"
 [PASS] [["justifyfull",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandIndeterm("justifyfull") before
 [PASS] [["justifyfull",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandState("justifyfull") before
 [FAIL] [["justifyfull",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifyfull") before
@@ -517,7 +517,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"center\"><p style=\"text-align:justify\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:justify\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -543,7 +543,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"center\"><p style=\"text-align:justify\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:justify\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -569,7 +569,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"center\"><p style=\"text-align:justify\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:justify\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -595,7 +595,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"center\"><p style=\"text-align:justify\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:justify\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -642,7 +642,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div dir=\"rtl\">foo</div></div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:justify\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:justify\\">foo</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -661,7 +661,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div dir=\"rtl\">foo</div></div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:justify\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:justify\\">foo</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -680,7 +680,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div dir=\"rtl\">foo</div></div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:justify\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:justify\\">foo</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -699,7 +699,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div dir=\"rtl\">foo</div></div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:justify\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:justify\\">foo</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -717,7 +717,7 @@
 [PASS] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p> <p>bar</p></div>" but got "<div style=\"text-align:justify\"><p>foo</p></div> <p style=\"text-align:justify\">bar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p></div>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p>"
 [PASS] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]" queryCommandIndeterm("justifyfull") before
 [PASS] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]" queryCommandState("justifyfull") before
 [FAIL] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]" queryCommandValue("justifyfull") before
@@ -729,7 +729,7 @@
 [PASS] [["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><p>foo</p> <p>bar</p></div>" but got "<div align=\"justify\"><p>foo</p></div> <p style=\"text-align:justify\">bar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p> <p>bar</p></div>" but got "<div align=\\"justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p>"
 [PASS] [["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]" queryCommandIndeterm("justifyfull") before
 [PASS] [["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]" queryCommandState("justifyfull") before
 [FAIL] [["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]" queryCommandValue("justifyfull") before
@@ -741,7 +741,7 @@
 [PASS] [["justifyfull",""]] "<p>[foo]</p> <div style=text-align:justify><p>bar</div>": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "<p>[foo]</p> <div style=text-align:justify><p>bar</div>" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "<p>[foo]</p> <div style=text-align:justify><p>bar</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p> <p>bar</p></div>" but got "<p style=\"text-align:justify\">foo</p> <div style=\"text-align:justify\"><p>bar</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:justify\\">foo</p> <div style=\\"text-align:justify\\"><p>bar</p></div>"
 [PASS] [["justifyfull",""]] "<p>[foo]</p> <div style=text-align:justify><p>bar</div>" queryCommandIndeterm("justifyfull") before
 [PASS] [["justifyfull",""]] "<p>[foo]</p> <div style=text-align:justify><p>bar</div>" queryCommandState("justifyfull") before
 [FAIL] [["justifyfull",""]] "<p>[foo]</p> <div style=text-align:justify><p>bar</div>" queryCommandValue("justifyfull") before
@@ -753,7 +753,7 @@
 [PASS] [["justifyfull",""]] "<p>[foo]</p> <div align=justify><p>bar</div>": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "<p>[foo]</p> <div align=justify><p>bar</div>" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "<p>[foo]</p> <div align=justify><p>bar</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><p>foo</p> <p>bar</p></div>" but got "<p style=\"text-align:justify\">foo</p> <div align=\"justify\"><p>bar</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:justify\\">foo</p> <div align=\\"justify\\"><p>bar</p></div>"
 [PASS] [["justifyfull",""]] "<p>[foo]</p> <div align=justify><p>bar</div>" queryCommandIndeterm("justifyfull") before
 [PASS] [["justifyfull",""]] "<p>[foo]</p> <div align=justify><p>bar</div>" queryCommandState("justifyfull") before
 [FAIL] [["justifyfull",""]] "<p>[foo]</p> <div align=justify><p>bar</div>" queryCommandValue("justifyfull") before
@@ -767,7 +767,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\"text-align:justify\"><p>foo</p></div> <p style=\"text-align:justify\">bar</p> <div style=\"text-align:justify\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div style=\\"text-align:justify\\"><p>baz</p></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("stylewithcss") before
@@ -793,7 +793,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\"text-align:justify\"><p>foo</p></div> <p style=\"text-align:justify\">bar</p> <div style=\"text-align:justify\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div style=\\"text-align:justify\\"><p>baz</p></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("stylewithcss") before
@@ -819,7 +819,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\"text-align:justify\"><p>foo</p></div> <p style=\"text-align:justify\">bar</p> <div style=\"text-align:justify\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div style=\\"text-align:justify\\"><p>baz</p></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("stylewithcss") before
@@ -845,7 +845,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\"text-align:justify\"><p>foo</p></div> <p style=\"text-align:justify\">bar</p> <div style=\"text-align:justify\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div style=\\"text-align:justify\\"><p>baz</p></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("stylewithcss") before
@@ -870,7 +870,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\"justify\"><p>foo</p></div> <p style=\"text-align:justify\">bar</p> <div align=\"justify\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\\"justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div align=\\"justify\\"><p>baz</p></div>"
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" queryCommandValue("defaultparagraphseparator") before
@@ -889,7 +889,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\"justify\"><p>foo</p></div> <p style=\"text-align:justify\">bar</p> <div align=\"justify\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\\"justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div align=\\"justify\\"><p>baz</p></div>"
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" queryCommandValue("defaultparagraphseparator") before
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_1001-2000-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_1001-2000-expected.txt
index 34270500..668c2ca 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_1001-2000-expected.txt
@@ -22,7 +22,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\"text-align:right\">foo</p><p style=\"text-align:right\">bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -50,7 +50,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\"text-align:right\">foo</p><p style=\"text-align:right\">bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("stylewithcss") before
@@ -76,7 +76,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\"text-align:right\">foo</p><p style=\"text-align:right\">bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("stylewithcss") before
@@ -102,7 +102,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\"text-align:right\">foo</p><p style=\"text-align:right\">bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("stylewithcss") before
@@ -128,7 +128,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -154,7 +154,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -180,7 +180,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -206,7 +206,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -232,7 +232,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -258,7 +258,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -284,7 +284,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -310,7 +310,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -336,7 +336,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:right\">foo</div></td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -362,7 +362,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:right\">foo</div></td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -388,7 +388,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:right\">foo</div></td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -414,7 +414,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:right\">foo</div></td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -440,7 +440,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -466,7 +466,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -492,7 +492,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -518,7 +518,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -544,7 +544,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -570,7 +570,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -596,7 +596,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -622,7 +622,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -648,7 +648,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -674,7 +674,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -700,7 +700,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -726,7 +726,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -752,7 +752,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -778,7 +778,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -804,7 +804,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -830,7 +830,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -856,7 +856,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -882,7 +882,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -908,7 +908,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -934,7 +934,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -960,7 +960,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td><div style=\"text-align:right\">foo</div></td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -986,7 +986,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td><div style=\"text-align:right\">foo</div></td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1012,7 +1012,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td><div style=\"text-align:right\">foo</div></td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1038,7 +1038,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td><div style=\"text-align:right\">foo</div></td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1064,7 +1064,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1090,7 +1090,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1116,7 +1116,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_2001-3000-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_2001-3000-expected.txt
index 1635ea6..9e3360c 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_2001-3000-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_2001-3000-expected.txt
@@ -7,7 +7,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -34,7 +34,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -60,7 +60,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -86,7 +86,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -112,7 +112,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -138,7 +138,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -164,7 +164,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -190,7 +190,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -216,7 +216,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -275,7 +275,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -301,7 +301,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -327,7 +327,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -353,7 +353,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -379,7 +379,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -406,7 +406,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -433,7 +433,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -460,7 +460,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -487,7 +487,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -514,7 +514,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -541,7 +541,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -568,7 +568,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -628,7 +628,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -654,7 +654,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -680,7 +680,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -706,7 +706,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -732,7 +732,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -759,7 +759,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -786,7 +786,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -813,7 +813,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -840,7 +840,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -867,7 +867,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -894,7 +894,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -921,7 +921,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -948,7 +948,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -974,7 +974,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1000,7 +1000,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1026,7 +1026,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1051,7 +1051,7 @@
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:right\">foo</p><p style=\"text-align:right\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1070,7 +1070,7 @@
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:right\">foo</p><p style=\"text-align:right\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1090,7 +1090,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1116,7 +1116,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1142,7 +1142,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_4001-last-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_4001-last-expected.txt
index 6a6973a8..05986c5 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_4001-last-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_4001-last-expected.txt
@@ -14,7 +14,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p></div><p align=\"right\">bar</p><p>extra</p>" but got "<p style=\"text-align:right\">foo</p><p align=\"right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p align=\\"right\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:right\\">foo</p><p align=\\"right\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -41,7 +41,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p></div><p align=\"right\">bar</p><p>extra</p>" but got "<p style=\"text-align:right\">foo</p><p align=\"right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p align=\\"right\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:right\\">foo</p><p align=\\"right\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandValue("stylewithcss") before
@@ -67,7 +67,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"right\">foo</p><div style=\"text-align:right\"><p>bar</p></div><p align=\"right\">baz</p><p>extra</p>" but got "<p align=\"right\">foo</p><p style=\"text-align:right\">bar</p><p align=\"right\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p align=\\"right\\">baz</p><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p align=\\"right\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -93,7 +93,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"right\">foo</p><div style=\"text-align:right\"><p>bar</p></div><p align=\"right\">baz</p><p>extra</p>" but got "<p align=\"right\">foo</p><p style=\"text-align:right\">bar</p><p align=\"right\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p align=\\"right\\">baz</p><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p align=\\"right\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -119,7 +119,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"right\">foo</p><div style=\"text-align:right\"><p>bar</p></div><p align=\"right\">baz</p><p>extra</p>" but got "<p align=\"right\">foo</p><p style=\"text-align:right\">bar</p><p align=\"right\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p align=\\"right\\">baz</p><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p align=\\"right\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -145,7 +145,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"right\">foo</p><div style=\"text-align:right\"><p>bar</p></div><p align=\"right\">baz</p><p>extra</p>" but got "<p align=\"right\">foo</p><p style=\"text-align:right\">bar</p><p align=\"right\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p align=\\"right\\">baz</p><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p align=\\"right\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -170,7 +170,7 @@
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<br>bar</div><p>extra</p>" but got "<div align=\"right\">foo</div><p style=\"text-align:right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -191,7 +191,7 @@
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<br>bar</div><p>extra</p>" but got "<div align=\"right\">foo</div><p style=\"text-align:right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -212,7 +212,7 @@
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<br>bar</div><p>extra</p>" but got "<div align=\"right\">foo</div><p style=\"text-align:right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -233,7 +233,7 @@
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<br>bar</div><p>extra</p>" but got "<div align=\"right\">foo</div><p style=\"text-align:right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -253,7 +253,7 @@
 [PASS] [["justifyright",""]] "<div style=text-align:right>[foo</div>bar]<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<div style=text-align:right>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<div style=text-align:right>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<br>bar</div><p>extra</p>" but got "<div style=\"text-align:right\">foo</div><p style=\"text-align:right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>"
 [FAIL] [["justifyright",""]] "<div style=text-align:right>[foo</div>bar]<p>extra" queryCommandIndeterm("justifyright") before
   assert_equals: Wrong result returned expected true but got false
 [FAIL] [["justifyright",""]] "<div style=text-align:right>[foo</div>bar]<p>extra" queryCommandState("justifyright") before
@@ -267,7 +267,7 @@
 [PASS] [["justifyright",""]] "<div style=text-align:right>fo[o</div>b]ar<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<div style=text-align:right>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<div style=text-align:right>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<br>bar</div><p>extra</p>" but got "<div style=\"text-align:right\">foo</div><p style=\"text-align:right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>"
 [FAIL] [["justifyright",""]] "<div style=text-align:right>fo[o</div>b]ar<p>extra" queryCommandIndeterm("justifyright") before
   assert_equals: Wrong result returned expected true but got false
 [FAIL] [["justifyright",""]] "<div style=text-align:right>fo[o</div>b]ar<p>extra" queryCommandState("justifyright") before
@@ -282,7 +282,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo</div><p>extra</p>" but got "<span style=\"text-align:right\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:right\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -302,7 +302,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo</div><p>extra</p>" but got "<span style=\"text-align:right\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:right\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -322,7 +322,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo</div><p>extra</p>" but got "<span style=\"text-align:right\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:right\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -342,7 +342,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo</div><p>extra</p>" but got "<span style=\"text-align:right\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:right\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -363,7 +363,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:right\">baz</div><p>extra</p>" but got "<div style=\"text-align:right\">foo<div style=\"text-align:right\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:right\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo<div style=\\"text-align:right\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -389,7 +389,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:right\">baz</div><p>extra</p>" but got "<div style=\"text-align:right\">foo<div style=\"text-align:right\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:right\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo<div style=\\"text-align:right\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -415,7 +415,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:right\">baz</div><p>extra</p>" but got "<div style=\"text-align:right\">foo<div style=\"text-align:right\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:right\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo<div style=\\"text-align:right\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -441,7 +441,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:right\">baz</div><p>extra</p>" but got "<div style=\"text-align:right\">foo<div style=\"text-align:right\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:right\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo<div style=\\"text-align:right\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -466,7 +466,7 @@
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p></div><p>extra</p>" but got "<div align=\"nonsense\"><p style=\"text-align:right\">foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:right\\">foo</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -485,7 +485,7 @@
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p></div><p>extra</p>" but got "<div align=\"nonsense\"><p style=\"text-align:right\">foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:right\\">foo</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -503,7 +503,7 @@
 [PASS] [["justifyright",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p></div><p>extra</p>" but got "<div style=\"text-align:inherit\"><p style=\"text-align:right\">foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p>extra</p>" but got "<div style=\\"text-align:inherit\\"><p style=\\"text-align:right\\">foo</p></div><p>extra</p>"
 [PASS] [["justifyright",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifyright") before
@@ -517,7 +517,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"center\"><p style=\"text-align:right\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:right\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -543,7 +543,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"center\"><p style=\"text-align:right\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:right\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -569,7 +569,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"center\"><p style=\"text-align:right\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:right\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -595,7 +595,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"center\"><p style=\"text-align:right\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:right\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -630,7 +630,7 @@
 [PASS] [["justifyright",""]] "<div style=text-align:end>[foo]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<div style=text-align:end>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<div style=text-align:end>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo</div><p>extra</p>" but got "<div style=\"text-align:end\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><p>extra</p>" but got "<div style=\\"text-align:end\\">foo</div><p>extra</p>"
 [PASS] [["justifyright",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyright") before
@@ -643,7 +643,7 @@
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\"rtl\">foo</div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:start\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\\"rtl\\">foo</div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:start\\">foo</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -662,7 +662,7 @@
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\"rtl\">foo</div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:start\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\\"rtl\\">foo</div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:start\\">foo</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -681,7 +681,7 @@
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\"rtl\">foo</div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:right\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\\"rtl\\">foo</div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:right\\">foo</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -700,7 +700,7 @@
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\"rtl\">foo</div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:right\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\\"rtl\\">foo</div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:right\\">foo</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -718,7 +718,7 @@
 [PASS] [["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p> <p>bar</p></div>" but got "<div style=\"text-align:right\"><p>foo</p></div> <p style=\"text-align:right\">bar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p></div>" but got "<div style=\\"text-align:right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p>"
 [PASS] [["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]" queryCommandValue("justifyright") before
@@ -730,7 +730,7 @@
 [PASS] [["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><p>foo</p> <p>bar</p></div>" but got "<div align=\"right\"><p>foo</p></div> <p style=\"text-align:right\">bar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p> <p>bar</p></div>" but got "<div align=\\"right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p>"
 [PASS] [["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]" queryCommandValue("justifyright") before
@@ -742,7 +742,7 @@
 [PASS] [["justifyright",""]] "<p>[foo]</p> <div style=text-align:right><p>bar</div>": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<p>[foo]</p> <div style=text-align:right><p>bar</div>" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<p>[foo]</p> <div style=text-align:right><p>bar</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p> <p>bar</p></div>" but got "<p style=\"text-align:right\">foo</p> <div style=\"text-align:right\"><p>bar</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:right\\">foo</p> <div style=\\"text-align:right\\"><p>bar</p></div>"
 [PASS] [["justifyright",""]] "<p>[foo]</p> <div style=text-align:right><p>bar</div>" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "<p>[foo]</p> <div style=text-align:right><p>bar</div>" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "<p>[foo]</p> <div style=text-align:right><p>bar</div>" queryCommandValue("justifyright") before
@@ -754,7 +754,7 @@
 [PASS] [["justifyright",""]] "<p>[foo]</p> <div align=right><p>bar</div>": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<p>[foo]</p> <div align=right><p>bar</div>" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<p>[foo]</p> <div align=right><p>bar</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><p>foo</p> <p>bar</p></div>" but got "<p style=\"text-align:right\">foo</p> <div align=\"right\"><p>bar</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:right\\">foo</p> <div align=\\"right\\"><p>bar</p></div>"
 [PASS] [["justifyright",""]] "<p>[foo]</p> <div align=right><p>bar</div>" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "<p>[foo]</p> <div align=right><p>bar</div>" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "<p>[foo]</p> <div align=right><p>bar</div>" queryCommandValue("justifyright") before
@@ -768,7 +768,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\"text-align:right\"><p>foo</p></div> <p style=\"text-align:right\">bar</p> <div style=\"text-align:right\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div style=\\"text-align:right\\"><p>baz</p></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("stylewithcss") before
@@ -794,7 +794,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\"text-align:right\"><p>foo</p></div> <p style=\"text-align:right\">bar</p> <div style=\"text-align:right\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div style=\\"text-align:right\\"><p>baz</p></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("stylewithcss") before
@@ -820,7 +820,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\"text-align:right\"><p>foo</p></div> <p style=\"text-align:right\">bar</p> <div style=\"text-align:right\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div style=\\"text-align:right\\"><p>baz</p></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("stylewithcss") before
@@ -846,7 +846,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\"text-align:right\"><p>foo</p></div> <p style=\"text-align:right\">bar</p> <div style=\"text-align:right\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div style=\\"text-align:right\\"><p>baz</p></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("stylewithcss") before
@@ -871,7 +871,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>": execCommand("justifyright", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\"right\"><p>foo</p></div> <p style=\"text-align:right\">bar</p> <div align=\"right\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\\"right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div align=\\"right\\"><p>baz</p></div>"
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" queryCommandValue("defaultparagraphseparator") before
@@ -890,7 +890,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>": execCommand("justifyright", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\"right\"><p>foo</p></div> <p style=\"text-align:right\">bar</p> <div align=\"right\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\\"right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div align=\\"right\\"><p>baz</p></div>"
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" queryCommandValue("defaultparagraphseparator") before
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/strikethrough_1001-2000-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/strikethrough_1001-2000-expected.txt
index de7605be..d9d9666d 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/strikethrough_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/strikethrough_1001-2000-expected.txt
@@ -8,123 +8,123 @@
   assert_equals: Wrong result returned expected false but got true
 [FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[bar]baz</strike>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"text-decoration:line-through\">foo</span>b<span style=\"color:rgb(0, 0, 255)\">ar<span style=\"text-decoration:line-through\">ba</span></span><span style=\"text-decoration:line-through\">z</span>" but got "<strike>foo</strike>b<span style=\"color:rgb(0, 0, 255)\">ar<span style=\"text-decoration-line:line-through\">ba</span></span><span style=\"text-decoration-line:line-through\">z</span>"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"text-decoration:line-through\\">foo</span>b<span style=\\"color:rgb(0, 0, 255)\\">ar<span style=\\"text-decoration:line-through\\">ba</span></span><span style=\\"text-decoration:line-through\\">z</span>" but got "<strike>foo</strike>b<span style=\\"color:rgb(0, 0, 255)\\">ar<span style=\\"text-decoration-line:line-through\\">ba</span></span><span style=\\"text-decoration-line:line-through\\">z</span>"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"text-decoration:line-through\">foo</span>b<span style=\"color:rgb(0, 0, 255)\" id=\"foo\">ar<span style=\"text-decoration:line-through\">ba</span></span><span style=\"text-decoration:line-through\">z</span>" but got "<strike>foo</strike>b<span style=\"color:rgb(0, 0, 255)\" id=\"foo\">ar<span style=\"text-decoration-line:line-through\">ba</span></span><span style=\"text-decoration-line:line-through\">z</span>"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"text-decoration:line-through\\">foo</span>b<span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\">ar<span style=\\"text-decoration:line-through\\">ba</span></span><span style=\\"text-decoration:line-through\\">z</span>" but got "<strike>foo</strike>b<span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\">ar<span style=\\"text-decoration-line:line-through\\">ba</span></span><span style=\\"text-decoration-line:line-through\\">z</span>"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"text-decoration:line-through\">foo</span>b<span style=\"font-size:3em\">ar<span style=\"text-decoration:line-through\">ba</span></span><span style=\"text-decoration:line-through\">z</span>" but got "<strike>foo</strike>b<span style=\"font-size:3em\">ar<span style=\"text-decoration-line:line-through\">ba</span></span><span style=\"text-decoration-line:line-through\">z</span>"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"text-decoration:line-through\\">foo</span>b<span style=\\"font-size:3em\\">ar<span style=\\"text-decoration:line-through\\">ba</span></span><span style=\\"text-decoration:line-through\\">z</span>" but got "<strike>foo</strike>b<span style=\\"font-size:3em\\">ar<span style=\\"text-decoration-line:line-through\\">ba</span></span><span style=\\"text-decoration-line:line-through\\">z</span>"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"text-decoration:line-through\">foo</span>b<i>ar<span style=\"text-decoration:line-through\">ba</span></i><span style=\"text-decoration:line-through\">z</span>" but got "<strike>foo</strike>b<i style=\"\">ar<span style=\"text-decoration-line:line-through\">ba</span></i><span style=\"text-decoration-line:line-through\">z</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"text-decoration:line-through\\">foo</span>b<i>ar<span style=\\"text-decoration:line-through\\">ba</span></i><span style=\\"text-decoration:line-through\\">z</span>" but got "<strike>foo</strike>b<i style=\\"\\">ar<span style=\\"text-decoration-line:line-through\\">ba</span></i><span style=\\"text-decoration-line:line-through\\">z</span>"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" queryCommandValue("stylewithcss") before
@@ -143,7 +143,7 @@
 [PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo</strike>b<i>ar<strike>ba</strike></i><strike>z</strike>" but got "<strike>foo</strike>b<i style=\"\">ar<strike>ba</strike></i><strike>z</strike>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo</strike>b<i>ar<strike>ba</strike></i><strike>z</strike>" but got "<strike>foo</strike>b<i style=\\"\\">ar<strike>ba</strike></i><strike>z</strike>"
 [PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" queryCommandValue("stylewithcss") before
@@ -162,7 +162,7 @@
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<ins>[bar]</ins>baz": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<ins>[bar]</ins>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<ins>[bar]</ins>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<ins style=\"text-decoration:underline line-through\">bar</ins>baz" but got "foo<ins style=\"text-decoration-line:line-through\">bar</ins>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<ins style=\\"text-decoration:underline line-through\\">bar</ins>baz" but got "foo<ins style=\\"text-decoration-line:line-through\\">bar</ins>baz"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<ins>[bar]</ins>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<ins>[bar]</ins>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<ins>[bar]</ins>baz" queryCommandValue("stylewithcss") before
@@ -199,7 +199,7 @@
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[bar]baz</ins>": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[bar]baz</ins>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[bar]baz</ins>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo<span style=\"text-decoration:line-through\">bar</span>baz</ins>" but got "<ins>foo<span style=\"text-decoration-line:line-through\">bar</span>baz</ins>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo<span style=\\"text-decoration:line-through\\">bar</span>baz</ins>" but got "<ins>foo<span style=\\"text-decoration-line:line-through\\">bar</span>baz</ins>"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[bar]baz</ins>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[bar]baz</ins>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[bar]baz</ins>" queryCommandValue("stylewithcss") before
@@ -232,122 +232,122 @@
 [PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[bar]baz</ins>" queryCommandState("strikethrough") after
 [FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[bar]baz</ins>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo<span style=\"text-decoration:line-through\">b</span><span style=\"color:rgb(0, 0, 255)\"><span style=\"text-decoration:line-through\">ar</span>ba</span>z</ins>" but got "<ins>foo<span style=\"text-decoration-line:line-through\">b</span><span style=\"color:rgb(0, 0, 255)\"><span style=\"text-decoration-line:line-through\">ar</span>ba</span>z</ins>"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo<span style=\\"text-decoration:line-through\\">b</span><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"text-decoration:line-through\\">ar</span>ba</span>z</ins>" but got "<ins>foo<span style=\\"text-decoration-line:line-through\\">b</span><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"text-decoration-line:line-through\\">ar</span>ba</span>z</ins>"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo<span style=\"text-decoration:line-through\">b</span><span style=\"color:rgb(0, 0, 255)\" id=\"foo\"><span style=\"text-decoration:line-through\">ar</span>ba</span>z</ins>" but got "<ins>foo<span style=\"text-decoration-line:line-through\">b</span><span style=\"color:rgb(0, 0, 255)\" id=\"foo\"><span style=\"text-decoration-line:line-through\">ar</span>ba</span>z</ins>"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo<span style=\\"text-decoration:line-through\\">b</span><span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\"><span style=\\"text-decoration:line-through\\">ar</span>ba</span>z</ins>" but got "<ins>foo<span style=\\"text-decoration-line:line-through\\">b</span><span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\"><span style=\\"text-decoration-line:line-through\\">ar</span>ba</span>z</ins>"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo<span style=\"text-decoration:line-through\">b</span><span style=\"font-size:3em\"><span style=\"text-decoration:line-through\">ar</span>ba</span>z</ins>" but got "<ins>foo<span style=\"text-decoration-line:line-through\">b</span><span style=\"font-size:3em\"><span style=\"text-decoration-line:line-through\">ar</span>ba</span>z</ins>"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo<span style=\\"text-decoration:line-through\\">b</span><span style=\\"font-size:3em\\"><span style=\\"text-decoration:line-through\\">ar</span>ba</span>z</ins>" but got "<ins>foo<span style=\\"text-decoration-line:line-through\\">b</span><span style=\\"font-size:3em\\"><span style=\\"text-decoration-line:line-through\\">ar</span>ba</span>z</ins>"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<i>ar]ba</i>z</ins>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<i>ar]ba</i>z</ins>": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<i>ar]ba</i>z</ins>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<i>ar]ba</i>z</ins>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo<span style=\"text-decoration:line-through\">b</span><i><span style=\"text-decoration:line-through\">ar</span>ba</i>z</ins>" but got "<ins>foo<span style=\"text-decoration-line:line-through\">b</span><i><span style=\"text-decoration-line:line-through\">ar</span>ba</i>z</ins>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo<span style=\\"text-decoration:line-through\\">b</span><i><span style=\\"text-decoration:line-through\\">ar</span>ba</i>z</ins>" but got "<ins>foo<span style=\\"text-decoration-line:line-through\\">b</span><i><span style=\\"text-decoration-line:line-through\\">ar</span>ba</i>z</ins>"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<i>ar]ba</i>z</ins>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<i>ar]ba</i>z</ins>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<i>ar]ba</i>z</ins>" queryCommandValue("stylewithcss") before
@@ -402,38 +402,38 @@
 [PASS] [["strikethrough",""]] "<del>foo[bar]baz</del>" queryCommandState("strikethrough") after
 [FAIL] [["strikethrough",""]] "<del>foo[bar]baz</del>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>": execCommand("strikethrough", false, "") return value
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" checks for modifications to non-editable content
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" compare innerHTML
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") before
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandState("strikethrough") before
-[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandValue("strikethrough") before
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>": execCommand("strikethrough", false, "") return value
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" checks for modifications to non-editable content
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" compare innerHTML
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") before
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandState("strikethrough") before
+[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") after
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandState("strikethrough") after
-[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandValue("strikethrough") after
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") after
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandState("strikethrough") after
+[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>": execCommand("strikethrough", false, "") return value
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" checks for modifications to non-editable content
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" compare innerHTML
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") before
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandState("strikethrough") before
-[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandValue("strikethrough") before
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>": execCommand("strikethrough", false, "") return value
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" checks for modifications to non-editable content
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" compare innerHTML
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") before
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandState("strikethrough") before
+[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") after
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandState("strikethrough") after
-[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandValue("strikethrough") after
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") after
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandState("strikethrough") after
+[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>": execCommand("strikethrough", false, "") return value
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" checks for modifications to non-editable content
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" compare innerHTML
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") before
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandState("strikethrough") before
-[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandValue("strikethrough") before
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>": execCommand("strikethrough", false, "") return value
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" checks for modifications to non-editable content
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" compare innerHTML
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") before
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandState("strikethrough") before
+[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") after
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandState("strikethrough") after
-[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandValue("strikethrough") after
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") after
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandState("strikethrough") after
+[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["strikethrough",""]] "<del>foo[b<i>ar]ba</i>z</del>": execCommand("strikethrough", false, "") return value
 [PASS] [["strikethrough",""]] "<del>foo[b<i>ar]ba</i>z</del>" checks for modifications to non-editable content
@@ -446,543 +446,543 @@
 [PASS] [["strikethrough",""]] "<del>foo[b<i>ar]ba</i>z</del>" queryCommandState("strikethrough") after
 [FAIL] [["strikethrough",""]] "<del>foo[b<i>ar]ba</i>z</del>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" checks for modifications to non-editable content
-[FAIL] [["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline\">bar</span>baz" but got "foo<u>bar</u>baz"
-[PASS] [["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" checks for modifications to non-editable content
+[FAIL] [["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline\\">bar</span>baz" but got "foo<u>bar</u>baz"
+[PASS] [["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline\"><span style=\"text-decoration:line-through\">b</span>a<span style=\"text-decoration:line-through\">r</span></span>baz" but got "foo<span style=\"text-decoration:underline line-through\">b</span><span style=\"text-decoration-line:underline\">a</span><span style=\"text-decoration:underline line-through\">r</span>baz"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline\\"><span style=\\"text-decoration:line-through\\">b</span>a<span style=\\"text-decoration:line-through\\">r</span></span>baz" but got "foo<span style=\\"text-decoration:underline line-through\\">b</span><span style=\\"text-decoration-line:underline\\">a</span><span style=\\"text-decoration:underline line-through\\">r</span>baz"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline\"><strike>b</strike>a<strike>r</strike></span>baz" but got "foo<span style=\"text-decoration:underline line-through\">b</span><u>a</u><span style=\"text-decoration:underline line-through\">r</span>baz"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline\\"><strike>b</strike>a<strike>r</strike></span>baz" but got "foo<span style=\\"text-decoration:underline line-through\\">b</span><u>a</u><span style=\\"text-decoration:underline line-through\\">r</span>baz"
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:line-through\">b</span>a<span style=\"text-decoration:line-through\">r</span>baz" but got "foo<u style=\"text-decoration:line-through\">b</u>a<u style=\"text-decoration:line-through\">r</u>baz"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:line-through\\">b</span>a<span style=\\"text-decoration:line-through\\">r</span>baz" but got "foo<u style=\\"text-decoration:line-through\\">b</u>a<u style=\\"text-decoration:line-through\\">r</u>baz"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<strike>b</strike>a<strike>r</strike>baz" but got "foo<u style=\"text-decoration:line-through\">b</u>a<u style=\"text-decoration:line-through\">r</u>baz"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<strike>b</strike>a<strike>r</strike>baz" but got "foo<u style=\\"text-decoration:line-through\\">b</u>a<u style=\\"text-decoration:line-through\\">r</u>baz"
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:overline line-through\">bar</span>baz" but got "foo<span style=\"text-decoration-line:overline line-through\">bar</span>baz"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:overline line-through\\">bar</span>baz" but got "foo<span style=\\"text-decoration-line:overline line-through\\">bar</span>baz"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<strike><u style=\"text-decoration:overline\">bar</u></strike>baz" but got "foo<span style=\"text-decoration-line:overline\"><strike>bar</strike></span>baz"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<strike><u style=\\"text-decoration:overline\\">bar</u></strike>baz" but got "foo<span style=\\"text-decoration-line:overline\\"><strike>bar</strike></span>baz"
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\"text-decoration:overline\">b<span style=\"text-decoration:line-through\">a</span>r</u>baz" but got "foo<u style=\"text-decoration:overline\">b</u><span style=\"text-decoration-line:overline line-through\">a</span><u style=\"text-decoration:overline\">r</u>baz"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\\"text-decoration:overline\\">b<span style=\\"text-decoration:line-through\\">a</span>r</u>baz" but got "foo<u style=\\"text-decoration:overline\\">b</u><span style=\\"text-decoration-line:overline line-through\\">a</span><u style=\\"text-decoration:overline\\">r</u>baz"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\"text-decoration:overline\">b<strike>a</strike>r</u>baz" but got "foo<u style=\"text-decoration:overline\">b</u><span style=\"text-decoration-line:overline\"><strike>a</strike></span><u style=\"text-decoration:overline\">r</u>baz"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\\"text-decoration:overline\\">b<strike>a</strike>r</u>baz" but got "foo<u style=\\"text-decoration:overline\\">b</u><span style=\\"text-decoration-line:overline\\"><strike>a</strike></span><u style=\\"text-decoration:overline\\">r</u>baz"
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"text-decoration:line-through\">foo</span>bar<span style=\"text-decoration:line-through\">baz</span></p>" but got "<p style=\"\"><span style=\"text-decoration-line:line-through\">foo</span>bar<span style=\"text-decoration-line:line-through\">baz</span></p>"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"text-decoration:line-through\\">foo</span>bar<span style=\\"text-decoration:line-through\\">baz</span></p>" but got "<p style=\\"\\"><span style=\\"text-decoration-line:line-through\\">foo</span>bar<span style=\\"text-decoration-line:line-through\\">baz</span></p>"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><strike>foo</strike>bar<strike>baz</strike></p>" but got "<p style=\"\"><span style=\"text-decoration-line:line-through\">foo</span>bar<strike>baz</strike></p>"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><strike>foo</strike>bar<strike>baz</strike></p>" but got "<p style=\\"\\"><span style=\\"text-decoration-line:line-through\\">foo</span>bar<strike>baz</strike></p>"
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"text-decoration:overline\">foo<span style=\"text-decoration:line-through\">bar</span>baz</p>" but got "<p style=\"\"><span style=\"text-decoration-line:overline\">foo</span><span style=\"text-decoration-line:overline line-through\">bar</span><span style=\"text-decoration-line:overline\">baz</span></p>"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"text-decoration:overline\\">foo<span style=\\"text-decoration:line-through\\">bar</span>baz</p>" but got "<p style=\\"\\"><span style=\\"text-decoration-line:overline\\">foo</span><span style=\\"text-decoration-line:overline line-through\\">bar</span><span style=\\"text-decoration-line:overline\\">baz</span></p>"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"text-decoration:overline\">foo<strike>bar</strike>baz</p>" but got "<p style=\"\"><span style=\"text-decoration-line:overline\">foo<strike>bar</strike>baz</span></p>"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"text-decoration:overline\\">foo<strike>bar</strike>baz</p>" but got "<p style=\\"\\"><span style=\\"text-decoration-line:overline\\">foo<strike>bar</strike>baz</span></p>"
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span class=\"underline\" style=\"text-decoration:line-through\">bar</span>baz" but got "foo<span class=\"underline\" style=\"text-decoration-line:line-through\">bar</span>baz"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span class=\\"underline\\" style=\\"text-decoration:line-through\\">bar</span>baz" but got "foo<span class=\\"underline\\" style=\\"text-decoration-line:line-through\\">bar</span>baz"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span class=\"underline\">b<span style=\"text-decoration:line-through\">a</span>r</span>baz" but got "foo<span class=\"underline\">b<span style=\"text-decoration-line:line-through\">a</span>r</span>baz"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span class=\\"underline\\">b<span style=\\"text-decoration:line-through\\">a</span>r</span>baz" but got "foo<span class=\\"underline\\">b<span style=\\"text-decoration-line:line-through\\">a</span>r</span>baz"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">[bar]</span>baz" compare innerHTML
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["strikethrough",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" compare innerHTML
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["strikethrough",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["strikethrough",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["strikethrough",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">b[a]r</span>baz" checks for modifications to non-editable content
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">b[a]r</span>baz" compare innerHTML
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["strikethrough",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" checks for modifications to non-editable content
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" compare innerHTML
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["strikethrough",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["strikethrough",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["strikethrough",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" compare innerHTML
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" compare innerHTML
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" checks for modifications to non-editable content
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" compare innerHTML
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" checks for modifications to non-editable content
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" compare innerHTML
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["strikethrough",""]] "fo[o<s>b]ar</s>baz": execCommand("strikethrough", false, "") return value
 [PASS] [["strikethrough",""]] "fo[o<s>b]ar</s>baz" checks for modifications to non-editable content
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/strikethrough_2001-last-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/strikethrough_2001-last-expected.txt
index 1ae88d80..f0164a32 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/strikethrough_2001-last-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/strikethrough_2001-last-expected.txt
@@ -61,7 +61,7 @@
 [PASS] [["strikethrough",""]] "fo[o<span style=text-decoration:line-through>b]ar</span>baz": execCommand("strikethrough", false, "") return value
 [PASS] [["strikethrough",""]] "fo[o<span style=text-decoration:line-through>b]ar</span>baz" checks for modifications to non-editable content
 [FAIL] [["strikethrough",""]] "fo[o<span style=text-decoration:line-through>b]ar</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<strike>o</strike><s>bar</s>baz" but got "fo<strike>ob</strike><span style=\"text-decoration:line-through\">ar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<strike>o</strike><s>bar</s>baz" but got "fo<strike>ob</strike><span style=\\"text-decoration:line-through\\">ar</span>baz"
 [FAIL] [["strikethrough",""]] "fo[o<span style=text-decoration:line-through>b]ar</span>baz" queryCommandIndeterm("strikethrough") before
   assert_equals: Wrong result returned expected true but got false
 [PASS] [["strikethrough",""]] "fo[o<span style=text-decoration:line-through>b]ar</span>baz" queryCommandState("strikethrough") before
@@ -145,25 +145,25 @@
 [PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>fo[o</s><del>b]ar</del>" queryCommandState("strikethrough") after
 [FAIL] [["stylewithcss","false"],["strikethrough",""]] "<s>fo[o</s><del>b]ar</del>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:line-through overline underline\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:line-through overline underline\">[def]</span>ghi": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:line-through overline underline\">[def]</span>ghi" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:line-through overline underline\">[def]</span>ghi" compare innerHTML
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:blink overline underline\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:blink overline underline\">[def]</span>ghi": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:blink overline underline\">[def]</span>ghi" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:blink overline underline\">[def]</span>ghi" compare innerHTML
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:underline blue dotted\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:underline blue dotted\">[def]</span>ghi": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:underline blue dotted\">[def]</span>ghi" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:underline blue dotted\">[def]</span>ghi" compare innerHTML
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:blink line-through underline overline\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:blink line-through underline overline\">[def]</span>ghi": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:blink line-through underline overline\">[def]</span>ghi" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:blink line-through underline overline\">[def]</span>ghi" compare innerHTML
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:underline line-through blue dotted\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:underline line-through blue dotted\">[def]</span>ghi": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:underline line-through blue dotted\">[def]</span>ghi" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:underline line-through blue dotted\">[def]</span>ghi" compare innerHTML
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:line-through overline underline\\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:line-through overline underline\\">[def]</span>ghi": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:line-through overline underline\\">[def]</span>ghi" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:line-through overline underline\\">[def]</span>ghi" compare innerHTML
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:blink overline underline\\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:blink overline underline\\">[def]</span>ghi": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:blink overline underline\\">[def]</span>ghi" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:blink overline underline\\">[def]</span>ghi" compare innerHTML
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:underline blue dotted\\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:underline blue dotted\\">[def]</span>ghi": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:underline blue dotted\\">[def]</span>ghi" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:underline blue dotted\\">[def]</span>ghi" compare innerHTML
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:blink line-through underline overline\\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:blink line-through underline overline\\">[def]</span>ghi": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:blink line-through underline overline\\">[def]</span>ghi" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:blink line-through underline overline\\">[def]</span>ghi" compare innerHTML
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:underline line-through blue dotted\\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:underline line-through blue dotted\\">[def]</span>ghi": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:underline line-through blue dotted\\">[def]</span>ghi" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:underline line-through blue dotted\\">[def]</span>ghi" compare innerHTML
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/subscript-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/subscript-expected.txt
index 0b412a7..46037e7 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/subscript-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/subscript-expected.txt
@@ -15,7 +15,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo</p> <p>bar]</p>": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo</p> <p>bar]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<p>[foo</p> <p>bar]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sub>foo</sub></p> <p><sub>bar</sub></p>" but got "<p><span style=\"vertical-align:sub\">foo</span></p> <p><span style=\"vertical-align:sub\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sub>foo</sub></p> <p><sub>bar</sub></p>" but got "<p><span style=\\"vertical-align:sub\\">foo</span></p> <p><span style=\\"vertical-align:sub\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo</p> <p>bar]</p>" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<p>[foo</p> <p>bar]</p>" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -53,7 +53,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "<span>[foo</span> <span>bar]</span>": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "<span>[foo</span> <span>bar]</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<span>[foo</span> <span>bar]</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sub><span>foo</span> <span>bar</span></sub>" but got "<span style=\"vertical-align:sub\"><span>foo</span> <span>bar</span></span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sub><span>foo</span> <span>bar</span></sub>" but got "<span style=\\"vertical-align:sub\\"><span>foo</span> <span>bar</span></span>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "<span>[foo</span> <span>bar]</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<span>[foo</span> <span>bar]</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<span>[foo</span> <span>bar]</span>" queryCommandValue("stylewithcss") before
@@ -90,7 +90,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sub>foo</sub></p><p> <sub><span>bar</span></sub> </p><p><sub>baz</sub></p>" but got "<p><span style=\"vertical-align:sub\">foo</span></p><p> <span style=\"vertical-align:sub\"><span>bar</span> </span></p><p><span style=\"vertical-align:sub\">baz</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sub>foo</sub></p><p> <sub><span>bar</span></sub> </p><p><sub>baz</sub></p>" but got "<p><span style=\\"vertical-align:sub\\">foo</span></p><p> <span style=\\"vertical-align:sub\\"><span>bar</span> </span></p><p><span style=\\"vertical-align:sub\\">baz</span></p>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandValue("stylewithcss") before
@@ -128,7 +128,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo<p><br><p>bar]": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo<p><br><p>bar]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<p>[foo<p><br><p>bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sub>foo</sub></p><p><sub><br></sub></p><p><sub>bar</sub></p>" but got "<p><span style=\"vertical-align:sub\">foo</span></p><p><span style=\"vertical-align:sub\"><br></span></p><p><span style=\"vertical-align:sub\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sub>foo</sub></p><p><sub><br></sub></p><p><sub>bar</sub></p>" but got "<p><span style=\\"vertical-align:sub\\">foo</span></p><p><span style=\\"vertical-align:sub\\"><br></span></p><p><span style=\\"vertical-align:sub\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo<p><br><p>bar]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo<p><br><p>bar]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo<p><br><p>bar]" queryCommandValue("stylewithcss") before
@@ -209,7 +209,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar]baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar]baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo[bar]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<span style=\"vertical-align:sub\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<span style=\\"vertical-align:sub\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar]baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar]baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar]baz" queryCommandValue("stylewithcss") before
@@ -246,7 +246,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar<b>baz]qoz</b>quz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar<b>baz]qoz</b>quz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo[bar<b>baz]qoz</b>quz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub><b><sub>baz</sub>qoz</b>quz" but got "foo<span style=\"vertical-align:sub\">bar</span><b><span style=\"vertical-align:sub\">baz</span>qoz</b>quz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub><b><sub>baz</sub>qoz</b>quz" but got "foo<span style=\\"vertical-align:sub\\">bar</span><b><span style=\\"vertical-align:sub\\">baz</span>qoz</b>quz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar<b>baz]qoz</b>quz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar<b>baz]qoz</b>quz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar<b>baz]qoz</b>quz" queryCommandValue("stylewithcss") before
@@ -283,7 +283,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar<i>baz]qoz</i>quz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar<i>baz]qoz</i>quz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo[bar<i>baz]qoz</i>quz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub><i><sub>baz</sub>qoz</i>quz" but got "foo<span style=\"vertical-align:sub\">bar</span><i><span style=\"vertical-align:sub\">baz</span>qoz</i>quz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub><i><sub>baz</sub>qoz</i>quz" but got "foo<span style=\\"vertical-align:sub\\">bar</span><i><span style=\\"vertical-align:sub\\">baz</span>qoz</i>quz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar<i>baz]qoz</i>quz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar<i>baz]qoz</i>quz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar<i>baz]qoz</i>quz" queryCommandValue("stylewithcss") before
@@ -320,7 +320,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "{<p><p> <p>foo</p>}": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "{<p><p> <p>foo</p>}" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "{<p><p> <p>foo</p>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p></p><p> </p><p><sub>foo</sub></p>" but got "<p></p><p> </p><p><span style=\"vertical-align:sub\">foo</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p></p><p> </p><p><sub>foo</sub></p>" but got "<p></p><p> </p><p><span style=\\"vertical-align:sub\\">foo</span></p>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "{<p><p> <p>foo</p>}" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "{<p><p> <p>foo</p>}" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "{<p><p> <p>foo</p>}" queryCommandValue("stylewithcss") before
@@ -357,7 +357,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>b<sub>a</sub>r</td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td>b<span style=\"vertical-align:sub\">a</span>r</td><td>baz</td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>b<sub>a</sub>r</td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td>b<span style=\\"vertical-align:sub\\">a</span>r</td><td>baz</td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -394,7 +394,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><sub>bar</sub></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td><span style=\"vertical-align:sub\">bar</span></td><td>baz</td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><sub>bar</sub></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td><span style=\\"vertical-align:sub\\">bar</span></td><td>baz</td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -431,7 +431,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sub>foo</sub></td><td><sub>bar</sub></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"vertical-align:sub\">foo</span></td><td><span style=\"vertical-align:sub\">bar</span></td><td>baz</td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sub>foo</sub></td><td><sub>bar</sub></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"vertical-align:sub\\">foo</span></td><td><span style=\\"vertical-align:sub\\">bar</span></td><td>baz</td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -468,7 +468,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sub>foo</sub></td><td><sub>bar</sub></td><td><sub>baz</sub></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"vertical-align:sub\">foo</span></td><td><span style=\"vertical-align:sub\">bar</span></td><td><span style=\"vertical-align:sub\">baz</span></td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sub>foo</sub></td><td><sub>bar</sub></td><td><sub>baz</sub></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"vertical-align:sub\\">foo</span></td><td><span style=\\"vertical-align:sub\\">bar</span></td><td><span style=\\"vertical-align:sub\\">baz</span></td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -505,7 +505,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sub>foo</sub></td><td><sub>bar</sub></td><td><sub>baz</sub></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"vertical-align:sub\">foo</span></td><td><span style=\"vertical-align:sub\">bar</span></td><td><span style=\"vertical-align:sub\">baz</span></td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sub>foo</sub></td><td><sub>bar</sub></td><td><sub>baz</sub></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"vertical-align:sub\\">foo</span></td><td><span style=\\"vertical-align:sub\\">bar</span></td><td><span style=\\"vertical-align:sub\\">baz</span></td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -544,7 +544,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sub>foo</sub></td><td><sub>bar</sub></td><td><sub>baz</sub></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"vertical-align:sub\">foo</span></td><td><span style=\"vertical-align:sub\">bar</span></td><td><span style=\"vertical-align:sub\">baz</span></td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sub>foo</sub></td><td><sub>bar</sub></td><td><sub>baz</sub></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"vertical-align:sub\\">foo</span></td><td><span style=\\"vertical-align:sub\\">bar</span></td><td><span style=\\"vertical-align:sub\\">baz</span></td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandValue("stylewithcss") before
@@ -619,7 +619,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>[bar]</sup>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>[bar]</sup>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo<sup>[bar]</sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<span style=\"vertical-align:sub\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<span style=\\"vertical-align:sub\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>[bar]</sup>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>[bar]</sup>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>[bar]</sup>baz" queryCommandValue("stylewithcss") before
@@ -656,7 +656,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b[a]r</sup>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b[a]r</sup>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo<sup>b[a]r</sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<sup>b</sup><span style=\"vertical-align:sub\">a</span><sup>r</sup>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<sup>b</sup><span style=\\"vertical-align:sub\\">a</span><sup>r</sup>baz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b[a]r</sup>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b[a]r</sup>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b[a]r</sup>baz" queryCommandValue("stylewithcss") before
@@ -735,7 +735,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:super>[bar]</span>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:super>[bar]</span>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:super>[bar]</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<span style=\"vertical-align:sub\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<span style=\\"vertical-align:sub\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:super>[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:super>[bar]</span>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:super>[bar]</span>baz" queryCommandValue("stylewithcss") before
@@ -807,7 +807,7 @@
 [PASS] [["subscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz": execCommand("subscript", false, "") return value
 [PASS] [["subscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" checks for modifications to non-editable content
 [FAIL] [["subscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub>a<sub>r</sub>baz" but got "foo<sub style=\"vertical-align:sub\">b</sub>a<sub style=\"vertical-align:sub\">r</sub>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub>a<sub>r</sub>baz" but got "foo<sub style=\\"vertical-align:sub\\">b</sub>a<sub style=\\"vertical-align:sub\\">r</sub>baz"
 [PASS] [["subscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" queryCommandIndeterm("subscript") before
 [PASS] [["subscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" queryCommandState("subscript") before
 [FAIL] [["subscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" queryCommandValue("subscript") before
@@ -819,7 +819,7 @@
 [PASS] [["subscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz": execCommand("subscript", false, "") return value
 [PASS] [["subscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" checks for modifications to non-editable content
 [FAIL] [["subscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub>a<sub>r</sub>baz" but got "foo<sub style=\"vertical-align:sub\">b</sub>a<sub>r</sub>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub>a<sub>r</sub>baz" but got "foo<sub style=\\"vertical-align:sub\\">b</sub>a<sub>r</sub>baz"
 [PASS] [["subscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" queryCommandIndeterm("subscript") before
 [PASS] [["subscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" queryCommandState("subscript") before
 [FAIL] [["subscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" queryCommandValue("subscript") before
@@ -832,7 +832,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>[bar]</sup></sup>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>[bar]</sup></sup>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>[bar]</sup></sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<span style=\"vertical-align:sub\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<span style=\\"vertical-align:sub\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>[bar]</sup></sup>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>[bar]</sup></sup>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>[bar]</sup></sup>baz" queryCommandValue("stylewithcss") before
@@ -869,7 +869,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<sup style=\"vertical-align:super\">b</sup><span style=\"vertical-align:sub\">a</span><sup style=\"vertical-align:super\">r</sup>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<sup style=\\"vertical-align:super\\">b</sup><span style=\\"vertical-align:sub\\">a</span><sup style=\\"vertical-align:super\\">r</sup>baz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" queryCommandValue("stylewithcss") before
@@ -888,7 +888,7 @@
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<sup style=\"vertical-align:super\">b</sup><sub>a</sub><sup style=\"vertical-align:super\">r</sup>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<sup style=\\"vertical-align:super\\">b</sup><sub>a</sub><sup style=\\"vertical-align:super\\">r</sup>baz"
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" queryCommandValue("stylewithcss") before
@@ -907,7 +907,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<span style=\"vertical-align:super\">b</span><span style=\"vertical-align:sub\">a</span><span style=\"vertical-align:super\">r</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<span style=\\"vertical-align:super\\">b</span><span style=\\"vertical-align:sub\\">a</span><span style=\\"vertical-align:super\\">r</span>baz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" queryCommandValue("stylewithcss") before
@@ -926,7 +926,7 @@
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<sup style=\"vertical-align:super\">b</sup><sub>a</sub><sup>r</sup>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<sup style=\\"vertical-align:super\\">b</sup><sub>a</sub><sup>r</sup>baz"
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" queryCommandValue("stylewithcss") before
@@ -1105,7 +1105,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<sub style=\"vertical-align:super\">b</sub>a<sub style=\"vertical-align:super\">r</sub>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<sub style=\\"vertical-align:super\\">b</sub>a<sub style=\\"vertical-align:super\\">r</sub>baz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz" queryCommandValue("stylewithcss") before
@@ -1127,7 +1127,7 @@
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<sub style=\"vertical-align:super\">b</sub>a<sub style=\"vertical-align:super\">r</sub>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<sub style=\\"vertical-align:super\\">b</sub>a<sub style=\\"vertical-align:super\\">r</sub>baz"
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz" queryCommandValue("stylewithcss") before
@@ -1149,7 +1149,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sub>[a]</sub>r</sup>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sub>[a]</sub>r</sup>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sub>[a]</sub>r</sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<span style=\"vertical-align:super\">b</span>a<span style=\"vertical-align:super\">r</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<span style=\\"vertical-align:super\\">b</span>a<span style=\\"vertical-align:super\\">r</span>baz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sub>[a]</sub>r</sup>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sub>[a]</sub>r</sup>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sub>[a]</sub>r</sup>baz" queryCommandValue("stylewithcss") before
@@ -1377,7 +1377,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sub>foob</sub><span style=\"vertical-align:sub\">ar</span>" but got "<sub>fo</sub>ob<span style=\"vertical-align:sub\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sub>foob</sub><span style=\\"vertical-align:sub\\">ar</span>" but got "<sub>fo</sub>ob<span style=\\"vertical-align:sub\\">ar</span>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1399,7 +1399,7 @@
 [PASS] [["stylewithcss","false"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","false"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sub>foob</sub><span style=\"vertical-align:sub\">ar</span>" but got "<sub>fo</sub>ob<span style=\"vertical-align:sub\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sub>foob</sub><span style=\\"vertical-align:sub\\">ar</span>" but got "<sub>fo</sub>ob<span style=\\"vertical-align:sub\\">ar</span>"
 [PASS] [["stylewithcss","false"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1421,7 +1421,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:top>b]ar</span>": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:top>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:top>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sub>foob</sub><span style=\"vertical-align:top\">ar</span>" but got "<sub>fo</sub>ob<span style=\"vertical-align:top\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sub>foob</sub><span style=\\"vertical-align:top\\">ar</span>" but got "<sub>fo</sub>ob<span style=\\"vertical-align:top\\">ar</span>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:top>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:top>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:top>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1443,7 +1443,7 @@
 [PASS] [["stylewithcss","false"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:top>b]ar</span>": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","false"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:top>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:top>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sub>foob</sub><span style=\"vertical-align:top\">ar</span>" but got "<sub>fo</sub>ob<span style=\"vertical-align:top\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sub>foob</sub><span style=\\"vertical-align:top\\">ar</span>" but got "<sub>fo</sub>ob<span style=\\"vertical-align:top\\">ar</span>"
 [PASS] [["stylewithcss","false"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:top>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:top>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:top>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1465,7 +1465,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:top>[bar]</span>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:top>[bar]</span>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:top>[bar]</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<span style=\"vertical-align:sub\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<span style=\\"vertical-align:sub\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:top>[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:top>[bar]</span>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:top>[bar]</span>baz" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/superscript-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/superscript-expected.txt
index 83e55b2..5afd45e 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/superscript-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/superscript-expected.txt
@@ -15,7 +15,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo</p> <p>bar]</p>": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo</p> <p>bar]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<p>[foo</p> <p>bar]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sup>foo</sup></p> <p><sup>bar</sup></p>" but got "<p><span style=\"vertical-align:super\">foo</span></p> <p><span style=\"vertical-align:super\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sup>foo</sup></p> <p><sup>bar</sup></p>" but got "<p><span style=\\"vertical-align:super\\">foo</span></p> <p><span style=\\"vertical-align:super\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo</p> <p>bar]</p>" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<p>[foo</p> <p>bar]</p>" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -53,7 +53,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "<span>[foo</span> <span>bar]</span>": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "<span>[foo</span> <span>bar]</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<span>[foo</span> <span>bar]</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sup><span>foo</span> <span>bar</span></sup>" but got "<span style=\"vertical-align:super\"><span>foo</span> <span>bar</span></span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sup><span>foo</span> <span>bar</span></sup>" but got "<span style=\\"vertical-align:super\\"><span>foo</span> <span>bar</span></span>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "<span>[foo</span> <span>bar]</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<span>[foo</span> <span>bar]</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<span>[foo</span> <span>bar]</span>" queryCommandValue("stylewithcss") before
@@ -90,7 +90,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sup>foo</sup></p><p> <sup><span>bar</span></sup> </p><p><sup>baz</sup></p>" but got "<p><span style=\"vertical-align:super\">foo</span></p><p> <span style=\"vertical-align:super\"><span>bar</span> </span></p><p><span style=\"vertical-align:super\">baz</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sup>foo</sup></p><p> <sup><span>bar</span></sup> </p><p><sup>baz</sup></p>" but got "<p><span style=\\"vertical-align:super\\">foo</span></p><p> <span style=\\"vertical-align:super\\"><span>bar</span> </span></p><p><span style=\\"vertical-align:super\\">baz</span></p>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandValue("stylewithcss") before
@@ -128,7 +128,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo<p><br><p>bar]": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo<p><br><p>bar]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<p>[foo<p><br><p>bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sup>foo</sup></p><p><sup><br></sup></p><p><sup>bar</sup></p>" but got "<p><span style=\"vertical-align:super\">foo</span></p><p><span style=\"vertical-align:super\"><br></span></p><p><span style=\"vertical-align:super\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sup>foo</sup></p><p><sup><br></sup></p><p><sup>bar</sup></p>" but got "<p><span style=\\"vertical-align:super\\">foo</span></p><p><span style=\\"vertical-align:super\\"><br></span></p><p><span style=\\"vertical-align:super\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo<p><br><p>bar]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo<p><br><p>bar]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo<p><br><p>bar]" queryCommandValue("stylewithcss") before
@@ -209,7 +209,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar]baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar]baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo[bar]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<span style=\"vertical-align:super\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<span style=\\"vertical-align:super\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar]baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar]baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar]baz" queryCommandValue("stylewithcss") before
@@ -246,7 +246,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar<b>baz]qoz</b>quz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar<b>baz]qoz</b>quz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo[bar<b>baz]qoz</b>quz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup><b><sup>baz</sup>qoz</b>quz" but got "foo<span style=\"vertical-align:super\">bar</span><b><span style=\"vertical-align:super\">baz</span>qoz</b>quz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup><b><sup>baz</sup>qoz</b>quz" but got "foo<span style=\\"vertical-align:super\\">bar</span><b><span style=\\"vertical-align:super\\">baz</span>qoz</b>quz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar<b>baz]qoz</b>quz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar<b>baz]qoz</b>quz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar<b>baz]qoz</b>quz" queryCommandValue("stylewithcss") before
@@ -283,7 +283,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar<i>baz]qoz</i>quz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar<i>baz]qoz</i>quz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo[bar<i>baz]qoz</i>quz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup><i><sup>baz</sup>qoz</i>quz" but got "foo<span style=\"vertical-align:super\">bar</span><i><span style=\"vertical-align:super\">baz</span>qoz</i>quz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup><i><sup>baz</sup>qoz</i>quz" but got "foo<span style=\\"vertical-align:super\\">bar</span><i><span style=\\"vertical-align:super\\">baz</span>qoz</i>quz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar<i>baz]qoz</i>quz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar<i>baz]qoz</i>quz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar<i>baz]qoz</i>quz" queryCommandValue("stylewithcss") before
@@ -320,7 +320,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "{<p><p> <p>foo</p>}": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "{<p><p> <p>foo</p>}" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "{<p><p> <p>foo</p>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p></p><p> </p><p><sup>foo</sup></p>" but got "<p></p><p> </p><p><span style=\"vertical-align:super\">foo</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p></p><p> </p><p><sup>foo</sup></p>" but got "<p></p><p> </p><p><span style=\\"vertical-align:super\\">foo</span></p>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "{<p><p> <p>foo</p>}" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "{<p><p> <p>foo</p>}" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "{<p><p> <p>foo</p>}" queryCommandValue("stylewithcss") before
@@ -357,7 +357,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>b<sup>a</sup>r</td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td>b<span style=\"vertical-align:super\">a</span>r</td><td>baz</td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>b<sup>a</sup>r</td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td>b<span style=\\"vertical-align:super\\">a</span>r</td><td>baz</td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -394,7 +394,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><sup>bar</sup></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td><span style=\"vertical-align:super\">bar</span></td><td>baz</td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><sup>bar</sup></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td><span style=\\"vertical-align:super\\">bar</span></td><td>baz</td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -431,7 +431,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sup>foo</sup></td><td><sup>bar</sup></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"vertical-align:super\">foo</span></td><td><span style=\"vertical-align:super\">bar</span></td><td>baz</td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sup>foo</sup></td><td><sup>bar</sup></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"vertical-align:super\\">foo</span></td><td><span style=\\"vertical-align:super\\">bar</span></td><td>baz</td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -468,7 +468,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sup>foo</sup></td><td><sup>bar</sup></td><td><sup>baz</sup></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"vertical-align:super\">foo</span></td><td><span style=\"vertical-align:super\">bar</span></td><td><span style=\"vertical-align:super\">baz</span></td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sup>foo</sup></td><td><sup>bar</sup></td><td><sup>baz</sup></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"vertical-align:super\\">foo</span></td><td><span style=\\"vertical-align:super\\">bar</span></td><td><span style=\\"vertical-align:super\\">baz</span></td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -505,7 +505,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sup>foo</sup></td><td><sup>bar</sup></td><td><sup>baz</sup></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"vertical-align:super\">foo</span></td><td><span style=\"vertical-align:super\">bar</span></td><td><span style=\"vertical-align:super\">baz</span></td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sup>foo</sup></td><td><sup>bar</sup></td><td><sup>baz</sup></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"vertical-align:super\\">foo</span></td><td><span style=\\"vertical-align:super\\">bar</span></td><td><span style=\\"vertical-align:super\\">baz</span></td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -544,7 +544,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sup>foo</sup></td><td><sup>bar</sup></td><td><sup>baz</sup></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"vertical-align:super\">foo</span></td><td><span style=\"vertical-align:super\">bar</span></td><td><span style=\"vertical-align:super\">baz</span></td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sup>foo</sup></td><td><sup>bar</sup></td><td><sup>baz</sup></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"vertical-align:super\\">foo</span></td><td><span style=\\"vertical-align:super\\">bar</span></td><td><span style=\\"vertical-align:super\\">baz</span></td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandValue("stylewithcss") before
@@ -583,7 +583,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>[bar]</sub>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>[bar]</sub>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo<sub>[bar]</sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<span style=\"vertical-align:super\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<span style=\\"vertical-align:super\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>[bar]</sub>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>[bar]</sub>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>[bar]</sub>baz" queryCommandValue("stylewithcss") before
@@ -620,7 +620,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b[a]r</sub>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b[a]r</sub>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo<sub>b[a]r</sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<sub>b</sub><span style=\"vertical-align:super\">a</span><sub>r</sub>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<sub>b</sub><span style=\\"vertical-align:super\\">a</span><sub>r</sub>baz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b[a]r</sub>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b[a]r</sub>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b[a]r</sub>baz" queryCommandValue("stylewithcss") before
@@ -693,7 +693,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:sub>[bar]</span>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:sub>[bar]</span>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:sub>[bar]</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<span style=\"vertical-align:super\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<span style=\\"vertical-align:super\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:sub>[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:sub>[bar]</span>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:sub>[bar]</span>baz" queryCommandValue("stylewithcss") before
@@ -772,7 +772,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>[bar]</sub></sub>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>[bar]</sub></sub>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>[bar]</sub></sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<span style=\"vertical-align:super\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<span style=\\"vertical-align:super\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>[bar]</sub></sub>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>[bar]</sub></sub>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>[bar]</sub></sub>baz" queryCommandValue("stylewithcss") before
@@ -809,7 +809,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<sub style=\"vertical-align:sub\">b</sub><span style=\"vertical-align:super\">a</span><sub style=\"vertical-align:sub\">r</sub>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<sub style=\\"vertical-align:sub\\">b</sub><span style=\\"vertical-align:super\\">a</span><sub style=\\"vertical-align:sub\\">r</sub>baz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" queryCommandValue("stylewithcss") before
@@ -828,7 +828,7 @@
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<sub style=\"vertical-align:sub\">b</sub><sup>a</sup><sub style=\"vertical-align:sub\">r</sub>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<sub style=\\"vertical-align:sub\\">b</sub><sup>a</sup><sub style=\\"vertical-align:sub\\">r</sub>baz"
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" queryCommandValue("stylewithcss") before
@@ -847,7 +847,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<span style=\"vertical-align:sub\">b</span><span style=\"vertical-align:super\">a</span><span style=\"vertical-align:sub\">r</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<span style=\\"vertical-align:sub\\">b</span><span style=\\"vertical-align:super\\">a</span><span style=\\"vertical-align:sub\\">r</span>baz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" queryCommandValue("stylewithcss") before
@@ -866,7 +866,7 @@
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<sub style=\"vertical-align:sub\">b</sub><sup>a</sup><sub>r</sub>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<sub style=\\"vertical-align:sub\\">b</sub><sup>a</sup><sub>r</sub>baz"
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" queryCommandValue("stylewithcss") before
@@ -920,7 +920,7 @@
 [PASS] [["superscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz": execCommand("superscript", false, "") return value
 [PASS] [["superscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" checks for modifications to non-editable content
 [FAIL] [["superscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup>a<sup>r</sup>baz" but got "foo<sup style=\"vertical-align:super\">b</sup>a<sup style=\"vertical-align:super\">r</sup>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup>a<sup>r</sup>baz" but got "foo<sup style=\\"vertical-align:super\\">b</sup>a<sup style=\\"vertical-align:super\\">r</sup>baz"
 [PASS] [["superscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" queryCommandIndeterm("superscript") before
 [PASS] [["superscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" queryCommandState("superscript") before
 [FAIL] [["superscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" queryCommandValue("superscript") before
@@ -932,7 +932,7 @@
 [PASS] [["superscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz": execCommand("superscript", false, "") return value
 [PASS] [["superscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" checks for modifications to non-editable content
 [FAIL] [["superscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup>a<sup>r</sup>baz" but got "foo<sup style=\"vertical-align:super\">b</sup>a<sup>r</sup>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup>a<sup>r</sup>baz" but got "foo<sup style=\\"vertical-align:super\\">b</sup>a<sup>r</sup>baz"
 [PASS] [["superscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" queryCommandIndeterm("superscript") before
 [PASS] [["superscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" queryCommandState("superscript") before
 [FAIL] [["superscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" queryCommandValue("superscript") before
@@ -989,7 +989,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<sup style=\"vertical-align:sub\">b</sup>a<sup style=\"vertical-align:sub\">r</sup>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<sup style=\\"vertical-align:sub\\">b</sup>a<sup style=\\"vertical-align:sub\\">r</sup>baz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz" queryCommandValue("stylewithcss") before
@@ -1011,7 +1011,7 @@
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<sup style=\"vertical-align:sub\">b</sup>a<sup style=\"vertical-align:sub\">r</sup>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<sup style=\\"vertical-align:sub\\">b</sup>a<sup style=\\"vertical-align:sub\\">r</sup>baz"
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz" queryCommandValue("stylewithcss") before
@@ -1033,7 +1033,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sup>[a]</sup>r</sub>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sup>[a]</sup>r</sub>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sup>[a]</sup>r</sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<span style=\"vertical-align:sub\">b</span>a<span style=\"vertical-align:sub\">r</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<span style=\\"vertical-align:sub\\">b</span>a<span style=\\"vertical-align:sub\\">r</span>baz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sup>[a]</sup>r</sub>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sup>[a]</sup>r</sub>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sup>[a]</sup>r</sub>baz" queryCommandValue("stylewithcss") before
@@ -1377,7 +1377,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sup>foob</sup><span style=\"vertical-align:super\">ar</span>" but got "<sup>fo</sup>ob<span style=\"vertical-align:super\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sup>foob</sup><span style=\\"vertical-align:super\\">ar</span>" but got "<sup>fo</sup>ob<span style=\\"vertical-align:super\\">ar</span>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1399,7 +1399,7 @@
 [PASS] [["stylewithcss","false"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","false"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sup>foob</sup><span style=\"vertical-align:super\">ar</span>" but got "<sup>fo</sup>ob<span style=\"vertical-align:super\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sup>foob</sup><span style=\\"vertical-align:super\\">ar</span>" but got "<sup>fo</sup>ob<span style=\\"vertical-align:super\\">ar</span>"
 [PASS] [["stylewithcss","false"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1421,7 +1421,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:bottom>b]ar</span>": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:bottom>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:bottom>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sup>foob</sup><span style=\"vertical-align:bottom\">ar</span>" but got "<sup>fo</sup>ob<span style=\"vertical-align:bottom\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sup>foob</sup><span style=\\"vertical-align:bottom\\">ar</span>" but got "<sup>fo</sup>ob<span style=\\"vertical-align:bottom\\">ar</span>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:bottom>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:bottom>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:bottom>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1443,7 +1443,7 @@
 [PASS] [["stylewithcss","false"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:bottom>b]ar</span>": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","false"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:bottom>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:bottom>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sup>foob</sup><span style=\"vertical-align:bottom\">ar</span>" but got "<sup>fo</sup>ob<span style=\"vertical-align:bottom\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sup>foob</sup><span style=\\"vertical-align:bottom\\">ar</span>" but got "<sup>fo</sup>ob<span style=\\"vertical-align:bottom\\">ar</span>"
 [PASS] [["stylewithcss","false"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:bottom>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:bottom>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:bottom>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1465,7 +1465,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:bottom>[bar]</span>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:bottom>[bar]</span>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:bottom>[bar]</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<span style=\"vertical-align:super\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<span style=\\"vertical-align:super\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:bottom>[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:bottom>[bar]</span>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:bottom>[bar]</span>baz" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/underline_1001-2000-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/underline_1001-2000-expected.txt
index 5827392..9a7faf87 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/underline_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/underline_1001-2000-expected.txt
@@ -12,7 +12,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[bar]baz</strike>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[bar]baz</strike>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[bar]baz</strike>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo<span style=\"text-decoration:underline\">bar</span>baz</strike>" but got "<strike>foo<span style=\"text-decoration-line:underline\">bar</span>baz</strike>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo<span style=\\"text-decoration:underline\\">bar</span>baz</strike>" but got "<strike>foo<span style=\\"text-decoration-line:underline\\">bar</span>baz</strike>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[bar]baz</strike>" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[bar]baz</strike>" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -46,122 +46,122 @@
 [PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[bar]baz</strike>" queryCommandState("underline") after
 [FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[bar]baz</strike>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo<span style=\"text-decoration:underline\">b</span><span style=\"color:rgb(0, 0, 255)\"><span style=\"text-decoration:underline\">ar</span>ba</span>z</strike>" but got "<strike>foo<span style=\"text-decoration-line:underline\">b</span><span style=\"color:rgb(0, 0, 255)\"><span style=\"text-decoration-line:underline\">ar</span>ba</span>z</strike>"
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo<span style=\\"text-decoration:underline\\">b</span><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"text-decoration:underline\\">ar</span>ba</span>z</strike>" but got "<strike>foo<span style=\\"text-decoration-line:underline\\">b</span><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"text-decoration-line:underline\\">ar</span>ba</span>z</strike>"
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo<span style=\"text-decoration:underline\">b</span><span style=\"color:rgb(0, 0, 255)\" id=\"foo\"><span style=\"text-decoration:underline\">ar</span>ba</span>z</strike>" but got "<strike>foo<span style=\"text-decoration-line:underline\">b</span><span style=\"color:rgb(0, 0, 255)\" id=\"foo\"><span style=\"text-decoration-line:underline\">ar</span>ba</span>z</strike>"
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo<span style=\\"text-decoration:underline\\">b</span><span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\"><span style=\\"text-decoration:underline\\">ar</span>ba</span>z</strike>" but got "<strike>foo<span style=\\"text-decoration-line:underline\\">b</span><span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\"><span style=\\"text-decoration-line:underline\\">ar</span>ba</span>z</strike>"
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo<span style=\"text-decoration:underline\">b</span><span style=\"font-size:3em\"><span style=\"text-decoration:underline\">ar</span>ba</span>z</strike>" but got "<strike>foo<span style=\"text-decoration-line:underline\">b</span><span style=\"font-size:3em\"><span style=\"text-decoration-line:underline\">ar</span>ba</span>z</strike>"
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo<span style=\\"text-decoration:underline\\">b</span><span style=\\"font-size:3em\\"><span style=\\"text-decoration:underline\\">ar</span>ba</span>z</strike>" but got "<strike>foo<span style=\\"text-decoration-line:underline\\">b</span><span style=\\"font-size:3em\\"><span style=\\"text-decoration-line:underline\\">ar</span>ba</span>z</strike>"
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<i>ar]ba</i>z</strike>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<i>ar]ba</i>z</strike>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo<span style=\"text-decoration:underline\">b</span><i><span style=\"text-decoration:underline\">ar</span>ba</i>z</strike>" but got "<strike>foo<span style=\"text-decoration-line:underline\">b</span><i><span style=\"text-decoration-line:underline\">ar</span>ba</i>z</strike>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo<span style=\\"text-decoration:underline\\">b</span><i><span style=\\"text-decoration:underline\\">ar</span>ba</i>z</strike>" but got "<strike>foo<span style=\\"text-decoration-line:underline\\">b</span><i><span style=\\"text-decoration-line:underline\\">ar</span>ba</i>z</strike>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" queryCommandValue("stylewithcss") before
@@ -216,38 +216,38 @@
 [PASS] [["underline",""]] "<ins>foo[bar]baz</ins>" queryCommandState("underline") after
 [FAIL] [["underline",""]] "<ins>foo[bar]baz</ins>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>": execCommand("underline", false, "") return value
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" checks for modifications to non-editable content
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" compare innerHTML
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandIndeterm("underline") before
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandState("underline") before
-[FAIL] [["underline",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandValue("underline") before
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>": execCommand("underline", false, "") return value
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" checks for modifications to non-editable content
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" compare innerHTML
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandIndeterm("underline") before
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandState("underline") before
+[FAIL] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandIndeterm("underline") after
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandState("underline") after
-[FAIL] [["underline",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandValue("underline") after
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandIndeterm("underline") after
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandState("underline") after
+[FAIL] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>": execCommand("underline", false, "") return value
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" checks for modifications to non-editable content
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" compare innerHTML
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("underline") before
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandState("underline") before
-[FAIL] [["underline",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandValue("underline") before
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>": execCommand("underline", false, "") return value
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" checks for modifications to non-editable content
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" compare innerHTML
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("underline") before
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandState("underline") before
+[FAIL] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("underline") after
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandState("underline") after
-[FAIL] [["underline",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandValue("underline") after
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("underline") after
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandState("underline") after
+[FAIL] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>": execCommand("underline", false, "") return value
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" checks for modifications to non-editable content
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" compare innerHTML
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandIndeterm("underline") before
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandState("underline") before
-[FAIL] [["underline",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandValue("underline") before
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>": execCommand("underline", false, "") return value
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" checks for modifications to non-editable content
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" compare innerHTML
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandIndeterm("underline") before
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandState("underline") before
+[FAIL] [["underline",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandIndeterm("underline") after
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandState("underline") after
-[FAIL] [["underline",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandValue("underline") after
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandIndeterm("underline") after
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandState("underline") after
+[FAIL] [["underline",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["underline",""]] "<ins>foo[b<i>ar]ba</i>z</ins>": execCommand("underline", false, "") return value
 [PASS] [["underline",""]] "<ins>foo[b<i>ar]ba</i>z</ins>" checks for modifications to non-editable content
@@ -264,7 +264,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<del>[bar]</del>baz": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<del>[bar]</del>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "foo<del>[bar]</del>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<del style=\"text-decoration:underline line-through\">bar</del>baz" but got "foo<del style=\"text-decoration-line:underline\">bar</del>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<del style=\\"text-decoration:underline line-through\\">bar</del>baz" but got "foo<del style=\\"text-decoration-line:underline\\">bar</del>baz"
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<del>[bar]</del>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<del>[bar]</del>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<del>[bar]</del>baz" queryCommandValue("stylewithcss") before
@@ -301,7 +301,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[bar]baz</del>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[bar]baz</del>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[bar]baz</del>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<del>foo<span style=\"text-decoration:underline\">bar</span>baz</del>" but got "<del>foo<span style=\"text-decoration-line:underline\">bar</span>baz</del>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<del>foo<span style=\\"text-decoration:underline\\">bar</span>baz</del>" but got "<del>foo<span style=\\"text-decoration-line:underline\\">bar</span>baz</del>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[bar]baz</del>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[bar]baz</del>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[bar]baz</del>" queryCommandValue("stylewithcss") before
@@ -334,122 +334,122 @@
 [PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[bar]baz</del>" queryCommandState("underline") after
 [FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[bar]baz</del>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<del>foo<span style=\"text-decoration:underline\">b</span><span style=\"color:rgb(0, 0, 255)\"><span style=\"text-decoration:underline\">ar</span>ba</span>z</del>" but got "<del>foo<span style=\"text-decoration-line:underline\">b</span><span style=\"color:rgb(0, 0, 255)\"><span style=\"text-decoration-line:underline\">ar</span>ba</span>z</del>"
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<del>foo<span style=\\"text-decoration:underline\\">b</span><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"text-decoration:underline\\">ar</span>ba</span>z</del>" but got "<del>foo<span style=\\"text-decoration-line:underline\\">b</span><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"text-decoration-line:underline\\">ar</span>ba</span>z</del>"
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<del>foo<span style=\"text-decoration:underline\">b</span><span style=\"color:rgb(0, 0, 255)\" id=\"foo\"><span style=\"text-decoration:underline\">ar</span>ba</span>z</del>" but got "<del>foo<span style=\"text-decoration-line:underline\">b</span><span style=\"color:rgb(0, 0, 255)\" id=\"foo\"><span style=\"text-decoration-line:underline\">ar</span>ba</span>z</del>"
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<del>foo<span style=\\"text-decoration:underline\\">b</span><span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\"><span style=\\"text-decoration:underline\\">ar</span>ba</span>z</del>" but got "<del>foo<span style=\\"text-decoration-line:underline\\">b</span><span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\"><span style=\\"text-decoration-line:underline\\">ar</span>ba</span>z</del>"
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<del>foo<span style=\"text-decoration:underline\">b</span><span style=\"font-size:3em\"><span style=\"text-decoration:underline\">ar</span>ba</span>z</del>" but got "<del>foo<span style=\"text-decoration-line:underline\">b</span><span style=\"font-size:3em\"><span style=\"text-decoration-line:underline\">ar</span>ba</span>z</del>"
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<del>foo<span style=\\"text-decoration:underline\\">b</span><span style=\\"font-size:3em\\"><span style=\\"text-decoration:underline\\">ar</span>ba</span>z</del>" but got "<del>foo<span style=\\"text-decoration-line:underline\\">b</span><span style=\\"font-size:3em\\"><span style=\\"text-decoration-line:underline\\">ar</span>ba</span>z</del>"
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<i>ar]ba</i>z</del>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<i>ar]ba</i>z</del>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<i>ar]ba</i>z</del>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<i>ar]ba</i>z</del>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<del>foo<span style=\"text-decoration:underline\">b</span><i><span style=\"text-decoration:underline\">ar</span>ba</i>z</del>" but got "<del>foo<span style=\"text-decoration-line:underline\">b</span><i><span style=\"text-decoration-line:underline\">ar</span>ba</i>z</del>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<del>foo<span style=\\"text-decoration:underline\\">b</span><i><span style=\\"text-decoration:underline\\">ar</span>ba</i>z</del>" but got "<del>foo<span style=\\"text-decoration-line:underline\\">b</span><i><span style=\\"text-decoration-line:underline\\">ar</span>ba</i>z</del>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<i>ar]ba</i>z</del>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<i>ar]ba</i>z</del>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<i>ar]ba</i>z</del>" queryCommandValue("stylewithcss") before
@@ -482,513 +482,513 @@
 [PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<i>ar]ba</i>z</del>" queryCommandState("underline") after
 [FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<i>ar]ba</i>z</del>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz": execCommand("underline", false, "") return value
-[PASS] [["underline",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" checks for modifications to non-editable content
-[FAIL] [["underline",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:line-through\">bar</span>baz" but got "foo<strike>bar</strike>baz"
-[PASS] [["underline",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["underline",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandState("underline") before
-[FAIL] [["underline",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandValue("underline") before
+[PASS] [["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz": execCommand("underline", false, "") return value
+[PASS] [["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" checks for modifications to non-editable content
+[FAIL] [["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:line-through\\">bar</span>baz" but got "foo<strike>bar</strike>baz"
+[PASS] [["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandState("underline") before
+[FAIL] [["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["underline",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandState("underline") after
-[FAIL] [["underline",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandValue("underline") after
+[PASS] [["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandState("underline") after
+[FAIL] [["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:line-through\"><span style=\"text-decoration:underline\">b</span>a<span style=\"text-decoration:underline\">r</span></span>baz" but got "foo<span style=\"text-decoration:underline line-through\">b</span><span style=\"text-decoration-line:line-through\">a</span><span style=\"text-decoration:underline line-through\">r</span>baz"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:line-through\\"><span style=\\"text-decoration:underline\\">b</span>a<span style=\\"text-decoration:underline\\">r</span></span>baz" but got "foo<span style=\\"text-decoration:underline line-through\\">b</span><span style=\\"text-decoration-line:line-through\\">a</span><span style=\\"text-decoration:underline line-through\\">r</span>baz"
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:line-through\"><u>b</u>a<u>r</u></span>baz" but got "foo<span style=\"text-decoration:underline line-through\">b</span><strike>a</strike><span style=\"text-decoration:underline line-through\">r</span>baz"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:line-through\\"><u>b</u>a<u>r</u></span>baz" but got "foo<span style=\\"text-decoration:underline line-through\\">b</span><strike>a</strike><span style=\\"text-decoration:underline line-through\\">r</span>baz"
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline\">b</span>a<span style=\"text-decoration:underline\">r</span>baz" but got "foo<s style=\"text-decoration:underline\">b</s>a<s style=\"text-decoration:underline\">r</s>baz"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline\\">b</span>a<span style=\\"text-decoration:underline\\">r</span>baz" but got "foo<s style=\\"text-decoration:underline\\">b</s>a<s style=\\"text-decoration:underline\\">r</s>baz"
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u>b</u>a<u>r</u>baz" but got "foo<s style=\"text-decoration:underline\">b</s>a<s style=\"text-decoration:underline\">r</s>baz"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u>b</u>a<u>r</u>baz" but got "foo<s style=\\"text-decoration:underline\\">b</s>a<s style=\\"text-decoration:underline\\">r</s>baz"
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline\"><u style=\"text-decoration:line-through\">bar</u></span>baz" but got "foo<span style=\"text-decoration-line:underline line-through\">bar</span>baz"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline\\"><u style=\\"text-decoration:line-through\\">bar</u></span>baz" but got "foo<span style=\\"text-decoration-line:underline line-through\\">bar</span>baz"
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u><u style=\"text-decoration:line-through\">bar</u></u>baz" but got "foo<u><strike>bar</strike></u>baz"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u><u style=\\"text-decoration:line-through\\">bar</u></u>baz" but got "foo<u><strike>bar</strike></u>baz"
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\"text-decoration:line-through\">b<span style=\"text-decoration:underline\">a</span>r</u>baz" but got "foo<u style=\"text-decoration:line-through\">b</u><span style=\"text-decoration-line:underline line-through\">a</span><u style=\"text-decoration:line-through\">r</u>baz"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\\"text-decoration:line-through\\">b<span style=\\"text-decoration:underline\\">a</span>r</u>baz" but got "foo<u style=\\"text-decoration:line-through\\">b</u><span style=\\"text-decoration-line:underline line-through\\">a</span><u style=\\"text-decoration:line-through\\">r</u>baz"
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\"text-decoration:line-through\">b<u>a</u>r</u>baz" but got "foo<u style=\"text-decoration:line-through\">b</u><u><strike>a</strike></u><u style=\"text-decoration:line-through\">r</u>baz"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\\"text-decoration:line-through\\">b<u>a</u>r</u>baz" but got "foo<u style=\\"text-decoration:line-through\\">b</u><u><strike>a</strike></u><u style=\\"text-decoration:line-through\\">r</u>baz"
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline overline\">bar</span>baz" but got "foo<span style=\"text-decoration-line:underline overline\">bar</span>baz"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline overline\\">bar</span>baz" but got "foo<span style=\\"text-decoration-line:underline overline\\">bar</span>baz"
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u><s style=\"text-decoration:overline\">bar</s></u>baz" but got "foo<span style=\"text-decoration-line:overline\"><u>bar</u></span>baz"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u><s style=\\"text-decoration:overline\\">bar</s></u>baz" but got "foo<span style=\\"text-decoration-line:overline\\"><u>bar</u></span>baz"
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<s style=\"text-decoration:overline\">b<span style=\"text-decoration:underline\">a</span>r</s>baz" but got "foo<s style=\"text-decoration:overline\">b</s><span style=\"text-decoration-line:underline overline\">a</span><s style=\"text-decoration:overline\">r</s>baz"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<s style=\\"text-decoration:overline\\">b<span style=\\"text-decoration:underline\\">a</span>r</s>baz" but got "foo<s style=\\"text-decoration:overline\\">b</s><span style=\\"text-decoration-line:underline overline\\">a</span><s style=\\"text-decoration:overline\\">r</s>baz"
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<s style=\"text-decoration:overline\">b<u>a</u>r</s>baz" but got "foo<s style=\"text-decoration:overline\">b</s><span style=\"text-decoration-line:overline\"><u>a</u></span><s style=\"text-decoration:overline\">r</s>baz"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<s style=\\"text-decoration:overline\\">b<u>a</u>r</s>baz" but got "foo<s style=\\"text-decoration:overline\\">b</s><span style=\\"text-decoration-line:overline\\"><u>a</u></span><s style=\\"text-decoration:overline\\">r</s>baz"
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline\"><u style=\"text-decoration:overline\">bar</u></span>baz" but got "foo<span style=\"text-decoration-line:underline overline\">bar</span>baz"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline\\"><u style=\\"text-decoration:overline\\">bar</u></span>baz" but got "foo<span style=\\"text-decoration-line:underline overline\\">bar</span>baz"
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u><u style=\"text-decoration:overline\">bar</u></u>baz" but got "foo<span style=\"text-decoration-line:overline\"><u>bar</u></span>baz"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u><u style=\\"text-decoration:overline\\">bar</u></u>baz" but got "foo<span style=\\"text-decoration-line:overline\\"><u>bar</u></span>baz"
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\"text-decoration:overline\">b<span style=\"text-decoration:underline\">a</span>r</u>baz" but got "foo<u style=\"text-decoration:overline\">b</u><span style=\"text-decoration-line:underline overline\">a</span><u style=\"text-decoration:overline\">r</u>baz"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\\"text-decoration:overline\\">b<span style=\\"text-decoration:underline\\">a</span>r</u>baz" but got "foo<u style=\\"text-decoration:overline\\">b</u><span style=\\"text-decoration-line:underline overline\\">a</span><u style=\\"text-decoration:overline\\">r</u>baz"
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\"text-decoration:overline\">b<u>a</u>r</u>baz" but got "foo<u style=\"text-decoration:overline\">b</u><span style=\"text-decoration-line:overline\"><u>a</u></span><u style=\"text-decoration:overline\">r</u>baz"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\\"text-decoration:overline\\">b<u>a</u>r</u>baz" but got "foo<u style=\\"text-decoration:overline\\">b</u><span style=\\"text-decoration-line:overline\\"><u>a</u></span><u style=\\"text-decoration:overline\\">r</u>baz"
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"text-decoration:overline\">foo<span style=\"text-decoration:underline\">bar</span>baz</p>" but got "<p style=\"\"><span style=\"text-decoration-line:overline\">foo</span><span style=\"text-decoration-line:underline overline\">bar</span><span style=\"text-decoration-line:overline\">baz</span></p>"
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"text-decoration:overline\\">foo<span style=\\"text-decoration:underline\\">bar</span>baz</p>" but got "<p style=\\"\\"><span style=\\"text-decoration-line:overline\\">foo</span><span style=\\"text-decoration-line:underline overline\\">bar</span><span style=\\"text-decoration-line:overline\\">baz</span></p>"
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"text-decoration:overline\">foo<u>bar</u>baz</p>" but got "<p style=\"\"><span style=\"text-decoration-line:overline\">foo<u>bar</u>baz</span></p>"
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"text-decoration:overline\\">foo<u>bar</u>baz</p>" but got "<p style=\\"\\"><span style=\\"text-decoration-line:overline\\">foo<u>bar</u>baz</span></p>"
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "foo<span class=\"underline\">[bar]</span>baz": execCommand("underline", false, "") return value
-[PASS] [["underline",""]] "foo<span class=\"underline\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["underline",""]] "foo<span class=\"underline\">[bar]</span>baz" compare innerHTML
-[PASS] [["underline",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["underline",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandState("underline") before
-[FAIL] [["underline",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandValue("underline") before
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">[bar]</span>baz": execCommand("underline", false, "") return value
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">[bar]</span>baz" compare innerHTML
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandState("underline") before
+[FAIL] [["underline",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["underline",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandState("underline") after
-[FAIL] [["underline",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandValue("underline") after
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandState("underline") after
+[FAIL] [["underline",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "foo<span class=\"underline\">b[a]r</span>baz": execCommand("underline", false, "") return value
-[PASS] [["underline",""]] "foo<span class=\"underline\">b[a]r</span>baz" checks for modifications to non-editable content
-[PASS] [["underline",""]] "foo<span class=\"underline\">b[a]r</span>baz" compare innerHTML
-[PASS] [["underline",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["underline",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandState("underline") before
-[FAIL] [["underline",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandValue("underline") before
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">b[a]r</span>baz": execCommand("underline", false, "") return value
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" checks for modifications to non-editable content
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" compare innerHTML
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandState("underline") before
+[FAIL] [["underline",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["underline",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandState("underline") after
-[FAIL] [["underline",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandValue("underline") after
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandState("underline") after
+[FAIL] [["underline",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span class=\"line-through\" style=\"text-decoration:underline\">bar</span>baz" but got "foo<span class=\"line-through\" style=\"text-decoration-line:underline\">bar</span>baz"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span class=\\"line-through\\" style=\\"text-decoration:underline\\">bar</span>baz" but got "foo<span class=\\"line-through\\" style=\\"text-decoration-line:underline\\">bar</span>baz"
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span class=\"line-through\">b<span style=\"text-decoration:underline\">a</span>r</span>baz" but got "foo<span class=\"line-through\">b<span style=\"text-decoration-line:underline\">a</span>r</span>baz"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span class=\\"line-through\\">b<span style=\\"text-decoration:underline\\">a</span>r</span>baz" but got "foo<span class=\\"line-through\\">b<span style=\\"text-decoration-line:underline\\">a</span>r</span>baz"
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz": execCommand("underline", false, "") return value
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" compare innerHTML
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandState("underline") before
-[FAIL] [["underline",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandValue("underline") before
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz": execCommand("underline", false, "") return value
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" compare innerHTML
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandState("underline") before
+[FAIL] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandState("underline") after
-[FAIL] [["underline",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandValue("underline") after
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandState("underline") after
+[FAIL] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz": execCommand("underline", false, "") return value
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" checks for modifications to non-editable content
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" compare innerHTML
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandState("underline") before
-[FAIL] [["underline",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandValue("underline") before
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz": execCommand("underline", false, "") return value
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" checks for modifications to non-editable content
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" compare innerHTML
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandState("underline") before
+[FAIL] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandState("underline") after
-[FAIL] [["underline",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandValue("underline") after
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandState("underline") after
+[FAIL] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["underline",""]] "fo[o<u>b]ar</u>baz": execCommand("underline", false, "") return value
 [PASS] [["underline",""]] "fo[o<u>b]ar</u>baz" checks for modifications to non-editable content
@@ -1021,7 +1021,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "fo[o<u>bar</u>b]az": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "fo[o<u>bar</u>b]az" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "fo[o<u>bar</u>b]az" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\"text-decoration:underline\">obarb</span>az" but got "fo<span style=\"text-decoration-line:underline\">obarb</span>az"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\\"text-decoration:underline\\">obarb</span>az" but got "fo<span style=\\"text-decoration-line:underline\\">obarb</span>az"
 [PASS] [["stylewithcss","true"],["underline",""]] "fo[o<u>bar</u>b]az" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "fo[o<u>bar</u>b]az" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "fo[o<u>bar</u>b]az" queryCommandValue("stylewithcss") before
@@ -1060,7 +1060,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[<u>b]ar</u>baz": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[<u>b]ar</u>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "foo[<u>b]ar</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foob<span style=\"text-decoration:underline\">ar</span>baz" but got "foob<u>ar</u>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foob<span style=\\"text-decoration:underline\\">ar</span>baz" but got "foob<u>ar</u>baz"
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[<u>b]ar</u>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[<u>b]ar</u>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[<u>b]ar</u>baz" queryCommandValue("stylewithcss") before
@@ -1097,7 +1097,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<u>ba[r</u>]baz": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<u>ba[r</u>]baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "foo<u>ba[r</u>]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline\">ba</span>rbaz" but got "foo<u>ba</u>rbaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline\\">ba</span>rbaz" but got "foo<u>ba</u>rbaz"
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<u>ba[r</u>]baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<u>ba[r</u>]baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<u>ba[r</u>]baz" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/underline_2001-last-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/underline_2001-last-expected.txt
index e9081e8a..afb9493 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/underline_2001-last-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/underline_2001-last-expected.txt
@@ -61,7 +61,7 @@
 [PASS] [["underline",""]] "fo[o<span style=text-decoration:underline>b]ar</span>baz": execCommand("underline", false, "") return value
 [PASS] [["underline",""]] "fo[o<span style=text-decoration:underline>b]ar</span>baz" checks for modifications to non-editable content
 [FAIL] [["underline",""]] "fo[o<span style=text-decoration:underline>b]ar</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\"text-decoration:underline\">obar</span>baz" but got "fo<u>ob</u><span style=\"text-decoration:underline\">ar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\\"text-decoration:underline\\">obar</span>baz" but got "fo<u>ob</u><span style=\\"text-decoration:underline\\">ar</span>baz"
 [FAIL] [["underline",""]] "fo[o<span style=text-decoration:underline>b]ar</span>baz" queryCommandIndeterm("underline") before
   assert_equals: Wrong result returned expected true but got false
 [PASS] [["underline",""]] "fo[o<span style=text-decoration:underline>b]ar</span>baz" queryCommandState("underline") before
@@ -75,7 +75,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "<ins>fo[o</ins><u>b]ar</u>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<ins>fo[o</ins><u>b]ar</u>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<ins>fo[o</ins><u>b]ar</u>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo</ins>b<span style=\"text-decoration:underline\">ar</span>" but got "<ins>foo</ins>b<u>ar</u>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo</ins>b<span style=\\"text-decoration:underline\\">ar</span>" but got "<ins>foo</ins>b<u>ar</u>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<ins>fo[o</ins><u>b]ar</u>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<ins>fo[o</ins><u>b]ar</u>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<ins>fo[o</ins><u>b]ar</u>" queryCommandValue("stylewithcss") before
@@ -116,7 +116,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "<u>fo[o</u><ins>b]ar</ins>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<u>fo[o</u><ins>b]ar</ins>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<u>fo[o</u><ins>b]ar</ins>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"text-decoration:underline\">fo</span>o<ins>bar</ins>" but got "<u>fo</u>o<ins>bar</ins>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"text-decoration:underline\\">fo</span>o<ins>bar</ins>" but got "<u>fo</u>o<ins>bar</ins>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<u>fo[o</u><ins>b]ar</ins>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<u>fo[o</u><ins>b]ar</ins>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<u>fo[o</u><ins>b]ar</ins>" queryCommandValue("stylewithcss") before
@@ -151,25 +151,25 @@
 [PASS] [["stylewithcss","false"],["underline",""]] "<u>fo[o</u><ins>b]ar</ins>" queryCommandState("underline") after
 [FAIL] [["stylewithcss","false"],["underline",""]] "<u>fo[o</u><ins>b]ar</ins>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:line-through overline underline\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:line-through overline underline\">[def]</span>ghi": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:line-through overline underline\">[def]</span>ghi" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:line-through overline underline\">[def]</span>ghi" compare innerHTML
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:blink line-through overline\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:blink line-through overline\">[def]</span>ghi": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:blink line-through overline\">[def]</span>ghi" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:blink line-through overline\">[def]</span>ghi" compare innerHTML
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:line-through blue dotted\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:line-through blue dotted\">[def]</span>ghi": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:line-through blue dotted\">[def]</span>ghi" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:line-through blue dotted\">[def]</span>ghi" compare innerHTML
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:blink line-through underline overline\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:blink line-through underline overline\">[def]</span>ghi": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:blink line-through underline overline\">[def]</span>ghi" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:blink line-through underline overline\">[def]</span>ghi" compare innerHTML
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:underline line-through blue dotted\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:underline line-through blue dotted\">[def]</span>ghi": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:underline line-through blue dotted\">[def]</span>ghi" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:underline line-through blue dotted\">[def]</span>ghi" compare innerHTML
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:line-through overline underline\\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:line-through overline underline\\">[def]</span>ghi": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:line-through overline underline\\">[def]</span>ghi" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:line-through overline underline\\">[def]</span>ghi" compare innerHTML
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:blink line-through overline\\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:blink line-through overline\\">[def]</span>ghi": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:blink line-through overline\\">[def]</span>ghi" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:blink line-through overline\\">[def]</span>ghi" compare innerHTML
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:line-through blue dotted\\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:line-through blue dotted\\">[def]</span>ghi": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:line-through blue dotted\\">[def]</span>ghi" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:line-through blue dotted\\">[def]</span>ghi" compare innerHTML
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:blink line-through underline overline\\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:blink line-through underline overline\\">[def]</span>ghi": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:blink line-through underline overline\\">[def]</span>ghi" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:blink line-through underline overline\\">[def]</span>ghi" compare innerHTML
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:underline line-through blue dotted\\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:underline line-through blue dotted\\">[def]</span>ghi": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:underline line-through blue dotted\\">[def]</span>ghi" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:underline line-through blue dotted\\">[def]</span>ghi" compare innerHTML
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element-origin-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element-origin-expected.txt
index 1dff093..96b04e8a 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element-origin-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element-origin-expected.txt
@@ -20,22 +20,22 @@
 [PASS] Parsing origin: <> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <  	> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:a> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <:\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <:\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:#> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <#> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <#/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <#\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <#\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <#;?> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <?> against <http://example.org/foo/bar>
 [PASS] Parsing origin: </> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:23> against <http://example.org/foo/bar>
 [PASS] Parsing origin: </:23> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <\x> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <\\x> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <\\\\x\\hello> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <::> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <::23> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <foo://> against <http://example.org/foo/bar>
@@ -44,9 +44,9 @@
 [PASS] Parsing origin: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <foo:/> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <foo:/bar.com/> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <foo://///////> against <http://example.org/foo/bar>
@@ -122,7 +122,7 @@
 [PASS] Parsing origin: <http://example.com/(%28:%3A%29)> against <about:blank>
 [PASS] Parsing origin: <http://example.com/%3A%3a%3C%3c> against <about:blank>
 [PASS] Parsing origin: <http://example.com/foo	bar> against <about:blank>
-[PASS] Parsing origin: <http://example.com\\foo\\bar> against <about:blank>
+[PASS] Parsing origin: <http://example.com\\\\foo\\\\bar> against <about:blank>
 [PASS] Parsing origin: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
 [PASS] Parsing origin: <http://example.com/@asdf%40> against <about:blank>
 [PASS] Parsing origin: <http://example.com/你好你好> against <about:blank>
@@ -137,7 +137,7 @@
 [PASS] Parsing origin: <http://www/foo%2Ehtml> against <about:blank>
 [PASS] Parsing origin: <http://www/foo/%2E/html> against <about:blank>
 [PASS] Parsing origin: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
-[PASS] Parsing origin: <http:\\www.google.com\foo> against <about:blank>
+[PASS] Parsing origin: <http:\\\\www.google.com\\foo> against <about:blank>
 [PASS] Parsing origin: <http://foo:80/> against <about:blank>
 [PASS] Parsing origin: <http://foo:81/> against <about:blank>
 [PASS] Parsing origin: <httpa://foo:80/> against <about:blank>
@@ -257,7 +257,7 @@
 [PASS] Parsing origin: <sc://ñ.test/> against <about:blank>
 [FAIL] Parsing origin: <x> against <sc://ñ>
   assert_equals: origin expected "null" but got ""
-[PASS] Parsing origin: <sc:\../> against <about:blank>
+[PASS] Parsing origin: <sc:\\../> against <about:blank>
 [PASS] Parsing origin: <sc::a@example.net> against <about:blank>
 [PASS] Parsing origin: <wow:%NBD> against <about:blank>
 [PASS] Parsing origin: <wow:%1G> against <about:blank>
@@ -265,7 +265,7 @@
 [FAIL] Parsing origin: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank>
   assert_equals: origin expected "http://example.com" but got ""
 [FAIL] Parsing origin: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: origin expected "http://!\"$&'()*+,-.;=_`{}~" but got "http://!\"$&'()%2A+,-.;=_`{}~"
+  assert_equals: origin expected "http://!\\"$&'()*+,-.;=_`{}~" but got "http://!\\"$&'()%2A+,-.;=_`{}~"
 [PASS] Parsing origin: <sc://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
 [PASS] Parsing origin: <ftp://%e2%98%83> against <about:blank>
 [PASS] Parsing origin: <https://%e2%98%83> against <about:blank>
@@ -334,19 +334,19 @@
 [PASS] Parsing origin: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
 [PASS] Parsing origin: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
 [PASS] Parsing origin: <https://user:pass[@foo/bar> against <http://example.org>
-[PASS] Parsing origin: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank>
+[PASS] Parsing origin: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> against <about:blank>
 [PASS] Parsing origin: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank>
-[PASS] Parsing origin: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank>
+[PASS] Parsing origin: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> against <about:blank>
 [PASS] Parsing origin: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank>
 [PASS] Parsing origin: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
 [FAIL] Parsing origin: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: origin expected "wss://!\"$&'()*+,-.;=_`{}~" but got "wss://!\"$&'()%2A+,-.;=_`{}~"
-[PASS] Parsing origin: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+  assert_equals: origin expected "wss://!\\"$&'()*+,-.;=_`{}~" but got "wss://!\\"$&'()%2A+,-.;=_`{}~"
+[PASS] Parsing origin: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
 [PASS] Parsing origin: <https://example.com/"quoted"> against <about:blank>
 [PASS] Parsing origin: <https://a%C2%ADb/> against <about:blank>
 [PASS] Parsing origin: <data://example.com:8080/pathname?search#hash> against <about:blank>
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element-origin-xhtml-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element-origin-xhtml-expected.txt
index 1dff093..96b04e8a 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element-origin-xhtml-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element-origin-xhtml-expected.txt
@@ -20,22 +20,22 @@
 [PASS] Parsing origin: <> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <  	> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:a> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <:\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <:\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:#> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <#> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <#/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <#\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <#\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <#;?> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <?> against <http://example.org/foo/bar>
 [PASS] Parsing origin: </> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:23> against <http://example.org/foo/bar>
 [PASS] Parsing origin: </:23> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <\x> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <\\x> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <\\\\x\\hello> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <::> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <::23> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <foo://> against <http://example.org/foo/bar>
@@ -44,9 +44,9 @@
 [PASS] Parsing origin: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <foo:/> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <foo:/bar.com/> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <foo://///////> against <http://example.org/foo/bar>
@@ -122,7 +122,7 @@
 [PASS] Parsing origin: <http://example.com/(%28:%3A%29)> against <about:blank>
 [PASS] Parsing origin: <http://example.com/%3A%3a%3C%3c> against <about:blank>
 [PASS] Parsing origin: <http://example.com/foo	bar> against <about:blank>
-[PASS] Parsing origin: <http://example.com\\foo\\bar> against <about:blank>
+[PASS] Parsing origin: <http://example.com\\\\foo\\\\bar> against <about:blank>
 [PASS] Parsing origin: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
 [PASS] Parsing origin: <http://example.com/@asdf%40> against <about:blank>
 [PASS] Parsing origin: <http://example.com/你好你好> against <about:blank>
@@ -137,7 +137,7 @@
 [PASS] Parsing origin: <http://www/foo%2Ehtml> against <about:blank>
 [PASS] Parsing origin: <http://www/foo/%2E/html> against <about:blank>
 [PASS] Parsing origin: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
-[PASS] Parsing origin: <http:\\www.google.com\foo> against <about:blank>
+[PASS] Parsing origin: <http:\\\\www.google.com\\foo> against <about:blank>
 [PASS] Parsing origin: <http://foo:80/> against <about:blank>
 [PASS] Parsing origin: <http://foo:81/> against <about:blank>
 [PASS] Parsing origin: <httpa://foo:80/> against <about:blank>
@@ -257,7 +257,7 @@
 [PASS] Parsing origin: <sc://ñ.test/> against <about:blank>
 [FAIL] Parsing origin: <x> against <sc://ñ>
   assert_equals: origin expected "null" but got ""
-[PASS] Parsing origin: <sc:\../> against <about:blank>
+[PASS] Parsing origin: <sc:\\../> against <about:blank>
 [PASS] Parsing origin: <sc::a@example.net> against <about:blank>
 [PASS] Parsing origin: <wow:%NBD> against <about:blank>
 [PASS] Parsing origin: <wow:%1G> against <about:blank>
@@ -265,7 +265,7 @@
 [FAIL] Parsing origin: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank>
   assert_equals: origin expected "http://example.com" but got ""
 [FAIL] Parsing origin: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: origin expected "http://!\"$&'()*+,-.;=_`{}~" but got "http://!\"$&'()%2A+,-.;=_`{}~"
+  assert_equals: origin expected "http://!\\"$&'()*+,-.;=_`{}~" but got "http://!\\"$&'()%2A+,-.;=_`{}~"
 [PASS] Parsing origin: <sc://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
 [PASS] Parsing origin: <ftp://%e2%98%83> against <about:blank>
 [PASS] Parsing origin: <https://%e2%98%83> against <about:blank>
@@ -334,19 +334,19 @@
 [PASS] Parsing origin: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
 [PASS] Parsing origin: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
 [PASS] Parsing origin: <https://user:pass[@foo/bar> against <http://example.org>
-[PASS] Parsing origin: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank>
+[PASS] Parsing origin: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> against <about:blank>
 [PASS] Parsing origin: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank>
-[PASS] Parsing origin: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank>
+[PASS] Parsing origin: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> against <about:blank>
 [PASS] Parsing origin: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank>
 [PASS] Parsing origin: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
 [FAIL] Parsing origin: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: origin expected "wss://!\"$&'()*+,-.;=_`{}~" but got "wss://!\"$&'()%2A+,-.;=_`{}~"
-[PASS] Parsing origin: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+  assert_equals: origin expected "wss://!\\"$&'()*+,-.;=_`{}~" but got "wss://!\\"$&'()%2A+,-.;=_`{}~"
+[PASS] Parsing origin: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
 [PASS] Parsing origin: <https://example.com/"quoted"> against <about:blank>
 [PASS] Parsing origin: <https://a%C2%ADb/> against <about:blank>
 [PASS] Parsing origin: <data://example.com:8080/pathname?search#hash> against <about:blank>
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element-xhtml_include=file-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element-xhtml_include=file-expected.txt
index 57e0219..7b95049b 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element-xhtml_include=file-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element-xhtml_include=file-expected.txt
@@ -6,19 +6,19 @@
 [PASS] Parsing: <file://example:test/> against <about:blank>
 [PASS] Parsing: <file://example%/> against <about:blank>
 [PASS] Parsing: <file://[example]/> against <about:blank>
-[FAIL] Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html"
-[FAIL] Parsing: <  File:c|////foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <  File:c|////foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///tmp/mock/c%7C////foo/bar.html"
 [FAIL] Parsing: <C|/foo/bar> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///C:/foo/bar" but got "file:///tmp/mock/C%7C/foo/bar"
-[FAIL] Parsing: </C|\foo\bar> against <file:///tmp/mock/path>
+[FAIL] Parsing: </C|\\foo\\bar> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///C:/foo/bar" but got "file:///C%7C/foo/bar"
 [FAIL] Parsing: <//C|/foo/bar> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///C:/foo/bar" but got "//C|/foo/bar"
 [PASS] Parsing: <//server/file> against <file:///tmp/mock/path>
-[PASS] Parsing: <\\server\file> against <file:///tmp/mock/path>
-[PASS] Parsing: </\server/file> against <file:///tmp/mock/path>
+[PASS] Parsing: <\\\\server\\file> against <file:///tmp/mock/path>
+[PASS] Parsing: </\\server/file> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///home/me> against <file:///tmp/mock/path>
 [PASS] Parsing: <//> against <file:///tmp/mock/path>
@@ -65,26 +65,26 @@
 [PASS] Parsing: <file:?x> against <file:///test?test#test>
 [PASS] Parsing: <#x> against <file:///test?test#test>
 [PASS] Parsing: <file:#x> against <file:///test?test#test>
-[FAIL] Parsing: <file:\\//> against <about:blank>
+[FAIL] Parsing: <file:\\\\//> against <about:blank>
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\> against <about:blank>
+[FAIL] Parsing: <file:\\\\\\\\> against <about:blank>
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\?fox> against <about:blank>
+[FAIL] Parsing: <file:\\\\\\\\?fox> against <about:blank>
   assert_equals: href expected "file:////?fox" but got "file:///?fox"
-[FAIL] Parsing: <file:\\\\#guppy> against <about:blank>
+[FAIL] Parsing: <file:\\\\\\\\#guppy> against <about:blank>
   assert_equals: href expected "file:////#guppy" but got "file:///#guppy"
 [PASS] Parsing: <file://spider///> against <about:blank>
-[FAIL] Parsing: <file:\\localhost//> against <about:blank>
+[FAIL] Parsing: <file:\\\\localhost//> against <about:blank>
   assert_equals: href expected "file:////" but got "file://localhost//"
 [PASS] Parsing: <file:///localhost//cat> against <about:blank>
-[FAIL] Parsing: <file://\/localhost//cat> against <about:blank>
+[FAIL] Parsing: <file://\\/localhost//cat> against <about:blank>
   assert_equals: href expected "file:////localhost//cat" but got "file:///localhost//cat"
 [FAIL] Parsing: <file://localhost//a//../..//> against <about:blank>
   assert_equals: href expected "file://///" but got "file://localhost///"
 [FAIL] Parsing: </////mouse> against <file:///elephant>
   assert_equals: href expected "file://///mouse" but got "file:///mouse"
-[PASS] Parsing: <\//pig> against <file://lion/>
-[FAIL] Parsing: <\/localhost//pig> against <file://lion/>
+[PASS] Parsing: <\\//pig> against <file://lion/>
+[FAIL] Parsing: <\\/localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
 [FAIL] Parsing: <//localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
@@ -104,7 +104,7 @@
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
 [FAIL] Parsing: <C|\n/> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
-[FAIL] Parsing: <C|\> against <file://host/dir/file>
+[FAIL] Parsing: <C|\\> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
 [PASS] Parsing: <C> against <file://host/dir/file>
 [FAIL] Parsing: <C|a> against <file://host/dir/file>
@@ -112,7 +112,7 @@
 [PASS] Parsing: </c:/foo/bar> against <file:///c:/baz/qux>
 [FAIL] Parsing: </c|/foo/bar> against <file:///c:/baz/qux>
   assert_equals: href expected "file:///c:/foo/bar" but got "file:///c%7C/foo/bar"
-[PASS] Parsing: <file:\c:\foo\bar> against <file:///c:/baz/qux>
+[PASS] Parsing: <file:\\c:\\foo\\bar> against <file:///c:/baz/qux>
 [PASS] Parsing: </c:/foo/bar> against <file://host/path>
 [PASS] Parsing: <file://example.net/C:/> against <about:blank>
 [PASS] Parsing: <file://1.2.3.4/C:/> against <about:blank>
diff --git "a/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
index 9414cc8..3ec4a05 100644
--- "a/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -30,22 +30,22 @@
 [PASS] Parsing: <> against <http://example.org/foo/bar>
 [PASS] Parsing: <  	> against <http://example.org/foo/bar>
 [PASS] Parsing: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:> against <http://example.org/foo/bar>
 [PASS] Parsing: <:a> against <http://example.org/foo/bar>
 [PASS] Parsing: <:/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#/> against <http://example.org/foo/bar>
-[PASS] Parsing: <#\> against <http://example.org/foo/bar>
+[PASS] Parsing: <#\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <#;?> against <http://example.org/foo/bar>
 [PASS] Parsing: <?> against <http://example.org/foo/bar>
 [PASS] Parsing: </> against <http://example.org/foo/bar>
 [PASS] Parsing: <:23> against <http://example.org/foo/bar>
 [PASS] Parsing: </:23> against <http://example.org/foo/bar>
-[PASS] Parsing: <\x> against <http://example.org/foo/bar>
-[PASS] Parsing: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Parsing: <\\x> against <http://example.org/foo/bar>
+[PASS] Parsing: <\\\\x\\hello> against <http://example.org/foo/bar>
 [PASS] Parsing: <::> against <http://example.org/foo/bar>
 [PASS] Parsing: <::23> against <http://example.org/foo/bar>
 [FAIL] Parsing: <foo://> against <http://example.org/foo/bar>
@@ -55,9 +55,9 @@
 [PASS] Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
 [FAIL] Parsing: <foo://///////> against <http://example.org/foo/bar>
@@ -140,7 +140,7 @@
 [PASS] Parsing: <http://example.com/(%28:%3A%29)> against <about:blank>
 [PASS] Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank>
 [PASS] Parsing: <http://example.com/foo	bar> against <about:blank>
-[PASS] Parsing: <http://example.com\\foo\\bar> against <about:blank>
+[PASS] Parsing: <http://example.com\\\\foo\\\\bar> against <about:blank>
 [PASS] Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
 [PASS] Parsing: <http://example.com/@asdf%40> against <about:blank>
 [PASS] Parsing: <http://example.com/你好你好> against <about:blank>
@@ -157,7 +157,7 @@
 [PASS] Parsing: <http://www/foo/%2E/html> against <about:blank>
 [PASS] Parsing: <http://user:pass@/> against <about:blank>
 [PASS] Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
-[PASS] Parsing: <http:\\www.google.com\foo> against <about:blank>
+[PASS] Parsing: <http:\\\\www.google.com\\foo> against <about:blank>
 [PASS] Parsing: <http://foo:80/> against <about:blank>
 [PASS] Parsing: <http://foo:81/> against <about:blank>
 [FAIL] Parsing: <httpa://foo:80/> against <about:blank>
@@ -371,13 +371,13 @@
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <x> against <sc://ñ>
   assert_equals: href expected "sc://%C3%B1/x" but got "x"
-[PASS] Parsing: <sc:\../> against <about:blank>
+[PASS] Parsing: <sc:\\../> against <about:blank>
 [PASS] Parsing: <sc::a@example.net> against <about:blank>
 [PASS] Parsing: <wow:%NBD> against <about:blank>
 [PASS] Parsing: <wow:%1G> against <about:blank>
 [PASS] Parsing: <wow:￿> against <about:blank>
 [FAIL] Parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank>
-  assert_equals: href expected "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF" but got "http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ\ufffe\uffff?U+d800𐟾U+dfff﷐﷏﷯ﷰ\ufffe\uffff"
+  assert_equals: href expected "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF" but got "http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ\\ufffe\\uffff?U+d800𐟾U+dfff﷐﷏﷯ﷰ\\ufffe\\uffff"
 [FAIL] Parsing: <sc://a\0b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <sc://a b/> against <about:blank>
@@ -388,7 +388,7 @@
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <sc://a[b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
-[FAIL] Parsing: <sc://a\b/> against <about:blank>
+[FAIL] Parsing: <sc://a\\b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <sc://a]b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
@@ -492,9 +492,9 @@
 [PASS] Parsing: <http://ho%7Cst/> against <about:blank>
 [PASS] Parsing: <http://ho%7Fst/> against <about:blank>
 [FAIL] Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: href expected "http://!\"$&'()*+,-.;=_`{}~/" but got "http://!\"$&'()%2A+,-.;=_`{}~/"
+  assert_equals: href expected "http://!\\"$&'()*+,-.;=_`{}~/" but got "http://!\\"$&'()%2A+,-.;=_`{}~/"
 [FAIL] Parsing: <sc://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\\"$%&'()*+,-.;=_`{}~" but got ""
 [PASS] Parsing: <ftp://example.com%80/> against <about:blank>
 [PASS] Parsing: <ftp://example.com%A0/> against <about:blank>
 [PASS] Parsing: <https://example.com%80/> against <about:blank>
@@ -540,8 +540,8 @@
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <asdf://%43%7C/> against <about:blank>
   assert_equals: host expected "%43%7C" but got ""
-[PASS] Parsing: <\\\.\Y:> against <about:blank>
-[PASS] Parsing: <\\\.\y:> against <about:blank>
+[PASS] Parsing: <\\\\\\.\\Y:> against <about:blank>
+[PASS] Parsing: <\\\\\\.\\y:> against <about:blank>
 [PASS] Parsing: <http://[1:0::]> against <http://example.net/>
 [PASS] Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/>
 [PASS] Parsing: <https://[0::0::0]> against <about:blank>
@@ -682,28 +682,28 @@
 [PASS] Parsing: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
 [PASS] Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
 [PASS] Parsing: <https://user:pass[@foo/bar> against <http://example.org>
-[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank>
-  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> against <about:blank>
+  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\\"$%&'()*+,-.;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank>
   assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
-[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank>
-  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> against <about:blank>
+  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\\"$%&'()*+,-.:;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank>
   assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
 [FAIL] Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "!\\"$%&'()*+,-.;=_`{}~" but got ""
 [FAIL] Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: href expected "wss://!\"$&'()*+,-.;=_`{}~/" but got "wss://!\"$&'()%2A+,-.;=_`{}~/"
-[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
-  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
-[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
+  assert_equals: href expected "wss://!\\"$&'()*+,-.;=_`{}~/" but got "wss://!\\"$&'()%2A+,-.;=_`{}~/"
+[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
+  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\\\]^_%60%7B|%7D~" but got "foo://host/ !\\"$%&'()*+,-./:;<=>@[\\\\]^_`{|}~"
+[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
   assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
-[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~"
-[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~"
+[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
   assert_equals: host expected "host" but got ""
-[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
 [FAIL] Parsing: <abc:rootless> against <abc://host/path>
   assert_equals: href expected "abc:rootless" but got "abc://host/rootless"
 [FAIL] Parsing: <abc:rootless> against <abc:/path>
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element_include=file-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element_include=file-expected.txt
index 57e0219..7b95049b 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element_include=file-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element_include=file-expected.txt
@@ -6,19 +6,19 @@
 [PASS] Parsing: <file://example:test/> against <about:blank>
 [PASS] Parsing: <file://example%/> against <about:blank>
 [PASS] Parsing: <file://[example]/> against <about:blank>
-[FAIL] Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html"
-[FAIL] Parsing: <  File:c|////foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <  File:c|////foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///tmp/mock/c%7C////foo/bar.html"
 [FAIL] Parsing: <C|/foo/bar> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///C:/foo/bar" but got "file:///tmp/mock/C%7C/foo/bar"
-[FAIL] Parsing: </C|\foo\bar> against <file:///tmp/mock/path>
+[FAIL] Parsing: </C|\\foo\\bar> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///C:/foo/bar" but got "file:///C%7C/foo/bar"
 [FAIL] Parsing: <//C|/foo/bar> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///C:/foo/bar" but got "//C|/foo/bar"
 [PASS] Parsing: <//server/file> against <file:///tmp/mock/path>
-[PASS] Parsing: <\\server\file> against <file:///tmp/mock/path>
-[PASS] Parsing: </\server/file> against <file:///tmp/mock/path>
+[PASS] Parsing: <\\\\server\\file> against <file:///tmp/mock/path>
+[PASS] Parsing: </\\server/file> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///home/me> against <file:///tmp/mock/path>
 [PASS] Parsing: <//> against <file:///tmp/mock/path>
@@ -65,26 +65,26 @@
 [PASS] Parsing: <file:?x> against <file:///test?test#test>
 [PASS] Parsing: <#x> against <file:///test?test#test>
 [PASS] Parsing: <file:#x> against <file:///test?test#test>
-[FAIL] Parsing: <file:\\//> against <about:blank>
+[FAIL] Parsing: <file:\\\\//> against <about:blank>
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\> against <about:blank>
+[FAIL] Parsing: <file:\\\\\\\\> against <about:blank>
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\?fox> against <about:blank>
+[FAIL] Parsing: <file:\\\\\\\\?fox> against <about:blank>
   assert_equals: href expected "file:////?fox" but got "file:///?fox"
-[FAIL] Parsing: <file:\\\\#guppy> against <about:blank>
+[FAIL] Parsing: <file:\\\\\\\\#guppy> against <about:blank>
   assert_equals: href expected "file:////#guppy" but got "file:///#guppy"
 [PASS] Parsing: <file://spider///> against <about:blank>
-[FAIL] Parsing: <file:\\localhost//> against <about:blank>
+[FAIL] Parsing: <file:\\\\localhost//> against <about:blank>
   assert_equals: href expected "file:////" but got "file://localhost//"
 [PASS] Parsing: <file:///localhost//cat> against <about:blank>
-[FAIL] Parsing: <file://\/localhost//cat> against <about:blank>
+[FAIL] Parsing: <file://\\/localhost//cat> against <about:blank>
   assert_equals: href expected "file:////localhost//cat" but got "file:///localhost//cat"
 [FAIL] Parsing: <file://localhost//a//../..//> against <about:blank>
   assert_equals: href expected "file://///" but got "file://localhost///"
 [FAIL] Parsing: </////mouse> against <file:///elephant>
   assert_equals: href expected "file://///mouse" but got "file:///mouse"
-[PASS] Parsing: <\//pig> against <file://lion/>
-[FAIL] Parsing: <\/localhost//pig> against <file://lion/>
+[PASS] Parsing: <\\//pig> against <file://lion/>
+[FAIL] Parsing: <\\/localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
 [FAIL] Parsing: <//localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
@@ -104,7 +104,7 @@
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
 [FAIL] Parsing: <C|\n/> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
-[FAIL] Parsing: <C|\> against <file://host/dir/file>
+[FAIL] Parsing: <C|\\> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
 [PASS] Parsing: <C> against <file://host/dir/file>
 [FAIL] Parsing: <C|a> against <file://host/dir/file>
@@ -112,7 +112,7 @@
 [PASS] Parsing: </c:/foo/bar> against <file:///c:/baz/qux>
 [FAIL] Parsing: </c|/foo/bar> against <file:///c:/baz/qux>
   assert_equals: href expected "file:///c:/foo/bar" but got "file:///c%7C/foo/bar"
-[PASS] Parsing: <file:\c:\foo\bar> against <file:///c:/baz/qux>
+[PASS] Parsing: <file:\\c:\\foo\\bar> against <file:///c:/baz/qux>
 [PASS] Parsing: </c:/foo/bar> against <file://host/path>
 [PASS] Parsing: <file://example.net/C:/> against <about:blank>
 [PASS] Parsing: <file://1.2.3.4/C:/> against <about:blank>
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/url/failure-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/url/failure-expected.txt
index 47903f1d..846312c2 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/url/failure-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/url/failure-expected.txt
@@ -280,16 +280,16 @@
   assert_throws_dom: function "() => frame.contentWindow.location = test.input" did not throw
 [FAIL] window.open(): sc://a[b/ should throw
   assert_throws_dom: function "() => self.open(test.input).close()" did not throw
-[FAIL] URL's constructor's base argument: sc://a\b/ should throw
+[FAIL] URL's constructor's base argument: sc://a\\b/ should throw
   assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
-[FAIL] URL's href: sc://a\b/ should throw
+[FAIL] URL's href: sc://a\\b/ should throw
   assert_throws_js: function "() => url.href = test.input" did not throw
-[FAIL] XHR: sc://a\b/ should throw
+[FAIL] XHR: sc://a\\b/ should throw
   assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
-[PASS] sendBeacon(): sc://a\b/ should throw
-[FAIL] Location's href: sc://a\b/ should throw
+[PASS] sendBeacon(): sc://a\\b/ should throw
+[FAIL] Location's href: sc://a\\b/ should throw
   assert_throws_dom: function "() => frame.contentWindow.location = test.input" did not throw
-[FAIL] window.open(): sc://a\b/ should throw
+[FAIL] window.open(): sc://a\\b/ should throw
   assert_throws_dom: function "() => self.open(test.input).close()" did not throw
 [FAIL] URL's constructor's base argument: sc://a]b/ should throw
   assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
@@ -923,10 +923,10 @@
   assert_throws_dom: function "() => frame.contentWindow.location = test.input" did not throw
 [FAIL] window.open(): asdf://%43|/ should throw
   assert_throws_dom: function "() => self.open(test.input).close()" did not throw
-[PASS] URL's constructor's base argument: \\\.\Y: should throw
-[PASS] URL's href: \\\.\Y: should throw
-[PASS] URL's constructor's base argument: \\\.\y: should throw
-[PASS] URL's href: \\\.\y: should throw
+[PASS] URL's constructor's base argument: \\\\\\.\\Y: should throw
+[PASS] URL's href: \\\\\\.\\Y: should throw
+[PASS] URL's constructor's base argument: \\\\\\.\\y: should throw
+[PASS] URL's href: \\\\\\.\\y: should throw
 [PASS] URL's constructor's base argument: https://[0::0::0] should throw
 [PASS] URL's href: https://[0::0::0] should throw
 [PASS] XHR: https://[0::0::0] should throw
diff --git "a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
index f3767ed..9d633a5 100644
--- "a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -30,22 +30,22 @@
 [PASS] Parsing: <> against <http://example.org/foo/bar>
 [PASS] Parsing: <  	> against <http://example.org/foo/bar>
 [PASS] Parsing: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:> against <http://example.org/foo/bar>
 [PASS] Parsing: <:a> against <http://example.org/foo/bar>
 [PASS] Parsing: <:/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#/> against <http://example.org/foo/bar>
-[PASS] Parsing: <#\> against <http://example.org/foo/bar>
+[PASS] Parsing: <#\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <#;?> against <http://example.org/foo/bar>
 [PASS] Parsing: <?> against <http://example.org/foo/bar>
 [PASS] Parsing: </> against <http://example.org/foo/bar>
 [PASS] Parsing: <:23> against <http://example.org/foo/bar>
 [PASS] Parsing: </:23> against <http://example.org/foo/bar>
-[PASS] Parsing: <\x> against <http://example.org/foo/bar>
-[PASS] Parsing: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Parsing: <\\x> against <http://example.org/foo/bar>
+[PASS] Parsing: <\\\\x\\hello> against <http://example.org/foo/bar>
 [PASS] Parsing: <::> against <http://example.org/foo/bar>
 [PASS] Parsing: <::23> against <http://example.org/foo/bar>
 [FAIL] Parsing: <foo://> against <http://example.org/foo/bar>
@@ -55,9 +55,9 @@
 [PASS] Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
 [FAIL] Parsing: <foo://///////> against <http://example.org/foo/bar>
@@ -140,7 +140,7 @@
 [PASS] Parsing: <http://example.com/(%28:%3A%29)> without base
 [PASS] Parsing: <http://example.com/%3A%3a%3C%3c> without base
 [PASS] Parsing: <http://example.com/foo	bar> without base
-[PASS] Parsing: <http://example.com\\foo\\bar> without base
+[PASS] Parsing: <http://example.com\\\\foo\\\\bar> without base
 [PASS] Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> without base
 [PASS] Parsing: <http://example.com/@asdf%40> without base
 [PASS] Parsing: <http://example.com/你好你好> without base
@@ -157,7 +157,7 @@
 [PASS] Parsing: <http://www/foo/%2E/html> without base
 [PASS] Parsing: <http://user:pass@/> without base
 [PASS] Parsing: <http://%25DOMAIN:foobar@foodomain.com/> without base
-[PASS] Parsing: <http:\\www.google.com\foo> without base
+[PASS] Parsing: <http:\\\\www.google.com\\foo> without base
 [PASS] Parsing: <http://foo:80/> without base
 [PASS] Parsing: <http://foo:81/> without base
 [FAIL] Parsing: <httpa://foo:80/> without base
@@ -372,7 +372,7 @@
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <x> against <sc://ñ>
   Failed to construct 'URL': Invalid URL
-[PASS] Parsing: <sc:\../> without base
+[PASS] Parsing: <sc:\\../> without base
 [PASS] Parsing: <sc::a@example.net> without base
 [PASS] Parsing: <wow:%NBD> without base
 [PASS] Parsing: <wow:%1G> without base
@@ -388,7 +388,7 @@
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <sc://a[b/> without base
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
-[FAIL] Parsing: <sc://a\b/> without base
+[FAIL] Parsing: <sc://a\\b/> without base
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <sc://a]b/> without base
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
@@ -492,9 +492,9 @@
 [PASS] Parsing: <http://ho%7Cst/> without base
 [PASS] Parsing: <http://ho%7Fst/> without base
 [FAIL] Parsing: <http://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: href expected "http://!\"$&'()*+,-.;=_`{}~/" but got "http://!\"$&'()%2A+,-.;=_`{}~/"
+  assert_equals: href expected "http://!\\"$&'()*+,-.;=_`{}~/" but got "http://!\\"$&'()%2A+,-.;=_`{}~/"
 [FAIL] Parsing: <sc://!"$%&'()*+,-.;=_`{}~/> without base
-  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\\"$%&'()*+,-.;=_`{}~" but got ""
 [PASS] Parsing: <ftp://example.com%80/> without base
 [PASS] Parsing: <ftp://example.com%A0/> without base
 [PASS] Parsing: <https://example.com%80/> without base
@@ -540,8 +540,8 @@
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <asdf://%43%7C/> without base
   assert_equals: host expected "%43%7C" but got ""
-[PASS] Parsing: <\\\.\Y:> without base
-[PASS] Parsing: <\\\.\y:> without base
+[PASS] Parsing: <\\\\\\.\\Y:> without base
+[PASS] Parsing: <\\\\\\.\\y:> without base
 [PASS] Parsing: <http://[1:0::]> against <http://example.net/>
 [PASS] Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/>
 [PASS] Parsing: <https://[0::0::0]> without base
@@ -682,28 +682,28 @@
 [PASS] Parsing: <non-special:cannot-be-a-base-url-\0~€> without base
 [PASS] Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> without base
 [PASS] Parsing: <https://user:pass[@foo/bar> against <http://example.org>
-[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> without base
-  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> without base
+  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\\"$%&'()*+,-.;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> without base
   assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
-[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> without base
-  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> without base
+  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\\"$%&'()*+,-.:;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> without base
   assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
 [FAIL] Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> without base
-  assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "!\\"$%&'()*+,-.;=_`{}~" but got ""
 [FAIL] Parsing: <wss://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: href expected "wss://!\"$&'()*+,-.;=_`{}~/" but got "wss://!\"$&'()%2A+,-.;=_`{}~/"
-[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
-  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
-[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
+  assert_equals: href expected "wss://!\\"$&'()*+,-.;=_`{}~/" but got "wss://!\\"$&'()%2A+,-.;=_`{}~/"
+[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
+  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\\\]^_%60%7B|%7D~" but got "foo://host/ !\\"$%&'()*+,-./:;<=>@[\\\\]^_`{|}~"
+[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
   assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
-[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~"
-[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
+[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~"
+[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
   assert_equals: host expected "host" but got ""
-[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
+[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
 [FAIL] Parsing: <abc:rootless> against <abc://host/path>
   assert_equals: href expected "abc:rootless" but got "abc://host/rootless"
 [FAIL] Parsing: <abc:rootless> against <abc:/path>
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any.worker_include=file-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any.worker_include=file-expected.txt
index cd5bc491..7ec129d 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any.worker_include=file-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any.worker_include=file-expected.txt
@@ -6,19 +6,19 @@
 [PASS] Parsing: <file://example:test/> without base
 [PASS] Parsing: <file://example%/> without base
 [PASS] Parsing: <file://[example]/> without base
-[FAIL] Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html"
-[FAIL] Parsing: <  File:c|////foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <  File:c|////foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///tmp/mock/c%7C////foo/bar.html"
 [FAIL] Parsing: <C|/foo/bar> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///C:/foo/bar" but got "file:///tmp/mock/C%7C/foo/bar"
-[FAIL] Parsing: </C|\foo\bar> against <file:///tmp/mock/path>
+[FAIL] Parsing: </C|\\foo\\bar> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///C:/foo/bar" but got "file:///C%7C/foo/bar"
 [FAIL] Parsing: <//C|/foo/bar> against <file:///tmp/mock/path>
   Failed to construct 'URL': Invalid URL
 [PASS] Parsing: <//server/file> against <file:///tmp/mock/path>
-[PASS] Parsing: <\\server\file> against <file:///tmp/mock/path>
-[PASS] Parsing: </\server/file> against <file:///tmp/mock/path>
+[PASS] Parsing: <\\\\server\\file> against <file:///tmp/mock/path>
+[PASS] Parsing: </\\server/file> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///home/me> against <file:///tmp/mock/path>
 [PASS] Parsing: <//> against <file:///tmp/mock/path>
@@ -65,26 +65,26 @@
 [PASS] Parsing: <file:?x> against <file:///test?test#test>
 [PASS] Parsing: <#x> against <file:///test?test#test>
 [PASS] Parsing: <file:#x> against <file:///test?test#test>
-[FAIL] Parsing: <file:\\//> without base
+[FAIL] Parsing: <file:\\\\//> without base
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\> without base
+[FAIL] Parsing: <file:\\\\\\\\> without base
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\?fox> without base
+[FAIL] Parsing: <file:\\\\\\\\?fox> without base
   assert_equals: href expected "file:////?fox" but got "file:///?fox"
-[FAIL] Parsing: <file:\\\\#guppy> without base
+[FAIL] Parsing: <file:\\\\\\\\#guppy> without base
   assert_equals: href expected "file:////#guppy" but got "file:///#guppy"
 [PASS] Parsing: <file://spider///> without base
-[FAIL] Parsing: <file:\\localhost//> without base
+[FAIL] Parsing: <file:\\\\localhost//> without base
   assert_equals: href expected "file:////" but got "file://localhost//"
 [PASS] Parsing: <file:///localhost//cat> without base
-[FAIL] Parsing: <file://\/localhost//cat> without base
+[FAIL] Parsing: <file://\\/localhost//cat> without base
   assert_equals: href expected "file:////localhost//cat" but got "file:///localhost//cat"
 [FAIL] Parsing: <file://localhost//a//../..//> without base
   assert_equals: href expected "file://///" but got "file://localhost///"
 [FAIL] Parsing: </////mouse> against <file:///elephant>
   assert_equals: href expected "file://///mouse" but got "file:///mouse"
-[PASS] Parsing: <\//pig> against <file://lion/>
-[FAIL] Parsing: <\/localhost//pig> against <file://lion/>
+[PASS] Parsing: <\\//pig> against <file://lion/>
+[FAIL] Parsing: <\\/localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
 [FAIL] Parsing: <//localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
@@ -104,7 +104,7 @@
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
 [FAIL] Parsing: <C|\n/> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
-[FAIL] Parsing: <C|\> against <file://host/dir/file>
+[FAIL] Parsing: <C|\\> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
 [PASS] Parsing: <C> against <file://host/dir/file>
 [FAIL] Parsing: <C|a> against <file://host/dir/file>
@@ -112,7 +112,7 @@
 [PASS] Parsing: </c:/foo/bar> against <file:///c:/baz/qux>
 [FAIL] Parsing: </c|/foo/bar> against <file:///c:/baz/qux>
   assert_equals: href expected "file:///c:/foo/bar" but got "file:///c%7C/foo/bar"
-[PASS] Parsing: <file:\c:\foo\bar> against <file:///c:/baz/qux>
+[PASS] Parsing: <file:\\c:\\foo\\bar> against <file:///c:/baz/qux>
 [PASS] Parsing: </c:/foo/bar> against <file://host/path>
 [PASS] Parsing: <file://example.net/C:/> without base
 [PASS] Parsing: <file://1.2.3.4/C:/> without base
diff --git "a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
index f3767ed..9d633a5 100644
--- "a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -30,22 +30,22 @@
 [PASS] Parsing: <> against <http://example.org/foo/bar>
 [PASS] Parsing: <  	> against <http://example.org/foo/bar>
 [PASS] Parsing: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:> against <http://example.org/foo/bar>
 [PASS] Parsing: <:a> against <http://example.org/foo/bar>
 [PASS] Parsing: <:/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#/> against <http://example.org/foo/bar>
-[PASS] Parsing: <#\> against <http://example.org/foo/bar>
+[PASS] Parsing: <#\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <#;?> against <http://example.org/foo/bar>
 [PASS] Parsing: <?> against <http://example.org/foo/bar>
 [PASS] Parsing: </> against <http://example.org/foo/bar>
 [PASS] Parsing: <:23> against <http://example.org/foo/bar>
 [PASS] Parsing: </:23> against <http://example.org/foo/bar>
-[PASS] Parsing: <\x> against <http://example.org/foo/bar>
-[PASS] Parsing: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Parsing: <\\x> against <http://example.org/foo/bar>
+[PASS] Parsing: <\\\\x\\hello> against <http://example.org/foo/bar>
 [PASS] Parsing: <::> against <http://example.org/foo/bar>
 [PASS] Parsing: <::23> against <http://example.org/foo/bar>
 [FAIL] Parsing: <foo://> against <http://example.org/foo/bar>
@@ -55,9 +55,9 @@
 [PASS] Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
 [FAIL] Parsing: <foo://///////> against <http://example.org/foo/bar>
@@ -140,7 +140,7 @@
 [PASS] Parsing: <http://example.com/(%28:%3A%29)> without base
 [PASS] Parsing: <http://example.com/%3A%3a%3C%3c> without base
 [PASS] Parsing: <http://example.com/foo	bar> without base
-[PASS] Parsing: <http://example.com\\foo\\bar> without base
+[PASS] Parsing: <http://example.com\\\\foo\\\\bar> without base
 [PASS] Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> without base
 [PASS] Parsing: <http://example.com/@asdf%40> without base
 [PASS] Parsing: <http://example.com/你好你好> without base
@@ -157,7 +157,7 @@
 [PASS] Parsing: <http://www/foo/%2E/html> without base
 [PASS] Parsing: <http://user:pass@/> without base
 [PASS] Parsing: <http://%25DOMAIN:foobar@foodomain.com/> without base
-[PASS] Parsing: <http:\\www.google.com\foo> without base
+[PASS] Parsing: <http:\\\\www.google.com\\foo> without base
 [PASS] Parsing: <http://foo:80/> without base
 [PASS] Parsing: <http://foo:81/> without base
 [FAIL] Parsing: <httpa://foo:80/> without base
@@ -372,7 +372,7 @@
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <x> against <sc://ñ>
   Failed to construct 'URL': Invalid URL
-[PASS] Parsing: <sc:\../> without base
+[PASS] Parsing: <sc:\\../> without base
 [PASS] Parsing: <sc::a@example.net> without base
 [PASS] Parsing: <wow:%NBD> without base
 [PASS] Parsing: <wow:%1G> without base
@@ -388,7 +388,7 @@
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <sc://a[b/> without base
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
-[FAIL] Parsing: <sc://a\b/> without base
+[FAIL] Parsing: <sc://a\\b/> without base
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <sc://a]b/> without base
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
@@ -492,9 +492,9 @@
 [PASS] Parsing: <http://ho%7Cst/> without base
 [PASS] Parsing: <http://ho%7Fst/> without base
 [FAIL] Parsing: <http://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: href expected "http://!\"$&'()*+,-.;=_`{}~/" but got "http://!\"$&'()%2A+,-.;=_`{}~/"
+  assert_equals: href expected "http://!\\"$&'()*+,-.;=_`{}~/" but got "http://!\\"$&'()%2A+,-.;=_`{}~/"
 [FAIL] Parsing: <sc://!"$%&'()*+,-.;=_`{}~/> without base
-  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\\"$%&'()*+,-.;=_`{}~" but got ""
 [PASS] Parsing: <ftp://example.com%80/> without base
 [PASS] Parsing: <ftp://example.com%A0/> without base
 [PASS] Parsing: <https://example.com%80/> without base
@@ -540,8 +540,8 @@
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <asdf://%43%7C/> without base
   assert_equals: host expected "%43%7C" but got ""
-[PASS] Parsing: <\\\.\Y:> without base
-[PASS] Parsing: <\\\.\y:> without base
+[PASS] Parsing: <\\\\\\.\\Y:> without base
+[PASS] Parsing: <\\\\\\.\\y:> without base
 [PASS] Parsing: <http://[1:0::]> against <http://example.net/>
 [PASS] Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/>
 [PASS] Parsing: <https://[0::0::0]> without base
@@ -682,28 +682,28 @@
 [PASS] Parsing: <non-special:cannot-be-a-base-url-\0~€> without base
 [PASS] Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> without base
 [PASS] Parsing: <https://user:pass[@foo/bar> against <http://example.org>
-[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> without base
-  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> without base
+  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\\"$%&'()*+,-.;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> without base
   assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
-[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> without base
-  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> without base
+  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\\"$%&'()*+,-.:;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> without base
   assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
 [FAIL] Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> without base
-  assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "!\\"$%&'()*+,-.;=_`{}~" but got ""
 [FAIL] Parsing: <wss://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: href expected "wss://!\"$&'()*+,-.;=_`{}~/" but got "wss://!\"$&'()%2A+,-.;=_`{}~/"
-[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
-  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
-[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
+  assert_equals: href expected "wss://!\\"$&'()*+,-.;=_`{}~/" but got "wss://!\\"$&'()%2A+,-.;=_`{}~/"
+[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
+  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\\\]^_%60%7B|%7D~" but got "foo://host/ !\\"$%&'()*+,-./:;<=>@[\\\\]^_`{|}~"
+[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
   assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
-[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~"
-[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
+[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~"
+[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
   assert_equals: host expected "host" but got ""
-[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
+[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
 [FAIL] Parsing: <abc:rootless> against <abc://host/path>
   assert_equals: href expected "abc:rootless" but got "abc://host/rootless"
 [FAIL] Parsing: <abc:rootless> against <abc:/path>
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any_include=file-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any_include=file-expected.txt
index cd5bc491..7ec129d 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any_include=file-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any_include=file-expected.txt
@@ -6,19 +6,19 @@
 [PASS] Parsing: <file://example:test/> without base
 [PASS] Parsing: <file://example%/> without base
 [PASS] Parsing: <file://[example]/> without base
-[FAIL] Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html"
-[FAIL] Parsing: <  File:c|////foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <  File:c|////foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///tmp/mock/c%7C////foo/bar.html"
 [FAIL] Parsing: <C|/foo/bar> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///C:/foo/bar" but got "file:///tmp/mock/C%7C/foo/bar"
-[FAIL] Parsing: </C|\foo\bar> against <file:///tmp/mock/path>
+[FAIL] Parsing: </C|\\foo\\bar> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///C:/foo/bar" but got "file:///C%7C/foo/bar"
 [FAIL] Parsing: <//C|/foo/bar> against <file:///tmp/mock/path>
   Failed to construct 'URL': Invalid URL
 [PASS] Parsing: <//server/file> against <file:///tmp/mock/path>
-[PASS] Parsing: <\\server\file> against <file:///tmp/mock/path>
-[PASS] Parsing: </\server/file> against <file:///tmp/mock/path>
+[PASS] Parsing: <\\\\server\\file> against <file:///tmp/mock/path>
+[PASS] Parsing: </\\server/file> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///home/me> against <file:///tmp/mock/path>
 [PASS] Parsing: <//> against <file:///tmp/mock/path>
@@ -65,26 +65,26 @@
 [PASS] Parsing: <file:?x> against <file:///test?test#test>
 [PASS] Parsing: <#x> against <file:///test?test#test>
 [PASS] Parsing: <file:#x> against <file:///test?test#test>
-[FAIL] Parsing: <file:\\//> without base
+[FAIL] Parsing: <file:\\\\//> without base
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\> without base
+[FAIL] Parsing: <file:\\\\\\\\> without base
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\?fox> without base
+[FAIL] Parsing: <file:\\\\\\\\?fox> without base
   assert_equals: href expected "file:////?fox" but got "file:///?fox"
-[FAIL] Parsing: <file:\\\\#guppy> without base
+[FAIL] Parsing: <file:\\\\\\\\#guppy> without base
   assert_equals: href expected "file:////#guppy" but got "file:///#guppy"
 [PASS] Parsing: <file://spider///> without base
-[FAIL] Parsing: <file:\\localhost//> without base
+[FAIL] Parsing: <file:\\\\localhost//> without base
   assert_equals: href expected "file:////" but got "file://localhost//"
 [PASS] Parsing: <file:///localhost//cat> without base
-[FAIL] Parsing: <file://\/localhost//cat> without base
+[FAIL] Parsing: <file://\\/localhost//cat> without base
   assert_equals: href expected "file:////localhost//cat" but got "file:///localhost//cat"
 [FAIL] Parsing: <file://localhost//a//../..//> without base
   assert_equals: href expected "file://///" but got "file://localhost///"
 [FAIL] Parsing: </////mouse> against <file:///elephant>
   assert_equals: href expected "file://///mouse" but got "file:///mouse"
-[PASS] Parsing: <\//pig> against <file://lion/>
-[FAIL] Parsing: <\/localhost//pig> against <file://lion/>
+[PASS] Parsing: <\\//pig> against <file://lion/>
+[FAIL] Parsing: <\\/localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
 [FAIL] Parsing: <//localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
@@ -104,7 +104,7 @@
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
 [FAIL] Parsing: <C|\n/> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
-[FAIL] Parsing: <C|\> against <file://host/dir/file>
+[FAIL] Parsing: <C|\\> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file://host/dir/C%7C/"
 [PASS] Parsing: <C> against <file://host/dir/file>
 [FAIL] Parsing: <C|a> against <file://host/dir/file>
@@ -112,7 +112,7 @@
 [PASS] Parsing: </c:/foo/bar> against <file:///c:/baz/qux>
 [FAIL] Parsing: </c|/foo/bar> against <file:///c:/baz/qux>
   assert_equals: href expected "file:///c:/foo/bar" but got "file:///c%7C/foo/bar"
-[PASS] Parsing: <file:\c:\foo\bar> against <file:///c:/baz/qux>
+[PASS] Parsing: <file:\\c:\\foo\\bar> against <file:///c:/baz/qux>
 [PASS] Parsing: </c:/foo/bar> against <file://host/path>
 [PASS] Parsing: <file://example.net/C:/> without base
 [PASS] Parsing: <file://1.2.3.4/C:/> without base
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-origin.any-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-origin.any-expected.txt
index ef630cac..9fff88d 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-origin.any-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-origin.any-expected.txt
@@ -20,22 +20,22 @@
 [PASS] Origin parsing: <> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <  	> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:a> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <:\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <:\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:#> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <#> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <#/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <#\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <#\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <#;?> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <?> against <http://example.org/foo/bar>
 [PASS] Origin parsing: </> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:23> against <http://example.org/foo/bar>
 [PASS] Origin parsing: </:23> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <\x> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <\\x> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <\\\\x\\hello> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <::> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <::23> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <foo://> against <http://example.org/foo/bar>
@@ -44,9 +44,9 @@
 [PASS] Origin parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <foo:/> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <foo://///////> against <http://example.org/foo/bar>
@@ -122,7 +122,7 @@
 [PASS] Origin parsing: <http://example.com/(%28:%3A%29)> without base
 [PASS] Origin parsing: <http://example.com/%3A%3a%3C%3c> without base
 [PASS] Origin parsing: <http://example.com/foo	bar> without base
-[PASS] Origin parsing: <http://example.com\\foo\\bar> without base
+[PASS] Origin parsing: <http://example.com\\\\foo\\\\bar> without base
 [PASS] Origin parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> without base
 [PASS] Origin parsing: <http://example.com/@asdf%40> without base
 [PASS] Origin parsing: <http://example.com/你好你好> without base
@@ -137,7 +137,7 @@
 [PASS] Origin parsing: <http://www/foo%2Ehtml> without base
 [PASS] Origin parsing: <http://www/foo/%2E/html> without base
 [PASS] Origin parsing: <http://%25DOMAIN:foobar@foodomain.com/> without base
-[PASS] Origin parsing: <http:\\www.google.com\foo> without base
+[PASS] Origin parsing: <http:\\\\www.google.com\\foo> without base
 [PASS] Origin parsing: <http://foo:80/> without base
 [PASS] Origin parsing: <http://foo:81/> without base
 [PASS] Origin parsing: <httpa://foo:80/> without base
@@ -258,14 +258,14 @@
 [PASS] Origin parsing: <sc://ñ.test/> without base
 [FAIL] Origin parsing: <x> against <sc://ñ>
   Failed to construct 'URL': Invalid URL
-[PASS] Origin parsing: <sc:\../> without base
+[PASS] Origin parsing: <sc:\\../> without base
 [PASS] Origin parsing: <sc::a@example.net> without base
 [PASS] Origin parsing: <wow:%NBD> without base
 [PASS] Origin parsing: <wow:%1G> without base
 [PASS] Origin parsing: <wow:￿> without base
 [PASS] Origin parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> without base
 [FAIL] Origin parsing: <http://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: origin expected "http://!\"$&'()*+,-.;=_`{}~" but got "http://!\"$&'()%2A+,-.;=_`{}~"
+  assert_equals: origin expected "http://!\\"$&'()*+,-.;=_`{}~" but got "http://!\\"$&'()%2A+,-.;=_`{}~"
 [PASS] Origin parsing: <sc://!"$%&'()*+,-.;=_`{}~/> without base
 [PASS] Origin parsing: <ftp://%e2%98%83> without base
 [PASS] Origin parsing: <https://%e2%98%83> without base
@@ -334,19 +334,19 @@
 [PASS] Origin parsing: <non-special:cannot-be-a-base-url-\0~€> without base
 [PASS] Origin parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> without base
 [PASS] Origin parsing: <https://user:pass[@foo/bar> against <http://example.org>
-[PASS] Origin parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> without base
+[PASS] Origin parsing: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> without base
 [PASS] Origin parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> without base
-[PASS] Origin parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> without base
+[PASS] Origin parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> without base
 [PASS] Origin parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> without base
 [PASS] Origin parsing: <foo://!"$%&'()*+,-.;=_`{}~/> without base
 [FAIL] Origin parsing: <wss://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: origin expected "wss://!\"$&'()*+,-.;=_`{}~" but got "wss://!\"$&'()%2A+,-.;=_`{}~"
-[PASS] Origin parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
-[PASS] Origin parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
-[PASS] Origin parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[PASS] Origin parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[PASS] Origin parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[PASS] Origin parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
+  assert_equals: origin expected "wss://!\\"$&'()*+,-.;=_`{}~" but got "wss://!\\"$&'()%2A+,-.;=_`{}~"
+[PASS] Origin parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
 [PASS] Origin parsing: <https://example.com/"quoted"> without base
 [PASS] Origin parsing: <https://a%C2%ADb/> without base
 [PASS] Origin parsing: <data://example.com:8080/pathname?search#hash> without base
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-origin.any.worker-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-origin.any.worker-expected.txt
index ef630cac..9fff88d 100644
--- a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-origin.any.worker-expected.txt
+++ b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-origin.any.worker-expected.txt
@@ -20,22 +20,22 @@
 [PASS] Origin parsing: <> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <  	> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:a> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <:\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <:\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:#> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <#> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <#/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <#\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <#\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <#;?> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <?> against <http://example.org/foo/bar>
 [PASS] Origin parsing: </> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:23> against <http://example.org/foo/bar>
 [PASS] Origin parsing: </:23> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <\x> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <\\x> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <\\\\x\\hello> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <::> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <::23> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <foo://> against <http://example.org/foo/bar>
@@ -44,9 +44,9 @@
 [PASS] Origin parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <foo:/> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <foo://///////> against <http://example.org/foo/bar>
@@ -122,7 +122,7 @@
 [PASS] Origin parsing: <http://example.com/(%28:%3A%29)> without base
 [PASS] Origin parsing: <http://example.com/%3A%3a%3C%3c> without base
 [PASS] Origin parsing: <http://example.com/foo	bar> without base
-[PASS] Origin parsing: <http://example.com\\foo\\bar> without base
+[PASS] Origin parsing: <http://example.com\\\\foo\\\\bar> without base
 [PASS] Origin parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> without base
 [PASS] Origin parsing: <http://example.com/@asdf%40> without base
 [PASS] Origin parsing: <http://example.com/你好你好> without base
@@ -137,7 +137,7 @@
 [PASS] Origin parsing: <http://www/foo%2Ehtml> without base
 [PASS] Origin parsing: <http://www/foo/%2E/html> without base
 [PASS] Origin parsing: <http://%25DOMAIN:foobar@foodomain.com/> without base
-[PASS] Origin parsing: <http:\\www.google.com\foo> without base
+[PASS] Origin parsing: <http:\\\\www.google.com\\foo> without base
 [PASS] Origin parsing: <http://foo:80/> without base
 [PASS] Origin parsing: <http://foo:81/> without base
 [PASS] Origin parsing: <httpa://foo:80/> without base
@@ -258,14 +258,14 @@
 [PASS] Origin parsing: <sc://ñ.test/> without base
 [FAIL] Origin parsing: <x> against <sc://ñ>
   Failed to construct 'URL': Invalid URL
-[PASS] Origin parsing: <sc:\../> without base
+[PASS] Origin parsing: <sc:\\../> without base
 [PASS] Origin parsing: <sc::a@example.net> without base
 [PASS] Origin parsing: <wow:%NBD> without base
 [PASS] Origin parsing: <wow:%1G> without base
 [PASS] Origin parsing: <wow:￿> without base
 [PASS] Origin parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> without base
 [FAIL] Origin parsing: <http://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: origin expected "http://!\"$&'()*+,-.;=_`{}~" but got "http://!\"$&'()%2A+,-.;=_`{}~"
+  assert_equals: origin expected "http://!\\"$&'()*+,-.;=_`{}~" but got "http://!\\"$&'()%2A+,-.;=_`{}~"
 [PASS] Origin parsing: <sc://!"$%&'()*+,-.;=_`{}~/> without base
 [PASS] Origin parsing: <ftp://%e2%98%83> without base
 [PASS] Origin parsing: <https://%e2%98%83> without base
@@ -334,19 +334,19 @@
 [PASS] Origin parsing: <non-special:cannot-be-a-base-url-\0~€> without base
 [PASS] Origin parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> without base
 [PASS] Origin parsing: <https://user:pass[@foo/bar> against <http://example.org>
-[PASS] Origin parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> without base
+[PASS] Origin parsing: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> without base
 [PASS] Origin parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> without base
-[PASS] Origin parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> without base
+[PASS] Origin parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> without base
 [PASS] Origin parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> without base
 [PASS] Origin parsing: <foo://!"$%&'()*+,-.;=_`{}~/> without base
 [FAIL] Origin parsing: <wss://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: origin expected "wss://!\"$&'()*+,-.;=_`{}~" but got "wss://!\"$&'()%2A+,-.;=_`{}~"
-[PASS] Origin parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
-[PASS] Origin parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
-[PASS] Origin parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[PASS] Origin parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[PASS] Origin parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[PASS] Origin parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
+  assert_equals: origin expected "wss://!\\"$&'()*+,-.;=_`{}~" but got "wss://!\\"$&'()%2A+,-.;=_`{}~"
+[PASS] Origin parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
 [PASS] Origin parsing: <https://example.com/"quoted"> without base
 [PASS] Origin parsing: <https://a%C2%ADb/> without base
 [PASS] Origin parsing: <data://example.com:8080/pathname?search#hash> without base
diff --git "a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-setters.any.worker_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-setters.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
index a399780..0dfb4a6 100644
--- "a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-setters.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-setters.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -42,7 +42,7 @@
 [PASS] URL: Setting <http://:secret@example.net>.username = 'me'
 [PASS] URL: Setting <http://me@example.net>.username = ''
 [PASS] URL: Setting <http://me:secret@example.net>.username = ''
-[FAIL] URL: Setting <http://example.net>.username = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+[FAIL] URL: Setting <http://example.net>.username = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
   assert_equals: expected "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
 [PASS] URL: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is.
 [PASS] URL: Setting <sc:///>.username = 'x'
@@ -51,7 +51,7 @@
 [PASS] URL: Setting <http://me@example.net>.password = 'secret'
 [PASS] URL: Setting <http://:secret@example.net>.password = ''
 [PASS] URL: Setting <http://me:secret@example.net>.password = ''
-[FAIL] URL: Setting <http://example.net>.password = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+[FAIL] URL: Setting <http://example.net>.password = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
   assert_equals: expected "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://:%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
 [PASS] URL: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is.
 [PASS] URL: Setting <sc:///>.password = 'x'
@@ -98,9 +98,9 @@
 [PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored
-[PASS] URL: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
-[PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes
-[FAIL] URL: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+[PASS] URL: Setting <http://example.net/path>.host = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[FAIL] URL: Setting <view-source+http://example.net/path>.host = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts
   assert_equals: expected "example.net" but got ""
 [FAIL] URL: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
   assert_equals: expected "view-source+http://example.com:8080/path" but got "view-source+http://example.net/path"
@@ -157,8 +157,8 @@
 [PASS] URL: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored
-[PASS] URL: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
-[FAIL] URL: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+[PASS] URL: Setting <http://example.net/path>.hostname = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[FAIL] URL: Setting <view-source+http://example.net/path>.hostname = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts
   assert_equals: expected "example.net" but got ""
 [PASS] URL: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6
 [PASS] URL: Setting <http://example.net/>.hostname = '[::1.2.3.4x]'
@@ -189,7 +189,7 @@
 [PASS] URL: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored
-[PASS] URL: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes
+[PASS] URL: Setting <http://example.net/path>.port = '8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes
 [FAIL] URL: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
   assert_equals: expected "view-source+http://example.net:8080/path" but got "view-source+http://example.net/path"
 [PASS] URL: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
@@ -221,11 +221,11 @@
   assert_equals: expected "unix:/var/run/bar.socket?timeout=10" but got "unix:/run/foo.socket?timeout=10"
 [PASS] URL: Setting <https://example.net#nav>.pathname = 'home'
 [PASS] URL: Setting <https://example.net#nav>.pathname = '../home'
-[PASS] URL: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs
-[FAIL] URL: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs
-  assert_equals: expected "view-source+http://example.net/\\a\\%2E\\b\\%2e.\\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav"
-[FAIL] URL: Setting <a:/>.pathname = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.
-  assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/"
+[PASS] URL: Setting <http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs
+[FAIL] URL: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is *not* a segment delimiter for non-'special' URLs
+  assert_equals: expected "view-source+http://example.net/\\\\a\\\\%2E\\\\b\\\\%2e.\\\\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav"
+[FAIL] URL: Setting <a:/>.pathname = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/"
 [FAIL] URL: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments.
   assert_equals: expected "http://example.net/%2e%2E%c3%89t%C3%A9" but got "http://example.net/..%c3%89t%C3%A9"
 [PASS] URL: Setting <http://example.net>.pathname = '?' ? needs to be encoded
@@ -259,8 +259,8 @@
 [PASS] URL: Setting <https://example.net?lang=en-US#nav>.search = ''
 [PASS] URL: Setting <https://example.net?lang=en-US>.search = ''
 [PASS] URL: Setting <https://example.net>.search = ''
-[FAIL] URL: Setting <a:/>.search = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.
-  assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/?%00%01%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
+[FAIL] URL: Setting <a:/>.search = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/?%00%01%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
 [PASS] URL: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is
 [FAIL] URL: Setting <data:space ?query>.search = '' Drop trailing spaces from trailing opaque paths
   assert_equals: expected "data:space" but got "data:space "
@@ -281,7 +281,7 @@
 [PASS] URL: Setting <http://example.net>.hash = '#foo<bar'
 [PASS] URL: Setting <http://example.net>.hash = '#foo>bar'
 [PASS] URL: Setting <http://example.net>.hash = '#foo`bar'
-[PASS] URL: Setting <a:/>.hash = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed
+[PASS] URL: Setting <a:/>.hash = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed
 [PASS] URL: Setting <http://example.net>.hash = 'a\0b' Percent-encode NULLs in fragment
 [PASS] URL: Setting <non-spec:/>.hash = 'a\0b' Percent-encode NULLs in fragment
 [PASS] URL: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is
diff --git "a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-setters.any_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-setters.any_exclude=\050file_javascript_mailto\051-expected.txt"
index a399780..0dfb4a6 100644
--- "a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-setters.any_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-setters.any_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -42,7 +42,7 @@
 [PASS] URL: Setting <http://:secret@example.net>.username = 'me'
 [PASS] URL: Setting <http://me@example.net>.username = ''
 [PASS] URL: Setting <http://me:secret@example.net>.username = ''
-[FAIL] URL: Setting <http://example.net>.username = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+[FAIL] URL: Setting <http://example.net>.username = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
   assert_equals: expected "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
 [PASS] URL: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is.
 [PASS] URL: Setting <sc:///>.username = 'x'
@@ -51,7 +51,7 @@
 [PASS] URL: Setting <http://me@example.net>.password = 'secret'
 [PASS] URL: Setting <http://:secret@example.net>.password = ''
 [PASS] URL: Setting <http://me:secret@example.net>.password = ''
-[FAIL] URL: Setting <http://example.net>.password = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+[FAIL] URL: Setting <http://example.net>.password = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
   assert_equals: expected "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://:%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
 [PASS] URL: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is.
 [PASS] URL: Setting <sc:///>.password = 'x'
@@ -98,9 +98,9 @@
 [PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored
-[PASS] URL: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
-[PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes
-[FAIL] URL: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+[PASS] URL: Setting <http://example.net/path>.host = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[FAIL] URL: Setting <view-source+http://example.net/path>.host = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts
   assert_equals: expected "example.net" but got ""
 [FAIL] URL: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
   assert_equals: expected "view-source+http://example.com:8080/path" but got "view-source+http://example.net/path"
@@ -157,8 +157,8 @@
 [PASS] URL: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored
-[PASS] URL: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
-[FAIL] URL: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+[PASS] URL: Setting <http://example.net/path>.hostname = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[FAIL] URL: Setting <view-source+http://example.net/path>.hostname = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts
   assert_equals: expected "example.net" but got ""
 [PASS] URL: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6
 [PASS] URL: Setting <http://example.net/>.hostname = '[::1.2.3.4x]'
@@ -189,7 +189,7 @@
 [PASS] URL: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored
-[PASS] URL: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes
+[PASS] URL: Setting <http://example.net/path>.port = '8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes
 [FAIL] URL: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
   assert_equals: expected "view-source+http://example.net:8080/path" but got "view-source+http://example.net/path"
 [PASS] URL: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
@@ -221,11 +221,11 @@
   assert_equals: expected "unix:/var/run/bar.socket?timeout=10" but got "unix:/run/foo.socket?timeout=10"
 [PASS] URL: Setting <https://example.net#nav>.pathname = 'home'
 [PASS] URL: Setting <https://example.net#nav>.pathname = '../home'
-[PASS] URL: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs
-[FAIL] URL: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs
-  assert_equals: expected "view-source+http://example.net/\\a\\%2E\\b\\%2e.\\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav"
-[FAIL] URL: Setting <a:/>.pathname = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.
-  assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/"
+[PASS] URL: Setting <http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs
+[FAIL] URL: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is *not* a segment delimiter for non-'special' URLs
+  assert_equals: expected "view-source+http://example.net/\\\\a\\\\%2E\\\\b\\\\%2e.\\\\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav"
+[FAIL] URL: Setting <a:/>.pathname = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/"
 [FAIL] URL: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments.
   assert_equals: expected "http://example.net/%2e%2E%c3%89t%C3%A9" but got "http://example.net/..%c3%89t%C3%A9"
 [PASS] URL: Setting <http://example.net>.pathname = '?' ? needs to be encoded
@@ -259,8 +259,8 @@
 [PASS] URL: Setting <https://example.net?lang=en-US#nav>.search = ''
 [PASS] URL: Setting <https://example.net?lang=en-US>.search = ''
 [PASS] URL: Setting <https://example.net>.search = ''
-[FAIL] URL: Setting <a:/>.search = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.
-  assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/?%00%01%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
+[FAIL] URL: Setting <a:/>.search = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "a:/?%00%01%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
 [PASS] URL: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is
 [FAIL] URL: Setting <data:space ?query>.search = '' Drop trailing spaces from trailing opaque paths
   assert_equals: expected "data:space" but got "data:space "
@@ -281,7 +281,7 @@
 [PASS] URL: Setting <http://example.net>.hash = '#foo<bar'
 [PASS] URL: Setting <http://example.net>.hash = '#foo>bar'
 [PASS] URL: Setting <http://example.net>.hash = '#foo`bar'
-[PASS] URL: Setting <a:/>.hash = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed
+[PASS] URL: Setting <a:/>.hash = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed
 [PASS] URL: Setting <http://example.net>.hash = 'a\0b' Percent-encode NULLs in fragment
 [PASS] URL: Setting <non-spec:/>.hash = 'a\0b' Percent-encode NULLs in fragment
 [PASS] URL: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/css/css-variables/variable-presentation-attribute-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/css/css-variables/variable-presentation-attribute-expected.txt
index 8bb1c26..3c6aaa07 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/css/css-variables/variable-presentation-attribute-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/css/css-variables/variable-presentation-attribute-expected.txt
@@ -24,7 +24,7 @@
   assert_equals: Default value. expected "" but got "rgb(0, 0, 0)"
 [PASS] Testing 'flood-opacity'.
 [FAIL] Testing 'font-family'.
-  assert_equals: Default value. expected "Times New Roman" but got "\"times new roman\""
+  assert_equals: Default value. expected "Times New Roman" but got "\\"times new roman\\""
 [PASS] Testing 'font-size'.
 [PASS] Testing 'font-size-adjust'.
 [PASS] Testing 'font-stretch'.
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/css/cssom/font-family-serialization-001-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/css/cssom/font-family-serialization-001-expected.txt
index dfa638ad..1645d227 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/css/cssom/font-family-serialization-001-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/css/cssom/font-family-serialization-001-expected.txt
@@ -1,7 +1,7 @@
 This is a testharness.js-based test.
 [PASS] Serialization of <generic-family>
 [FAIL] Serialization of quoted "<generic-family>"
-  assert_equals: expected "\"emoji\"" but got "emoji"
+  assert_equals: expected "\\"emoji\\"" but got "emoji"
 [PASS] Serialization of prefixed -webkit-<generic-family>
 [PASS] Serialization of NonGenericFontFamilyName,-webkit-body,-webkit-standard,-webkit-pictograph,BlinkMacSystemFont
 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/other/editable-state-and-focus-in-shadow-dom-in-designMode.tentative-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/other/editable-state-and-focus-in-shadow-dom-in-designMode.tentative-expected.txt
index 1283c136..0ffdc50 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/editing/other/editable-state-and-focus-in-shadow-dom-in-designMode.tentative-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/other/editable-state-and-focus-in-shadow-dom-in-designMode.tentative-expected.txt
@@ -16,7 +16,7 @@
 [PASS] Typing "A" after Collapse selection into text in the open shadow DOM
 [PASS] Focus after Collapse selection into text in <div contenteditable> in the open shadow DOM
 [FAIL] Typing "A" after Collapse selection into text in <div contenteditable> in the open shadow DOM
-  assert_equals: The shadow DOM shouldn't be modified after Collapse selection into text in <div contenteditable> in the open shadow DOM expected "<style>:focus { outline: 3px red solid; }</style><div>text<div contenteditable=\"\">Aeditable</div><object tabindex=\"0\">object</object><p tabindex=\"0\">paragraph</p></div>" but got "<style>:focus { outline: 3px red solid; }</style><div>text<div contenteditable=\"\">editable</div><object tabindex=\"0\">object</object><p tabindex=\"0\">paragraph</p></div>"
+  assert_equals: The shadow DOM shouldn't be modified after Collapse selection into text in <div contenteditable> in the open shadow DOM expected "<style>:focus { outline: 3px red solid; }</style><div>text<div contenteditable=\\"\\">Aeditable</div><object tabindex=\\"0\\">object</object><p tabindex=\\"0\\">paragraph</p></div>" but got "<style>:focus { outline: 3px red solid; }</style><div>text<div contenteditable=\\"\\">editable</div><object tabindex=\\"0\\">object</object><p tabindex=\\"0\\">paragraph</p></div>"
 [PASS] Focus after Set focus to <object> in the open shadow DOM
 [PASS] Typing "A" after Set focus to <object> in the open shadow DOM
 [PASS] Focus after Set focus to <p tabindex="0"> in the open shadow DOM
@@ -25,7 +25,7 @@
 [PASS] Typing "A" after Collapse selection into text in the closed shadow DOM
 [PASS] Focus after Collapse selection into text in <div contenteditable> in the closed shadow DOM
 [FAIL] Typing "A" after Collapse selection into text in <div contenteditable> in the closed shadow DOM
-  assert_equals: The shadow DOM shouldn't be modified after Collapse selection into text in <div contenteditable> in the closed shadow DOM expected "<style>:focus { outline: 3px red solid; }</style><div>text<div contenteditable=\"\">Aeditable</div><object tabindex=\"0\">object</object><p tabindex=\"0\">paragraph</p></div>" but got "<style>:focus { outline: 3px red solid; }</style><div>text<div contenteditable=\"\">editable</div><object tabindex=\"0\">object</object><p tabindex=\"0\">paragraph</p></div>"
+  assert_equals: The shadow DOM shouldn't be modified after Collapse selection into text in <div contenteditable> in the closed shadow DOM expected "<style>:focus { outline: 3px red solid; }</style><div>text<div contenteditable=\\"\\">Aeditable</div><object tabindex=\\"0\\">object</object><p tabindex=\\"0\\">paragraph</p></div>" but got "<style>:focus { outline: 3px red solid; }</style><div>text<div contenteditable=\\"\\">editable</div><object tabindex=\\"0\\">object</object><p tabindex=\\"0\\">paragraph</p></div>"
 [PASS] Focus after Set focus to <object> in the closed shadow DOM
 [PASS] Typing "A" after Set focus to <object> in the closed shadow DOM
 [PASS] Focus after Set focus to <p tabindex="0"> in the closed shadow DOM
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/bold_1-1000-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/bold_1-1000-expected.txt
index e035b972..106c6f39 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/bold_1-1000-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/bold_1-1000-expected.txt
@@ -88,7 +88,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"font-weight:bold\">foo</span></p><p> <span style=\"font-weight:bold\"><span>bar</span></span> </p><p><span style=\"font-weight:bold\">baz</span></p>" but got "<p><span style=\"font-weight:bold\">foo</span></p><p> <span style=\"font-weight:bold\"><span>bar</span> </span></p><p><span style=\"font-weight:bold\">baz</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"font-weight:bold\\">foo</span></p><p> <span style=\\"font-weight:bold\\"><span>bar</span></span> </p><p><span style=\\"font-weight:bold\\">baz</span></p>" but got "<p><span style=\\"font-weight:bold\\">foo</span></p><p> <span style=\\"font-weight:bold\\"><span>bar</span> </span></p><p><span style=\\"font-weight:bold\\">baz</span></p>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandValue("stylewithcss") before
@@ -383,7 +383,7 @@
   assert_equals: expected false but got true
 [PASS] [["bold",""]] "fo[o<span contenteditable=false>b]ar</span>baz" checks for modifications to non-editable content
 [FAIL] [["bold",""]] "fo[o<span contenteditable=false>b]ar</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span contenteditable=\"false\">bar</span>baz" but got "fo<b>o</b><span contenteditable=\"false\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span contenteditable=\\"false\\">bar</span>baz" but got "fo<b>o</b><span contenteditable=\\"false\\">bar</span>baz"
 [PASS] [["bold",""]] "fo[o<span contenteditable=false>b]ar</span>baz" queryCommandIndeterm("bold") before
 [PASS] [["bold",""]] "fo[o<span contenteditable=false>b]ar</span>baz" queryCommandState("bold") before
 [FAIL] [["bold",""]] "fo[o<span contenteditable=false>b]ar</span>baz" queryCommandValue("bold") before
@@ -480,7 +480,7 @@
   assert_equals: expected false but got true
 [PASS] [["bold",""]] "<span contenteditable=false>foo<span contenteditable=true>ba[r</span>b]az</span>" checks for modifications to non-editable content
 [FAIL] [["bold",""]] "<span contenteditable=false>foo<span contenteditable=true>ba[r</span>b]az</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span contenteditable=\"false\">foo<span contenteditable=\"true\">bar</span>baz</span>" but got "<span contenteditable=\"false\">foo<span contenteditable=\"true\">ba<b>r</b></span>baz</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span contenteditable=\\"false\\">foo<span contenteditable=\\"true\\">bar</span>baz</span>" but got "<span contenteditable=\\"false\\">foo<span contenteditable=\\"true\\">ba<b>r</b></span>baz</span>"
 [PASS] [["bold",""]] "<span contenteditable=false>foo<span contenteditable=true>ba[r</span>b]az</span>" queryCommandIndeterm("bold") before
 [PASS] [["bold",""]] "<span contenteditable=false>foo<span contenteditable=true>ba[r</span>b]az</span>" queryCommandState("bold") before
 [FAIL] [["bold",""]] "<span contenteditable=false>foo<span contenteditable=true>ba[r</span>b]az</span>" queryCommandValue("bold") before
@@ -732,41 +732,41 @@
   assert_equals: Wrong result returned expected true but got false
 [FAIL] [["stylewithcss","false"],["bold",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
 [PASS] [["stylewithcss","true"],["bold",""]] "foo<b>[bar]</b>baz": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "foo<b>[bar]</b>baz": execCommand("bold", false, "") return value
@@ -1138,28 +1138,28 @@
 [PASS] [["bold",""]] "foo<strong>[bar</strong>]baz" queryCommandState("bold") after
 [FAIL] [["bold",""]] "foo<strong>[bar</strong>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/bold_1001-2000-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/bold_1001-2000-expected.txt
index 608d927..456d086 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/bold_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/bold_1001-2000-expected.txt
@@ -1,98 +1,98 @@
 This is a testharness.js-based test.
 Found 1000 tests; 848 PASS, 152 FAIL, 0 TIMEOUT, 0 NOTRUN.
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandState("stylewithcss") after
   assert_equals: Wrong result returned expected false but got true
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandIndeterm("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandState("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandIndeterm("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandState("bold") after
   assert_equals: Wrong result returned expected false but got true
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar</span>]baz" queryCommandValue("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: bold\">bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: bold\\">bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: bold\">[bar</span>]baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: bold\\">[bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
 [PASS] [["stylewithcss","true"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p><span style=\"font-weight:bold\">baz</span></p>" but got "<p style=\"\">foo</p><p style=\"\">bar</p><p style=\"font-weight:bold\">baz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p><span style=\\"font-weight:bold\\">baz</span></p>" but got "<p style=\\"\\">foo</p><p style=\\"\\">bar</p><p style=\\"font-weight:bold\\">baz</p>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>" queryCommandValue("stylewithcss") before
@@ -111,7 +111,7 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p><b>baz</b></p>" but got "<p style=\"\">foo</p><p style=\"\">bar</p><p style=\"font-weight:bold\">baz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p><b>baz</b></p>" but got "<p style=\\"\\">foo</p><p style=\\"\\">bar</p><p style=\\"font-weight:bold\\">baz</p>"
 [PASS] [["stylewithcss","false"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<b>{<p>foo</p><p>bar</p>}<p>baz</p></b>" queryCommandValue("stylewithcss") before
@@ -130,7 +130,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"font-weight:bold\">foo</span><i>bar</i></p><p><span style=\"font-weight:bold\">baz</span></p>" but got "<p style=\"\"><span style=\"font-weight:bold\">foo</span><i style=\"\">bar</i></p><p style=\"font-weight:bold\">baz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"font-weight:bold\\">foo</span><i>bar</i></p><p><span style=\\"font-weight:bold\\">baz</span></p>" but got "<p style=\\"\\"><span style=\\"font-weight:bold\\">foo</span><i style=\\"\\">bar</i></p><p style=\\"font-weight:bold\\">baz</p>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>" queryCommandValue("stylewithcss") before
@@ -149,7 +149,7 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b>foo</b><i>bar</i></p><p><b>baz</b></p>" but got "<p style=\"\"><b>foo</b><i style=\"\">bar</i></p><p style=\"font-weight:bold\">baz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b>foo</b><i>bar</i></p><p><b>baz</b></p>" but got "<p style=\\"\\"><b>foo</b><i style=\\"\\">bar</i></p><p style=\\"font-weight:bold\\">baz</p>"
 [PASS] [["stylewithcss","false"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<b><p>foo[<i>bar</i>}</p><p>baz</p></b>" queryCommandValue("stylewithcss") before
@@ -190,7 +190,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<b id=purple>bar [baz] qoz</b>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span id=\"purple\"><span style=\"font-weight:bold\">bar </span>baz<span style=\"font-weight:bold\"> qoz</span></span>" but got "<b id=\"purple\">bar </b>baz<b> qoz</b>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span id=\\"purple\\"><span style=\\"font-weight:bold\\">bar </span>baz<span style=\\"font-weight:bold\\"> qoz</span></span>" but got "<b id=\\"purple\\">bar </b>baz<b> qoz</b>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" queryCommandValue("stylewithcss") before
@@ -209,7 +209,7 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<b id=purple>bar [baz] qoz</b>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span id=\"purple\"><b>bar </b>baz<b> qoz</b></span>" but got "<b id=\"purple\">bar </b>baz<b> qoz</b>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span id=\\"purple\\"><b>bar </b>baz<b> qoz</b></span>" but got "<b id=\\"purple\\">bar </b>baz<b> qoz</b>"
 [PASS] [["stylewithcss","false"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" queryCommandValue("stylewithcss") before
@@ -224,933 +224,933 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" queryCommandState("bold") after
 [FAIL] [["stylewithcss","false"],["bold",""]] "<b id=purple>bar [baz] qoz</b>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 100\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 100\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 200\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 200\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 300\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 300\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 500\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 500\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 600\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 600\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 800\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 800\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 900\">[bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 900\\">[bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 400\">[bar</span>]baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 400\\">[bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: 700\">[bar</span>]baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: 700\\">[bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar]</span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar]</span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 400\">bar</span>]baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 400\\">bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\"font-weight: 700\">bar</span>]baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo[<span style=\\"font-weight: 700\\">bar</span>]baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:100\">foo<span style=\"font-weight:bold\">bar</span>baz</span>" but got "<span style=\"font-weight:100\">foo</span><span style=\"font-weight:bold\">bar</span><span style=\"font-weight:100\">baz</span>"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:100\\">foo<span style=\\"font-weight:bold\\">bar</span>baz</span>" but got "<span style=\\"font-weight:100\\">foo</span><span style=\\"font-weight:bold\\">bar</span><span style=\\"font-weight:100\\">baz</span>"
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:100\">foo<b>bar</b>baz</span>" but got "<span style=\"font-weight:100\">foo</span><b>bar</b><span style=\"font-weight:100\">baz</span>"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:100\\">foo<b>bar</b>baz</span>" but got "<span style=\\"font-weight:100\\">foo</span><b>bar</b><span style=\\"font-weight:100\\">baz</span>"
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[bar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[bar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:400\">foo<span style=\"font-weight:bold\">bar</span>baz</span>" but got "<span style=\"font-weight:400\">foo</span><span style=\"font-weight:bold\">bar</span><span style=\"font-weight:400\">baz</span>"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:400\\">foo<span style=\\"font-weight:bold\\">bar</span>baz</span>" but got "<span style=\\"font-weight:400\\">foo</span><span style=\\"font-weight:bold\\">bar</span><span style=\\"font-weight:400\\">baz</span>"
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:400\">foo<b>bar</b>baz</span>" but got "<span style=\"font-weight:400\">foo</span><b>bar</b><span style=\"font-weight:400\">baz</span>"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:400\\">foo<b>bar</b>baz</span>" but got "<span style=\\"font-weight:400\\">foo</span><b>bar</b><span style=\\"font-weight:400\\">baz</span>"
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[bar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[bar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foo</b>bar<b>baz</b>" but got "<span style=\"font-weight:700\">foo</span>bar<span style=\"font-weight:700\">baz</span>"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foo</b>bar<b>baz</b>" but got "<span style=\\"font-weight:700\\">foo</span>bar<span style=\\"font-weight:700\\">baz</span>"
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[bar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[bar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 900\">foo[bar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 900\\">foo[bar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:100\"><span style=\"font-weight:bold\">foobar</span>baz</span>" but got "<span style=\"font-weight:bold\">foobar</span><span style=\"font-weight:100\">baz</span>"
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:100\\"><span style=\\"font-weight:bold\\">foobar</span>baz</span>" but got "<span style=\\"font-weight:bold\\">foobar</span><span style=\\"font-weight:100\\">baz</span>"
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:100\"><b>foobar</b>baz</span>" but got "<b>foobar</b><span style=\"font-weight:100\">baz</span>"
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:100\\"><b>foobar</b>baz</span>" but got "<b>foobar</b><span style=\\"font-weight:100\\">baz</span>"
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 100\">foobar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 100\\">foobar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:400\"><span style=\"font-weight:bold\">foobar</span>baz</span>" but got "<span style=\"font-weight:bold\">foobar</span><span style=\"font-weight:400\">baz</span>"
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:400\\"><span style=\\"font-weight:bold\\">foobar</span>baz</span>" but got "<span style=\\"font-weight:bold\\">foobar</span><span style=\\"font-weight:400\\">baz</span>"
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:400\"><b>foobar</b>baz</span>" but got "<b>foobar</b><span style=\"font-weight:400\">baz</span>"
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:400\\"><b>foobar</b>baz</span>" but got "<b>foobar</b><span style=\\"font-weight:400\\">baz</span>"
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 400\">foobar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 400\\">foobar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar<b>baz</b>" but got "foobar<span style=\"font-weight:700\">baz</span>"
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar<b>baz</b>" but got "foobar<span style=\\"font-weight:700\\">baz</span>"
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\"font-weight: 700\">foobar]baz</span>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "{<span style=\\"font-weight: 700\\">foobar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["bold",""]] "{<span style=\"font-weight: 900\">foobar]baz</span>": execCommand("bold", false, "") return value
-[PASS] [["bold",""]] "{<span style=\"font-weight: 900\">foobar]baz</span>" checks for modifications to non-editable content
-[PASS] [["bold",""]] "{<span style=\"font-weight: 900\">foobar]baz</span>" compare innerHTML
-[PASS] [["bold",""]] "{<span style=\"font-weight: 900\">foobar]baz</span>" queryCommandIndeterm("bold") before
-[PASS] [["bold",""]] "{<span style=\"font-weight: 900\">foobar]baz</span>" queryCommandState("bold") before
-[FAIL] [["bold",""]] "{<span style=\"font-weight: 900\">foobar]baz</span>" queryCommandValue("bold") before
+[PASS] [["bold",""]] "{<span style=\\"font-weight: 900\\">foobar]baz</span>": execCommand("bold", false, "") return value
+[PASS] [["bold",""]] "{<span style=\\"font-weight: 900\\">foobar]baz</span>" checks for modifications to non-editable content
+[PASS] [["bold",""]] "{<span style=\\"font-weight: 900\\">foobar]baz</span>" compare innerHTML
+[PASS] [["bold",""]] "{<span style=\\"font-weight: 900\\">foobar]baz</span>" queryCommandIndeterm("bold") before
+[PASS] [["bold",""]] "{<span style=\\"font-weight: 900\\">foobar]baz</span>" queryCommandState("bold") before
+[FAIL] [["bold",""]] "{<span style=\\"font-weight: 900\\">foobar]baz</span>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["bold",""]] "{<span style=\"font-weight: 900\">foobar]baz</span>" queryCommandIndeterm("bold") after
-[PASS] [["bold",""]] "{<span style=\"font-weight: 900\">foobar]baz</span>" queryCommandState("bold") after
-[FAIL] [["bold",""]] "{<span style=\"font-weight: 900\">foobar]baz</span>" queryCommandValue("bold") after
+[PASS] [["bold",""]] "{<span style=\\"font-weight: 900\\">foobar]baz</span>" queryCommandIndeterm("bold") after
+[PASS] [["bold",""]] "{<span style=\\"font-weight: 900\\">foobar]baz</span>" queryCommandState("bold") after
+[FAIL] [["bold",""]] "{<span style=\\"font-weight: 900\\">foobar]baz</span>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:100\">foo<span style=\"font-weight:bold\">barbaz</span></span>" but got "<span style=\"font-weight:100\">foo</span><span style=\"font-weight:bold\">barbaz</span>"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:100\\">foo<span style=\\"font-weight:bold\\">barbaz</span></span>" but got "<span style=\\"font-weight:100\\">foo</span><span style=\\"font-weight:bold\\">barbaz</span>"
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:100\">foo<b>barbaz</b></span>" but got "<span style=\"font-weight:100\">foo</span><b>barbaz</b>"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:100\\">foo<b>barbaz</b></span>" but got "<span style=\\"font-weight:100\\">foo</span><b>barbaz</b>"
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 100\">foo[barbaz</span>}" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 100\\">foo[barbaz</span>}" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:400\">foo<span style=\"font-weight:bold\">barbaz</span></span>" but got "<span style=\"font-weight:400\">foo</span><span style=\"font-weight:bold\">barbaz</span>"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:400\\">foo<span style=\\"font-weight:bold\\">barbaz</span></span>" but got "<span style=\\"font-weight:400\\">foo</span><span style=\\"font-weight:bold\\">barbaz</span>"
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:400\">foo<b>barbaz</b></span>" but got "<span style=\"font-weight:400\">foo</span><b>barbaz</b>"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:400\\">foo<b>barbaz</b></span>" but got "<span style=\\"font-weight:400\\">foo</span><b>barbaz</b>"
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 400\">foo[barbaz</span>}" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 400\\">foo[barbaz</span>}" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foo</b>barbaz" but got "<span style=\"font-weight:700\">foo</span>barbaz"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foo</b>barbaz" but got "<span style=\\"font-weight:700\\">foo</span>barbaz"
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\"font-weight: 700\">foo[barbaz</span>}" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "<span style=\\"font-weight: 700\\">foo[barbaz</span>}" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["bold",""]] "<span style=\"font-weight: 900\">foo[barbaz</span>}": execCommand("bold", false, "") return value
-[PASS] [["bold",""]] "<span style=\"font-weight: 900\">foo[barbaz</span>}" checks for modifications to non-editable content
+[PASS] [["bold",""]] "<span style=\\"font-weight: 900\\">foo[barbaz</span>}": execCommand("bold", false, "") return value
+[PASS] [["bold",""]] "<span style=\\"font-weight: 900\\">foo[barbaz</span>}" checks for modifications to non-editable content
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/bold_2001-3000-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/bold_2001-3000-expected.txt
index 5573452..c4b54d93 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/bold_2001-3000-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/bold_2001-3000-expected.txt
@@ -1,15 +1,15 @@
 This is a testharness.js-based test.
 Found 1000 tests; 834 PASS, 166 FAIL, 0 TIMEOUT, 0 NOTRUN.
-[FAIL] [["bold",""]] "<span style=\"font-weight: 900\">foo[barbaz</span>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:900\">foo</span>barbaz" but got "<span style=\"font-weight:900\">foobarbaz</span>"
-[PASS] [["bold",""]] "<span style=\"font-weight: 900\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
-[PASS] [["bold",""]] "<span style=\"font-weight: 900\">foo[barbaz</span>}" queryCommandState("bold") before
-[FAIL] [["bold",""]] "<span style=\"font-weight: 900\">foo[barbaz</span>}" queryCommandValue("bold") before
+[FAIL] [["bold",""]] "<span style=\\"font-weight: 900\\">foo[barbaz</span>}" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:900\\">foo</span>barbaz" but got "<span style=\\"font-weight:900\\">foobarbaz</span>"
+[PASS] [["bold",""]] "<span style=\\"font-weight: 900\\">foo[barbaz</span>}" queryCommandIndeterm("bold") before
+[PASS] [["bold",""]] "<span style=\\"font-weight: 900\\">foo[barbaz</span>}" queryCommandState("bold") before
+[FAIL] [["bold",""]] "<span style=\\"font-weight: 900\\">foo[barbaz</span>}" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["bold",""]] "<span style=\"font-weight: 900\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
-[FAIL] [["bold",""]] "<span style=\"font-weight: 900\">foo[barbaz</span>}" queryCommandState("bold") after
+[PASS] [["bold",""]] "<span style=\\"font-weight: 900\\">foo[barbaz</span>}" queryCommandIndeterm("bold") after
+[FAIL] [["bold",""]] "<span style=\\"font-weight: 900\\">foo[barbaz</span>}" queryCommandState("bold") after
   assert_equals: Wrong result returned expected false but got true
-[FAIL] [["bold",""]] "<span style=\"font-weight: 900\">foo[barbaz</span>}" queryCommandValue("bold") after
+[FAIL] [["bold",""]] "<span style=\\"font-weight: 900\\">foo[barbaz</span>}" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["stylewithcss","true"],["bold",""]] "<h3>foo[bar]baz</h3>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<h3>foo[bar]baz</h3>": execCommand("bold", false, "") return value
@@ -264,79 +264,79 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "{<h3>foobarbaz</h3>}" queryCommandState("bold") after
 [FAIL] [["stylewithcss","false"],["bold",""]] "{<h3>foobarbaz</h3>}" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foo<span style=\"font-weight:normal\">barbazquz</span>qoz</b>" but got "<span style=\"font-weight:bold\">foo</span>barbazquz<span style=\"font-weight:bold\">qoz</span>"
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foo<span style=\\"font-weight:normal\\">barbazquz</span>qoz</b>" but got "<span style=\\"font-weight:bold\\">foo</span>barbazquz<span style=\\"font-weight:bold\\">qoz</span>"
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foo<span style=\"font-weight:normal\">barbazquz</span>qoz</b>" but got "<b>foo</b>barbazquz<b>qoz</b>"
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foo<span style=\\"font-weight:normal\\">barbazquz</span>qoz</b>" but got "<b>foo</b>barbazquz<b>qoz</b>"
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">bar<b>[baz]</b>quz</span>qoz</b>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\"font-weight: normal\">[bar]</span>baz</b>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "<b>foo<span style=\\"font-weight: normal\\">[bar]</span>baz</b>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["stylewithcss","true"],["bold",""]] "{<b>foo</b> <b>bar</b>}": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "{<b>foo</b> <b>bar</b>}": execCommand("bold", false, "") return value
@@ -414,7 +414,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<i><b>baz</b></i>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<i><b>baz</b></i>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<i><b>baz</b></i>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b><i>foo</i>bar<i>baz</i></b>" but got "<i><b>foo</b></i><span style=\"font-weight:bold\">bar</span><i><b>baz</b></i>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b><i>foo</i>bar<i>baz</i></b>" but got "<i><b>foo</b></i><span style=\\"font-weight:bold\\">bar</span><i><b>baz</b></i>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<i><b>baz</b></i>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<i><b>baz</b></i>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<i><b>baz</b></i>" queryCommandValue("stylewithcss") before
@@ -452,7 +452,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<b>baz</b>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<b>baz</b>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<b>baz</b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b><i>foo</i>barbaz</b>" but got "<i><b>foo</b></i><span style=\"font-weight:bold\">bar</span><b>baz</b>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b><i>foo</i>barbaz</b>" but got "<i><b>foo</b></i><span style=\\"font-weight:bold\\">bar</span><b>baz</b>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<b>baz</b>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<b>baz</b>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<i><b>foo</b></i>[bar]<b>baz</b>" queryCommandValue("stylewithcss") before
@@ -490,7 +490,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<b>foo</b>[bar]<i><b>baz</b></i>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<b>foo</b>[bar]<i><b>baz</b></i>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<b>foo</b>[bar]<i><b>baz</b></i>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foobar<i>baz</i></b>" but got "<b>foo</b><span style=\"font-weight:bold\">bar</span><i><b>baz</b></i>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foobar<i>baz</i></b>" but got "<b>foo</b><span style=\\"font-weight:bold\\">bar</span><i><b>baz</b></i>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<b>foo</b>[bar]<i><b>baz</b></i>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<b>foo</b>[bar]<i><b>baz</b></i>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<b>foo</b>[bar]<i><b>baz</b></i>" queryCommandValue("stylewithcss") before
@@ -527,7 +527,7 @@
 [PASS] [["bold",""]] "<font color=blue face=monospace><b>foo</b></font>[bar]": execCommand("bold", false, "") return value
 [PASS] [["bold",""]] "<font color=blue face=monospace><b>foo</b></font>[bar]" checks for modifications to non-editable content
 [FAIL] [["bold",""]] "<font color=blue face=monospace><b>foo</b></font>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b><font color=\"blue\" face=\"monospace\">foo</font>bar</b>" but got "<font color=\"blue\" face=\"monospace\"><b>foo</b></font><b>bar</b>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b><font color=\\"blue\\" face=\\"monospace\\">foo</font>bar</b>" but got "<font color=\\"blue\\" face=\\"monospace\\"><b>foo</b></font><b>bar</b>"
 [PASS] [["bold",""]] "<font color=blue face=monospace><b>foo</b></font>[bar]" queryCommandIndeterm("bold") before
 [PASS] [["bold",""]] "<font color=blue face=monospace><b>foo</b></font>[bar]" queryCommandState("bold") before
 [FAIL] [["bold",""]] "<font color=blue face=monospace><b>foo</b></font>[bar]" queryCommandValue("bold") before
@@ -536,47 +536,47 @@
 [PASS] [["bold",""]] "<font color=blue face=monospace><b>foo</b></font>[bar]" queryCommandState("bold") after
 [FAIL] [["bold",""]] "<font color=blue face=monospace><b>foo</b></font>[bar]" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\"font-weight: normal\"><b>{bar}</b></span>baz" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "foo<span style=\\"font-weight: normal\\"><b>{bar}</b></span>baz" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
 [PASS] [["stylewithcss","true"],["bold",""]] "[foo<span class=notbold>bar</span>baz]": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "[foo<span class=notbold>bar</span>baz]": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "[foo<span class=notbold>bar</span>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "[foo<span class=notbold>bar</span>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:bold\">foo<span class=\"notbold\"><span style=\"font-weight:bold\">bar</span></span>baz</span>" but got "<span style=\"font-weight:bold\">foo<span class=\"notbold\">bar</span>baz</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:bold\\">foo<span class=\\"notbold\\"><span style=\\"font-weight:bold\\">bar</span></span>baz</span>" but got "<span style=\\"font-weight:bold\\">foo<span class=\\"notbold\\">bar</span>baz</span>"
 [PASS] [["stylewithcss","true"],["bold",""]] "[foo<span class=notbold>bar</span>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "[foo<span class=notbold>bar</span>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "[foo<span class=notbold>bar</span>baz]" queryCommandValue("stylewithcss") before
@@ -597,7 +597,7 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "[foo<span class=notbold>bar</span>baz]": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "[foo<span class=notbold>bar</span>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["bold",""]] "[foo<span class=notbold>bar</span>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foo<span class=\"notbold\"><b>bar</b></span>baz</b>" but got "<b>foo<span class=\"notbold\">bar</span>baz</b>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>foo<span class=\\"notbold\\"><b>bar</b></span>baz</b>" but got "<b>foo<span class=\\"notbold\\">bar</span>baz</b>"
 [PASS] [["stylewithcss","false"],["bold",""]] "[foo<span class=notbold>bar</span>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "[foo<span class=notbold>bar</span>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "[foo<span class=notbold>bar</span>baz]" queryCommandValue("stylewithcss") before
@@ -618,7 +618,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<b><span class=notbold>[foo]</span></b>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<b><span class=notbold>[foo]</span></b>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<b><span class=notbold>[foo]</span></b>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span class=\"notbold\"><span style=\"font-weight:bold\">foo</span></span>" but got "<span class=\"notbold\" style=\"font-weight:bold\">foo</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span class=\\"notbold\\"><span style=\\"font-weight:bold\\">foo</span></span>" but got "<span class=\\"notbold\\" style=\\"font-weight:bold\\">foo</span>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<b><span class=notbold>[foo]</span></b>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<b><span class=notbold>[foo]</span></b>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<b><span class=notbold>[foo]</span></b>" queryCommandValue("stylewithcss") before
@@ -687,43 +687,43 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<b><span class=notbold>foo[bar]baz</span></b>" queryCommandState("bold") after
 [FAIL] [["stylewithcss","false"],["bold",""]] "<b><span class=notbold>foo[bar]baz</span></b>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"font-weight:bold\">foo</span>bar<span style=\"font-weight:bold\">baz</span></p>" but got "<p style=\"\"><span style=\"font-weight:bold\">foo</span>bar<span style=\"font-weight:bold\">baz</span></p>"
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"font-weight:bold\\">foo</span>bar<span style=\\"font-weight:bold\\">baz</span></p>" but got "<p style=\\"\\"><span style=\\"font-weight:bold\\">foo</span>bar<span style=\\"font-weight:bold\\">baz</span></p>"
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","true"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","true"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>": execCommand("bold", false, "") return value
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b>foo</b>bar<b>baz</b></p>" but got "<p style=\"\"><span style=\"font-weight:bold\">foo</span>bar<b>baz</b></p>"
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("bold") before
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("bold") before
-[FAIL] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>": execCommand("bold", false, "") return value
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><b>foo</b>bar<b>baz</b></p>" but got "<p style=\\"\\"><span style=\\"font-weight:bold\\">foo</span>bar<b>baz</b></p>"
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("bold") before
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("bold") before
+[FAIL] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("bold") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandIndeterm("bold") after
-[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandState("bold") after
-[FAIL] [["stylewithcss","false"],["bold",""]] "<p style=\"font-weight: bold\">foo[bar]baz</p>" queryCommandValue("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandIndeterm("bold") after
+[PASS] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandState("bold") after
+[FAIL] [["stylewithcss","false"],["bold",""]] "<p style=\\"font-weight: bold\\">foo[bar]baz</p>" queryCommandValue("bold") after
   assert_equals: Wrong result returned expected "" but got "false"
 [PASS] [["bold",""]] "fo[o<b>b]ar</b>baz": execCommand("bold", false, "") return value
 [PASS] [["bold",""]] "fo[o<b>b]ar</b>baz" checks for modifications to non-editable content
@@ -787,7 +787,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "foo[<b>b]ar</b>baz": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "foo[<b>b]ar</b>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "foo[<b>b]ar</b>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foob<span style=\"font-weight:bold\">ar</span>baz" but got "foob<b>ar</b>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foob<span style=\\"font-weight:bold\\">ar</span>baz" but got "foob<b>ar</b>baz"
 [PASS] [["stylewithcss","true"],["bold",""]] "foo[<b>b]ar</b>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "foo[<b>b]ar</b>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "foo[<b>b]ar</b>baz" queryCommandValue("stylewithcss") before
@@ -824,7 +824,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "foo<b>ba[r</b>]baz": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "foo<b>ba[r</b>]baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "foo<b>ba[r</b>]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"font-weight:bold\">ba</span>rbaz" but got "foo<b>ba</b>rbaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"font-weight:bold\\">ba</span>rbaz" but got "foo<b>ba</b>rbaz"
 [PASS] [["stylewithcss","true"],["bold",""]] "foo<b>ba[r</b>]baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "foo<b>ba[r</b>]baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "foo<b>ba[r</b>]baz" queryCommandValue("stylewithcss") before
@@ -896,7 +896,7 @@
 [PASS] [["bold",""]] "fo[o<span style=font-weight:bold>b]ar</span>baz": execCommand("bold", false, "") return value
 [PASS] [["bold",""]] "fo[o<span style=font-weight:bold>b]ar</span>baz" checks for modifications to non-editable content
 [FAIL] [["bold",""]] "fo[o<span style=font-weight:bold>b]ar</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\"font-weight:bold\">obar</span>baz" but got "fo<b>ob</b><span style=\"font-weight:bold\">ar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\\"font-weight:bold\\">obar</span>baz" but got "fo<b>ob</b><span style=\\"font-weight:bold\\">ar</span>baz"
 [PASS] [["bold",""]] "fo[o<span style=font-weight:bold>b]ar</span>baz" queryCommandIndeterm("bold") before
 [PASS] [["bold",""]] "fo[o<span style=font-weight:bold>b]ar</span>baz" queryCommandState("bold") before
 [FAIL] [["bold",""]] "fo[o<span style=font-weight:bold>b]ar</span>baz" queryCommandValue("bold") before
@@ -938,7 +938,7 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:700>fo[o</span><span style=font-weight:800>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:700>fo[o</span><span style=font-weight:800>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:700>fo[o</span><span style=font-weight:800>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>fo</b>ob<span style=\"font-weight:800\">ar</span>" but got "<span style=\"font-weight:700\">fo</span>ob<span style=\"font-weight:800\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<b>fo</b>ob<span style=\\"font-weight:800\\">ar</span>" but got "<span style=\\"font-weight:700\\">fo</span>ob<span style=\\"font-weight:800\\">ar</span>"
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:700>fo[o</span><span style=font-weight:800>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:700>fo[o</span><span style=font-weight:800>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:700>fo[o</span><span style=font-weight:800>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -975,7 +975,7 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:600>fo[o</span><span style=font-weight:700>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:600>fo[o</span><span style=font-weight:700>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:600>fo[o</span><span style=font-weight:700>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:600\">fo</span>ob<b>ar</b>" but got "<span style=\"font-weight:600\">fo</span>ob<span style=\"font-weight:700\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:600\\">fo</span>ob<b>ar</b>" but got "<span style=\\"font-weight:600\\">fo</span>ob<span style=\\"font-weight:700\\">ar</span>"
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:600>fo[o</span><span style=font-weight:700>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:600>fo[o</span><span style=font-weight:700>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:600>fo[o</span><span style=font-weight:700>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -994,7 +994,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:500\">fo<span style=\"font-weight:bold\">o</span></span><span style=\"font-weight:600\"><span style=\"font-weight:bold\">b</span>ar</span>" but got "<span style=\"font-weight:500\">fo</span><span style=\"font-weight:bold\">ob</span><span style=\"font-weight:600\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:500\\">fo<span style=\\"font-weight:bold\\">o</span></span><span style=\\"font-weight:600\\"><span style=\\"font-weight:bold\\">b</span>ar</span>" but got "<span style=\\"font-weight:500\\">fo</span><span style=\\"font-weight:bold\\">ob</span><span style=\\"font-weight:600\\">ar</span>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1013,7 +1013,7 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:500\">fo<b>o</b></span><span style=\"font-weight:600\"><b>b</b>ar</span>" but got "<span style=\"font-weight:500\">fo</span><b>ob</b><span style=\"font-weight:600\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:500\\">fo<b>o</b></span><span style=\\"font-weight:600\\"><b>b</b>ar</span>" but got "<span style=\\"font-weight:500\\">fo</span><b>ob</b><span style=\\"font-weight:600\\">ar</span>"
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:500>fo[o</span><span style=font-weight:600>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1032,7 +1032,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:400\">fo<span style=\"font-weight:bold\">o</span></span><span style=\"font-weight:500\"><span style=\"font-weight:bold\">b</span>ar</span>" but got "<span style=\"font-weight:400\">fo</span><span style=\"font-weight:bold\">ob</span><span style=\"font-weight:500\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:400\\">fo<span style=\\"font-weight:bold\\">o</span></span><span style=\\"font-weight:500\\"><span style=\\"font-weight:bold\\">b</span>ar</span>" but got "<span style=\\"font-weight:400\\">fo</span><span style=\\"font-weight:bold\\">ob</span><span style=\\"font-weight:500\\">ar</span>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1051,7 +1051,7 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:400\">fo<b>o</b></span><span style=\"font-weight:500\"><b>b</b>ar</span>" but got "<span style=\"font-weight:400\">fo</span><b>ob</b><span style=\"font-weight:500\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:400\\">fo<b>o</b></span><span style=\\"font-weight:500\\"><b>b</b>ar</span>" but got "<span style=\\"font-weight:400\\">fo</span><b>ob</b><span style=\\"font-weight:500\\">ar</span>"
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:400>fo[o</span><span style=font-weight:500>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1070,7 +1070,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:300\">fo<span style=\"font-weight:bold\">o</span></span><span style=\"font-weight:400\"><span style=\"font-weight:bold\">b</span>ar</span>" but got "<span style=\"font-weight:300\">fo</span><span style=\"font-weight:bold\">ob</span><span style=\"font-weight:400\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:300\\">fo<span style=\\"font-weight:bold\\">o</span></span><span style=\\"font-weight:400\\"><span style=\\"font-weight:bold\\">b</span>ar</span>" but got "<span style=\\"font-weight:300\\">fo</span><span style=\\"font-weight:bold\\">ob</span><span style=\\"font-weight:400\\">ar</span>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1089,7 +1089,7 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:300\">fo<b>o</b></span><span style=\"font-weight:400\"><b>b</b>ar</span>" but got "<span style=\"font-weight:300\">fo</span><b>ob</b><span style=\"font-weight:400\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:300\\">fo<b>o</b></span><span style=\\"font-weight:400\\"><b>b</b>ar</span>" but got "<span style=\\"font-weight:300\\">fo</span><b>ob</b><span style=\\"font-weight:400\\">ar</span>"
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:300>fo[o</span><span style=font-weight:400>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1108,7 +1108,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:200\">fo<span style=\"font-weight:bold\">o</span></span><span style=\"font-weight:300\"><span style=\"font-weight:bold\">b</span>ar</span>" but got "<span style=\"font-weight:200\">fo</span><span style=\"font-weight:bold\">ob</span><span style=\"font-weight:300\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:200\\">fo<span style=\\"font-weight:bold\\">o</span></span><span style=\\"font-weight:300\\"><span style=\\"font-weight:bold\\">b</span>ar</span>" but got "<span style=\\"font-weight:200\\">fo</span><span style=\\"font-weight:bold\\">ob</span><span style=\\"font-weight:300\\">ar</span>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1127,7 +1127,7 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:200\">fo<b>o</b></span><span style=\"font-weight:300\"><b>b</b>ar</span>" but got "<span style=\"font-weight:200\">fo</span><b>ob</b><span style=\"font-weight:300\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:200\\">fo<b>o</b></span><span style=\\"font-weight:300\\"><b>b</b>ar</span>" but got "<span style=\\"font-weight:200\\">fo</span><b>ob</b><span style=\\"font-weight:300\\">ar</span>"
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:200>fo[o</span><span style=font-weight:300>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1146,7 +1146,7 @@
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:100>fo[o</span><span style=font-weight:200>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:100>fo[o</span><span style=font-weight:200>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:100>fo[o</span><span style=font-weight:200>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:100\">fo<span style=\"font-weight:bold\">o</span></span><span style=\"font-weight:200\"><span style=\"font-weight:bold\">b</span>ar</span>" but got "<span style=\"font-weight:100\">fo</span><span style=\"font-weight:bold\">ob</span><span style=\"font-weight:200\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:100\\">fo<span style=\\"font-weight:bold\\">o</span></span><span style=\\"font-weight:200\\"><span style=\\"font-weight:bold\\">b</span>ar</span>" but got "<span style=\\"font-weight:100\\">fo</span><span style=\\"font-weight:bold\\">ob</span><span style=\\"font-weight:200\\">ar</span>"
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:100>fo[o</span><span style=font-weight:200>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:100>fo[o</span><span style=font-weight:200>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["bold",""]] "<span style=font-weight:100>fo[o</span><span style=font-weight:200>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1165,6 +1165,6 @@
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:100>fo[o</span><span style=font-weight:200>b]ar</span>": execCommand("bold", false, "") return value
 [PASS] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:100>fo[o</span><span style=font-weight:200>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["bold",""]] "<span style=font-weight:100>fo[o</span><span style=font-weight:200>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"font-weight:100\">fo<b>o</b></span><span style=\"font-weight:200\"><b>b</b>ar</span>" but got "<span style=\"font-weight:100\">fo</span><b>ob</b><span style=\"font-weight:200\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"font-weight:100\\">fo<b>o</b></span><span style=\\"font-weight:200\\"><b>b</b>ar</span>" but got "<span style=\\"font-weight:100\\">fo</span><b>ob</b><span style=\\"font-weight:200\\">ar</span>"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/italic_1-1000-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/italic_1-1000-expected.txt
index 6149a3dc9..e38870a8 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/italic_1-1000-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/italic_1-1000-expected.txt
@@ -88,7 +88,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"font-style:italic\">foo</span></p><p> <span style=\"font-style:italic\"><span>bar</span></span> </p><p><span style=\"font-style:italic\">baz</span></p>" but got "<p><span style=\"font-style:italic\">foo</span></p><p> <span style=\"font-style:italic\"><span>bar</span> </span></p><p><span style=\"font-style:italic\">baz</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"font-style:italic\\">foo</span></p><p> <span style=\\"font-style:italic\\"><span>bar</span></span> </p><p><span style=\\"font-style:italic\\">baz</span></p>" but got "<p><span style=\\"font-style:italic\\">foo</span></p><p> <span style=\\"font-style:italic\\"><span>bar</span> </span></p><p><span style=\\"font-style:italic\\">baz</span></p>"
 [PASS] [["stylewithcss","true"],["italic",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandValue("stylewithcss") before
@@ -581,7 +581,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<cite>[bar]</cite>baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<cite>[bar]</cite>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo<cite>[bar]</cite>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<cite><span style=\"font-style:normal\">bar</span></cite>baz" but got "foo<cite style=\"font-style:normal\">bar</cite>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<cite><span style=\\"font-style:normal\\">bar</span></cite>baz" but got "foo<cite style=\\"font-style:normal\\">bar</cite>baz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<cite>[bar]</cite>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<cite>[bar]</cite>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<cite>[bar]</cite>baz" queryCommandValue("stylewithcss") before
@@ -600,7 +600,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<cite>[bar]</cite>baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<cite>[bar]</cite>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "foo<cite>[bar]</cite>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<cite><span style=\"font-style:normal\">bar</span></cite>baz" but got "foo<cite style=\"font-style:normal\">bar</cite>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<cite><span style=\\"font-style:normal\\">bar</span></cite>baz" but got "foo<cite style=\\"font-style:normal\\">bar</cite>baz"
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<cite>[bar]</cite>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<cite>[bar]</cite>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<cite>[bar]</cite>baz" queryCommandValue("stylewithcss") before
@@ -619,7 +619,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<dfn>[bar]</dfn>baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<dfn>[bar]</dfn>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo<dfn>[bar]</dfn>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<dfn><span style=\"font-style:normal\">bar</span></dfn>baz" but got "foo<dfn style=\"font-style:normal\">bar</dfn>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<dfn><span style=\\"font-style:normal\\">bar</span></dfn>baz" but got "foo<dfn style=\\"font-style:normal\\">bar</dfn>baz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<dfn>[bar]</dfn>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<dfn>[bar]</dfn>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<dfn>[bar]</dfn>baz" queryCommandValue("stylewithcss") before
@@ -638,7 +638,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<dfn>[bar]</dfn>baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<dfn>[bar]</dfn>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "foo<dfn>[bar]</dfn>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<dfn><span style=\"font-style:normal\">bar</span></dfn>baz" but got "foo<dfn style=\"font-style:normal\">bar</dfn>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<dfn><span style=\\"font-style:normal\\">bar</span></dfn>baz" but got "foo<dfn style=\\"font-style:normal\\">bar</dfn>baz"
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<dfn>[bar]</dfn>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<dfn>[bar]</dfn>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<dfn>[bar]</dfn>baz" queryCommandValue("stylewithcss") before
@@ -668,7 +668,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<var>[bar]</var>baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<var>[bar]</var>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo<var>[bar]</var>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<var><span style=\"font-style:normal\">bar</span></var>baz" but got "foo<var style=\"font-style:normal\">bar</var>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<var><span style=\\"font-style:normal\\">bar</span></var>baz" but got "foo<var style=\\"font-style:normal\\">bar</var>baz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<var>[bar]</var>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<var>[bar]</var>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<var>[bar]</var>baz" queryCommandValue("stylewithcss") before
@@ -687,7 +687,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<var>[bar]</var>baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<var>[bar]</var>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "foo<var>[bar]</var>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<var><span style=\"font-style:normal\">bar</span></var>baz" but got "foo<var style=\"font-style:normal\">bar</var>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<var><span style=\\"font-style:normal\\">bar</span></var>baz" but got "foo<var style=\\"font-style:normal\\">bar</var>baz"
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<var>[bar]</var>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<var>[bar]</var>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo<var>[bar]</var>baz" queryCommandValue("stylewithcss") before
@@ -706,7 +706,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<address>bar</address>}baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<address>bar</address>}baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo{<address>bar</address>}baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<address><span style=\"font-style:normal\">bar</span></address>baz" but got "foo<address>bar</address>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<address><span style=\\"font-style:normal\\">bar</span></address>baz" but got "foo<address>bar</address>baz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<address>bar</address>}baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<address>bar</address>}baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<address>bar</address>}baz" queryCommandValue("stylewithcss") before
@@ -728,7 +728,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<address>bar</address>}baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<address>bar</address>}baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "foo{<address>bar</address>}baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<address><span style=\"font-style:normal\">bar</span></address>baz" but got "foo<address>bar</address>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<address><span style=\\"font-style:normal\\">bar</span></address>baz" but got "foo<address>bar</address>baz"
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<address>bar</address>}baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<address>bar</address>}baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<address>bar</address>}baz" queryCommandValue("stylewithcss") before
@@ -750,7 +750,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<cite>bar</cite>}baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<cite>bar</cite>}baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo{<cite>bar</cite>}baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<cite><span style=\"font-style:normal\">bar</span></cite>baz" but got "foo<cite style=\"font-style:normal\">bar</cite>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<cite><span style=\\"font-style:normal\\">bar</span></cite>baz" but got "foo<cite style=\\"font-style:normal\\">bar</cite>baz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<cite>bar</cite>}baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<cite>bar</cite>}baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<cite>bar</cite>}baz" queryCommandValue("stylewithcss") before
@@ -769,7 +769,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<cite>bar</cite>}baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<cite>bar</cite>}baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "foo{<cite>bar</cite>}baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<cite><span style=\"font-style:normal\">bar</span></cite>baz" but got "foo<cite style=\"font-style:normal\">bar</cite>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<cite><span style=\\"font-style:normal\\">bar</span></cite>baz" but got "foo<cite style=\\"font-style:normal\\">bar</cite>baz"
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<cite>bar</cite>}baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<cite>bar</cite>}baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<cite>bar</cite>}baz" queryCommandValue("stylewithcss") before
@@ -788,7 +788,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<dfn>bar</dfn>}baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<dfn>bar</dfn>}baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo{<dfn>bar</dfn>}baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<dfn><span style=\"font-style:normal\">bar</span></dfn>baz" but got "foo<dfn style=\"font-style:normal\">bar</dfn>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<dfn><span style=\\"font-style:normal\\">bar</span></dfn>baz" but got "foo<dfn style=\\"font-style:normal\\">bar</dfn>baz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<dfn>bar</dfn>}baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<dfn>bar</dfn>}baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<dfn>bar</dfn>}baz" queryCommandValue("stylewithcss") before
@@ -807,7 +807,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<dfn>bar</dfn>}baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<dfn>bar</dfn>}baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "foo{<dfn>bar</dfn>}baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<dfn><span style=\"font-style:normal\">bar</span></dfn>baz" but got "foo<dfn style=\"font-style:normal\">bar</dfn>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<dfn><span style=\\"font-style:normal\\">bar</span></dfn>baz" but got "foo<dfn style=\\"font-style:normal\\">bar</dfn>baz"
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<dfn>bar</dfn>}baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<dfn>bar</dfn>}baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<dfn>bar</dfn>}baz" queryCommandValue("stylewithcss") before
@@ -837,7 +837,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<var>bar</var>}baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<var>bar</var>}baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo{<var>bar</var>}baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<var><span style=\"font-style:normal\">bar</span></var>baz" but got "foo<var style=\"font-style:normal\">bar</var>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<var><span style=\\"font-style:normal\\">bar</span></var>baz" but got "foo<var style=\\"font-style:normal\\">bar</var>baz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<var>bar</var>}baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<var>bar</var>}baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo{<var>bar</var>}baz" queryCommandValue("stylewithcss") before
@@ -856,7 +856,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<var>bar</var>}baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<var>bar</var>}baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "foo{<var>bar</var>}baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<var><span style=\"font-style:normal\">bar</span></var>baz" but got "foo<var style=\"font-style:normal\">bar</var>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<var><span style=\\"font-style:normal\\">bar</span></var>baz" but got "foo<var style=\\"font-style:normal\\">bar</var>baz"
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<var>bar</var>}baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<var>bar</var>}baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "foo{<var>bar</var>}baz" queryCommandValue("stylewithcss") before
@@ -1019,7 +1019,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<i>b[a]r</i>baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<i>b[a]r</i>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo<i>b[a]r</i>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"font-style:italic\">b</span>a<span style=\"font-style:italic\">r</span>baz" but got "foo<i>b</i>a<i>r</i>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"font-style:italic\\">b</span>a<span style=\\"font-style:italic\\">r</span>baz" but got "foo<i>b</i>a<i>r</i>baz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<i>b[a]r</i>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<i>b[a]r</i>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<i>b[a]r</i>baz" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/italic_1001-2000-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/italic_1001-2000-expected.txt
index 6ebc56a..9f495848 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/italic_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/italic_1001-2000-expected.txt
@@ -153,7 +153,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<cite>bar</cite>baz]": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<cite>bar</cite>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo[<cite>bar</cite>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<cite>bar</cite><span style=\"font-style:italic\">baz</span>" but got "foo<cite>bar</cite>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<cite>bar</cite><span style=\\"font-style:italic\\">baz</span>" but got "foo<cite>bar</cite>baz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<cite>bar</cite>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<cite>bar</cite>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<cite>bar</cite>baz]" queryCommandValue("stylewithcss") before
@@ -195,7 +195,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<dfn>bar</dfn>baz]": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<dfn>bar</dfn>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo[<dfn>bar</dfn>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<dfn>bar</dfn><span style=\"font-style:italic\">baz</span>" but got "foo<dfn>bar</dfn>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<dfn>bar</dfn><span style=\\"font-style:italic\\">baz</span>" but got "foo<dfn>bar</dfn>baz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<dfn>bar</dfn>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<dfn>bar</dfn>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<dfn>bar</dfn>baz]" queryCommandValue("stylewithcss") before
@@ -309,7 +309,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<var>bar</var>baz]": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<var>bar</var>baz]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo[<var>bar</var>baz]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<var>bar</var><span style=\"font-style:italic\">baz</span>" but got "foo<var>bar</var>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<var>bar</var><span style=\\"font-style:italic\\">baz</span>" but got "foo<var>bar</var>baz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<var>bar</var>baz]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<var>bar</var>baz]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<var>bar</var>baz]" queryCommandValue("stylewithcss") before
@@ -567,119 +567,119 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "[foo<var>bar</var>]baz" queryCommandState("italic") after
 [FAIL] [["stylewithcss","false"],["italic",""]] "[foo<var>bar</var>]baz" queryCommandValue("italic") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz": execCommand("italic", false, "") return value
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandIndeterm("italic") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandState("italic") before
-[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandValue("italic") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz": execCommand("italic", false, "") return value
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandIndeterm("italic") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandState("italic") before
+[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandValue("italic") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandIndeterm("italic") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandState("italic") after
-[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandValue("italic") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandIndeterm("italic") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandState("italic") after
+[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandValue("italic") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz": execCommand("italic", false, "") return value
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandIndeterm("italic") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandState("italic") before
-[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandValue("italic") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz": execCommand("italic", false, "") return value
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandIndeterm("italic") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandState("italic") before
+[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandValue("italic") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandIndeterm("italic") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandState("italic") after
-[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: italic\">[bar]</span>baz" queryCommandValue("italic") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandIndeterm("italic") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandState("italic") after
+[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: italic\\">[bar]</span>baz" queryCommandValue("italic") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz": execCommand("italic", false, "") return value
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandIndeterm("italic") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandState("italic") before
-[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandValue("italic") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz": execCommand("italic", false, "") return value
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandIndeterm("italic") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandState("italic") before
+[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandValue("italic") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandIndeterm("italic") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandState("italic") after
-[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandValue("italic") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandIndeterm("italic") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandState("italic") after
+[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandValue("italic") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz": execCommand("italic", false, "") return value
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandIndeterm("italic") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandState("italic") before
-[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandValue("italic") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz": execCommand("italic", false, "") return value
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandIndeterm("italic") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandState("italic") before
+[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandValue("italic") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandIndeterm("italic") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandState("italic") after
-[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">[bar]</span>baz" queryCommandValue("italic") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandIndeterm("italic") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandState("italic") after
+[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">[bar]</span>baz" queryCommandValue("italic") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz": execCommand("italic", false, "") return value
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandIndeterm("italic") before
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandState("italic") before
-[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandValue("italic") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz": execCommand("italic", false, "") return value
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandIndeterm("italic") before
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandState("italic") before
+[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandValue("italic") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandIndeterm("italic") after
-[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandState("italic") after
-[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandValue("italic") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandIndeterm("italic") after
+[PASS] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandState("italic") after
+[FAIL] [["stylewithcss","true"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandValue("italic") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz": execCommand("italic", false, "") return value
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandIndeterm("italic") before
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandState("italic") before
-[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandValue("italic") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz": execCommand("italic", false, "") return value
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandIndeterm("italic") before
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandState("italic") before
+[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandValue("italic") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandIndeterm("italic") after
-[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandState("italic") after
-[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\"font-style: oblique\">b[a]r</span>baz" queryCommandValue("italic") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandIndeterm("italic") after
+[PASS] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandState("italic") after
+[FAIL] [["stylewithcss","false"],["italic",""]] "foo<span style=\\"font-style: oblique\\">b[a]r</span>baz" queryCommandValue("italic") after
   assert_equals: Wrong result returned expected "" but got "false"
 [PASS] [["stylewithcss","true"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p><span style=\"font-style:italic\">baz</span></p>" but got "<p style=\"\">foo</p><p style=\"\">bar</p><p style=\"font-style:italic\">baz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p><span style=\\"font-style:italic\\">baz</span></p>" but got "<p style=\\"\\">foo</p><p style=\\"\\">bar</p><p style=\\"font-style:italic\\">baz</p>"
 [PASS] [["stylewithcss","true"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>" queryCommandValue("stylewithcss") before
@@ -698,7 +698,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p><i>baz</i></p>" but got "<p style=\"\">foo</p><p style=\"\">bar</p><p style=\"font-style:italic\">baz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p><i>baz</i></p>" but got "<p style=\\"\\">foo</p><p style=\\"\\">bar</p><p style=\\"font-style:italic\\">baz</p>"
 [PASS] [["stylewithcss","false"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "<i>{<p>foo</p><p>bar</p>}<p>baz</p></i>" queryCommandValue("stylewithcss") before
@@ -717,7 +717,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"font-style:italic\">foo</span><b>bar</b></p><p><span style=\"font-style:italic\">baz</span></p>" but got "<p style=\"\"><span style=\"font-style:italic\">foo</span><b style=\"\">bar</b></p><p style=\"font-style:italic\">baz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"font-style:italic\\">foo</span><b>bar</b></p><p><span style=\\"font-style:italic\\">baz</span></p>" but got "<p style=\\"\\"><span style=\\"font-style:italic\\">foo</span><b style=\\"\\">bar</b></p><p style=\\"font-style:italic\\">baz</p>"
 [PASS] [["stylewithcss","true"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>" queryCommandValue("stylewithcss") before
@@ -736,7 +736,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><i>foo</i><b>bar</b></p><p><i>baz</i></p>" but got "<p style=\"\"><i>foo</i><b style=\"\">bar</b></p><p style=\"font-style:italic\">baz</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><i>foo</i><b>bar</b></p><p><i>baz</i></p>" but got "<p style=\\"\\"><i>foo</i><b style=\\"\\">bar</b></p><p style=\\"font-style:italic\\">baz</p>"
 [PASS] [["stylewithcss","false"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "<i><p>foo[<b>bar</b>}</p><p>baz</p></i>" queryCommandValue("stylewithcss") before
@@ -907,7 +907,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<i>b]ar</i>baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<i>b]ar</i>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo[<i>b]ar</i>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foob<span style=\"font-style:italic\">ar</span>baz" but got "foob<i>ar</i>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foob<span style=\\"font-style:italic\\">ar</span>baz" but got "foob<i>ar</i>baz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<i>b]ar</i>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<i>b]ar</i>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo[<i>b]ar</i>baz" queryCommandValue("stylewithcss") before
@@ -944,7 +944,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<i>ba[r</i>]baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<i>ba[r</i>]baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "foo<i>ba[r</i>]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"font-style:italic\">ba</span>rbaz" but got "foo<i>ba</i>rbaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"font-style:italic\\">ba</span>rbaz" but got "foo<i>ba</i>rbaz"
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<i>ba[r</i>]baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<i>ba[r</i>]baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "foo<i>ba[r</i>]baz" queryCommandValue("stylewithcss") before
@@ -1088,7 +1088,7 @@
 [PASS] [["italic",""]] "fo[o<span style=font-style:italic>b]ar</span>baz": execCommand("italic", false, "") return value
 [PASS] [["italic",""]] "fo[o<span style=font-style:italic>b]ar</span>baz" checks for modifications to non-editable content
 [FAIL] [["italic",""]] "fo[o<span style=font-style:italic>b]ar</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\"font-style:italic\">obar</span>baz" but got "fo<i>ob</i><span style=\"font-style:italic\">ar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\\"font-style:italic\\">obar</span>baz" but got "fo<i>ob</i><span style=\\"font-style:italic\\">ar</span>baz"
 [PASS] [["italic",""]] "fo[o<span style=font-style:italic>b]ar</span>baz" queryCommandIndeterm("italic") before
 [PASS] [["italic",""]] "fo[o<span style=font-style:italic>b]ar</span>baz" queryCommandState("italic") before
 [FAIL] [["italic",""]] "fo[o<span style=font-style:italic>b]ar</span>baz" queryCommandValue("italic") before
@@ -1101,7 +1101,7 @@
 [PASS] [["stylewithcss","true"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","true"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\"font-style:italic\">o</span><span style=\"font-style:oblique\"><span style=\"font-style:italic\">b</span>ar</span>baz" but got "fo<span style=\"font-style:italic\">ob</span><span style=\"font-style:oblique\">ar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\\"font-style:italic\\">o</span><span style=\\"font-style:oblique\\"><span style=\\"font-style:italic\\">b</span>ar</span>baz" but got "fo<span style=\\"font-style:italic\\">ob</span><span style=\\"font-style:oblique\\">ar</span>baz"
 [PASS] [["stylewithcss","true"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz" queryCommandValue("stylewithcss") before
@@ -1120,7 +1120,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<i>o</i><span style=\"font-style:oblique\"><i>b</i>ar</span>baz" but got "fo<i>ob</i><span style=\"font-style:oblique\">ar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<i>o</i><span style=\\"font-style:oblique\\"><i>b</i>ar</span>baz" but got "fo<i>ob</i><span style=\\"font-style:oblique\\">ar</span>baz"
 [PASS] [["stylewithcss","false"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "fo[o<span style=font-style:oblique>b]ar</span>baz" queryCommandValue("stylewithcss") before
@@ -1157,7 +1157,7 @@
 [PASS] [["stylewithcss","false"],["italic",""]] "<span style=font-style:italic>fo[o</span><span style=font-style:oblique>b]ar</span>": execCommand("italic", false, "") return value
 [PASS] [["stylewithcss","false"],["italic",""]] "<span style=font-style:italic>fo[o</span><span style=font-style:oblique>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["italic",""]] "<span style=font-style:italic>fo[o</span><span style=font-style:oblique>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<i>fo</i>ob<span style=\"font-style:oblique\">ar</span>" but got "<span style=\"font-style:italic\">fo</span>ob<span style=\"font-style:oblique\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<i>fo</i>ob<span style=\\"font-style:oblique\\">ar</span>" but got "<span style=\\"font-style:italic\\">fo</span>ob<span style=\\"font-style:oblique\\">ar</span>"
 [PASS] [["stylewithcss","false"],["italic",""]] "<span style=font-style:italic>fo[o</span><span style=font-style:oblique>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "<span style=font-style:italic>fo[o</span><span style=font-style:oblique>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["italic",""]] "<span style=font-style:italic>fo[o</span><span style=font-style:oblique>b]ar</span>" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_1001-2000-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_1001-2000-expected.txt
index 8b0cd34..1e7eac1 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_1001-2000-expected.txt
@@ -3,7 +3,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p>foo</p><p>bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p>foo</p><p>bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("stylewithcss") before
@@ -32,7 +32,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -60,7 +60,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -86,7 +86,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -112,7 +112,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -138,7 +138,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -164,7 +164,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -190,7 +190,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -216,7 +216,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -242,7 +242,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:center\">foo</div></td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -268,7 +268,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:center\">foo</div></td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -294,7 +294,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:center\">foo</div></td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -320,7 +320,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:center\">foo</div></td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -346,7 +346,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -374,7 +374,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -402,7 +402,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -430,7 +430,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -458,7 +458,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -484,7 +484,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -510,7 +510,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -536,7 +536,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -562,7 +562,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -588,7 +588,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -614,7 +614,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -640,7 +640,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -666,7 +666,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -692,7 +692,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -718,7 +718,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -744,7 +744,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -770,7 +770,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -796,7 +796,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -822,7 +822,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -848,7 +848,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td>foo</td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td>foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -874,7 +874,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td><div style=\"text-align:center\">foo</div></td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -900,7 +900,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td><div style=\"text-align:center\">foo</div></td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -926,7 +926,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td><div style=\"text-align:center\">foo</div></td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -952,7 +952,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"center\"><tbody><tr><td><div style=\"text-align:center\">foo</div></td><td><div style=\"text-align:center\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -978,7 +978,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1006,7 +1006,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1034,7 +1034,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1062,7 +1062,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td style=\"text-align:center\">foo</td><td style=\"text-align:center\">bar</td><td style=\"text-align:center\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1090,7 +1090,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1116,7 +1116,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1142,7 +1142,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_2001-3000-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_2001-3000-expected.txt
index 88d20e3..fc76a11 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_2001-3000-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_2001-3000-expected.txt
@@ -19,7 +19,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -46,7 +46,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -72,7 +72,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -98,7 +98,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -124,7 +124,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"center\" style=\"text-align:center\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -183,7 +183,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -213,7 +213,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -243,7 +243,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -273,7 +273,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -303,7 +303,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -330,7 +330,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -357,7 +357,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -384,7 +384,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -411,7 +411,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -439,7 +439,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -467,7 +467,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -495,7 +495,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody align=\"center\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -556,7 +556,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -586,7 +586,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -616,7 +616,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -646,7 +646,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -676,7 +676,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -703,7 +703,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -730,7 +730,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -757,7 +757,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -784,7 +784,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -812,7 +812,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -840,7 +840,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -868,7 +868,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:center\"><tbody><tr align=\"center\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:center\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -906,7 +906,7 @@
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p>foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p>foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -925,7 +925,7 @@
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p>foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p>foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -967,7 +967,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -993,7 +993,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1019,7 +1019,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1045,7 +1045,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1070,7 +1070,7 @@
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:center\">foo</p><p style=\"text-align:center\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p style=\\"text-align:center\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1089,7 +1089,7 @@
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"justify\"><p style=\"text-align:center\">foo</p><p style=\"text-align:center\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p style=\\"text-align:center\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1109,7 +1109,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:justify\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1135,7 +1135,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:justify\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1161,7 +1161,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:justify\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1187,7 +1187,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div style=\"text-align:center\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:justify\"><p style=\"text-align:center\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_4001-5000-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_4001-5000-expected.txt
index 6548c94..6db1d76d 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_4001-5000-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_4001-5000-expected.txt
@@ -24,7 +24,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p>foo</p></div><p style=\"text-align:center\">bar</p><div style=\"text-align:center\"><p>baz</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p>foo</p></div><p style=\\"text-align:center\\">bar</p><div style=\\"text-align:center\\"><p>baz</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -51,7 +51,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p>foo</p></div><p style=\"text-align:center\">bar</p><div style=\"text-align:center\"><p>baz</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p>foo</p></div><p style=\\"text-align:center\\">bar</p><div style=\\"text-align:center\\"><p>baz</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandValue("stylewithcss") before
@@ -77,7 +77,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"center\">foo</p><div style=\"text-align:center\"><p>bar</p></div><p>extra</p>" but got "<p align=\"center\">foo</p><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -103,7 +103,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"center\">foo</p><div style=\"text-align:center\"><p>bar</p></div><p>extra</p>" but got "<p align=\"center\">foo</p><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -129,7 +129,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"center\">foo</p><div style=\"text-align:center\"><p>bar</p></div><p>extra</p>" but got "<p align=\"center\">foo</p><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -155,7 +155,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"center\">foo</p><div style=\"text-align:center\"><p>bar</p></div><p>extra</p>" but got "<p align=\"center\">foo</p><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -181,7 +181,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p></div><p align=\"center\">bar</p><p>extra</p>" but got "<p style=\"text-align:center\">foo</p><p align=\"center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p align=\\"center\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><p align=\\"center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("stylewithcss") before
@@ -207,7 +207,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p></div><p align=\"center\">bar</p><p>extra</p>" but got "<p style=\"text-align:center\">foo</p><p align=\"center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p align=\\"center\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><p align=\\"center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("stylewithcss") before
@@ -233,7 +233,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p></div><p align=\"center\">bar</p><p>extra</p>" but got "<p style=\"text-align:center\">foo</p><p align=\"center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p align=\\"center\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><p align=\\"center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("stylewithcss") before
@@ -259,7 +259,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p></div><p align=\"center\">bar</p><p>extra</p>" but got "<p style=\"text-align:center\">foo</p><p align=\"center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p align=\\"center\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><p align=\\"center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("stylewithcss") before
@@ -285,7 +285,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"center\">foo</p><div style=\"text-align:center\"><p>bar</p></div><p align=\"center\">baz</p><p>extra</p>" but got "<p align=\"center\">foo</p><p style=\"text-align:center\">bar</p><p align=\"center\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p align=\\"center\\">baz</p><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p align=\\"center\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -311,7 +311,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"center\">foo</p><div style=\"text-align:center\"><p>bar</p></div><p align=\"center\">baz</p><p>extra</p>" but got "<p align=\"center\">foo</p><p style=\"text-align:center\">bar</p><p align=\"center\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p align=\\"center\\">baz</p><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p align=\\"center\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -337,7 +337,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"center\">foo</p><div style=\"text-align:center\"><p>bar</p></div><p align=\"center\">baz</p><p>extra</p>" but got "<p align=\"center\">foo</p><p style=\"text-align:center\">bar</p><p align=\"center\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p align=\\"center\\">baz</p><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p align=\\"center\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -363,7 +363,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"center\">foo</p><div style=\"text-align:center\"><p>bar</p></div><p align=\"center\">baz</p><p>extra</p>" but got "<p align=\"center\">foo</p><p style=\"text-align:center\">bar</p><p align=\"center\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p align=\\"center\\">baz</p><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p align=\\"center\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -389,7 +389,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\"text-align:center\">bar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\\"text-align:center\\">bar</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -415,7 +415,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\"text-align:center\">bar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\\"text-align:center\\">bar</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -441,7 +441,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -467,7 +467,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -493,7 +493,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\"text-align:center\">bar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\\"text-align:center\\">bar</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -519,7 +519,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\"text-align:center\">bar</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\\"text-align:center\\">bar</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -545,7 +545,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -571,7 +571,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -596,7 +596,7 @@
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<div align=\"center\">foo</div><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -615,7 +615,7 @@
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<div align=\"center\">foo</div><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -634,7 +634,7 @@
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<div align=\"center\">foo</div><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -653,7 +653,7 @@
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<div align=\"center\">foo</div><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -671,7 +671,7 @@
 [PASS] [["justifycenter",""]] "<div style=text-align:center>[foo</div>bar]<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "<div style=text-align:center>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "<div style=text-align:center>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<div style=\"text-align:center\">foo</div><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["justifycenter",""]] "<div style=text-align:center>[foo</div>bar]<p>extra" queryCommandIndeterm("justifycenter") before
 [PASS] [["justifycenter",""]] "<div style=text-align:center>[foo</div>bar]<p>extra" queryCommandState("justifycenter") before
 [FAIL] [["justifycenter",""]] "<div style=text-align:center>[foo</div>bar]<p>extra" queryCommandValue("justifycenter") before
@@ -683,7 +683,7 @@
 [PASS] [["justifycenter",""]] "<div style=text-align:center>fo[o</div>b]ar<p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "<div style=text-align:center>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "<div style=text-align:center>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div><p>extra</p>" but got "<div style=\"text-align:center\">foo</div><p style=\"text-align:center\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>"
 [PASS] [["justifycenter",""]] "<div style=text-align:center>fo[o</div>b]ar<p>extra" queryCommandIndeterm("justifycenter") before
 [PASS] [["justifycenter",""]] "<div style=text-align:center>fo[o</div>b]ar<p>extra" queryCommandState("justifycenter") before
 [FAIL] [["justifycenter",""]] "<div style=text-align:center>fo[o</div>b]ar<p>extra" queryCommandValue("justifycenter") before
@@ -696,7 +696,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div><p>extra</p>" but got "<span style=\"text-align:center\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:center\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -716,7 +716,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div><p>extra</p>" but got "<span style=\"text-align:center\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:center\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -736,7 +736,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div><p>extra</p>" but got "<span style=\"text-align:center\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:center\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -756,7 +756,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div><p>extra</p>" but got "<span style=\"text-align:center\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:center\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -777,7 +777,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:center\">baz</div><p>extra</p>" but got "<div style=\"text-align:center\">foo<div style=\"text-align:center\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:center\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo<div style=\\"text-align:center\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -803,7 +803,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:center\">baz</div><p>extra</p>" but got "<div style=\"text-align:center\">foo<div style=\"text-align:center\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:center\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo<div style=\\"text-align:center\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -829,7 +829,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:center\">baz</div><p>extra</p>" but got "<div style=\"text-align:center\">foo<div style=\"text-align:center\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:center\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo<div style=\\"text-align:center\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -855,7 +855,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:center\">baz</div><p>extra</p>" but got "<div style=\"text-align:center\">foo<div style=\"text-align:center\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:center\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo<div style=\\"text-align:center\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -880,7 +880,7 @@
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p></div><p>extra</p>" but got "<div align=\"nonsense\"><p style=\"text-align:center\">foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:center\\">foo</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -899,7 +899,7 @@
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p></div><p>extra</p>" but got "<div align=\"nonsense\"><p style=\"text-align:center\">foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:center\\">foo</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -917,7 +917,7 @@
 [PASS] [["justifycenter",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p></div><p>extra</p>" but got "<div style=\"text-align:inherit\"><p style=\"text-align:center\">foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p>extra</p>" but got "<div style=\\"text-align:inherit\\"><p style=\\"text-align:center\\">foo</p></div><p>extra</p>"
 [PASS] [["justifycenter",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandIndeterm("justifycenter") before
 [PASS] [["justifycenter",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandState("justifycenter") before
 [FAIL] [["justifycenter",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifycenter") before
@@ -931,7 +931,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"right\"><p style=\"text-align:center\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"right\\"><p style=\\"text-align:center\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -957,7 +957,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"right\"><p style=\"text-align:center\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"right\\"><p style=\\"text-align:center\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -983,7 +983,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"right\"><p style=\"text-align:center\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"right\\"><p style=\\"text-align:center\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -1009,7 +1009,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"right\"><p style=\"text-align:center\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"right\\"><p style=\\"text-align:center\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -1035,7 +1035,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("stylewithcss") before
@@ -1061,7 +1061,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("stylewithcss") before
@@ -1087,7 +1087,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("stylewithcss") before
@@ -1113,7 +1113,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("stylewithcss") before
@@ -1139,7 +1139,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div>" but got "<div align=\"left\"><div align=\"center\">foo</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_5001-6000-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_5001-6000-expected.txt
index 6a90d8a7..b417942 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_5001-6000-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_5001-6000-expected.txt
@@ -14,7 +14,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div>" but got "<div align=\"left\"><div align=\"center\">foo</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("stylewithcss") before
@@ -40,7 +40,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div>" but got "<div align=\"left\"><div align=\"center\">foo</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("stylewithcss") before
@@ -66,7 +66,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo</div>" but got "<div align=\"left\"><div align=\"center\">foo</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("stylewithcss") before
@@ -92,7 +92,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div>bar</div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("stylewithcss") before
@@ -118,7 +118,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div>bar</div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("stylewithcss") before
@@ -144,7 +144,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div>bar</div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("stylewithcss") before
@@ -170,7 +170,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div>bar</div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div>bar</div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("stylewithcss") before
@@ -196,7 +196,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div>" but got "<div align=\"left\"><div align=\"center\">foo</div><div style=\"text-align:center\">bar</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><div style=\\"text-align:center\\">bar</div></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("stylewithcss") before
@@ -222,7 +222,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div>" but got "<div align=\"left\"><div align=\"center\">foo</div><div style=\"text-align:center\">bar</div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><div style=\\"text-align:center\\">bar</div></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("stylewithcss") before
@@ -248,7 +248,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div>" but got "<div align=\"left\"><div align=\"center\">foo</div><p style=\"text-align:center\">bar</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("stylewithcss") before
@@ -274,7 +274,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br>bar</div>" but got "<div align=\"left\"><div align=\"center\">foo</div><p style=\"text-align:center\">bar</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("stylewithcss") before
@@ -300,7 +300,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br><img src=\"/img/lion.svg\"></div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div><img src=\"/img/lion.svg\"></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><img src=\\"/img/lion.svg\\"></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("stylewithcss") before
@@ -327,7 +327,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br><img src=\"/img/lion.svg\"></div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div><img src=\"/img/lion.svg\"></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><img src=\\"/img/lion.svg\\"></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("stylewithcss") before
@@ -354,7 +354,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br><img src=\"/img/lion.svg\"></div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div><img src=\"/img/lion.svg\"></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><img src=\\"/img/lion.svg\\"></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("stylewithcss") before
@@ -381,7 +381,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br><img src=\"/img/lion.svg\"></div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div><img src=\"/img/lion.svg\"></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><img src=\\"/img/lion.svg\\"></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("stylewithcss") before
@@ -408,7 +408,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br><img src=\"/img/lion.svg\"></div>" but got "<div align=\"left\"><div align=\"center\">foo</div><div style=\"text-align:center\"><img src=\"/img/lion.svg\"></div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><div style=\\"text-align:center\\"><img src=\\"/img/lion.svg\\"></div></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("stylewithcss") before
@@ -436,7 +436,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br><img src=\"/img/lion.svg\"></div>" but got "<div align=\"left\"><div align=\"center\">foo</div><div style=\"text-align:center\"><img src=\"/img/lion.svg\"></div></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><div style=\\"text-align:center\\"><img src=\\"/img/lion.svg\\"></div></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("stylewithcss") before
@@ -464,7 +464,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br><img src=\"/img/lion.svg\"></div>" but got "<div align=\"left\"><div align=\"center\">foo</div><p style=\"text-align:center\"><img src=\"/img/lion.svg\"></p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><p style=\\"text-align:center\\"><img src=\\"/img/lion.svg\\"></p></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("stylewithcss") before
@@ -492,7 +492,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<br><img src=\"/img/lion.svg\"></div>" but got "<div align=\"left\"><div align=\"center\">foo</div><p style=\"text-align:center\"><img src=\"/img/lion.svg\"></p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><p style=\\"text-align:center\\"><img src=\\"/img/lion.svg\\"></p></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("stylewithcss") before
@@ -520,7 +520,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<!-- bar --></div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div><!-- bar --></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><!-- bar --></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("stylewithcss") before
@@ -546,7 +546,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<!-- bar --></div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div><!-- bar --></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><!-- bar --></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("stylewithcss") before
@@ -572,7 +572,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<!-- bar --></div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div><!-- bar --></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><!-- bar --></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("stylewithcss") before
@@ -598,7 +598,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<!-- bar --></div>" but got "<div align=\"center\"><div align=\"left\" style=\"text-align:center\">foo</div><!-- bar --></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><!-- bar --></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("stylewithcss") before
@@ -624,7 +624,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<!-- bar --></div>" but got "<div align=\"left\"><div align=\"center\">foo</div><!-- bar --></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><!-- bar --></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("stylewithcss") before
@@ -650,7 +650,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<!-- bar --></div>" but got "<div align=\"left\"><div align=\"center\">foo</div><!-- bar --></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><!-- bar --></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("stylewithcss") before
@@ -676,7 +676,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<!-- bar --></div>" but got "<div align=\"left\"><div align=\"center\">foo</div><!-- bar --></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><!-- bar --></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("stylewithcss") before
@@ -702,7 +702,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\">foo<!-- bar --></div>" but got "<div align=\"left\"><div align=\"center\">foo</div><!-- bar --></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><!-- bar --></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("stylewithcss") before
@@ -749,7 +749,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div dir=\"rtl\">foo</div></div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:center\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:center\\">foo</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -768,7 +768,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div dir=\"rtl\">foo</div></div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:center\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:center\\">foo</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -787,7 +787,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div dir=\"rtl\">foo</div></div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:center\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:center\\">foo</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -806,7 +806,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra": execCommand("justifycenter", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div dir=\"rtl\">foo</div></div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:center\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:center\\">foo</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -824,7 +824,7 @@
 [PASS] [["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p> <p>bar</p></div>" but got "<div style=\"text-align:center\"><p>foo</p></div> <p style=\"text-align:center\">bar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> <p>bar</p></div>" but got "<div style=\\"text-align:center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p>"
 [PASS] [["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]" queryCommandIndeterm("justifycenter") before
 [PASS] [["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]" queryCommandState("justifycenter") before
 [FAIL] [["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]" queryCommandValue("justifycenter") before
@@ -836,7 +836,7 @@
 [PASS] [["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><p>foo</p> <p>bar</p></div>" but got "<div align=\"center\"><p>foo</p></div> <p style=\"text-align:center\">bar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><p>foo</p> <p>bar</p></div>" but got "<div align=\\"center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p>"
 [PASS] [["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]" queryCommandIndeterm("justifycenter") before
 [PASS] [["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]" queryCommandState("justifycenter") before
 [FAIL] [["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]" queryCommandValue("justifycenter") before
@@ -850,7 +850,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\"text-align:center\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\"text-align:center\">bar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("stylewithcss") before
@@ -876,7 +876,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\"text-align:center\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\"text-align:center\">bar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("stylewithcss") before
@@ -902,7 +902,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\"text-align:center\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\"text-align:center\">bar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("stylewithcss") before
@@ -928,7 +928,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\"text-align:center\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\"text-align:center\">bar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("stylewithcss") before
@@ -952,7 +952,7 @@
 [PASS] [["justifycenter",""]] "<p>[foo]</p> <div style=text-align:center><p>bar</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "<p>[foo]</p> <div style=text-align:center><p>bar</div>" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "<p>[foo]</p> <div style=text-align:center><p>bar</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p> <p>bar</p></div>" but got "<p style=\"text-align:center\">foo</p> <div style=\"text-align:center\"><p>bar</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:center\\">foo</p> <div style=\\"text-align:center\\"><p>bar</p></div>"
 [PASS] [["justifycenter",""]] "<p>[foo]</p> <div style=text-align:center><p>bar</div>" queryCommandIndeterm("justifycenter") before
 [PASS] [["justifycenter",""]] "<p>[foo]</p> <div style=text-align:center><p>bar</div>" queryCommandState("justifycenter") before
 [FAIL] [["justifycenter",""]] "<p>[foo]</p> <div style=text-align:center><p>bar</div>" queryCommandValue("justifycenter") before
@@ -964,7 +964,7 @@
 [PASS] [["justifycenter",""]] "<p>[foo]</p> <div align=center><p>bar</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["justifycenter",""]] "<p>[foo]</p> <div align=center><p>bar</div>" checks for modifications to non-editable content
 [FAIL] [["justifycenter",""]] "<p>[foo]</p> <div align=center><p>bar</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><p>foo</p> <p>bar</p></div>" but got "<p style=\"text-align:center\">foo</p> <div align=\"center\"><p>bar</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:center\\">foo</p> <div align=\\"center\\"><p>bar</p></div>"
 [PASS] [["justifycenter",""]] "<p>[foo]</p> <div align=center><p>bar</div>" queryCommandIndeterm("justifycenter") before
 [PASS] [["justifycenter",""]] "<p>[foo]</p> <div align=center><p>bar</div>" queryCommandState("justifycenter") before
 [FAIL] [["justifycenter",""]] "<p>[foo]</p> <div align=center><p>bar</div>" queryCommandValue("justifycenter") before
@@ -978,7 +978,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\"text-align:center\">foo</p> <center><p>bar</p></center>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\\"text-align:center\\">foo</p> <center><p>bar</p></center>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("stylewithcss") before
@@ -1004,7 +1004,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\"text-align:center\">foo</p> <center><p>bar</p></center>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\\"text-align:center\\">foo</p> <center><p>bar</p></center>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("stylewithcss") before
@@ -1030,7 +1030,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\"text-align:center\">foo</p> <center><p>bar</p></center>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\\"text-align:center\\">foo</p> <center><p>bar</p></center>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("stylewithcss") before
@@ -1056,7 +1056,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\"text-align:center\">foo</p> <center><p>bar</p></center>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\\"text-align:center\\">foo</p> <center><p>bar</p></center>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("stylewithcss") before
@@ -1082,7 +1082,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\"text-align:center\"><p>foo</p></div> <p style=\"text-align:center\">bar</p> <div style=\"text-align:center\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p> <div style=\\"text-align:center\\"><p>baz</p></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandValue("stylewithcss") before
@@ -1108,7 +1108,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\"text-align:center\"><p>foo</p></div> <p style=\"text-align:center\">bar</p> <div style=\"text-align:center\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p> <div style=\\"text-align:center\\"><p>baz</p></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandValue("stylewithcss") before
@@ -1134,7 +1134,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>": execCommand("justifycenter", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\"text-align:center\"><p>foo</p></div> <p style=\"text-align:center\">bar</p> <div style=\"text-align:center\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p> <div style=\\"text-align:center\\"><p>baz</p></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_1001-2000-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_1001-2000-expected.txt
index c8f6856..5d8b5de 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_1001-2000-expected.txt
@@ -22,7 +22,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\"text-align:justify\">foo</p><p style=\"text-align:justify\">bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -50,7 +50,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\"text-align:justify\">foo</p><p style=\"text-align:justify\">bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("stylewithcss") before
@@ -76,7 +76,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\"text-align:justify\">foo</p><p style=\"text-align:justify\">bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("stylewithcss") before
@@ -102,7 +102,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\"text-align:justify\">foo</p><p style=\"text-align:justify\">bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("stylewithcss") before
@@ -128,7 +128,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -154,7 +154,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -180,7 +180,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -206,7 +206,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -232,7 +232,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -258,7 +258,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -284,7 +284,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -310,7 +310,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -336,7 +336,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:justify\">foo</div></td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -362,7 +362,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:justify\">foo</div></td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -388,7 +388,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:justify\">foo</div></td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -414,7 +414,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:justify\">foo</div></td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -440,7 +440,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -468,7 +468,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -496,7 +496,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -524,7 +524,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -552,7 +552,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -578,7 +578,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -604,7 +604,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -630,7 +630,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -656,7 +656,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -682,7 +682,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -708,7 +708,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -734,7 +734,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -760,7 +760,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -786,7 +786,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -812,7 +812,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -838,7 +838,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -864,7 +864,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -890,7 +890,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -916,7 +916,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -942,7 +942,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td>foo</td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td>foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -968,7 +968,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td><div style=\"text-align:justify\">foo</div></td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -994,7 +994,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td><div style=\"text-align:justify\">foo</div></td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1020,7 +1020,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td><div style=\"text-align:justify\">foo</div></td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1046,7 +1046,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"justify\"><tbody><tr><td><div style=\"text-align:justify\">foo</div></td><td><div style=\"text-align:justify\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1072,7 +1072,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1100,7 +1100,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1128,7 +1128,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_2001-3000-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_2001-3000-expected.txt
index b12adad..e790c748 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_2001-3000-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_2001-3000-expected.txt
@@ -7,7 +7,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td style=\"text-align:justify\">foo</td><td style=\"text-align:justify\">bar</td><td style=\"text-align:justify\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -36,7 +36,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -62,7 +62,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -88,7 +88,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -114,7 +114,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -140,7 +140,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -166,7 +166,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -192,7 +192,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -218,7 +218,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"justify\" style=\"text-align:justify\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -277,7 +277,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -307,7 +307,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -337,7 +337,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -367,7 +367,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -397,7 +397,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -424,7 +424,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -451,7 +451,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -478,7 +478,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -505,7 +505,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -533,7 +533,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -561,7 +561,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -589,7 +589,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody align=\"justify\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -650,7 +650,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -680,7 +680,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -710,7 +710,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -740,7 +740,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -770,7 +770,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -797,7 +797,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -824,7 +824,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -851,7 +851,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -878,7 +878,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -906,7 +906,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -934,7 +934,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -962,7 +962,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:justify\"><tbody><tr align=\"justify\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:justify\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -990,7 +990,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1016,7 +1016,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1042,7 +1042,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1068,7 +1068,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1093,7 +1093,7 @@
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:justify\">foo</p><p style=\"text-align:justify\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1112,7 +1112,7 @@
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:justify\">foo</p><p style=\"text-align:justify\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1132,7 +1132,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1158,7 +1158,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1184,7 +1184,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div style=\"text-align:justify\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:justify\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_4001-last-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_4001-last-expected.txt
index 0f02675..14c3fd27 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_4001-last-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_4001-last-expected.txt
@@ -14,7 +14,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p></div><p align=\"justify\">bar</p><p>extra</p>" but got "<p style=\"text-align:justify\">foo</p><p align=\"justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p align=\\"justify\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:justify\\">foo</p><p align=\\"justify\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -41,7 +41,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p></div><p align=\"justify\">bar</p><p>extra</p>" but got "<p style=\"text-align:justify\">foo</p><p align=\"justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p align=\\"justify\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:justify\\">foo</p><p align=\\"justify\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandValue("stylewithcss") before
@@ -67,7 +67,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"justify\">foo</p><div style=\"text-align:justify\"><p>bar</p></div><p align=\"justify\">baz</p><p>extra</p>" but got "<p align=\"justify\">foo</p><p style=\"text-align:justify\">bar</p><p align=\"justify\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p align=\\"justify\\">baz</p><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p align=\\"justify\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -93,7 +93,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"justify\">foo</p><div style=\"text-align:justify\"><p>bar</p></div><p align=\"justify\">baz</p><p>extra</p>" but got "<p align=\"justify\">foo</p><p style=\"text-align:justify\">bar</p><p align=\"justify\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p align=\\"justify\\">baz</p><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p align=\\"justify\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -119,7 +119,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"justify\">foo</p><div style=\"text-align:justify\"><p>bar</p></div><p align=\"justify\">baz</p><p>extra</p>" but got "<p align=\"justify\">foo</p><p style=\"text-align:justify\">bar</p><p align=\"justify\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p align=\\"justify\\">baz</p><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p align=\\"justify\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -145,7 +145,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"justify\">foo</p><div style=\"text-align:justify\"><p>bar</p></div><p align=\"justify\">baz</p><p>extra</p>" but got "<p align=\"justify\">foo</p><p style=\"text-align:justify\">bar</p><p align=\"justify\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p align=\\"justify\\">baz</p><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p align=\\"justify\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -170,7 +170,7 @@
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<br>bar</div><p>extra</p>" but got "<div align=\"justify\">foo</div><p style=\"text-align:justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -189,7 +189,7 @@
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<br>bar</div><p>extra</p>" but got "<div align=\"justify\">foo</div><p style=\"text-align:justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -208,7 +208,7 @@
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<br>bar</div><p>extra</p>" but got "<div align=\"justify\">foo</div><p style=\"text-align:justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -227,7 +227,7 @@
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<br>bar</div><p>extra</p>" but got "<div align=\"justify\">foo</div><p style=\"text-align:justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -245,7 +245,7 @@
 [PASS] [["justifyfull",""]] "<div style=text-align:justify>[foo</div>bar]<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "<div style=text-align:justify>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "<div style=text-align:justify>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<br>bar</div><p>extra</p>" but got "<div style=\"text-align:justify\">foo</div><p style=\"text-align:justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>"
 [PASS] [["justifyfull",""]] "<div style=text-align:justify>[foo</div>bar]<p>extra" queryCommandIndeterm("justifyfull") before
 [PASS] [["justifyfull",""]] "<div style=text-align:justify>[foo</div>bar]<p>extra" queryCommandState("justifyfull") before
 [FAIL] [["justifyfull",""]] "<div style=text-align:justify>[foo</div>bar]<p>extra" queryCommandValue("justifyfull") before
@@ -257,7 +257,7 @@
 [PASS] [["justifyfull",""]] "<div style=text-align:justify>fo[o</div>b]ar<p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "<div style=text-align:justify>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "<div style=text-align:justify>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo<br>bar</div><p>extra</p>" but got "<div style=\"text-align:justify\">foo</div><p style=\"text-align:justify\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>"
 [PASS] [["justifyfull",""]] "<div style=text-align:justify>fo[o</div>b]ar<p>extra" queryCommandIndeterm("justifyfull") before
 [PASS] [["justifyfull",""]] "<div style=text-align:justify>fo[o</div>b]ar<p>extra" queryCommandState("justifyfull") before
 [FAIL] [["justifyfull",""]] "<div style=text-align:justify>fo[o</div>b]ar<p>extra" queryCommandValue("justifyfull") before
@@ -270,7 +270,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo</div><p>extra</p>" but got "<span style=\"text-align:justify\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:justify\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -290,7 +290,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo</div><p>extra</p>" but got "<span style=\"text-align:justify\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:justify\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -310,7 +310,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo</div><p>extra</p>" but got "<span style=\"text-align:justify\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:justify\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -330,7 +330,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo</div><p>extra</p>" but got "<span style=\"text-align:justify\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:justify\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -351,7 +351,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:justify\">baz</div><p>extra</p>" but got "<div style=\"text-align:justify\">foo<div style=\"text-align:justify\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:justify\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo<div style=\\"text-align:justify\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -377,7 +377,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:justify\">baz</div><p>extra</p>" but got "<div style=\"text-align:justify\">foo<div style=\"text-align:justify\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:justify\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo<div style=\\"text-align:justify\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -403,7 +403,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:justify\">baz</div><p>extra</p>" but got "<div style=\"text-align:justify\">foo<div style=\"text-align:justify\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:justify\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo<div style=\\"text-align:justify\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -429,7 +429,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:justify\">baz</div><p>extra</p>" but got "<div style=\"text-align:justify\">foo<div style=\"text-align:justify\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:justify\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo<div style=\\"text-align:justify\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -454,7 +454,7 @@
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p></div><p>extra</p>" but got "<div align=\"nonsense\"><p style=\"text-align:justify\">foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:justify\\">foo</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -473,7 +473,7 @@
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p></div><p>extra</p>" but got "<div align=\"nonsense\"><p style=\"text-align:justify\">foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:justify\\">foo</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -491,7 +491,7 @@
 [PASS] [["justifyfull",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p></div><p>extra</p>" but got "<div style=\"text-align:inherit\"><p style=\"text-align:justify\">foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p>extra</p>" but got "<div style=\\"text-align:inherit\\"><p style=\\"text-align:justify\\">foo</p></div><p>extra</p>"
 [PASS] [["justifyfull",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandIndeterm("justifyfull") before
 [PASS] [["justifyfull",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandState("justifyfull") before
 [FAIL] [["justifyfull",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifyfull") before
@@ -505,7 +505,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"center\"><p style=\"text-align:justify\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:justify\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -531,7 +531,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"center\"><p style=\"text-align:justify\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:justify\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -557,7 +557,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"center\"><p style=\"text-align:justify\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:justify\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -583,7 +583,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"center\"><p style=\"text-align:justify\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:justify\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -630,7 +630,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div dir=\"rtl\">foo</div></div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:justify\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:justify\\">foo</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -649,7 +649,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div dir=\"rtl\">foo</div></div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:justify\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:justify\\">foo</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -668,7 +668,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div dir=\"rtl\">foo</div></div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:justify\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:justify\\">foo</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -687,7 +687,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><div dir=\"rtl\">foo</div></div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:justify\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:justify\\">foo</div><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -705,7 +705,7 @@
 [PASS] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p> <p>bar</p></div>" but got "<div style=\"text-align:justify\"><p>foo</p></div> <p style=\"text-align:justify\">bar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p></div>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p>"
 [PASS] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]" queryCommandIndeterm("justifyfull") before
 [PASS] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]" queryCommandState("justifyfull") before
 [FAIL] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]" queryCommandValue("justifyfull") before
@@ -717,7 +717,7 @@
 [PASS] [["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><p>foo</p> <p>bar</p></div>" but got "<div align=\"justify\"><p>foo</p></div> <p style=\"text-align:justify\">bar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p> <p>bar</p></div>" but got "<div align=\\"justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p>"
 [PASS] [["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]" queryCommandIndeterm("justifyfull") before
 [PASS] [["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]" queryCommandState("justifyfull") before
 [FAIL] [["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]" queryCommandValue("justifyfull") before
@@ -729,7 +729,7 @@
 [PASS] [["justifyfull",""]] "<p>[foo]</p> <div style=text-align:justify><p>bar</div>": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "<p>[foo]</p> <div style=text-align:justify><p>bar</div>" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "<p>[foo]</p> <div style=text-align:justify><p>bar</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p> <p>bar</p></div>" but got "<p style=\"text-align:justify\">foo</p> <div style=\"text-align:justify\"><p>bar</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:justify\\">foo</p> <div style=\\"text-align:justify\\"><p>bar</p></div>"
 [PASS] [["justifyfull",""]] "<p>[foo]</p> <div style=text-align:justify><p>bar</div>" queryCommandIndeterm("justifyfull") before
 [PASS] [["justifyfull",""]] "<p>[foo]</p> <div style=text-align:justify><p>bar</div>" queryCommandState("justifyfull") before
 [FAIL] [["justifyfull",""]] "<p>[foo]</p> <div style=text-align:justify><p>bar</div>" queryCommandValue("justifyfull") before
@@ -741,7 +741,7 @@
 [PASS] [["justifyfull",""]] "<p>[foo]</p> <div align=justify><p>bar</div>": execCommand("justifyfull", false, "") return value
 [PASS] [["justifyfull",""]] "<p>[foo]</p> <div align=justify><p>bar</div>" checks for modifications to non-editable content
 [FAIL] [["justifyfull",""]] "<p>[foo]</p> <div align=justify><p>bar</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><p>foo</p> <p>bar</p></div>" but got "<p style=\"text-align:justify\">foo</p> <div align=\"justify\"><p>bar</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:justify\\">foo</p> <div align=\\"justify\\"><p>bar</p></div>"
 [PASS] [["justifyfull",""]] "<p>[foo]</p> <div align=justify><p>bar</div>" queryCommandIndeterm("justifyfull") before
 [PASS] [["justifyfull",""]] "<p>[foo]</p> <div align=justify><p>bar</div>" queryCommandState("justifyfull") before
 [FAIL] [["justifyfull",""]] "<p>[foo]</p> <div align=justify><p>bar</div>" queryCommandValue("justifyfull") before
@@ -755,7 +755,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\"text-align:justify\"><p>foo</p></div> <p style=\"text-align:justify\">bar</p> <div style=\"text-align:justify\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div style=\\"text-align:justify\\"><p>baz</p></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("stylewithcss") before
@@ -781,7 +781,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\"text-align:justify\"><p>foo</p></div> <p style=\"text-align:justify\">bar</p> <div style=\"text-align:justify\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div style=\\"text-align:justify\\"><p>baz</p></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("stylewithcss") before
@@ -807,7 +807,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\"text-align:justify\"><p>foo</p></div> <p style=\"text-align:justify\">bar</p> <div style=\"text-align:justify\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div style=\\"text-align:justify\\"><p>baz</p></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("stylewithcss") before
@@ -833,7 +833,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>": execCommand("justifyfull", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:justify\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\"text-align:justify\"><p>foo</p></div> <p style=\"text-align:justify\">bar</p> <div style=\"text-align:justify\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div style=\\"text-align:justify\\"><p>baz</p></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("stylewithcss") before
@@ -858,7 +858,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\"justify\"><p>foo</p></div> <p style=\"text-align:justify\">bar</p> <div align=\"justify\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\\"justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div align=\\"justify\\"><p>baz</p></div>"
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" queryCommandValue("defaultparagraphseparator") before
@@ -877,7 +877,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>": execCommand("justifyfull", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"justify\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\"justify\"><p>foo</p></div> <p style=\"text-align:justify\">bar</p> <div align=\"justify\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\\"justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div align=\\"justify\\"><p>baz</p></div>"
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" queryCommandValue("defaultparagraphseparator") before
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_1001-2000-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_1001-2000-expected.txt
index be5da61..690ca80 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_1001-2000-expected.txt
@@ -22,7 +22,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\"text-align:right\">foo</p><p style=\"text-align:right\">bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -50,7 +50,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\"text-align:right\">foo</p><p style=\"text-align:right\">bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("stylewithcss") before
@@ -76,7 +76,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\"text-align:right\">foo</p><p style=\"text-align:right\">bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("stylewithcss") before
@@ -102,7 +102,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\"text-align:right\">foo</p><p style=\"text-align:right\">bar</p></center><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></center><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("stylewithcss") before
@@ -128,7 +128,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -154,7 +154,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -180,7 +180,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -206,7 +206,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -232,7 +232,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -258,7 +258,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -284,7 +284,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -310,7 +310,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -336,7 +336,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:right\">foo</div></td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -362,7 +362,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:right\">foo</div></td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -388,7 +388,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:right\">foo</div></td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -414,7 +414,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\"text-align:right\">foo</div></td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -440,7 +440,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -468,7 +468,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -496,7 +496,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -524,7 +524,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -552,7 +552,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -578,7 +578,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -604,7 +604,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -630,7 +630,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -656,7 +656,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -682,7 +682,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -708,7 +708,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -734,7 +734,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -760,7 +760,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -786,7 +786,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -812,7 +812,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -838,7 +838,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -864,7 +864,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -890,7 +890,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -916,7 +916,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -942,7 +942,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td>foo</td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td>foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -968,7 +968,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td><div style=\"text-align:right\">foo</div></td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -994,7 +994,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td><div style=\"text-align:right\">foo</div></td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1020,7 +1020,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td><div style=\"text-align:right\">foo</div></td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1046,7 +1046,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\"right\"><tbody><tr><td><div style=\"text-align:right\">foo</div></td><td><div style=\"text-align:right\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\"right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1072,7 +1072,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1100,7 +1100,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -1128,7 +1128,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_2001-3000-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_2001-3000-expected.txt
index 4fdf5ac..c8a257dc 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_2001-3000-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_2001-3000-expected.txt
@@ -7,7 +7,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td style=\"text-align:right\">foo</td><td style=\"text-align:right\">bar</td><td style=\"text-align:right\">baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -36,7 +36,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -62,7 +62,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -88,7 +88,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -114,7 +114,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -140,7 +140,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -166,7 +166,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -192,7 +192,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -218,7 +218,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\"right\" style=\"text-align:right\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -277,7 +277,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -307,7 +307,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -337,7 +337,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -367,7 +367,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -397,7 +397,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -424,7 +424,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -451,7 +451,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -478,7 +478,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -505,7 +505,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -533,7 +533,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -561,7 +561,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -589,7 +589,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody align=\"right\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -650,7 +650,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -680,7 +680,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -710,7 +710,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -740,7 +740,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -770,7 +770,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -797,7 +797,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -824,7 +824,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -851,7 +851,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("stylewithcss") before
@@ -878,7 +878,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -906,7 +906,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -934,7 +934,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -962,7 +962,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\"text-align:right\"><tbody><tr align=\"right\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\"text-align:right\">extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("stylewithcss") before
@@ -990,7 +990,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1016,7 +1016,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1042,7 +1042,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1068,7 +1068,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"center\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1093,7 +1093,7 @@
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:right\">foo</p><p style=\"text-align:right\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1112,7 +1112,7 @@
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\"center\"><p style=\"text-align:right\">foo</p><p style=\"text-align:right\">bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1132,7 +1132,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1158,7 +1158,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
@@ -1184,7 +1184,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:center\"><div style=\"text-align:right\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\"text-align:center\"><p style=\"text-align:right\">foo</p><p>bar</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_4001-last-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_4001-last-expected.txt
index 392ca85..a15dbdd 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_4001-last-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_4001-last-expected.txt
@@ -14,7 +14,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p></div><p align=\"right\">bar</p><p>extra</p>" but got "<p style=\"text-align:right\">foo</p><p align=\"right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p align=\\"right\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:right\\">foo</p><p align=\\"right\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -41,7 +41,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p></div><p align=\"right\">bar</p><p>extra</p>" but got "<p style=\"text-align:right\">foo</p><p align=\"right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p align=\\"right\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:right\\">foo</p><p align=\\"right\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandValue("stylewithcss") before
@@ -67,7 +67,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"right\">foo</p><div style=\"text-align:right\"><p>bar</p></div><p align=\"right\">baz</p><p>extra</p>" but got "<p align=\"right\">foo</p><p style=\"text-align:right\">bar</p><p align=\"right\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p align=\\"right\\">baz</p><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p align=\\"right\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -93,7 +93,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"right\">foo</p><div style=\"text-align:right\"><p>bar</p></div><p align=\"right\">baz</p><p>extra</p>" but got "<p align=\"right\">foo</p><p style=\"text-align:right\">bar</p><p align=\"right\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p align=\\"right\\">baz</p><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p align=\\"right\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -119,7 +119,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"right\">foo</p><div style=\"text-align:right\"><p>bar</p></div><p align=\"right\">baz</p><p>extra</p>" but got "<p align=\"right\">foo</p><p style=\"text-align:right\">bar</p><p align=\"right\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p align=\\"right\\">baz</p><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p align=\\"right\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -145,7 +145,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\"right\">foo</p><div style=\"text-align:right\"><p>bar</p></div><p align=\"right\">baz</p><p>extra</p>" but got "<p align=\"right\">foo</p><p style=\"text-align:right\">bar</p><p align=\"right\">baz</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p align=\\"right\\">baz</p><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p align=\\"right\\">baz</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("stylewithcss") before
@@ -170,7 +170,7 @@
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<br>bar</div><p>extra</p>" but got "<div align=\"right\">foo</div><p style=\"text-align:right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -189,7 +189,7 @@
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<br>bar</div><p>extra</p>" but got "<div align=\"right\">foo</div><p style=\"text-align:right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandValue("stylewithcss") before
@@ -208,7 +208,7 @@
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<br>bar</div><p>extra</p>" but got "<div align=\"right\">foo</div><p style=\"text-align:right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -227,7 +227,7 @@
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<br>bar</div><p>extra</p>" but got "<div align=\"right\">foo</div><p style=\"text-align:right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandValue("stylewithcss") before
@@ -245,7 +245,7 @@
 [PASS] [["justifyright",""]] "<div style=text-align:right>[foo</div>bar]<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<div style=text-align:right>[foo</div>bar]<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<div style=text-align:right>[foo</div>bar]<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<br>bar</div><p>extra</p>" but got "<div style=\"text-align:right\">foo</div><p style=\"text-align:right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>"
 [PASS] [["justifyright",""]] "<div style=text-align:right>[foo</div>bar]<p>extra" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "<div style=text-align:right>[foo</div>bar]<p>extra" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "<div style=text-align:right>[foo</div>bar]<p>extra" queryCommandValue("justifyright") before
@@ -257,7 +257,7 @@
 [PASS] [["justifyright",""]] "<div style=text-align:right>fo[o</div>b]ar<p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<div style=text-align:right>fo[o</div>b]ar<p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<div style=text-align:right>fo[o</div>b]ar<p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo<br>bar</div><p>extra</p>" but got "<div style=\"text-align:right\">foo</div><p style=\"text-align:right\">bar</p><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>"
 [PASS] [["justifyright",""]] "<div style=text-align:right>fo[o</div>b]ar<p>extra" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "<div style=text-align:right>fo[o</div>b]ar<p>extra" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "<div style=text-align:right>fo[o</div>b]ar<p>extra" queryCommandValue("justifyright") before
@@ -270,7 +270,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo</div><p>extra</p>" but got "<span style=\"text-align:right\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:right\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -290,7 +290,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo</div><p>extra</p>" but got "<span style=\"text-align:right\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:right\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -310,7 +310,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo</div><p>extra</p>" but got "<span style=\"text-align:right\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:right\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -330,7 +330,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo</div><p>extra</p>" but got "<span style=\"text-align:right\">foo</span><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:right\\">foo</span><p>extra</p>"
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandValue("defaultparagraphseparator") before
@@ -351,7 +351,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:right\">baz</div><p>extra</p>" but got "<div style=\"text-align:right\">foo<div style=\"text-align:right\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:right\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo<div style=\\"text-align:right\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -377,7 +377,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:right\">baz</div><p>extra</p>" but got "<div style=\"text-align:right\">foo<div style=\"text-align:right\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:right\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo<div style=\\"text-align:right\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -403,7 +403,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:right\">baz</div><p>extra</p>" but got "<div style=\"text-align:right\">foo<div style=\"text-align:right\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:right\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo<div style=\\"text-align:right\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -429,7 +429,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo</div><div style=\"text-align:left\" contenteditable=\"false\">bar</div><div style=\"text-align:right\">baz</div><p>extra</p>" but got "<div style=\"text-align:right\">foo<div style=\"text-align:right\" contenteditable=\"false\">bar</div>baz</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:right\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo<div style=\\"text-align:right\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -454,7 +454,7 @@
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p></div><p>extra</p>" but got "<div align=\"nonsense\"><p style=\"text-align:right\">foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:right\\">foo</p></div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -473,7 +473,7 @@
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p></div><p>extra</p>" but got "<div align=\"nonsense\"><p style=\"text-align:right\">foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:right\\">foo</p></div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -491,7 +491,7 @@
 [PASS] [["justifyright",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p></div><p>extra</p>" but got "<div style=\"text-align:inherit\"><p style=\"text-align:right\">foo</p></div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p>extra</p>" but got "<div style=\\"text-align:inherit\\"><p style=\\"text-align:right\\">foo</p></div><p>extra</p>"
 [PASS] [["justifyright",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifyright") before
@@ -505,7 +505,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"center\"><p style=\"text-align:right\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:right\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -531,7 +531,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"center\"><p style=\"text-align:right\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:right\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -557,7 +557,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"center\"><p style=\"text-align:right\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:right\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -583,7 +583,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\"center\"><p style=\"text-align:right\">foo</p></quasit><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:right\\">foo</p></quasit><p>extra</p>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("stylewithcss") before
@@ -618,7 +618,7 @@
 [PASS] [["justifyright",""]] "<div style=text-align:end>[foo]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<div style=text-align:end>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<div style=text-align:end>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\">foo</div><p>extra</p>" but got "<div style=\"text-align:end\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><p>extra</p>" but got "<div style=\\"text-align:end\\">foo</div><p>extra</p>"
 [PASS] [["justifyright",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyright") before
@@ -631,7 +631,7 @@
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\"rtl\">foo</div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:start\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\\"rtl\\">foo</div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:start\\">foo</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -650,7 +650,7 @@
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\"rtl\">foo</div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:start\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\\"rtl\\">foo</div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:start\\">foo</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -669,7 +669,7 @@
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\"rtl\">foo</div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:right\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\\"rtl\\">foo</div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:right\\">foo</div><p>extra</p>"
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -688,7 +688,7 @@
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\"rtl\">foo</div><p>extra</p>" but got "<div dir=\"rtl\" style=\"text-align:right\">foo</div><p>extra</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\\"rtl\\">foo</div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:right\\">foo</div><p>extra</p>"
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("stylewithcss") before
@@ -706,7 +706,7 @@
 [PASS] [["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p> <p>bar</p></div>" but got "<div style=\"text-align:right\"><p>foo</p></div> <p style=\"text-align:right\">bar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p></div>" but got "<div style=\\"text-align:right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p>"
 [PASS] [["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]" queryCommandValue("justifyright") before
@@ -718,7 +718,7 @@
 [PASS] [["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><p>foo</p> <p>bar</p></div>" but got "<div align=\"right\"><p>foo</p></div> <p style=\"text-align:right\">bar</p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p> <p>bar</p></div>" but got "<div align=\\"right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p>"
 [PASS] [["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]" queryCommandValue("justifyright") before
@@ -730,7 +730,7 @@
 [PASS] [["justifyright",""]] "<p>[foo]</p> <div style=text-align:right><p>bar</div>": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<p>[foo]</p> <div style=text-align:right><p>bar</div>" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<p>[foo]</p> <div style=text-align:right><p>bar</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p> <p>bar</p></div>" but got "<p style=\"text-align:right\">foo</p> <div style=\"text-align:right\"><p>bar</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:right\\">foo</p> <div style=\\"text-align:right\\"><p>bar</p></div>"
 [PASS] [["justifyright",""]] "<p>[foo]</p> <div style=text-align:right><p>bar</div>" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "<p>[foo]</p> <div style=text-align:right><p>bar</div>" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "<p>[foo]</p> <div style=text-align:right><p>bar</div>" queryCommandValue("justifyright") before
@@ -742,7 +742,7 @@
 [PASS] [["justifyright",""]] "<p>[foo]</p> <div align=right><p>bar</div>": execCommand("justifyright", false, "") return value
 [PASS] [["justifyright",""]] "<p>[foo]</p> <div align=right><p>bar</div>" checks for modifications to non-editable content
 [FAIL] [["justifyright",""]] "<p>[foo]</p> <div align=right><p>bar</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><p>foo</p> <p>bar</p></div>" but got "<p style=\"text-align:right\">foo</p> <div align=\"right\"><p>bar</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:right\\">foo</p> <div align=\\"right\\"><p>bar</p></div>"
 [PASS] [["justifyright",""]] "<p>[foo]</p> <div align=right><p>bar</div>" queryCommandIndeterm("justifyright") before
 [PASS] [["justifyright",""]] "<p>[foo]</p> <div align=right><p>bar</div>" queryCommandState("justifyright") before
 [FAIL] [["justifyright",""]] "<p>[foo]</p> <div align=right><p>bar</div>" queryCommandValue("justifyright") before
@@ -756,7 +756,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\"text-align:right\"><p>foo</p></div> <p style=\"text-align:right\">bar</p> <div style=\"text-align:right\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div style=\\"text-align:right\\"><p>baz</p></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("stylewithcss") before
@@ -782,7 +782,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\"text-align:right\"><p>foo</p></div> <p style=\"text-align:right\">bar</p> <div style=\"text-align:right\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div style=\\"text-align:right\\"><p>baz</p></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("stylewithcss") before
@@ -808,7 +808,7 @@
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\"text-align:right\"><p>foo</p></div> <p style=\"text-align:right\">bar</p> <div style=\"text-align:right\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div style=\\"text-align:right\\"><p>baz</p></div>"
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("stylewithcss") before
@@ -834,7 +834,7 @@
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>": execCommand("justifyright", false, "") return value
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\"text-align:right\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\"text-align:right\"><p>foo</p></div> <p style=\"text-align:right\">bar</p> <div style=\"text-align:right\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div style=\\"text-align:right\\"><p>baz</p></div>"
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("stylewithcss") before
@@ -859,7 +859,7 @@
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>": execCommand("justifyright", false, "") return value
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\"right\"><p>foo</p></div> <p style=\"text-align:right\">bar</p> <div align=\"right\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\\"right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div align=\\"right\\"><p>baz</p></div>"
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" queryCommandValue("defaultparagraphseparator") before
@@ -878,7 +878,7 @@
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>": execCommand("justifyright", false, "") return value
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" checks for modifications to non-editable content
 [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\"right\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\"right\"><p>foo</p></div> <p style=\"text-align:right\">bar</p> <div align=\"right\"><p>baz</p></div>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\\"right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div align=\\"right\\"><p>baz</p></div>"
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" queryCommandIndeterm("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" queryCommandState("defaultparagraphseparator") before
 [PASS] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" queryCommandValue("defaultparagraphseparator") before
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/strikethrough_1001-2000-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/strikethrough_1001-2000-expected.txt
index 5b0717d..065f3bc 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/strikethrough_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/strikethrough_1001-2000-expected.txt
@@ -8,123 +8,123 @@
   assert_equals: Wrong result returned expected false but got true
 [FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[bar]baz</strike>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"text-decoration:line-through\">foo</span>b<span style=\"color:rgb(0, 0, 255)\">ar<span style=\"text-decoration:line-through\">ba</span></span><span style=\"text-decoration:line-through\">z</span>" but got "<strike>foo</strike>b<span style=\"color:rgb(0, 0, 255)\">ar<span style=\"text-decoration-line:line-through\">ba</span></span><span style=\"text-decoration-line:line-through\">z</span>"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"text-decoration:line-through\\">foo</span>b<span style=\\"color:rgb(0, 0, 255)\\">ar<span style=\\"text-decoration:line-through\\">ba</span></span><span style=\\"text-decoration:line-through\\">z</span>" but got "<strike>foo</strike>b<span style=\\"color:rgb(0, 0, 255)\\">ar<span style=\\"text-decoration-line:line-through\\">ba</span></span><span style=\\"text-decoration-line:line-through\\">z</span>"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"text-decoration:line-through\">foo</span>b<span style=\"color:rgb(0, 0, 255)\" id=\"foo\">ar<span style=\"text-decoration:line-through\">ba</span></span><span style=\"text-decoration:line-through\">z</span>" but got "<strike>foo</strike>b<span style=\"color:rgb(0, 0, 255)\" id=\"foo\">ar<span style=\"text-decoration-line:line-through\">ba</span></span><span style=\"text-decoration-line:line-through\">z</span>"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"text-decoration:line-through\\">foo</span>b<span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\">ar<span style=\\"text-decoration:line-through\\">ba</span></span><span style=\\"text-decoration:line-through\\">z</span>" but got "<strike>foo</strike>b<span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\">ar<span style=\\"text-decoration-line:line-through\\">ba</span></span><span style=\\"text-decoration-line:line-through\\">z</span>"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"text-decoration:line-through\">foo</span>b<span style=\"font-size:3em\">ar<span style=\"text-decoration:line-through\">ba</span></span><span style=\"text-decoration:line-through\">z</span>" but got "<strike>foo</strike>b<span style=\"font-size:3em\">ar<span style=\"text-decoration-line:line-through\">ba</span></span><span style=\"text-decoration-line:line-through\">z</span>"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"text-decoration:line-through\\">foo</span>b<span style=\\"font-size:3em\\">ar<span style=\\"text-decoration:line-through\\">ba</span></span><span style=\\"text-decoration:line-through\\">z</span>" but got "<strike>foo</strike>b<span style=\\"font-size:3em\\">ar<span style=\\"text-decoration-line:line-through\\">ba</span></span><span style=\\"text-decoration-line:line-through\\">z</span>"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"text-decoration:line-through\">foo</span>b<i>ar<span style=\"text-decoration:line-through\">ba</span></i><span style=\"text-decoration:line-through\">z</span>" but got "<strike>foo</strike>b<i style=\"\">ar<span style=\"text-decoration-line:line-through\">ba</span></i><span style=\"text-decoration-line:line-through\">z</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"text-decoration:line-through\\">foo</span>b<i>ar<span style=\\"text-decoration:line-through\\">ba</span></i><span style=\\"text-decoration:line-through\\">z</span>" but got "<strike>foo</strike>b<i style=\\"\\">ar<span style=\\"text-decoration-line:line-through\\">ba</span></i><span style=\\"text-decoration-line:line-through\\">z</span>"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" queryCommandValue("stylewithcss") before
@@ -143,7 +143,7 @@
 [PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo</strike>b<i>ar<strike>ba</strike></i><strike>z</strike>" but got "<strike>foo</strike>b<i style=\"\">ar<strike>ba</strike></i><strike>z</strike>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo</strike>b<i>ar<strike>ba</strike></i><strike>z</strike>" but got "<strike>foo</strike>b<i style=\\"\\">ar<strike>ba</strike></i><strike>z</strike>"
 [PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["strikethrough",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" queryCommandValue("stylewithcss") before
@@ -162,7 +162,7 @@
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<ins>[bar]</ins>baz": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<ins>[bar]</ins>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<ins>[bar]</ins>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<ins style=\"text-decoration:underline line-through\">bar</ins>baz" but got "foo<ins style=\"text-decoration-line:line-through\">bar</ins>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<ins style=\\"text-decoration:underline line-through\\">bar</ins>baz" but got "foo<ins style=\\"text-decoration-line:line-through\\">bar</ins>baz"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<ins>[bar]</ins>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<ins>[bar]</ins>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<ins>[bar]</ins>baz" queryCommandValue("stylewithcss") before
@@ -199,7 +199,7 @@
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[bar]baz</ins>": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[bar]baz</ins>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[bar]baz</ins>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo<span style=\"text-decoration:line-through\">bar</span>baz</ins>" but got "<ins>foo<span style=\"text-decoration-line:line-through\">bar</span>baz</ins>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo<span style=\\"text-decoration:line-through\\">bar</span>baz</ins>" but got "<ins>foo<span style=\\"text-decoration-line:line-through\\">bar</span>baz</ins>"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[bar]baz</ins>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[bar]baz</ins>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[bar]baz</ins>" queryCommandValue("stylewithcss") before
@@ -232,122 +232,122 @@
 [PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[bar]baz</ins>" queryCommandState("strikethrough") after
 [FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[bar]baz</ins>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo<span style=\"text-decoration:line-through\">b</span><span style=\"color:rgb(0, 0, 255)\"><span style=\"text-decoration:line-through\">ar</span>ba</span>z</ins>" but got "<ins>foo<span style=\"text-decoration-line:line-through\">b</span><span style=\"color:rgb(0, 0, 255)\"><span style=\"text-decoration-line:line-through\">ar</span>ba</span>z</ins>"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo<span style=\\"text-decoration:line-through\\">b</span><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"text-decoration:line-through\\">ar</span>ba</span>z</ins>" but got "<ins>foo<span style=\\"text-decoration-line:line-through\\">b</span><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"text-decoration-line:line-through\\">ar</span>ba</span>z</ins>"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo<span style=\"text-decoration:line-through\">b</span><span style=\"color:rgb(0, 0, 255)\" id=\"foo\"><span style=\"text-decoration:line-through\">ar</span>ba</span>z</ins>" but got "<ins>foo<span style=\"text-decoration-line:line-through\">b</span><span style=\"color:rgb(0, 0, 255)\" id=\"foo\"><span style=\"text-decoration-line:line-through\">ar</span>ba</span>z</ins>"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo<span style=\\"text-decoration:line-through\\">b</span><span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\"><span style=\\"text-decoration:line-through\\">ar</span>ba</span>z</ins>" but got "<ins>foo<span style=\\"text-decoration-line:line-through\\">b</span><span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\"><span style=\\"text-decoration-line:line-through\\">ar</span>ba</span>z</ins>"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo<span style=\"text-decoration:line-through\">b</span><span style=\"font-size:3em\"><span style=\"text-decoration:line-through\">ar</span>ba</span>z</ins>" but got "<ins>foo<span style=\"text-decoration-line:line-through\">b</span><span style=\"font-size:3em\"><span style=\"text-decoration-line:line-through\">ar</span>ba</span>z</ins>"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo<span style=\\"text-decoration:line-through\\">b</span><span style=\\"font-size:3em\\"><span style=\\"text-decoration:line-through\\">ar</span>ba</span>z</ins>" but got "<ins>foo<span style=\\"text-decoration-line:line-through\\">b</span><span style=\\"font-size:3em\\"><span style=\\"text-decoration-line:line-through\\">ar</span>ba</span>z</ins>"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<i>ar]ba</i>z</ins>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<i>ar]ba</i>z</ins>": execCommand("strikethrough", false, "") return value
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<i>ar]ba</i>z</ins>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<i>ar]ba</i>z</ins>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo<span style=\"text-decoration:line-through\">b</span><i><span style=\"text-decoration:line-through\">ar</span>ba</i>z</ins>" but got "<ins>foo<span style=\"text-decoration-line:line-through\">b</span><i><span style=\"text-decoration-line:line-through\">ar</span>ba</i>z</ins>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo<span style=\\"text-decoration:line-through\\">b</span><i><span style=\\"text-decoration:line-through\\">ar</span>ba</i>z</ins>" but got "<ins>foo<span style=\\"text-decoration-line:line-through\\">b</span><i><span style=\\"text-decoration-line:line-through\\">ar</span>ba</i>z</ins>"
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<i>ar]ba</i>z</ins>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<i>ar]ba</i>z</ins>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["strikethrough",""]] "<ins>foo[b<i>ar]ba</i>z</ins>" queryCommandValue("stylewithcss") before
@@ -402,38 +402,38 @@
 [PASS] [["strikethrough",""]] "<del>foo[bar]baz</del>" queryCommandState("strikethrough") after
 [FAIL] [["strikethrough",""]] "<del>foo[bar]baz</del>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>": execCommand("strikethrough", false, "") return value
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" checks for modifications to non-editable content
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" compare innerHTML
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") before
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandState("strikethrough") before
-[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandValue("strikethrough") before
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>": execCommand("strikethrough", false, "") return value
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" checks for modifications to non-editable content
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" compare innerHTML
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") before
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandState("strikethrough") before
+[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") after
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandState("strikethrough") after
-[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandValue("strikethrough") after
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") after
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandState("strikethrough") after
+[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>": execCommand("strikethrough", false, "") return value
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" checks for modifications to non-editable content
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" compare innerHTML
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") before
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandState("strikethrough") before
-[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandValue("strikethrough") before
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>": execCommand("strikethrough", false, "") return value
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" checks for modifications to non-editable content
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" compare innerHTML
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") before
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandState("strikethrough") before
+[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") after
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandState("strikethrough") after
-[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandValue("strikethrough") after
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") after
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandState("strikethrough") after
+[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>": execCommand("strikethrough", false, "") return value
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" checks for modifications to non-editable content
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" compare innerHTML
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") before
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandState("strikethrough") before
-[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandValue("strikethrough") before
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>": execCommand("strikethrough", false, "") return value
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" checks for modifications to non-editable content
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" compare innerHTML
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") before
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandState("strikethrough") before
+[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") after
-[PASS] [["strikethrough",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandState("strikethrough") after
-[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandValue("strikethrough") after
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandIndeterm("strikethrough") after
+[PASS] [["strikethrough",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandState("strikethrough") after
+[FAIL] [["strikethrough",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["strikethrough",""]] "<del>foo[b<i>ar]ba</i>z</del>": execCommand("strikethrough", false, "") return value
 [PASS] [["strikethrough",""]] "<del>foo[b<i>ar]ba</i>z</del>" checks for modifications to non-editable content
@@ -446,543 +446,543 @@
 [PASS] [["strikethrough",""]] "<del>foo[b<i>ar]ba</i>z</del>" queryCommandState("strikethrough") after
 [FAIL] [["strikethrough",""]] "<del>foo[b<i>ar]ba</i>z</del>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" checks for modifications to non-editable content
-[FAIL] [["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline\">bar</span>baz" but got "foo<u>bar</u>baz"
-[PASS] [["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" checks for modifications to non-editable content
+[FAIL] [["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline\\">bar</span>baz" but got "foo<u>bar</u>baz"
+[PASS] [["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline\"><span style=\"text-decoration:line-through\">b</span>a<span style=\"text-decoration:line-through\">r</span></span>baz" but got "foo<span style=\"text-decoration:underline line-through\">b</span><span style=\"text-decoration-line:underline\">a</span><span style=\"text-decoration:underline line-through\">r</span>baz"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline\\"><span style=\\"text-decoration:line-through\\">b</span>a<span style=\\"text-decoration:line-through\\">r</span></span>baz" but got "foo<span style=\\"text-decoration:underline line-through\\">b</span><span style=\\"text-decoration-line:underline\\">a</span><span style=\\"text-decoration:underline line-through\\">r</span>baz"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline\"><strike>b</strike>a<strike>r</strike></span>baz" but got "foo<span style=\"text-decoration:underline line-through\">b</span><u>a</u><span style=\"text-decoration:underline line-through\">r</span>baz"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline\\"><strike>b</strike>a<strike>r</strike></span>baz" but got "foo<span style=\\"text-decoration:underline line-through\\">b</span><u>a</u><span style=\\"text-decoration:underline line-through\\">r</span>baz"
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:line-through\">b</span>a<span style=\"text-decoration:line-through\">r</span>baz" but got "foo<u style=\"text-decoration:line-through\">b</u>a<u style=\"text-decoration:line-through\">r</u>baz"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:line-through\\">b</span>a<span style=\\"text-decoration:line-through\\">r</span>baz" but got "foo<u style=\\"text-decoration:line-through\\">b</u>a<u style=\\"text-decoration:line-through\\">r</u>baz"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<strike>b</strike>a<strike>r</strike>baz" but got "foo<u style=\"text-decoration:line-through\">b</u>a<u style=\"text-decoration:line-through\">r</u>baz"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<strike>b</strike>a<strike>r</strike>baz" but got "foo<u style=\\"text-decoration:line-through\\">b</u>a<u style=\\"text-decoration:line-through\\">r</u>baz"
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:overline line-through\">bar</span>baz" but got "foo<span style=\"text-decoration-line:overline line-through\">bar</span>baz"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:overline line-through\\">bar</span>baz" but got "foo<span style=\\"text-decoration-line:overline line-through\\">bar</span>baz"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<strike><u style=\"text-decoration:overline\">bar</u></strike>baz" but got "foo<span style=\"text-decoration-line:overline\"><strike>bar</strike></span>baz"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<strike><u style=\\"text-decoration:overline\\">bar</u></strike>baz" but got "foo<span style=\\"text-decoration-line:overline\\"><strike>bar</strike></span>baz"
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\"text-decoration:overline\">b<span style=\"text-decoration:line-through\">a</span>r</u>baz" but got "foo<u style=\"text-decoration:overline\">b</u><span style=\"text-decoration-line:overline line-through\">a</span><u style=\"text-decoration:overline\">r</u>baz"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\\"text-decoration:overline\\">b<span style=\\"text-decoration:line-through\\">a</span>r</u>baz" but got "foo<u style=\\"text-decoration:overline\\">b</u><span style=\\"text-decoration-line:overline line-through\\">a</span><u style=\\"text-decoration:overline\\">r</u>baz"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\"text-decoration:overline\">b<strike>a</strike>r</u>baz" but got "foo<u style=\"text-decoration:overline\">b</u><span style=\"text-decoration-line:overline\"><strike>a</strike></span><u style=\"text-decoration:overline\">r</u>baz"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\\"text-decoration:overline\\">b<strike>a</strike>r</u>baz" but got "foo<u style=\\"text-decoration:overline\\">b</u><span style=\\"text-decoration-line:overline\\"><strike>a</strike></span><u style=\\"text-decoration:overline\\">r</u>baz"
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\"text-decoration:line-through\">foo</span>bar<span style=\"text-decoration:line-through\">baz</span></p>" but got "<p style=\"\"><span style=\"text-decoration-line:line-through\">foo</span>bar<span style=\"text-decoration-line:line-through\">baz</span></p>"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><span style=\\"text-decoration:line-through\\">foo</span>bar<span style=\\"text-decoration:line-through\\">baz</span></p>" but got "<p style=\\"\\"><span style=\\"text-decoration-line:line-through\\">foo</span>bar<span style=\\"text-decoration-line:line-through\\">baz</span></p>"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><strike>foo</strike>bar<strike>baz</strike></p>" but got "<p style=\"\"><span style=\"text-decoration-line:line-through\">foo</span>bar<strike>baz</strike></p>"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><strike>foo</strike>bar<strike>baz</strike></p>" but got "<p style=\\"\\"><span style=\\"text-decoration-line:line-through\\">foo</span>bar<strike>baz</strike></p>"
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: line-through\">foo[bar]baz</p>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: line-through\\">foo[bar]baz</p>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"text-decoration:overline\">foo<span style=\"text-decoration:line-through\">bar</span>baz</p>" but got "<p style=\"\"><span style=\"text-decoration-line:overline\">foo</span><span style=\"text-decoration-line:overline line-through\">bar</span><span style=\"text-decoration-line:overline\">baz</span></p>"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"text-decoration:overline\\">foo<span style=\\"text-decoration:line-through\\">bar</span>baz</p>" but got "<p style=\\"\\"><span style=\\"text-decoration-line:overline\\">foo</span><span style=\\"text-decoration-line:overline line-through\\">bar</span><span style=\\"text-decoration-line:overline\\">baz</span></p>"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"text-decoration:overline\">foo<strike>bar</strike>baz</p>" but got "<p style=\"\"><span style=\"text-decoration-line:overline\">foo<strike>bar</strike>baz</span></p>"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"text-decoration:overline\\">foo<strike>bar</strike>baz</p>" but got "<p style=\\"\\"><span style=\\"text-decoration-line:overline\\">foo<strike>bar</strike>baz</span></p>"
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span class=\"underline\" style=\"text-decoration:line-through\">bar</span>baz" but got "foo<span class=\"underline\" style=\"text-decoration-line:line-through\">bar</span>baz"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span class=\\"underline\\" style=\\"text-decoration:line-through\\">bar</span>baz" but got "foo<span class=\\"underline\\" style=\\"text-decoration-line:line-through\\">bar</span>baz"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span class=\"underline\">b<span style=\"text-decoration:line-through\">a</span>r</span>baz" but got "foo<span class=\"underline\">b<span style=\"text-decoration-line:line-through\">a</span>r</span>baz"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span class=\\"underline\\">b<span style=\\"text-decoration:line-through\\">a</span>r</span>baz" but got "foo<span class=\\"underline\\">b<span style=\\"text-decoration-line:line-through\\">a</span>r</span>baz"
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","true"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["stylewithcss","false"],["strikethrough",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">[bar]</span>baz" compare innerHTML
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["strikethrough",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" compare innerHTML
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["strikethrough",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["strikethrough",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["strikethrough",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">b[a]r</span>baz" checks for modifications to non-editable content
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">b[a]r</span>baz" compare innerHTML
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["strikethrough",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" checks for modifications to non-editable content
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" compare innerHTML
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["strikethrough",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["strikethrough",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["strikethrough",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["strikethrough",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["strikethrough",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" compare innerHTML
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" compare innerHTML
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" checks for modifications to non-editable content
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" compare innerHTML
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandState("strikethrough") before
-[FAIL] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandValue("strikethrough") before
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz": execCommand("strikethrough", false, "") return value
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" checks for modifications to non-editable content
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" compare innerHTML
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") before
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandState("strikethrough") before
+[FAIL] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandValue("strikethrough") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
-[PASS] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandState("strikethrough") after
-[FAIL] [["strikethrough",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandValue("strikethrough") after
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandIndeterm("strikethrough") after
+[PASS] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandState("strikethrough") after
+[FAIL] [["strikethrough",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["strikethrough",""]] "fo[o<s>b]ar</s>baz": execCommand("strikethrough", false, "") return value
 [PASS] [["strikethrough",""]] "fo[o<s>b]ar</s>baz" checks for modifications to non-editable content
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/strikethrough_2001-last-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/strikethrough_2001-last-expected.txt
index 7aaf0236..c4bdf76 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/strikethrough_2001-last-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/strikethrough_2001-last-expected.txt
@@ -61,7 +61,7 @@
 [PASS] [["strikethrough",""]] "fo[o<span style=text-decoration:line-through>b]ar</span>baz": execCommand("strikethrough", false, "") return value
 [PASS] [["strikethrough",""]] "fo[o<span style=text-decoration:line-through>b]ar</span>baz" checks for modifications to non-editable content
 [FAIL] [["strikethrough",""]] "fo[o<span style=text-decoration:line-through>b]ar</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<strike>o</strike><s>bar</s>baz" but got "fo<strike>ob</strike><span style=\"text-decoration:line-through\">ar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<strike>o</strike><s>bar</s>baz" but got "fo<strike>ob</strike><span style=\\"text-decoration:line-through\\">ar</span>baz"
 [PASS] [["strikethrough",""]] "fo[o<span style=text-decoration:line-through>b]ar</span>baz" queryCommandIndeterm("strikethrough") before
 [PASS] [["strikethrough",""]] "fo[o<span style=text-decoration:line-through>b]ar</span>baz" queryCommandState("strikethrough") before
 [FAIL] [["strikethrough",""]] "fo[o<span style=text-decoration:line-through>b]ar</span>baz" queryCommandValue("strikethrough") before
@@ -142,25 +142,25 @@
 [PASS] [["stylewithcss","false"],["strikethrough",""]] "<s>fo[o</s><del>b]ar</del>" queryCommandState("strikethrough") after
 [FAIL] [["stylewithcss","false"],["strikethrough",""]] "<s>fo[o</s><del>b]ar</del>" queryCommandValue("strikethrough") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:line-through overline underline\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:line-through overline underline\">[def]</span>ghi": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:line-through overline underline\">[def]</span>ghi" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:line-through overline underline\">[def]</span>ghi" compare innerHTML
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:blink overline underline\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:blink overline underline\">[def]</span>ghi": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:blink overline underline\">[def]</span>ghi" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:blink overline underline\">[def]</span>ghi" compare innerHTML
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:underline blue dotted\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:underline blue dotted\">[def]</span>ghi": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:underline blue dotted\">[def]</span>ghi" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:underline blue dotted\">[def]</span>ghi" compare innerHTML
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:blink line-through underline overline\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:blink line-through underline overline\">[def]</span>ghi": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:blink line-through underline overline\">[def]</span>ghi" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:blink line-through underline overline\">[def]</span>ghi" compare innerHTML
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:underline line-through blue dotted\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:underline line-through blue dotted\">[def]</span>ghi": execCommand("strikethrough", false, "") return value
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:underline line-through blue dotted\">[def]</span>ghi" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\"text-decoration:underline line-through blue dotted\">[def]</span>ghi" compare innerHTML
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:line-through overline underline\\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:line-through overline underline\\">[def]</span>ghi": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:line-through overline underline\\">[def]</span>ghi" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:line-through overline underline\\">[def]</span>ghi" compare innerHTML
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:blink overline underline\\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:blink overline underline\\">[def]</span>ghi": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:blink overline underline\\">[def]</span>ghi" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:blink overline underline\\">[def]</span>ghi" compare innerHTML
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:underline blue dotted\\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:underline blue dotted\\">[def]</span>ghi": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:underline blue dotted\\">[def]</span>ghi" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:underline blue dotted\\">[def]</span>ghi" compare innerHTML
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:blink line-through underline overline\\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:blink line-through underline overline\\">[def]</span>ghi": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:blink line-through underline overline\\">[def]</span>ghi" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:blink line-through underline overline\\">[def]</span>ghi" compare innerHTML
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:underline line-through blue dotted\\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:underline line-through blue dotted\\">[def]</span>ghi": execCommand("strikethrough", false, "") return value
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:underline line-through blue dotted\\">[def]</span>ghi" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["strikethrough",""]] "abc<span style=\\"text-decoration:underline line-through blue dotted\\">[def]</span>ghi" compare innerHTML
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/subscript-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/subscript-expected.txt
index e0dbc7a..33778ef 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/subscript-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/subscript-expected.txt
@@ -15,7 +15,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo</p> <p>bar]</p>": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo</p> <p>bar]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<p>[foo</p> <p>bar]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sub>foo</sub></p> <p><sub>bar</sub></p>" but got "<p><span style=\"vertical-align:sub\">foo</span></p> <p><span style=\"vertical-align:sub\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sub>foo</sub></p> <p><sub>bar</sub></p>" but got "<p><span style=\\"vertical-align:sub\\">foo</span></p> <p><span style=\\"vertical-align:sub\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo</p> <p>bar]</p>" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<p>[foo</p> <p>bar]</p>" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -53,7 +53,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "<span>[foo</span> <span>bar]</span>": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "<span>[foo</span> <span>bar]</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<span>[foo</span> <span>bar]</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sub><span>foo</span> <span>bar</span></sub>" but got "<span style=\"vertical-align:sub\"><span>foo</span> <span>bar</span></span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sub><span>foo</span> <span>bar</span></sub>" but got "<span style=\\"vertical-align:sub\\"><span>foo</span> <span>bar</span></span>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "<span>[foo</span> <span>bar]</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<span>[foo</span> <span>bar]</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<span>[foo</span> <span>bar]</span>" queryCommandValue("stylewithcss") before
@@ -90,7 +90,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sub>foo</sub></p><p> <sub><span>bar</span></sub> </p><p><sub>baz</sub></p>" but got "<p><span style=\"vertical-align:sub\">foo</span></p><p> <span style=\"vertical-align:sub\"><span>bar</span> </span></p><p><span style=\"vertical-align:sub\">baz</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sub>foo</sub></p><p> <sub><span>bar</span></sub> </p><p><sub>baz</sub></p>" but got "<p><span style=\\"vertical-align:sub\\">foo</span></p><p> <span style=\\"vertical-align:sub\\"><span>bar</span> </span></p><p><span style=\\"vertical-align:sub\\">baz</span></p>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandValue("stylewithcss") before
@@ -128,7 +128,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo<p><br><p>bar]": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo<p><br><p>bar]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<p>[foo<p><br><p>bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sub>foo</sub></p><p><sub><br></sub></p><p><sub>bar</sub></p>" but got "<p><span style=\"vertical-align:sub\">foo</span></p><p><span style=\"vertical-align:sub\"><br></span></p><p><span style=\"vertical-align:sub\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sub>foo</sub></p><p><sub><br></sub></p><p><sub>bar</sub></p>" but got "<p><span style=\\"vertical-align:sub\\">foo</span></p><p><span style=\\"vertical-align:sub\\"><br></span></p><p><span style=\\"vertical-align:sub\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo<p><br><p>bar]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo<p><br><p>bar]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<p>[foo<p><br><p>bar]" queryCommandValue("stylewithcss") before
@@ -209,7 +209,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar]baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar]baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo[bar]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<span style=\"vertical-align:sub\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<span style=\\"vertical-align:sub\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar]baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar]baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar]baz" queryCommandValue("stylewithcss") before
@@ -246,7 +246,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar<b>baz]qoz</b>quz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar<b>baz]qoz</b>quz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo[bar<b>baz]qoz</b>quz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub><b><sub>baz</sub>qoz</b>quz" but got "foo<span style=\"vertical-align:sub\">bar</span><b><span style=\"vertical-align:sub\">baz</span>qoz</b>quz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub><b><sub>baz</sub>qoz</b>quz" but got "foo<span style=\\"vertical-align:sub\\">bar</span><b><span style=\\"vertical-align:sub\\">baz</span>qoz</b>quz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar<b>baz]qoz</b>quz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar<b>baz]qoz</b>quz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar<b>baz]qoz</b>quz" queryCommandValue("stylewithcss") before
@@ -283,7 +283,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar<i>baz]qoz</i>quz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar<i>baz]qoz</i>quz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo[bar<i>baz]qoz</i>quz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub><i><sub>baz</sub>qoz</i>quz" but got "foo<span style=\"vertical-align:sub\">bar</span><i><span style=\"vertical-align:sub\">baz</span>qoz</i>quz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub><i><sub>baz</sub>qoz</i>quz" but got "foo<span style=\\"vertical-align:sub\\">bar</span><i><span style=\\"vertical-align:sub\\">baz</span>qoz</i>quz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar<i>baz]qoz</i>quz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar<i>baz]qoz</i>quz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo[bar<i>baz]qoz</i>quz" queryCommandValue("stylewithcss") before
@@ -320,7 +320,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "{<p><p> <p>foo</p>}": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "{<p><p> <p>foo</p>}" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "{<p><p> <p>foo</p>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p></p><p> </p><p><sub>foo</sub></p>" but got "<p></p><p> </p><p><span style=\"vertical-align:sub\">foo</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p></p><p> </p><p><sub>foo</sub></p>" but got "<p></p><p> </p><p><span style=\\"vertical-align:sub\\">foo</span></p>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "{<p><p> <p>foo</p>}" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "{<p><p> <p>foo</p>}" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "{<p><p> <p>foo</p>}" queryCommandValue("stylewithcss") before
@@ -357,7 +357,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>b<sub>a</sub>r</td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td>b<span style=\"vertical-align:sub\">a</span>r</td><td>baz</td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>b<sub>a</sub>r</td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td>b<span style=\\"vertical-align:sub\\">a</span>r</td><td>baz</td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -394,7 +394,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><sub>bar</sub></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td><span style=\"vertical-align:sub\">bar</span></td><td>baz</td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><sub>bar</sub></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td><span style=\\"vertical-align:sub\\">bar</span></td><td>baz</td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -431,7 +431,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sub>foo</sub></td><td><sub>bar</sub></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"vertical-align:sub\">foo</span></td><td><span style=\"vertical-align:sub\">bar</span></td><td>baz</td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sub>foo</sub></td><td><sub>bar</sub></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"vertical-align:sub\\">foo</span></td><td><span style=\\"vertical-align:sub\\">bar</span></td><td>baz</td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -468,7 +468,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sub>foo</sub></td><td><sub>bar</sub></td><td><sub>baz</sub></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"vertical-align:sub\">foo</span></td><td><span style=\"vertical-align:sub\">bar</span></td><td><span style=\"vertical-align:sub\">baz</span></td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sub>foo</sub></td><td><sub>bar</sub></td><td><sub>baz</sub></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"vertical-align:sub\\">foo</span></td><td><span style=\\"vertical-align:sub\\">bar</span></td><td><span style=\\"vertical-align:sub\\">baz</span></td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -505,7 +505,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sub>foo</sub></td><td><sub>bar</sub></td><td><sub>baz</sub></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"vertical-align:sub\">foo</span></td><td><span style=\"vertical-align:sub\">bar</span></td><td><span style=\"vertical-align:sub\">baz</span></td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sub>foo</sub></td><td><sub>bar</sub></td><td><sub>baz</sub></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"vertical-align:sub\\">foo</span></td><td><span style=\\"vertical-align:sub\\">bar</span></td><td><span style=\\"vertical-align:sub\\">baz</span></td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -544,7 +544,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sub>foo</sub></td><td><sub>bar</sub></td><td><sub>baz</sub></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"vertical-align:sub\">foo</span></td><td><span style=\"vertical-align:sub\">bar</span></td><td><span style=\"vertical-align:sub\">baz</span></td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sub>foo</sub></td><td><sub>bar</sub></td><td><sub>baz</sub></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"vertical-align:sub\\">foo</span></td><td><span style=\\"vertical-align:sub\\">bar</span></td><td><span style=\\"vertical-align:sub\\">baz</span></td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandValue("stylewithcss") before
@@ -619,7 +619,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>[bar]</sup>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>[bar]</sup>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo<sup>[bar]</sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<span style=\"vertical-align:sub\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<span style=\\"vertical-align:sub\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>[bar]</sup>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>[bar]</sup>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>[bar]</sup>baz" queryCommandValue("stylewithcss") before
@@ -656,7 +656,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b[a]r</sup>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b[a]r</sup>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo<sup>b[a]r</sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<sup>b</sup><span style=\"vertical-align:sub\">a</span><sup>r</sup>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<sup>b</sup><span style=\\"vertical-align:sub\\">a</span><sup>r</sup>baz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b[a]r</sup>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b[a]r</sup>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b[a]r</sup>baz" queryCommandValue("stylewithcss") before
@@ -735,7 +735,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:super>[bar]</span>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:super>[bar]</span>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:super>[bar]</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<span style=\"vertical-align:sub\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<span style=\\"vertical-align:sub\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:super>[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:super>[bar]</span>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:super>[bar]</span>baz" queryCommandValue("stylewithcss") before
@@ -807,7 +807,7 @@
 [PASS] [["subscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz": execCommand("subscript", false, "") return value
 [PASS] [["subscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" checks for modifications to non-editable content
 [FAIL] [["subscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub>a<sub>r</sub>baz" but got "foo<sub style=\"vertical-align:sub\">b</sub>a<sub style=\"vertical-align:sub\">r</sub>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub>a<sub>r</sub>baz" but got "foo<sub style=\\"vertical-align:sub\\">b</sub>a<sub style=\\"vertical-align:sub\\">r</sub>baz"
 [PASS] [["subscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" queryCommandIndeterm("subscript") before
 [PASS] [["subscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" queryCommandState("subscript") before
 [FAIL] [["subscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" queryCommandValue("subscript") before
@@ -819,7 +819,7 @@
 [PASS] [["subscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz": execCommand("subscript", false, "") return value
 [PASS] [["subscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" checks for modifications to non-editable content
 [FAIL] [["subscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub>a<sub>r</sub>baz" but got "foo<sub style=\"vertical-align:sub\">b</sub>a<sub>r</sub>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub>a<sub>r</sub>baz" but got "foo<sub style=\\"vertical-align:sub\\">b</sub>a<sub>r</sub>baz"
 [PASS] [["subscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" queryCommandIndeterm("subscript") before
 [PASS] [["subscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" queryCommandState("subscript") before
 [FAIL] [["subscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" queryCommandValue("subscript") before
@@ -832,7 +832,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>[bar]</sup></sup>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>[bar]</sup></sup>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>[bar]</sup></sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<span style=\"vertical-align:sub\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<span style=\\"vertical-align:sub\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>[bar]</sup></sup>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>[bar]</sup></sup>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>[bar]</sup></sup>baz" queryCommandValue("stylewithcss") before
@@ -869,7 +869,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<sup style=\"vertical-align:super\">b</sup><span style=\"vertical-align:sub\">a</span><sup style=\"vertical-align:super\">r</sup>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<sup style=\\"vertical-align:super\\">b</sup><span style=\\"vertical-align:sub\\">a</span><sup style=\\"vertical-align:super\\">r</sup>baz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" queryCommandValue("stylewithcss") before
@@ -888,7 +888,7 @@
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<sup style=\"vertical-align:super\">b</sup><sub>a</sub><sup style=\"vertical-align:super\">r</sup>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<sup style=\\"vertical-align:super\\">b</sup><sub>a</sub><sup style=\\"vertical-align:super\\">r</sup>baz"
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" queryCommandValue("stylewithcss") before
@@ -907,7 +907,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<span style=\"vertical-align:super\">b</span><span style=\"vertical-align:sub\">a</span><span style=\"vertical-align:super\">r</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<span style=\\"vertical-align:super\\">b</span><span style=\\"vertical-align:sub\\">a</span><span style=\\"vertical-align:super\\">r</span>baz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" queryCommandValue("stylewithcss") before
@@ -926,7 +926,7 @@
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<sup style=\"vertical-align:super\">b</sup><sub>a</sub><sup>r</sup>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<sup style=\\"vertical-align:super\\">b</sup><sub>a</sub><sup>r</sup>baz"
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" queryCommandValue("stylewithcss") before
@@ -1105,7 +1105,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<sub style=\"vertical-align:super\">b</sub>a<sub style=\"vertical-align:super\">r</sub>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<sub style=\\"vertical-align:super\\">b</sub>a<sub style=\\"vertical-align:super\\">r</sub>baz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz" queryCommandValue("stylewithcss") before
@@ -1127,7 +1127,7 @@
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<sub style=\"vertical-align:super\">b</sub>a<sub style=\"vertical-align:super\">r</sub>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<sub style=\\"vertical-align:super\\">b</sub>a<sub style=\\"vertical-align:super\\">r</sub>baz"
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["subscript",""]] "foo<sup><sub>b[a]r</sub></sup>baz" queryCommandValue("stylewithcss") before
@@ -1149,7 +1149,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sub>[a]</sub>r</sup>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sub>[a]</sub>r</sup>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sub>[a]</sub>r</sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<span style=\"vertical-align:super\">b</span>a<span style=\"vertical-align:super\">r</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup><sub>a</sub><sup>r</sup>baz" but got "foo<span style=\\"vertical-align:super\\">b</span>a<span style=\\"vertical-align:super\\">r</span>baz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sub>[a]</sub>r</sup>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sub>[a]</sub>r</sup>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<sup>b<sub>[a]</sub>r</sup>baz" queryCommandValue("stylewithcss") before
@@ -1367,7 +1367,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sub>foob</sub><span style=\"vertical-align:sub\">ar</span>" but got "<sub>fo</sub>ob<span style=\"vertical-align:sub\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sub>foob</sub><span style=\\"vertical-align:sub\\">ar</span>" but got "<sub>fo</sub>ob<span style=\\"vertical-align:sub\\">ar</span>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1389,7 +1389,7 @@
 [PASS] [["stylewithcss","false"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","false"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sub>foob</sub><span style=\"vertical-align:sub\">ar</span>" but got "<sub>fo</sub>ob<span style=\"vertical-align:sub\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sub>foob</sub><span style=\\"vertical-align:sub\\">ar</span>" but got "<sub>fo</sub>ob<span style=\\"vertical-align:sub\\">ar</span>"
 [PASS] [["stylewithcss","false"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:sub>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1411,7 +1411,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:top>b]ar</span>": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:top>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:top>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sub>foob</sub><span style=\"vertical-align:top\">ar</span>" but got "<sub>foo</sub><span style=\"vertical-align:sub\">b</span><span style=\"vertical-align:top\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sub>foob</sub><span style=\\"vertical-align:top\\">ar</span>" but got "<sub>foo</sub><span style=\\"vertical-align:sub\\">b</span><span style=\\"vertical-align:top\\">ar</span>"
 [PASS] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:top>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:top>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "<sub>fo[o</sub><span style=vertical-align:top>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1448,7 +1448,7 @@
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:top>[bar]</span>baz": execCommand("subscript", false, "") return value
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:top>[bar]</span>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:top>[bar]</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<span style=\"vertical-align:sub\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>bar</sub>baz" but got "foo<span style=\\"vertical-align:sub\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:top>[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:top>[bar]</span>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["subscript",""]] "foo<span style=vertical-align:top>[bar]</span>baz" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/superscript-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/superscript-expected.txt
index c01bd1ee..23fd0784 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/superscript-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/superscript-expected.txt
@@ -15,7 +15,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo</p> <p>bar]</p>": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo</p> <p>bar]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<p>[foo</p> <p>bar]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sup>foo</sup></p> <p><sup>bar</sup></p>" but got "<p><span style=\"vertical-align:super\">foo</span></p> <p><span style=\"vertical-align:super\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sup>foo</sup></p> <p><sup>bar</sup></p>" but got "<p><span style=\\"vertical-align:super\\">foo</span></p> <p><span style=\\"vertical-align:super\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo</p> <p>bar]</p>" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<p>[foo</p> <p>bar]</p>" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -53,7 +53,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "<span>[foo</span> <span>bar]</span>": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "<span>[foo</span> <span>bar]</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<span>[foo</span> <span>bar]</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sup><span>foo</span> <span>bar</span></sup>" but got "<span style=\"vertical-align:super\"><span>foo</span> <span>bar</span></span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sup><span>foo</span> <span>bar</span></sup>" but got "<span style=\\"vertical-align:super\\"><span>foo</span> <span>bar</span></span>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "<span>[foo</span> <span>bar]</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<span>[foo</span> <span>bar]</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<span>[foo</span> <span>bar]</span>" queryCommandValue("stylewithcss") before
@@ -90,7 +90,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sup>foo</sup></p><p> <sup><span>bar</span></sup> </p><p><sup>baz</sup></p>" but got "<p><span style=\"vertical-align:super\">foo</span></p><p> <span style=\"vertical-align:super\"><span>bar</span> </span></p><p><span style=\"vertical-align:super\">baz</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sup>foo</sup></p><p> <sup><span>bar</span></sup> </p><p><sup>baz</sup></p>" but got "<p><span style=\\"vertical-align:super\\">foo</span></p><p> <span style=\\"vertical-align:super\\"><span>bar</span> </span></p><p><span style=\\"vertical-align:super\\">baz</span></p>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo</p><p> <span>bar</span> </p><p>baz]</p>" queryCommandValue("stylewithcss") before
@@ -128,7 +128,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo<p><br><p>bar]": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo<p><br><p>bar]" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<p>[foo<p><br><p>bar]" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sup>foo</sup></p><p><sup><br></sup></p><p><sup>bar</sup></p>" but got "<p><span style=\"vertical-align:super\">foo</span></p><p><span style=\"vertical-align:super\"><br></span></p><p><span style=\"vertical-align:super\">bar</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p><sup>foo</sup></p><p><sup><br></sup></p><p><sup>bar</sup></p>" but got "<p><span style=\\"vertical-align:super\\">foo</span></p><p><span style=\\"vertical-align:super\\"><br></span></p><p><span style=\\"vertical-align:super\\">bar</span></p>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo<p><br><p>bar]" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo<p><br><p>bar]" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<p>[foo<p><br><p>bar]" queryCommandValue("stylewithcss") before
@@ -209,7 +209,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar]baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar]baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo[bar]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<span style=\"vertical-align:super\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<span style=\\"vertical-align:super\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar]baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar]baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar]baz" queryCommandValue("stylewithcss") before
@@ -246,7 +246,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar<b>baz]qoz</b>quz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar<b>baz]qoz</b>quz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo[bar<b>baz]qoz</b>quz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup><b><sup>baz</sup>qoz</b>quz" but got "foo<span style=\"vertical-align:super\">bar</span><b><span style=\"vertical-align:super\">baz</span>qoz</b>quz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup><b><sup>baz</sup>qoz</b>quz" but got "foo<span style=\\"vertical-align:super\\">bar</span><b><span style=\\"vertical-align:super\\">baz</span>qoz</b>quz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar<b>baz]qoz</b>quz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar<b>baz]qoz</b>quz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar<b>baz]qoz</b>quz" queryCommandValue("stylewithcss") before
@@ -283,7 +283,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar<i>baz]qoz</i>quz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar<i>baz]qoz</i>quz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo[bar<i>baz]qoz</i>quz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup><i><sup>baz</sup>qoz</i>quz" but got "foo<span style=\"vertical-align:super\">bar</span><i><span style=\"vertical-align:super\">baz</span>qoz</i>quz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup><i><sup>baz</sup>qoz</i>quz" but got "foo<span style=\\"vertical-align:super\\">bar</span><i><span style=\\"vertical-align:super\\">baz</span>qoz</i>quz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar<i>baz]qoz</i>quz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar<i>baz]qoz</i>quz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo[bar<i>baz]qoz</i>quz" queryCommandValue("stylewithcss") before
@@ -320,7 +320,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "{<p><p> <p>foo</p>}": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "{<p><p> <p>foo</p>}" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "{<p><p> <p>foo</p>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p></p><p> </p><p><sup>foo</sup></p>" but got "<p></p><p> </p><p><span style=\"vertical-align:super\">foo</span></p>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p></p><p> </p><p><sup>foo</sup></p>" but got "<p></p><p> </p><p><span style=\\"vertical-align:super\\">foo</span></p>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "{<p><p> <p>foo</p>}" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "{<p><p> <p>foo</p>}" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "{<p><p> <p>foo</p>}" queryCommandValue("stylewithcss") before
@@ -357,7 +357,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>b<sup>a</sup>r</td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td>b<span style=\"vertical-align:super\">a</span>r</td><td>baz</td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>b<sup>a</sup>r</td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td>b<span style=\\"vertical-align:super\\">a</span>r</td><td>baz</td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -394,7 +394,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><sup>bar</sup></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td><span style=\"vertical-align:super\">bar</span></td><td>baz</td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><sup>bar</sup></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td>foo</td><td><span style=\\"vertical-align:super\\">bar</span></td><td>baz</td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -431,7 +431,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sup>foo</sup></td><td><sup>bar</sup></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"vertical-align:super\">foo</span></td><td><span style=\"vertical-align:super\">bar</span></td><td>baz</td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sup>foo</sup></td><td><sup>bar</sup></td><td>baz</td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"vertical-align:super\\">foo</span></td><td><span style=\\"vertical-align:super\\">bar</span></td><td>baz</td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -468,7 +468,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sup>foo</sup></td><td><sup>bar</sup></td><td><sup>baz</sup></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"vertical-align:super\">foo</span></td><td><span style=\"vertical-align:super\">bar</span></td><td><span style=\"vertical-align:super\">baz</span></td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sup>foo</sup></td><td><sup>bar</sup></td><td><sup>baz</sup></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"vertical-align:super\\">foo</span></td><td><span style=\\"vertical-align:super\\">bar</span></td><td><span style=\\"vertical-align:super\\">baz</span></td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -505,7 +505,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sup>foo</sup></td><td><sup>bar</sup></td><td><sup>baz</sup></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"vertical-align:super\">foo</span></td><td><span style=\"vertical-align:super\">bar</span></td><td><span style=\"vertical-align:super\">baz</span></td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sup>foo</sup></td><td><sup>bar</sup></td><td><sup>baz</sup></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"vertical-align:super\\">foo</span></td><td><span style=\\"vertical-align:super\\">bar</span></td><td><span style=\\"vertical-align:super\\">baz</span></td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table>" queryCommandValue("stylewithcss") before
@@ -544,7 +544,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sup>foo</sup></td><td><sup>bar</sup></td><td><sup>baz</sup></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\"vertical-align:super\">foo</span></td><td><span style=\"vertical-align:super\">bar</span></td><td><span style=\"vertical-align:super\">baz</span></td></tr></tbody></table>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><sup>foo</sup></td><td><sup>bar</sup></td><td><sup>baz</sup></td></tr></tbody></table>" but got "<table><tbody><tr><td><span style=\\"vertical-align:super\\">foo</span></td><td><span style=\\"vertical-align:super\\">bar</span></td><td><span style=\\"vertical-align:super\\">baz</span></td></tr></tbody></table>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}" queryCommandValue("stylewithcss") before
@@ -583,7 +583,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>[bar]</sub>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>[bar]</sub>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo<sub>[bar]</sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<span style=\"vertical-align:super\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<span style=\\"vertical-align:super\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>[bar]</sub>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>[bar]</sub>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>[bar]</sub>baz" queryCommandValue("stylewithcss") before
@@ -620,7 +620,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b[a]r</sub>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b[a]r</sub>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo<sub>b[a]r</sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<sub>b</sub><span style=\"vertical-align:super\">a</span><sub>r</sub>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<sub>b</sub><span style=\\"vertical-align:super\\">a</span><sub>r</sub>baz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b[a]r</sub>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b[a]r</sub>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b[a]r</sub>baz" queryCommandValue("stylewithcss") before
@@ -693,7 +693,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:sub>[bar]</span>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:sub>[bar]</span>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:sub>[bar]</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<span style=\"vertical-align:super\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<span style=\\"vertical-align:super\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:sub>[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:sub>[bar]</span>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:sub>[bar]</span>baz" queryCommandValue("stylewithcss") before
@@ -772,7 +772,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>[bar]</sub></sub>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>[bar]</sub></sub>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>[bar]</sub></sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<span style=\"vertical-align:super\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<span style=\\"vertical-align:super\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>[bar]</sub></sub>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>[bar]</sub></sub>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>[bar]</sub></sub>baz" queryCommandValue("stylewithcss") before
@@ -809,7 +809,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<sub style=\"vertical-align:sub\">b</sub><span style=\"vertical-align:super\">a</span><sub style=\"vertical-align:sub\">r</sub>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<sub style=\\"vertical-align:sub\\">b</sub><span style=\\"vertical-align:super\\">a</span><sub style=\\"vertical-align:sub\\">r</sub>baz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" queryCommandValue("stylewithcss") before
@@ -828,7 +828,7 @@
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<sub style=\"vertical-align:sub\">b</sub><sup>a</sup><sub style=\"vertical-align:sub\">r</sub>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<sub style=\\"vertical-align:sub\\">b</sub><sup>a</sup><sub style=\\"vertical-align:sub\\">r</sub>baz"
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub><sub>b[a]r</sub></sub>baz" queryCommandValue("stylewithcss") before
@@ -847,7 +847,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<span style=\"vertical-align:sub\">b</span><span style=\"vertical-align:super\">a</span><span style=\"vertical-align:sub\">r</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<span style=\\"vertical-align:sub\\">b</span><span style=\\"vertical-align:super\\">a</span><span style=\\"vertical-align:sub\\">r</span>baz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" queryCommandValue("stylewithcss") before
@@ -866,7 +866,7 @@
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<sub style=\"vertical-align:sub\">b</sub><sup>a</sup><sub>r</sub>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<sub style=\\"vertical-align:sub\\">b</sub><sup>a</sup><sub>r</sub>baz"
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub>b<sub>[a]</sub>r</sub>baz" queryCommandValue("stylewithcss") before
@@ -920,7 +920,7 @@
 [PASS] [["superscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz": execCommand("superscript", false, "") return value
 [PASS] [["superscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" checks for modifications to non-editable content
 [FAIL] [["superscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup>a<sup>r</sup>baz" but got "foo<sup style=\"vertical-align:super\">b</sup>a<sup style=\"vertical-align:super\">r</sup>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup>a<sup>r</sup>baz" but got "foo<sup style=\\"vertical-align:super\\">b</sup>a<sup style=\\"vertical-align:super\\">r</sup>baz"
 [PASS] [["superscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" queryCommandIndeterm("superscript") before
 [PASS] [["superscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" queryCommandState("superscript") before
 [FAIL] [["superscript",""]] "foo<sup><sup>b[a]r</sup></sup>baz" queryCommandValue("superscript") before
@@ -932,7 +932,7 @@
 [PASS] [["superscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz": execCommand("superscript", false, "") return value
 [PASS] [["superscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" checks for modifications to non-editable content
 [FAIL] [["superscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup>a<sup>r</sup>baz" but got "foo<sup style=\"vertical-align:super\">b</sup>a<sup>r</sup>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>b</sup>a<sup>r</sup>baz" but got "foo<sup style=\\"vertical-align:super\\">b</sup>a<sup>r</sup>baz"
 [PASS] [["superscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" queryCommandIndeterm("superscript") before
 [PASS] [["superscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" queryCommandState("superscript") before
 [FAIL] [["superscript",""]] "foo<sup>b<sup>[a]</sup>r</sup>baz" queryCommandValue("superscript") before
@@ -989,7 +989,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<sup style=\"vertical-align:sub\">b</sup>a<sup style=\"vertical-align:sub\">r</sup>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<sup style=\\"vertical-align:sub\\">b</sup>a<sup style=\\"vertical-align:sub\\">r</sup>baz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz" queryCommandValue("stylewithcss") before
@@ -1011,7 +1011,7 @@
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<sup style=\"vertical-align:sub\">b</sup>a<sup style=\"vertical-align:sub\">r</sup>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<sup style=\\"vertical-align:sub\\">b</sup>a<sup style=\\"vertical-align:sub\\">r</sup>baz"
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["superscript",""]] "foo<sub><sup>b[a]r</sup></sub>baz" queryCommandValue("stylewithcss") before
@@ -1033,7 +1033,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sup>[a]</sup>r</sub>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sup>[a]</sup>r</sub>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sup>[a]</sup>r</sub>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<span style=\"vertical-align:sub\">b</span>a<span style=\"vertical-align:sub\">r</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>b</sub><sup>a</sup><sub>r</sub>baz" but got "foo<span style=\\"vertical-align:sub\\">b</span>a<span style=\\"vertical-align:sub\\">r</span>baz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sup>[a]</sup>r</sub>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sup>[a]</sup>r</sub>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<sub>b<sup>[a]</sup>r</sub>baz" queryCommandValue("stylewithcss") before
@@ -1367,7 +1367,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sup>foob</sup><span style=\"vertical-align:super\">ar</span>" but got "<sup>fo</sup>ob<span style=\"vertical-align:super\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sup>foob</sup><span style=\\"vertical-align:super\\">ar</span>" but got "<sup>fo</sup>ob<span style=\\"vertical-align:super\\">ar</span>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1389,7 +1389,7 @@
 [PASS] [["stylewithcss","false"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","false"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","false"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sup>foob</sup><span style=\"vertical-align:super\">ar</span>" but got "<sup>fo</sup>ob<span style=\"vertical-align:super\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sup>foob</sup><span style=\\"vertical-align:super\\">ar</span>" but got "<sup>fo</sup>ob<span style=\\"vertical-align:super\\">ar</span>"
 [PASS] [["stylewithcss","false"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","false"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","false"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:super>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1411,7 +1411,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:bottom>b]ar</span>": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:bottom>b]ar</span>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:bottom>b]ar</span>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sup>foob</sup><span style=\"vertical-align:bottom\">ar</span>" but got "<sup>foo</sup><span style=\"vertical-align:super\">b</span><span style=\"vertical-align:bottom\">ar</span>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<sup>foob</sup><span style=\\"vertical-align:bottom\\">ar</span>" but got "<sup>foo</sup><span style=\\"vertical-align:super\\">b</span><span style=\\"vertical-align:bottom\\">ar</span>"
 [PASS] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:bottom>b]ar</span>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:bottom>b]ar</span>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "<sup>fo[o</sup><span style=vertical-align:bottom>b]ar</span>" queryCommandValue("stylewithcss") before
@@ -1448,7 +1448,7 @@
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:bottom>[bar]</span>baz": execCommand("superscript", false, "") return value
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:bottom>[bar]</span>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:bottom>[bar]</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<span style=\"vertical-align:super\">bar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>bar</sup>baz" but got "foo<span style=\\"vertical-align:super\\">bar</span>baz"
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:bottom>[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:bottom>[bar]</span>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["superscript",""]] "foo<span style=vertical-align:bottom>[bar]</span>baz" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/underline_1001-2000-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/underline_1001-2000-expected.txt
index 82099b7..ce365df 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/underline_1001-2000-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/underline_1001-2000-expected.txt
@@ -12,7 +12,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[bar]baz</strike>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[bar]baz</strike>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[bar]baz</strike>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo<span style=\"text-decoration:underline\">bar</span>baz</strike>" but got "<strike>foo<span style=\"text-decoration-line:underline\">bar</span>baz</strike>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo<span style=\\"text-decoration:underline\\">bar</span>baz</strike>" but got "<strike>foo<span style=\\"text-decoration-line:underline\\">bar</span>baz</strike>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[bar]baz</strike>" queryCommandIndeterm("stylewithcss") before
 [FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[bar]baz</strike>" queryCommandState("stylewithcss") before
   assert_equals: Wrong result returned expected false but got true
@@ -46,122 +46,122 @@
 [PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[bar]baz</strike>" queryCommandState("underline") after
 [FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[bar]baz</strike>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo<span style=\"text-decoration:underline\">b</span><span style=\"color:rgb(0, 0, 255)\"><span style=\"text-decoration:underline\">ar</span>ba</span>z</strike>" but got "<strike>foo<span style=\"text-decoration-line:underline\">b</span><span style=\"color:rgb(0, 0, 255)\"><span style=\"text-decoration-line:underline\">ar</span>ba</span>z</strike>"
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo<span style=\\"text-decoration:underline\\">b</span><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"text-decoration:underline\\">ar</span>ba</span>z</strike>" but got "<strike>foo<span style=\\"text-decoration-line:underline\\">b</span><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"text-decoration-line:underline\\">ar</span>ba</span>z</strike>"
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\">ar]ba</span>z</strike>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\">ar]ba</span>z</strike>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo<span style=\"text-decoration:underline\">b</span><span style=\"color:rgb(0, 0, 255)\" id=\"foo\"><span style=\"text-decoration:underline\">ar</span>ba</span>z</strike>" but got "<strike>foo<span style=\"text-decoration-line:underline\">b</span><span style=\"color:rgb(0, 0, 255)\" id=\"foo\"><span style=\"text-decoration-line:underline\">ar</span>ba</span>z</strike>"
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo<span style=\\"text-decoration:underline\\">b</span><span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\"><span style=\\"text-decoration:underline\\">ar</span>ba</span>z</strike>" but got "<strike>foo<span style=\\"text-decoration-line:underline\\">b</span><span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\"><span style=\\"text-decoration-line:underline\\">ar</span>ba</span>z</strike>"
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</strike>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</strike>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo<span style=\"text-decoration:underline\">b</span><span style=\"font-size:3em\"><span style=\"text-decoration:underline\">ar</span>ba</span>z</strike>" but got "<strike>foo<span style=\"text-decoration-line:underline\">b</span><span style=\"font-size:3em\"><span style=\"text-decoration-line:underline\">ar</span>ba</span>z</strike>"
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo<span style=\\"text-decoration:underline\\">b</span><span style=\\"font-size:3em\\"><span style=\\"text-decoration:underline\\">ar</span>ba</span>z</strike>" but got "<strike>foo<span style=\\"text-decoration-line:underline\\">b</span><span style=\\"font-size:3em\\"><span style=\\"text-decoration-line:underline\\">ar</span>ba</span>z</strike>"
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\"font-size:3em\">ar]ba</span>z</strike>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "<strike>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</strike>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<i>ar]ba</i>z</strike>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<i>ar]ba</i>z</strike>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo<span style=\"text-decoration:underline\">b</span><i><span style=\"text-decoration:underline\">ar</span>ba</i>z</strike>" but got "<strike>foo<span style=\"text-decoration-line:underline\">b</span><i><span style=\"text-decoration-line:underline\">ar</span>ba</i>z</strike>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<strike>foo<span style=\\"text-decoration:underline\\">b</span><i><span style=\\"text-decoration:underline\\">ar</span>ba</i>z</strike>" but got "<strike>foo<span style=\\"text-decoration-line:underline\\">b</span><i><span style=\\"text-decoration-line:underline\\">ar</span>ba</i>z</strike>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<strike>foo[b<i>ar]ba</i>z</strike>" queryCommandValue("stylewithcss") before
@@ -216,38 +216,38 @@
 [PASS] [["underline",""]] "<ins>foo[bar]baz</ins>" queryCommandState("underline") after
 [FAIL] [["underline",""]] "<ins>foo[bar]baz</ins>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>": execCommand("underline", false, "") return value
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" checks for modifications to non-editable content
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" compare innerHTML
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandIndeterm("underline") before
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandState("underline") before
-[FAIL] [["underline",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandValue("underline") before
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>": execCommand("underline", false, "") return value
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" checks for modifications to non-editable content
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" compare innerHTML
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandIndeterm("underline") before
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandState("underline") before
+[FAIL] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandIndeterm("underline") after
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandState("underline") after
-[FAIL] [["underline",""]] "<ins>foo[b<span style=\"color:blue\">ar]ba</span>z</ins>" queryCommandValue("underline") after
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandIndeterm("underline") after
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandState("underline") after
+[FAIL] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\">ar]ba</span>z</ins>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>": execCommand("underline", false, "") return value
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" checks for modifications to non-editable content
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" compare innerHTML
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("underline") before
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandState("underline") before
-[FAIL] [["underline",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandValue("underline") before
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>": execCommand("underline", false, "") return value
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" checks for modifications to non-editable content
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" compare innerHTML
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("underline") before
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandState("underline") before
+[FAIL] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("underline") after
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandState("underline") after
-[FAIL] [["underline",""]] "<ins>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</ins>" queryCommandValue("underline") after
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandIndeterm("underline") after
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandState("underline") after
+[FAIL] [["underline",""]] "<ins>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</ins>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>": execCommand("underline", false, "") return value
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" checks for modifications to non-editable content
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" compare innerHTML
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandIndeterm("underline") before
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandState("underline") before
-[FAIL] [["underline",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandValue("underline") before
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>": execCommand("underline", false, "") return value
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" checks for modifications to non-editable content
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" compare innerHTML
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandIndeterm("underline") before
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandState("underline") before
+[FAIL] [["underline",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandIndeterm("underline") after
-[PASS] [["underline",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandState("underline") after
-[FAIL] [["underline",""]] "<ins>foo[b<span style=\"font-size:3em\">ar]ba</span>z</ins>" queryCommandValue("underline") after
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandIndeterm("underline") after
+[PASS] [["underline",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandState("underline") after
+[FAIL] [["underline",""]] "<ins>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</ins>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["underline",""]] "<ins>foo[b<i>ar]ba</i>z</ins>": execCommand("underline", false, "") return value
 [PASS] [["underline",""]] "<ins>foo[b<i>ar]ba</i>z</ins>" checks for modifications to non-editable content
@@ -264,7 +264,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<del>[bar]</del>baz": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<del>[bar]</del>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "foo<del>[bar]</del>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<del style=\"text-decoration:underline line-through\">bar</del>baz" but got "foo<del style=\"text-decoration-line:underline\">bar</del>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<del style=\\"text-decoration:underline line-through\\">bar</del>baz" but got "foo<del style=\\"text-decoration-line:underline\\">bar</del>baz"
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<del>[bar]</del>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<del>[bar]</del>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<del>[bar]</del>baz" queryCommandValue("stylewithcss") before
@@ -301,7 +301,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[bar]baz</del>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[bar]baz</del>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[bar]baz</del>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<del>foo<span style=\"text-decoration:underline\">bar</span>baz</del>" but got "<del>foo<span style=\"text-decoration-line:underline\">bar</span>baz</del>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<del>foo<span style=\\"text-decoration:underline\\">bar</span>baz</del>" but got "<del>foo<span style=\\"text-decoration-line:underline\\">bar</span>baz</del>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[bar]baz</del>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[bar]baz</del>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[bar]baz</del>" queryCommandValue("stylewithcss") before
@@ -334,122 +334,122 @@
 [PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[bar]baz</del>" queryCommandState("underline") after
 [FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[bar]baz</del>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<del>foo<span style=\"text-decoration:underline\">b</span><span style=\"color:rgb(0, 0, 255)\"><span style=\"text-decoration:underline\">ar</span>ba</span>z</del>" but got "<del>foo<span style=\"text-decoration-line:underline\">b</span><span style=\"color:rgb(0, 0, 255)\"><span style=\"text-decoration-line:underline\">ar</span>ba</span>z</del>"
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<del>foo<span style=\\"text-decoration:underline\\">b</span><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"text-decoration:underline\\">ar</span>ba</span>z</del>" but got "<del>foo<span style=\\"text-decoration-line:underline\\">b</span><span style=\\"color:rgb(0, 0, 255)\\"><span style=\\"text-decoration-line:underline\\">ar</span>ba</span>z</del>"
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\">ar]ba</span>z</del>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\">ar]ba</span>z</del>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<del>foo<span style=\"text-decoration:underline\">b</span><span style=\"color:rgb(0, 0, 255)\" id=\"foo\"><span style=\"text-decoration:underline\">ar</span>ba</span>z</del>" but got "<del>foo<span style=\"text-decoration-line:underline\">b</span><span style=\"color:rgb(0, 0, 255)\" id=\"foo\"><span style=\"text-decoration-line:underline\">ar</span>ba</span>z</del>"
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<del>foo<span style=\\"text-decoration:underline\\">b</span><span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\"><span style=\\"text-decoration:underline\\">ar</span>ba</span>z</del>" but got "<del>foo<span style=\\"text-decoration-line:underline\\">b</span><span style=\\"color:rgb(0, 0, 255)\\" id=\\"foo\\"><span style=\\"text-decoration-line:underline\\">ar</span>ba</span>z</del>"
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"color:blue\" id=foo>ar]ba</span>z</del>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"color:blue\\" id=foo>ar]ba</span>z</del>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<del>foo<span style=\"text-decoration:underline\">b</span><span style=\"font-size:3em\"><span style=\"text-decoration:underline\">ar</span>ba</span>z</del>" but got "<del>foo<span style=\"text-decoration-line:underline\">b</span><span style=\"font-size:3em\"><span style=\"text-decoration-line:underline\">ar</span>ba</span>z</del>"
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<del>foo<span style=\\"text-decoration:underline\\">b</span><span style=\\"font-size:3em\\"><span style=\\"text-decoration:underline\\">ar</span>ba</span>z</del>" but got "<del>foo<span style=\\"text-decoration-line:underline\\">b</span><span style=\\"font-size:3em\\"><span style=\\"text-decoration-line:underline\\">ar</span>ba</span>z</del>"
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\"font-size:3em\">ar]ba</span>z</del>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<span style=\\"font-size:3em\\">ar]ba</span>z</del>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<i>ar]ba</i>z</del>": execCommand("stylewithcss", false, "true") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<i>ar]ba</i>z</del>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<i>ar]ba</i>z</del>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<del>foo[b<i>ar]ba</i>z</del>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<del>foo<span style=\"text-decoration:underline\">b</span><i><span style=\"text-decoration:underline\">ar</span>ba</i>z</del>" but got "<del>foo<span style=\"text-decoration-line:underline\">b</span><i><span style=\"text-decoration-line:underline\">ar</span>ba</i>z</del>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<del>foo<span style=\\"text-decoration:underline\\">b</span><i><span style=\\"text-decoration:underline\\">ar</span>ba</i>z</del>" but got "<del>foo<span style=\\"text-decoration-line:underline\\">b</span><i><span style=\\"text-decoration-line:underline\\">ar</span>ba</i>z</del>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<i>ar]ba</i>z</del>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<i>ar]ba</i>z</del>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<del>foo[b<i>ar]ba</i>z</del>" queryCommandValue("stylewithcss") before
@@ -482,513 +482,513 @@
 [PASS] [["stylewithcss","false"],["underline",""]] "<del>foo[b<i>ar]ba</i>z</del>" queryCommandState("underline") after
 [FAIL] [["stylewithcss","false"],["underline",""]] "<del>foo[b<i>ar]ba</i>z</del>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz": execCommand("underline", false, "") return value
-[PASS] [["underline",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" checks for modifications to non-editable content
-[FAIL] [["underline",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:line-through\">bar</span>baz" but got "foo<strike>bar</strike>baz"
-[PASS] [["underline",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["underline",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandState("underline") before
-[FAIL] [["underline",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandValue("underline") before
+[PASS] [["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz": execCommand("underline", false, "") return value
+[PASS] [["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" checks for modifications to non-editable content
+[FAIL] [["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:line-through\\">bar</span>baz" but got "foo<strike>bar</strike>baz"
+[PASS] [["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandState("underline") before
+[FAIL] [["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["underline",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandState("underline") after
-[FAIL] [["underline",""]] "foo<span style=\"text-decoration: underline line-through\">[bar]</span>baz" queryCommandValue("underline") after
+[PASS] [["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandState("underline") after
+[FAIL] [["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">[bar]</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:line-through\"><span style=\"text-decoration:underline\">b</span>a<span style=\"text-decoration:underline\">r</span></span>baz" but got "foo<span style=\"text-decoration:underline line-through\">b</span><span style=\"text-decoration-line:line-through\">a</span><span style=\"text-decoration:underline line-through\">r</span>baz"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:line-through\\"><span style=\\"text-decoration:underline\\">b</span>a<span style=\\"text-decoration:underline\\">r</span></span>baz" but got "foo<span style=\\"text-decoration:underline line-through\\">b</span><span style=\\"text-decoration-line:line-through\\">a</span><span style=\\"text-decoration:underline line-through\\">r</span>baz"
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:line-through\"><u>b</u>a<u>r</u></span>baz" but got "foo<span style=\"text-decoration:underline line-through\">b</span><strike>a</strike><span style=\"text-decoration:underline line-through\">r</span>baz"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:line-through\\"><u>b</u>a<u>r</u></span>baz" but got "foo<span style=\\"text-decoration:underline line-through\\">b</span><strike>a</strike><span style=\\"text-decoration:underline line-through\\">r</span>baz"
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span style=\"text-decoration: underline line-through\">b[a]r</span>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span style=\\"text-decoration: underline line-through\\">b[a]r</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" compare innerHTML
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" compare innerHTML
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">[bar]</s>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">[bar]</s>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline\">b</span>a<span style=\"text-decoration:underline\">r</span>baz" but got "foo<s style=\"text-decoration:underline\">b</s>a<s style=\"text-decoration:underline\">r</s>baz"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline\\">b</span>a<span style=\\"text-decoration:underline\\">r</span>baz" but got "foo<s style=\\"text-decoration:underline\\">b</s>a<s style=\\"text-decoration:underline\\">r</s>baz"
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u>b</u>a<u>r</u>baz" but got "foo<s style=\"text-decoration:underline\">b</s>a<s style=\"text-decoration:underline\">r</s>baz"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u>b</u>a<u>r</u>baz" but got "foo<s style=\\"text-decoration:underline\\">b</s>a<s style=\\"text-decoration:underline\\">r</s>baz"
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: underline\">b[a]r</s>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: underline\\">b[a]r</s>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline\"><u style=\"text-decoration:line-through\">bar</u></span>baz" but got "foo<span style=\"text-decoration-line:underline line-through\">bar</span>baz"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline\\"><u style=\\"text-decoration:line-through\\">bar</u></span>baz" but got "foo<span style=\\"text-decoration-line:underline line-through\\">bar</span>baz"
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u><u style=\"text-decoration:line-through\">bar</u></u>baz" but got "foo<u><strike>bar</strike></u>baz"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u><u style=\\"text-decoration:line-through\\">bar</u></u>baz" but got "foo<u><strike>bar</strike></u>baz"
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">[bar]</u>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">[bar]</u>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\"text-decoration:line-through\">b<span style=\"text-decoration:underline\">a</span>r</u>baz" but got "foo<u style=\"text-decoration:line-through\">b</u><span style=\"text-decoration-line:underline line-through\">a</span><u style=\"text-decoration:line-through\">r</u>baz"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\\"text-decoration:line-through\\">b<span style=\\"text-decoration:underline\\">a</span>r</u>baz" but got "foo<u style=\\"text-decoration:line-through\\">b</u><span style=\\"text-decoration-line:underline line-through\\">a</span><u style=\\"text-decoration:line-through\\">r</u>baz"
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\"text-decoration:line-through\">b<u>a</u>r</u>baz" but got "foo<u style=\"text-decoration:line-through\">b</u><u><strike>a</strike></u><u style=\"text-decoration:line-through\">r</u>baz"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\\"text-decoration:line-through\\">b<u>a</u>r</u>baz" but got "foo<u style=\\"text-decoration:line-through\\">b</u><u><strike>a</strike></u><u style=\\"text-decoration:line-through\\">r</u>baz"
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: line-through\">b[a]r</u>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: line-through\\">b[a]r</u>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline overline\">bar</span>baz" but got "foo<span style=\"text-decoration-line:underline overline\">bar</span>baz"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline overline\\">bar</span>baz" but got "foo<span style=\\"text-decoration-line:underline overline\\">bar</span>baz"
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u><s style=\"text-decoration:overline\">bar</s></u>baz" but got "foo<span style=\"text-decoration-line:overline\"><u>bar</u></span>baz"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u><s style=\\"text-decoration:overline\\">bar</s></u>baz" but got "foo<span style=\\"text-decoration-line:overline\\"><u>bar</u></span>baz"
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">[bar]</s>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">[bar]</s>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<s style=\"text-decoration:overline\">b<span style=\"text-decoration:underline\">a</span>r</s>baz" but got "foo<s style=\"text-decoration:overline\">b</s><span style=\"text-decoration-line:underline overline\">a</span><s style=\"text-decoration:overline\">r</s>baz"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<s style=\\"text-decoration:overline\\">b<span style=\\"text-decoration:underline\\">a</span>r</s>baz" but got "foo<s style=\\"text-decoration:overline\\">b</s><span style=\\"text-decoration-line:underline overline\\">a</span><s style=\\"text-decoration:overline\\">r</s>baz"
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<s style=\"text-decoration:overline\">b<u>a</u>r</s>baz" but got "foo<s style=\"text-decoration:overline\">b</s><span style=\"text-decoration-line:overline\"><u>a</u></span><s style=\"text-decoration:overline\">r</s>baz"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<s style=\\"text-decoration:overline\\">b<u>a</u>r</s>baz" but got "foo<s style=\\"text-decoration:overline\\">b</s><span style=\\"text-decoration-line:overline\\"><u>a</u></span><s style=\\"text-decoration:overline\\">r</s>baz"
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\"text-decoration: overline\">b[a]r</s>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<s style=\\"text-decoration: overline\\">b[a]r</s>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline\"><u style=\"text-decoration:overline\">bar</u></span>baz" but got "foo<span style=\"text-decoration-line:underline overline\">bar</span>baz"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline\\"><u style=\\"text-decoration:overline\\">bar</u></span>baz" but got "foo<span style=\\"text-decoration-line:underline overline\\">bar</span>baz"
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u><u style=\"text-decoration:overline\">bar</u></u>baz" but got "foo<span style=\"text-decoration-line:overline\"><u>bar</u></span>baz"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u><u style=\\"text-decoration:overline\\">bar</u></u>baz" but got "foo<span style=\\"text-decoration-line:overline\\"><u>bar</u></span>baz"
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">[bar]</u>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">[bar]</u>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\"text-decoration:overline\">b<span style=\"text-decoration:underline\">a</span>r</u>baz" but got "foo<u style=\"text-decoration:overline\">b</u><span style=\"text-decoration-line:underline overline\">a</span><u style=\"text-decoration:overline\">r</u>baz"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\\"text-decoration:overline\\">b<span style=\\"text-decoration:underline\\">a</span>r</u>baz" but got "foo<u style=\\"text-decoration:overline\\">b</u><span style=\\"text-decoration-line:underline overline\\">a</span><u style=\\"text-decoration:overline\\">r</u>baz"
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\"text-decoration:overline\">b<u>a</u>r</u>baz" but got "foo<u style=\"text-decoration:overline\">b</u><span style=\"text-decoration-line:overline\"><u>a</u></span><u style=\"text-decoration:overline\">r</u>baz"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u style=\\"text-decoration:overline\\">b<u>a</u>r</u>baz" but got "foo<u style=\\"text-decoration:overline\\">b</u><span style=\\"text-decoration-line:overline\\"><u>a</u></span><u style=\\"text-decoration:overline\\">r</u>baz"
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\"text-decoration: overline\">b[a]r</u>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<u style=\\"text-decoration: overline\\">b[a]r</u>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"text-decoration:overline\">foo<span style=\"text-decoration:underline\">bar</span>baz</p>" but got "<p style=\"\"><span style=\"text-decoration-line:overline\">foo</span><span style=\"text-decoration-line:underline overline\">bar</span><span style=\"text-decoration-line:overline\">baz</span></p>"
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"text-decoration:overline\\">foo<span style=\\"text-decoration:underline\\">bar</span>baz</p>" but got "<p style=\\"\\"><span style=\\"text-decoration-line:overline\\">foo</span><span style=\\"text-decoration-line:underline overline\\">bar</span><span style=\\"text-decoration-line:overline\\">baz</span></p>"
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\"text-decoration:overline\">foo<u>bar</u>baz</p>" but got "<p style=\"\"><span style=\"text-decoration-line:overline\">foo<u>bar</u>baz</span></p>"
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p style=\\"text-decoration:overline\\">foo<u>bar</u>baz</p>" but got "<p style=\\"\\"><span style=\\"text-decoration-line:overline\\">foo<u>bar</u>baz</span></p>"
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\"text-decoration: overline\">foo[bar]baz</p>" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "<p style=\\"text-decoration: overline\\">foo[bar]baz</p>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "foo<span class=\"underline\">[bar]</span>baz": execCommand("underline", false, "") return value
-[PASS] [["underline",""]] "foo<span class=\"underline\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["underline",""]] "foo<span class=\"underline\">[bar]</span>baz" compare innerHTML
-[PASS] [["underline",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["underline",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandState("underline") before
-[FAIL] [["underline",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandValue("underline") before
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">[bar]</span>baz": execCommand("underline", false, "") return value
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">[bar]</span>baz" compare innerHTML
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandState("underline") before
+[FAIL] [["underline",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["underline",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandState("underline") after
-[FAIL] [["underline",""]] "foo<span class=\"underline\">[bar]</span>baz" queryCommandValue("underline") after
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandState("underline") after
+[FAIL] [["underline",""]] "foo<span class=\\"underline\\">[bar]</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "foo<span class=\"underline\">b[a]r</span>baz": execCommand("underline", false, "") return value
-[PASS] [["underline",""]] "foo<span class=\"underline\">b[a]r</span>baz" checks for modifications to non-editable content
-[PASS] [["underline",""]] "foo<span class=\"underline\">b[a]r</span>baz" compare innerHTML
-[PASS] [["underline",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["underline",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandState("underline") before
-[FAIL] [["underline",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandValue("underline") before
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">b[a]r</span>baz": execCommand("underline", false, "") return value
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" checks for modifications to non-editable content
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" compare innerHTML
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandState("underline") before
+[FAIL] [["underline",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["underline",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandState("underline") after
-[FAIL] [["underline",""]] "foo<span class=\"underline\">b[a]r</span>baz" queryCommandValue("underline") after
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["underline",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandState("underline") after
+[FAIL] [["underline",""]] "foo<span class=\\"underline\\">b[a]r</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span class=\"line-through\" style=\"text-decoration:underline\">bar</span>baz" but got "foo<span class=\"line-through\" style=\"text-decoration-line:underline\">bar</span>baz"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span class=\\"line-through\\" style=\\"text-decoration:underline\\">bar</span>baz" but got "foo<span class=\\"line-through\\" style=\\"text-decoration-line:underline\\">bar</span>baz"
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">[bar]</span>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">[bar]</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" checks for modifications to non-editable content
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span class=\"line-through\">b<span style=\"text-decoration:underline\">a</span>r</span>baz" but got "foo<span class=\"line-through\">b<span style=\"text-decoration-line:underline\">a</span>r</span>baz"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" checks for modifications to non-editable content
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" compare innerHTML
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span class=\\"line-through\\">b<span style=\\"text-decoration:underline\\">a</span>r</span>baz" but got "foo<span class=\\"line-through\\">b<span style=\\"text-decoration-line:underline\\">a</span>r</span>baz"
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","true"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" checks for modifications to non-editable content
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" compare innerHTML
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandState("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandState("underline") before
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandValue("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz": execCommand("stylewithcss", false, "false") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" checks for modifications to non-editable content
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" compare innerHTML
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandIndeterm("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandState("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandValue("stylewithcss") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandState("underline") before
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandState("underline") after
-[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span class=\"line-through\">b[a]r</span>baz" queryCommandValue("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandState("underline") after
+[FAIL] [["stylewithcss","false"],["underline",""]] "foo<span class=\\"line-through\\">b[a]r</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz": execCommand("underline", false, "") return value
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" checks for modifications to non-editable content
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" compare innerHTML
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandState("underline") before
-[FAIL] [["underline",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandValue("underline") before
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz": execCommand("underline", false, "") return value
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" checks for modifications to non-editable content
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" compare innerHTML
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandState("underline") before
+[FAIL] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandState("underline") after
-[FAIL] [["underline",""]] "foo<span class=\"underline-and-line-through\">[bar]</span>baz" queryCommandValue("underline") after
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandState("underline") after
+[FAIL] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">[bar]</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz": execCommand("underline", false, "") return value
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" checks for modifications to non-editable content
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" compare innerHTML
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandIndeterm("underline") before
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandState("underline") before
-[FAIL] [["underline",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandValue("underline") before
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz": execCommand("underline", false, "") return value
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" checks for modifications to non-editable content
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" compare innerHTML
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandIndeterm("underline") before
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandState("underline") before
+[FAIL] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandValue("underline") before
   assert_equals: Wrong result returned expected "" but got "true"
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandIndeterm("underline") after
-[PASS] [["underline",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandState("underline") after
-[FAIL] [["underline",""]] "foo<span class=\"underline-and-line-through\">b[a]r</span>baz" queryCommandValue("underline") after
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandIndeterm("underline") after
+[PASS] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandState("underline") after
+[FAIL] [["underline",""]] "foo<span class=\\"underline-and-line-through\\">b[a]r</span>baz" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "true"
 [PASS] [["underline",""]] "fo[o<u>b]ar</u>baz": execCommand("underline", false, "") return value
 [PASS] [["underline",""]] "fo[o<u>b]ar</u>baz" checks for modifications to non-editable content
@@ -1018,7 +1018,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "fo[o<u>bar</u>b]az": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "fo[o<u>bar</u>b]az" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "fo[o<u>bar</u>b]az" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\"text-decoration:underline\">obarb</span>az" but got "fo<span style=\"text-decoration-line:underline\">obarb</span>az"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\\"text-decoration:underline\\">obarb</span>az" but got "fo<span style=\\"text-decoration-line:underline\\">obarb</span>az"
 [PASS] [["stylewithcss","true"],["underline",""]] "fo[o<u>bar</u>b]az" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "fo[o<u>bar</u>b]az" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "fo[o<u>bar</u>b]az" queryCommandValue("stylewithcss") before
@@ -1055,7 +1055,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[<u>b]ar</u>baz": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[<u>b]ar</u>baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "foo[<u>b]ar</u>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foob<span style=\"text-decoration:underline\">ar</span>baz" but got "foob<u>ar</u>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foob<span style=\\"text-decoration:underline\\">ar</span>baz" but got "foob<u>ar</u>baz"
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[<u>b]ar</u>baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[<u>b]ar</u>baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "foo[<u>b]ar</u>baz" queryCommandValue("stylewithcss") before
@@ -1092,7 +1092,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<u>ba[r</u>]baz": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<u>ba[r</u>]baz" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "foo<u>ba[r</u>]baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\"text-decoration:underline\">ba</span>rbaz" but got "foo<u>ba</u>rbaz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"text-decoration:underline\\">ba</span>rbaz" but got "foo<u>ba</u>rbaz"
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<u>ba[r</u>]baz" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<u>ba[r</u>]baz" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "foo<u>ba[r</u>]baz" queryCommandValue("stylewithcss") before
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/underline_2001-last-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/underline_2001-last-expected.txt
index 6cd99166..b4a5aa87 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/underline_2001-last-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/underline_2001-last-expected.txt
@@ -61,7 +61,7 @@
 [PASS] [["underline",""]] "fo[o<span style=text-decoration:underline>b]ar</span>baz": execCommand("underline", false, "") return value
 [PASS] [["underline",""]] "fo[o<span style=text-decoration:underline>b]ar</span>baz" checks for modifications to non-editable content
 [FAIL] [["underline",""]] "fo[o<span style=text-decoration:underline>b]ar</span>baz" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\"text-decoration:underline\">obar</span>baz" but got "fo<u>ob</u><span style=\"text-decoration:underline\">ar</span>baz"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fo<span style=\\"text-decoration:underline\\">obar</span>baz" but got "fo<u>ob</u><span style=\\"text-decoration:underline\\">ar</span>baz"
 [PASS] [["underline",""]] "fo[o<span style=text-decoration:underline>b]ar</span>baz" queryCommandIndeterm("underline") before
 [PASS] [["underline",""]] "fo[o<span style=text-decoration:underline>b]ar</span>baz" queryCommandState("underline") before
 [FAIL] [["underline",""]] "fo[o<span style=text-decoration:underline>b]ar</span>baz" queryCommandValue("underline") before
@@ -74,7 +74,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "<ins>fo[o</ins><u>b]ar</u>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<ins>fo[o</ins><u>b]ar</u>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<ins>fo[o</ins><u>b]ar</u>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo</ins>b<span style=\"text-decoration:underline\">ar</span>" but got "<ins>foo</ins>b<u>ar</u>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<ins>foo</ins>b<span style=\\"text-decoration:underline\\">ar</span>" but got "<ins>foo</ins>b<u>ar</u>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<ins>fo[o</ins><u>b]ar</u>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<ins>fo[o</ins><u>b]ar</u>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<ins>fo[o</ins><u>b]ar</u>" queryCommandValue("stylewithcss") before
@@ -111,7 +111,7 @@
 [PASS] [["stylewithcss","true"],["underline",""]] "<u>fo[o</u><ins>b]ar</ins>": execCommand("underline", false, "") return value
 [PASS] [["stylewithcss","true"],["underline",""]] "<u>fo[o</u><ins>b]ar</ins>" checks for modifications to non-editable content
 [FAIL] [["stylewithcss","true"],["underline",""]] "<u>fo[o</u><ins>b]ar</ins>" compare innerHTML
-  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\"text-decoration:underline\">fo</span>o<ins>bar</ins>" but got "<u>fo</u>o<ins>bar</ins>"
+  assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<span style=\\"text-decoration:underline\\">fo</span>o<ins>bar</ins>" but got "<u>fo</u>o<ins>bar</ins>"
 [PASS] [["stylewithcss","true"],["underline",""]] "<u>fo[o</u><ins>b]ar</ins>" queryCommandIndeterm("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<u>fo[o</u><ins>b]ar</ins>" queryCommandState("stylewithcss") before
 [PASS] [["stylewithcss","true"],["underline",""]] "<u>fo[o</u><ins>b]ar</ins>" queryCommandValue("stylewithcss") before
@@ -144,25 +144,25 @@
 [PASS] [["stylewithcss","false"],["underline",""]] "<u>fo[o</u><ins>b]ar</ins>" queryCommandState("underline") after
 [FAIL] [["stylewithcss","false"],["underline",""]] "<u>fo[o</u><ins>b]ar</ins>" queryCommandValue("underline") after
   assert_equals: Wrong result returned expected "" but got "false"
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:line-through overline underline\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:line-through overline underline\">[def]</span>ghi": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:line-through overline underline\">[def]</span>ghi" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:line-through overline underline\">[def]</span>ghi" compare innerHTML
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:blink line-through overline\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:blink line-through overline\">[def]</span>ghi": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:blink line-through overline\">[def]</span>ghi" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:blink line-through overline\">[def]</span>ghi" compare innerHTML
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:line-through blue dotted\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:line-through blue dotted\">[def]</span>ghi": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:line-through blue dotted\">[def]</span>ghi" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:line-through blue dotted\">[def]</span>ghi" compare innerHTML
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:blink line-through underline overline\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:blink line-through underline overline\">[def]</span>ghi": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:blink line-through underline overline\">[def]</span>ghi" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:blink line-through underline overline\">[def]</span>ghi" compare innerHTML
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:underline line-through blue dotted\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:underline line-through blue dotted\">[def]</span>ghi": execCommand("underline", false, "") return value
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:underline line-through blue dotted\">[def]</span>ghi" checks for modifications to non-editable content
-[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\"text-decoration:underline line-through blue dotted\">[def]</span>ghi" compare innerHTML
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:line-through overline underline\\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:line-through overline underline\\">[def]</span>ghi": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:line-through overline underline\\">[def]</span>ghi" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:line-through overline underline\\">[def]</span>ghi" compare innerHTML
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:blink line-through overline\\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:blink line-through overline\\">[def]</span>ghi": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:blink line-through overline\\">[def]</span>ghi" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:blink line-through overline\\">[def]</span>ghi" compare innerHTML
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:line-through blue dotted\\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:line-through blue dotted\\">[def]</span>ghi": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:line-through blue dotted\\">[def]</span>ghi" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:line-through blue dotted\\">[def]</span>ghi" compare innerHTML
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:blink line-through underline overline\\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:blink line-through underline overline\\">[def]</span>ghi": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:blink line-through underline overline\\">[def]</span>ghi" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:blink line-through underline overline\\">[def]</span>ghi" compare innerHTML
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:underline line-through blue dotted\\">[def]</span>ghi": execCommand("stylewithcss", false, "true") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:underline line-through blue dotted\\">[def]</span>ghi": execCommand("underline", false, "") return value
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:underline line-through blue dotted\\">[def]</span>ghi" checks for modifications to non-editable content
+[PASS] [["stylewithcss","true"],["underline",""]] "abc<span style=\\"text-decoration:underline line-through blue dotted\\">[def]</span>ghi" compare innerHTML
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-top-left-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-top-left-expected.txt
index b31c47c..21640995 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-top-left-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/html/browsers/the-window-object/open-close/open-features-tokenization-top-left-expected.txt
@@ -17,7 +17,7 @@
   assert_equals: expected 142 but got 0
 [FAIL] "top==142" should set top position of opened window
   assert_equals: expected 142 but got 0
-[FAIL] "\ttop= 142" should set top position of opened window
+[FAIL] "\\ttop= 142" should set top position of opened window
   assert_equals: expected 142 but got 0
 [FAIL] ",top=142,," should set top position of opened window
   assert_equals: expected 142 but got 0
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/html/rendering/widgets/the-select-element/select-as-listbox-default-styles.tentative-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/html/rendering/widgets/the-select-element/select-as-listbox-default-styles.tentative-expected.txt
index 6ffbe3c..41eaabc3 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/html/rendering/widgets/the-select-element/select-as-listbox-default-styles.tentative-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/html/rendering/widgets/the-select-element/select-as-listbox-default-styles.tentative-expected.txt
@@ -54,7 +54,7 @@
 [FAIL] <select multiple=""><option>1 - font-size
   assert_equals: expected "16px" but got "13.3333px"
 [FAIL] <select multiple=""><option>1 - font-family
-  assert_equals: expected "\"times new roman\"" but got "Arial"
+  assert_equals: expected "\\"times new roman\\"" but got "Arial"
 [PASS] <select multiple=""><option>1 - writing-mode
 [PASS] <select multiple=""><option>1 - scrollbar-width
 [FAIL] <select multiple=""><option>1 - overflow
@@ -111,7 +111,7 @@
 [FAIL] <option>1 (in <select multiple="">) - font-size
   assert_equals: expected "16px" but got "13.3333px"
 [FAIL] <option>1 (in <select multiple="">) - font-family
-  assert_equals: expected "\"times new roman\"" but got "Arial"
+  assert_equals: expected "\\"times new roman\\"" but got "Arial"
 [PASS] <option>1 (in <select multiple="">) - writing-mode
 [PASS] <option>1 (in <select multiple="">) - scrollbar-width
 [PASS] <option>1 (in <select multiple="">) - overflow
@@ -164,7 +164,7 @@
 [FAIL] <optgroup label="2"><option>3 (in <select multiple="">) - font-size
   assert_equals: expected "16px" but got "13.3333px"
 [FAIL] <optgroup label="2"><option>3 (in <select multiple="">) - font-family
-  assert_equals: expected "\"times new roman\"" but got "Arial"
+  assert_equals: expected "\\"times new roman\\"" but got "Arial"
 [PASS] <optgroup label="2"><option>3 (in <select multiple="">) - writing-mode
 [PASS] <optgroup label="2"><option>3 (in <select multiple="">) - scrollbar-width
 [PASS] <optgroup label="2"><option>3 (in <select multiple="">) - overflow
@@ -219,7 +219,7 @@
 [FAIL] <option>3 (in <select multiple=""><optgroup label="2">) - font-size
   assert_equals: expected "16px" but got "13.3333px"
 [FAIL] <option>3 (in <select multiple=""><optgroup label="2">) - font-family
-  assert_equals: expected "\"times new roman\"" but got "Arial"
+  assert_equals: expected "\\"times new roman\\"" but got "Arial"
 [PASS] <option>3 (in <select multiple=""><optgroup label="2">) - writing-mode
 [PASS] <option>3 (in <select multiple=""><optgroup label="2">) - scrollbar-width
 [PASS] <option>3 (in <select multiple=""><optgroup label="2">) - overflow
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-origin-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-origin-expected.txt
index 295027b..b59e394 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-origin-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-origin-expected.txt
@@ -21,22 +21,22 @@
 [PASS] Parsing origin: <> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <  	> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:a> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <:\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <:\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:#> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <#> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <#/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <#\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <#\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <#;?> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <?> against <http://example.org/foo/bar>
 [PASS] Parsing origin: </> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:23> against <http://example.org/foo/bar>
 [PASS] Parsing origin: </:23> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <\x> against <http://example.org/foo/bar>
-[FAIL] Parsing origin: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <\\x> against <http://example.org/foo/bar>
+[FAIL] Parsing origin: <\\\\x\\hello> against <http://example.org/foo/bar>
   assert_equals: origin expected "http://x" but got "file://"
 [PASS] Parsing origin: <::> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <::23> against <http://example.org/foo/bar>
@@ -46,9 +46,9 @@
 [PASS] Parsing origin: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <foo:/> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <foo:/bar.com/> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <foo://///////> against <http://example.org/foo/bar>
@@ -125,7 +125,7 @@
 [PASS] Parsing origin: <http://example.com/(%28:%3A%29)> against <about:blank>
 [PASS] Parsing origin: <http://example.com/%3A%3a%3C%3c> against <about:blank>
 [PASS] Parsing origin: <http://example.com/foo	bar> against <about:blank>
-[PASS] Parsing origin: <http://example.com\\foo\\bar> against <about:blank>
+[PASS] Parsing origin: <http://example.com\\\\foo\\\\bar> against <about:blank>
 [PASS] Parsing origin: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
 [PASS] Parsing origin: <http://example.com/@asdf%40> against <about:blank>
 [PASS] Parsing origin: <http://example.com/你好你好> against <about:blank>
@@ -140,7 +140,7 @@
 [PASS] Parsing origin: <http://www/foo%2Ehtml> against <about:blank>
 [PASS] Parsing origin: <http://www/foo/%2E/html> against <about:blank>
 [PASS] Parsing origin: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
-[PASS] Parsing origin: <http:\\www.google.com\foo> against <about:blank>
+[PASS] Parsing origin: <http:\\\\www.google.com\\foo> against <about:blank>
 [PASS] Parsing origin: <http://foo:80/> against <about:blank>
 [PASS] Parsing origin: <http://foo:81/> against <about:blank>
 [PASS] Parsing origin: <httpa://foo:80/> against <about:blank>
@@ -261,7 +261,7 @@
 [PASS] Parsing origin: <sc://ñ.test/> against <about:blank>
 [FAIL] Parsing origin: <x> against <sc://ñ>
   assert_equals: origin expected "null" but got ""
-[PASS] Parsing origin: <sc:\../> against <about:blank>
+[PASS] Parsing origin: <sc:\\../> against <about:blank>
 [PASS] Parsing origin: <sc::a@example.net> against <about:blank>
 [PASS] Parsing origin: <wow:%NBD> against <about:blank>
 [PASS] Parsing origin: <wow:%1G> against <about:blank>
@@ -269,7 +269,7 @@
 [FAIL] Parsing origin: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank>
   assert_equals: origin expected "http://example.com" but got ""
 [FAIL] Parsing origin: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: origin expected "http://!\"$&'()*+,-.;=_`{}~" but got "http://!\"$&'()%2A+,-.;=_`{}~"
+  assert_equals: origin expected "http://!\\"$&'()*+,-.;=_`{}~" but got "http://!\\"$&'()%2A+,-.;=_`{}~"
 [PASS] Parsing origin: <sc://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
 [PASS] Parsing origin: <ftp://%e2%98%83> against <about:blank>
 [PASS] Parsing origin: <https://%e2%98%83> against <about:blank>
@@ -338,19 +338,19 @@
 [PASS] Parsing origin: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
 [PASS] Parsing origin: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
 [PASS] Parsing origin: <https://user:pass[@foo/bar> against <http://example.org>
-[PASS] Parsing origin: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank>
+[PASS] Parsing origin: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> against <about:blank>
 [PASS] Parsing origin: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank>
-[PASS] Parsing origin: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank>
+[PASS] Parsing origin: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> against <about:blank>
 [PASS] Parsing origin: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank>
 [PASS] Parsing origin: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
 [FAIL] Parsing origin: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: origin expected "wss://!\"$&'()*+,-.;=_`{}~" but got "wss://!\"$&'()%2A+,-.;=_`{}~"
-[PASS] Parsing origin: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+  assert_equals: origin expected "wss://!\\"$&'()*+,-.;=_`{}~" but got "wss://!\\"$&'()%2A+,-.;=_`{}~"
+[PASS] Parsing origin: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
 [PASS] Parsing origin: <https://example.com/"quoted"> against <about:blank>
 [PASS] Parsing origin: <https://a%C2%ADb/> against <about:blank>
 [PASS] Parsing origin: <data://example.com:8080/pathname?search#hash> against <about:blank>
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-origin-xhtml-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-origin-xhtml-expected.txt
index 295027b..b59e394 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-origin-xhtml-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-origin-xhtml-expected.txt
@@ -21,22 +21,22 @@
 [PASS] Parsing origin: <> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <  	> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:a> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <:\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <:\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:#> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <#> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <#/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <#\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <#\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <#;?> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <?> against <http://example.org/foo/bar>
 [PASS] Parsing origin: </> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <:23> against <http://example.org/foo/bar>
 [PASS] Parsing origin: </:23> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <\x> against <http://example.org/foo/bar>
-[FAIL] Parsing origin: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <\\x> against <http://example.org/foo/bar>
+[FAIL] Parsing origin: <\\\\x\\hello> against <http://example.org/foo/bar>
   assert_equals: origin expected "http://x" but got "file://"
 [PASS] Parsing origin: <::> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <::23> against <http://example.org/foo/bar>
@@ -46,9 +46,9 @@
 [PASS] Parsing origin: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Parsing origin: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Parsing origin: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <foo:/> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <foo:/bar.com/> against <http://example.org/foo/bar>
 [PASS] Parsing origin: <foo://///////> against <http://example.org/foo/bar>
@@ -125,7 +125,7 @@
 [PASS] Parsing origin: <http://example.com/(%28:%3A%29)> against <about:blank>
 [PASS] Parsing origin: <http://example.com/%3A%3a%3C%3c> against <about:blank>
 [PASS] Parsing origin: <http://example.com/foo	bar> against <about:blank>
-[PASS] Parsing origin: <http://example.com\\foo\\bar> against <about:blank>
+[PASS] Parsing origin: <http://example.com\\\\foo\\\\bar> against <about:blank>
 [PASS] Parsing origin: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
 [PASS] Parsing origin: <http://example.com/@asdf%40> against <about:blank>
 [PASS] Parsing origin: <http://example.com/你好你好> against <about:blank>
@@ -140,7 +140,7 @@
 [PASS] Parsing origin: <http://www/foo%2Ehtml> against <about:blank>
 [PASS] Parsing origin: <http://www/foo/%2E/html> against <about:blank>
 [PASS] Parsing origin: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
-[PASS] Parsing origin: <http:\\www.google.com\foo> against <about:blank>
+[PASS] Parsing origin: <http:\\\\www.google.com\\foo> against <about:blank>
 [PASS] Parsing origin: <http://foo:80/> against <about:blank>
 [PASS] Parsing origin: <http://foo:81/> against <about:blank>
 [PASS] Parsing origin: <httpa://foo:80/> against <about:blank>
@@ -261,7 +261,7 @@
 [PASS] Parsing origin: <sc://ñ.test/> against <about:blank>
 [FAIL] Parsing origin: <x> against <sc://ñ>
   assert_equals: origin expected "null" but got ""
-[PASS] Parsing origin: <sc:\../> against <about:blank>
+[PASS] Parsing origin: <sc:\\../> against <about:blank>
 [PASS] Parsing origin: <sc::a@example.net> against <about:blank>
 [PASS] Parsing origin: <wow:%NBD> against <about:blank>
 [PASS] Parsing origin: <wow:%1G> against <about:blank>
@@ -269,7 +269,7 @@
 [FAIL] Parsing origin: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank>
   assert_equals: origin expected "http://example.com" but got ""
 [FAIL] Parsing origin: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: origin expected "http://!\"$&'()*+,-.;=_`{}~" but got "http://!\"$&'()%2A+,-.;=_`{}~"
+  assert_equals: origin expected "http://!\\"$&'()*+,-.;=_`{}~" but got "http://!\\"$&'()%2A+,-.;=_`{}~"
 [PASS] Parsing origin: <sc://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
 [PASS] Parsing origin: <ftp://%e2%98%83> against <about:blank>
 [PASS] Parsing origin: <https://%e2%98%83> against <about:blank>
@@ -338,19 +338,19 @@
 [PASS] Parsing origin: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
 [PASS] Parsing origin: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
 [PASS] Parsing origin: <https://user:pass[@foo/bar> against <http://example.org>
-[PASS] Parsing origin: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank>
+[PASS] Parsing origin: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> against <about:blank>
 [PASS] Parsing origin: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank>
-[PASS] Parsing origin: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank>
+[PASS] Parsing origin: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> against <about:blank>
 [PASS] Parsing origin: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank>
 [PASS] Parsing origin: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
 [FAIL] Parsing origin: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: origin expected "wss://!\"$&'()*+,-.;=_`{}~" but got "wss://!\"$&'()%2A+,-.;=_`{}~"
-[PASS] Parsing origin: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[PASS] Parsing origin: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+  assert_equals: origin expected "wss://!\\"$&'()*+,-.;=_`{}~" but got "wss://!\\"$&'()%2A+,-.;=_`{}~"
+[PASS] Parsing origin: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[PASS] Parsing origin: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
 [PASS] Parsing origin: <https://example.com/"quoted"> against <about:blank>
 [PASS] Parsing origin: <https://a%C2%ADb/> against <about:blank>
 [PASS] Parsing origin: <data://example.com:8080/pathname?search#hash> against <about:blank>
diff --git "a/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt"
index 1c3303cb..35d3836 100644
--- "a/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-xhtml_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -31,22 +31,22 @@
 [PASS] Parsing: <> against <http://example.org/foo/bar>
 [PASS] Parsing: <  	> against <http://example.org/foo/bar>
 [PASS] Parsing: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:> against <http://example.org/foo/bar>
 [PASS] Parsing: <:a> against <http://example.org/foo/bar>
 [PASS] Parsing: <:/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#/> against <http://example.org/foo/bar>
-[PASS] Parsing: <#\> against <http://example.org/foo/bar>
+[PASS] Parsing: <#\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <#;?> against <http://example.org/foo/bar>
 [PASS] Parsing: <?> against <http://example.org/foo/bar>
 [PASS] Parsing: </> against <http://example.org/foo/bar>
 [PASS] Parsing: <:23> against <http://example.org/foo/bar>
 [PASS] Parsing: </:23> against <http://example.org/foo/bar>
-[PASS] Parsing: <\x> against <http://example.org/foo/bar>
-[FAIL] Parsing: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Parsing: <\\x> against <http://example.org/foo/bar>
+[FAIL] Parsing: <\\\\x\\hello> against <http://example.org/foo/bar>
   assert_equals: href expected "http://x/hello" but got "file://x/hello"
 [PASS] Parsing: <::> against <http://example.org/foo/bar>
 [PASS] Parsing: <::23> against <http://example.org/foo/bar>
@@ -57,9 +57,9 @@
 [PASS] Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
 [FAIL] Parsing: <foo://///////> against <http://example.org/foo/bar>
@@ -143,7 +143,7 @@
 [PASS] Parsing: <http://example.com/(%28:%3A%29)> against <about:blank>
 [PASS] Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank>
 [PASS] Parsing: <http://example.com/foo	bar> against <about:blank>
-[PASS] Parsing: <http://example.com\\foo\\bar> against <about:blank>
+[PASS] Parsing: <http://example.com\\\\foo\\\\bar> against <about:blank>
 [PASS] Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
 [PASS] Parsing: <http://example.com/@asdf%40> against <about:blank>
 [PASS] Parsing: <http://example.com/你好你好> against <about:blank>
@@ -160,7 +160,7 @@
 [PASS] Parsing: <http://www/foo/%2E/html> against <about:blank>
 [PASS] Parsing: <http://user:pass@/> against <about:blank>
 [PASS] Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
-[PASS] Parsing: <http:\\www.google.com\foo> against <about:blank>
+[PASS] Parsing: <http:\\\\www.google.com\\foo> against <about:blank>
 [PASS] Parsing: <http://foo:80/> against <about:blank>
 [PASS] Parsing: <http://foo:81/> against <about:blank>
 [FAIL] Parsing: <httpa://foo:80/> against <about:blank>
@@ -374,13 +374,13 @@
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <x> against <sc://ñ>
   assert_equals: href expected "sc://%C3%B1/x" but got "x"
-[PASS] Parsing: <sc:\../> against <about:blank>
+[PASS] Parsing: <sc:\\../> against <about:blank>
 [PASS] Parsing: <sc::a@example.net> against <about:blank>
 [PASS] Parsing: <wow:%NBD> against <about:blank>
 [PASS] Parsing: <wow:%1G> against <about:blank>
 [PASS] Parsing: <wow:￿> against <about:blank>
 [FAIL] Parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank>
-  assert_equals: href expected "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF" but got "http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ\ufffe\uffff?U+d800𐟾U+dfff﷐﷏﷯ﷰ\ufffe\uffff"
+  assert_equals: href expected "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF" but got "http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ\\ufffe\\uffff?U+d800𐟾U+dfff﷐﷏﷯ﷰ\\ufffe\\uffff"
 [FAIL] Parsing: <sc://a\0b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <sc://a b/> against <about:blank>
@@ -391,7 +391,7 @@
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <sc://a[b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
-[FAIL] Parsing: <sc://a\b/> against <about:blank>
+[FAIL] Parsing: <sc://a\\b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <sc://a]b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
@@ -495,9 +495,9 @@
 [PASS] Parsing: <http://ho%7Cst/> against <about:blank>
 [PASS] Parsing: <http://ho%7Fst/> against <about:blank>
 [FAIL] Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: href expected "http://!\"$&'()*+,-.;=_`{}~/" but got "http://!\"$&'()%2A+,-.;=_`{}~/"
+  assert_equals: href expected "http://!\\"$&'()*+,-.;=_`{}~/" but got "http://!\\"$&'()%2A+,-.;=_`{}~/"
 [FAIL] Parsing: <sc://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\\"$%&'()*+,-.;=_`{}~" but got ""
 [PASS] Parsing: <ftp://example.com%80/> against <about:blank>
 [PASS] Parsing: <ftp://example.com%A0/> against <about:blank>
 [PASS] Parsing: <https://example.com%80/> against <about:blank>
@@ -543,9 +543,9 @@
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <asdf://%43%7C/> against <about:blank>
   assert_equals: host expected "%43%7C" but got ""
-[FAIL] Parsing: <\\\.\Y:> against <about:blank>
+[FAIL] Parsing: <\\\\\\.\\Y:> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
-[FAIL] Parsing: <\\\.\y:> against <about:blank>
+[FAIL] Parsing: <\\\\\\.\\y:> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [PASS] Parsing: <http://[1:0::]> against <http://example.net/>
 [PASS] Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/>
@@ -691,28 +691,28 @@
 [PASS] Parsing: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
 [PASS] Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
 [PASS] Parsing: <https://user:pass[@foo/bar> against <http://example.org>
-[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank>
-  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> against <about:blank>
+  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\\"$%&'()*+,-.;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank>
   assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
-[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank>
-  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> against <about:blank>
+  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\\"$%&'()*+,-.:;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank>
   assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
 [FAIL] Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "!\\"$%&'()*+,-.;=_`{}~" but got ""
 [FAIL] Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: href expected "wss://!\"$&'()*+,-.;=_`{}~/" but got "wss://!\"$&'()%2A+,-.;=_`{}~/"
-[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
-  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
-[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
+  assert_equals: href expected "wss://!\\"$&'()*+,-.;=_`{}~/" but got "wss://!\\"$&'()%2A+,-.;=_`{}~/"
+[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
+  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\\\]^_%60%7B|%7D~" but got "foo://host/ !\\"$%&'()*+,-./:;<=>@[\\\\]^_`{|}~"
+[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
   assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
-[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~"
-[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~"
+[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
   assert_equals: host expected "host" but got ""
-[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
 [FAIL] Parsing: <abc:rootless> against <abc://host/path>
   assert_equals: href expected "abc:rootless" but got "abc://host/rootless"
 [FAIL] Parsing: <abc:rootless> against <abc:/path>
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-xhtml_include=file-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-xhtml_include=file-expected.txt
index fb4fffb8..ca72a5a 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-xhtml_include=file-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-xhtml_include=file-expected.txt
@@ -7,16 +7,16 @@
 [PASS] Parsing: <file://example:test/> against <about:blank>
 [PASS] Parsing: <file://example%/> against <about:blank>
 [PASS] Parsing: <file://[example]/> against <about:blank>
-[FAIL] Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///C:/foo/bar.html"
-[FAIL] Parsing: <  File:c|////foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <  File:c|////foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///C:////foo/bar.html"
 [PASS] Parsing: <C|/foo/bar> against <file:///tmp/mock/path>
-[PASS] Parsing: </C|\foo\bar> against <file:///tmp/mock/path>
+[PASS] Parsing: </C|\\foo\\bar> against <file:///tmp/mock/path>
 [PASS] Parsing: <//C|/foo/bar> against <file:///tmp/mock/path>
 [PASS] Parsing: <//server/file> against <file:///tmp/mock/path>
-[PASS] Parsing: <\\server\file> against <file:///tmp/mock/path>
-[PASS] Parsing: </\server/file> against <file:///tmp/mock/path>
+[PASS] Parsing: <\\\\server\\file> against <file:///tmp/mock/path>
+[PASS] Parsing: </\\server/file> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///home/me> against <file:///tmp/mock/path>
 [PASS] Parsing: <//> against <file:///tmp/mock/path>
@@ -64,26 +64,26 @@
 [PASS] Parsing: <file:?x> against <file:///test?test#test>
 [PASS] Parsing: <#x> against <file:///test?test#test>
 [PASS] Parsing: <file:#x> against <file:///test?test#test>
-[FAIL] Parsing: <file:\\//> against <about:blank>
+[FAIL] Parsing: <file:\\\\//> against <about:blank>
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\> against <about:blank>
+[FAIL] Parsing: <file:\\\\\\\\> against <about:blank>
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\?fox> against <about:blank>
-  assert_equals: href expected "file:////?fox" but got "file:\\\\\\\\?fox"
-[FAIL] Parsing: <file:\\\\#guppy> against <about:blank>
-  assert_equals: href expected "file:////#guppy" but got "file:\\\\\\\\#guppy"
+[FAIL] Parsing: <file:\\\\\\\\?fox> against <about:blank>
+  assert_equals: href expected "file:////?fox" but got "file:\\\\\\\\\\\\\\\\?fox"
+[FAIL] Parsing: <file:\\\\\\\\#guppy> against <about:blank>
+  assert_equals: href expected "file:////#guppy" but got "file:\\\\\\\\\\\\\\\\#guppy"
 [PASS] Parsing: <file://spider///> against <about:blank>
-[FAIL] Parsing: <file:\\localhost//> against <about:blank>
+[FAIL] Parsing: <file:\\\\localhost//> against <about:blank>
   assert_equals: href expected "file:////" but got "file://localhost//"
 [PASS] Parsing: <file:///localhost//cat> against <about:blank>
-[FAIL] Parsing: <file://\/localhost//cat> against <about:blank>
+[FAIL] Parsing: <file://\\/localhost//cat> against <about:blank>
   assert_equals: href expected "file:////localhost//cat" but got "file://localhost//cat"
 [FAIL] Parsing: <file://localhost//a//../..//> against <about:blank>
   assert_equals: href expected "file://///" but got "file://localhost///"
 [FAIL] Parsing: </////mouse> against <file:///elephant>
   assert_equals: href expected "file://///mouse" but got "file://mouse/"
-[PASS] Parsing: <\//pig> against <file://lion/>
-[FAIL] Parsing: <\/localhost//pig> against <file://lion/>
+[PASS] Parsing: <\\//pig> against <file://lion/>
+[FAIL] Parsing: <\\/localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
 [FAIL] Parsing: <//localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
@@ -103,7 +103,7 @@
   assert_equals: href expected "file://host/C:/" but got "file:///C:/"
 [FAIL] Parsing: <C|\n/> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file:///C:/"
-[FAIL] Parsing: <C|\> against <file://host/dir/file>
+[FAIL] Parsing: <C|\\> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file:///C:/"
 [PASS] Parsing: <C> against <file://host/dir/file>
 [FAIL] Parsing: <C|a> against <file://host/dir/file>
@@ -112,7 +112,7 @@
   assert_equals: href expected "file:///c:/foo/bar" but got "file:///C:/foo/bar"
 [FAIL] Parsing: </c|/foo/bar> against <file:///c:/baz/qux>
   assert_equals: href expected "file:///c:/foo/bar" but got "file:///C:/foo/bar"
-[FAIL] Parsing: <file:\c:\foo\bar> against <file:///c:/baz/qux>
+[FAIL] Parsing: <file:\\c:\\foo\\bar> against <file:///c:/baz/qux>
   assert_equals: href expected "file:///c:/foo/bar" but got "file:///C:/foo/bar"
 [FAIL] Parsing: </c:/foo/bar> against <file://host/path>
   assert_equals: href expected "file://host/c:/foo/bar" but got "file:///C:/foo/bar"
diff --git "a/third_party/blink/web_tests/platform/win/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/win/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
index 1c3303cb..35d3836 100644
--- "a/third_party/blink/web_tests/platform/win/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/win/external/wpt/url/a-element_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -31,22 +31,22 @@
 [PASS] Parsing: <> against <http://example.org/foo/bar>
 [PASS] Parsing: <  	> against <http://example.org/foo/bar>
 [PASS] Parsing: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:> against <http://example.org/foo/bar>
 [PASS] Parsing: <:a> against <http://example.org/foo/bar>
 [PASS] Parsing: <:/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#/> against <http://example.org/foo/bar>
-[PASS] Parsing: <#\> against <http://example.org/foo/bar>
+[PASS] Parsing: <#\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <#;?> against <http://example.org/foo/bar>
 [PASS] Parsing: <?> against <http://example.org/foo/bar>
 [PASS] Parsing: </> against <http://example.org/foo/bar>
 [PASS] Parsing: <:23> against <http://example.org/foo/bar>
 [PASS] Parsing: </:23> against <http://example.org/foo/bar>
-[PASS] Parsing: <\x> against <http://example.org/foo/bar>
-[FAIL] Parsing: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Parsing: <\\x> against <http://example.org/foo/bar>
+[FAIL] Parsing: <\\\\x\\hello> against <http://example.org/foo/bar>
   assert_equals: href expected "http://x/hello" but got "file://x/hello"
 [PASS] Parsing: <::> against <http://example.org/foo/bar>
 [PASS] Parsing: <::23> against <http://example.org/foo/bar>
@@ -57,9 +57,9 @@
 [PASS] Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
 [FAIL] Parsing: <foo://///////> against <http://example.org/foo/bar>
@@ -143,7 +143,7 @@
 [PASS] Parsing: <http://example.com/(%28:%3A%29)> against <about:blank>
 [PASS] Parsing: <http://example.com/%3A%3a%3C%3c> against <about:blank>
 [PASS] Parsing: <http://example.com/foo	bar> against <about:blank>
-[PASS] Parsing: <http://example.com\\foo\\bar> against <about:blank>
+[PASS] Parsing: <http://example.com\\\\foo\\\\bar> against <about:blank>
 [PASS] Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> against <about:blank>
 [PASS] Parsing: <http://example.com/@asdf%40> against <about:blank>
 [PASS] Parsing: <http://example.com/你好你好> against <about:blank>
@@ -160,7 +160,7 @@
 [PASS] Parsing: <http://www/foo/%2E/html> against <about:blank>
 [PASS] Parsing: <http://user:pass@/> against <about:blank>
 [PASS] Parsing: <http://%25DOMAIN:foobar@foodomain.com/> against <about:blank>
-[PASS] Parsing: <http:\\www.google.com\foo> against <about:blank>
+[PASS] Parsing: <http:\\\\www.google.com\\foo> against <about:blank>
 [PASS] Parsing: <http://foo:80/> against <about:blank>
 [PASS] Parsing: <http://foo:81/> against <about:blank>
 [FAIL] Parsing: <httpa://foo:80/> against <about:blank>
@@ -374,13 +374,13 @@
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <x> against <sc://ñ>
   assert_equals: href expected "sc://%C3%B1/x" but got "x"
-[PASS] Parsing: <sc:\../> against <about:blank>
+[PASS] Parsing: <sc:\\../> against <about:blank>
 [PASS] Parsing: <sc::a@example.net> against <about:blank>
 [PASS] Parsing: <wow:%NBD> against <about:blank>
 [PASS] Parsing: <wow:%1G> against <about:blank>
 [PASS] Parsing: <wow:￿> against <about:blank>
 [FAIL] Parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> against <about:blank>
-  assert_equals: href expected "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF" but got "http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ\ufffe\uffff?U+d800𐟾U+dfff﷐﷏﷯ﷰ\ufffe\uffff"
+  assert_equals: href expected "http://example.com/%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF?%EF%BF%BD%F0%90%9F%BE%EF%BF%BD%EF%B7%90%EF%B7%8F%EF%B7%AF%EF%B7%B0%EF%BF%BE%EF%BF%BF" but got "http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ\\ufffe\\uffff?U+d800𐟾U+dfff﷐﷏﷯ﷰ\\ufffe\\uffff"
 [FAIL] Parsing: <sc://a\0b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <sc://a b/> against <about:blank>
@@ -391,7 +391,7 @@
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <sc://a[b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
-[FAIL] Parsing: <sc://a\b/> against <about:blank>
+[FAIL] Parsing: <sc://a\\b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <sc://a]b/> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
@@ -495,9 +495,9 @@
 [PASS] Parsing: <http://ho%7Cst/> against <about:blank>
 [PASS] Parsing: <http://ho%7Fst/> against <about:blank>
 [FAIL] Parsing: <http://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: href expected "http://!\"$&'()*+,-.;=_`{}~/" but got "http://!\"$&'()%2A+,-.;=_`{}~/"
+  assert_equals: href expected "http://!\\"$&'()*+,-.;=_`{}~/" but got "http://!\\"$&'()%2A+,-.;=_`{}~/"
 [FAIL] Parsing: <sc://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\\"$%&'()*+,-.;=_`{}~" but got ""
 [PASS] Parsing: <ftp://example.com%80/> against <about:blank>
 [PASS] Parsing: <ftp://example.com%A0/> against <about:blank>
 [PASS] Parsing: <https://example.com%80/> against <about:blank>
@@ -543,9 +543,9 @@
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [FAIL] Parsing: <asdf://%43%7C/> against <about:blank>
   assert_equals: host expected "%43%7C" but got ""
-[FAIL] Parsing: <\\\.\Y:> against <about:blank>
+[FAIL] Parsing: <\\\\\\.\\Y:> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
-[FAIL] Parsing: <\\\.\y:> against <about:blank>
+[FAIL] Parsing: <\\\\\\.\\y:> against <about:blank>
   assert_unreached: Expected URL to fail parsing Reached unreachable code
 [PASS] Parsing: <http://[1:0::]> against <http://example.net/>
 [PASS] Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/>
@@ -691,28 +691,28 @@
 [PASS] Parsing: <non-special:cannot-be-a-base-url-\0~€> against <about:blank>
 [PASS] Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> against <about:blank>
 [PASS] Parsing: <https://user:pass[@foo/bar> against <http://example.org>
-[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> against <about:blank>
-  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> against <about:blank>
+  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\\"$%&'()*+,-.;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> against <about:blank>
   assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
-[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> against <about:blank>
-  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> against <about:blank>
+  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\\"$%&'()*+,-.:;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> against <about:blank>
   assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
 [FAIL] Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "!\\"$%&'()*+,-.;=_`{}~" but got ""
 [FAIL] Parsing: <wss://!"$&'()*+,-.;=_`{}~/> against <about:blank>
-  assert_equals: href expected "wss://!\"$&'()*+,-.;=_`{}~/" but got "wss://!\"$&'()%2A+,-.;=_`{}~/"
-[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
-  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
-[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> against <about:blank>
+  assert_equals: href expected "wss://!\\"$&'()*+,-.;=_`{}~/" but got "wss://!\\"$&'()%2A+,-.;=_`{}~/"
+[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
+  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\\\]^_%60%7B|%7D~" but got "foo://host/ !\\"$%&'()*+,-./:;<=>@[\\\\]^_`{|}~"
+[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> against <about:blank>
   assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
-[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~"
-[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
-[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~"
+[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
+[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
   assert_equals: host expected "host" but got ""
-[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> against <about:blank>
+[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> against <about:blank>
 [FAIL] Parsing: <abc:rootless> against <abc://host/path>
   assert_equals: href expected "abc:rootless" but got "abc://host/rootless"
 [FAIL] Parsing: <abc:rootless> against <abc:/path>
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/url/a-element_include=file-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/url/a-element_include=file-expected.txt
index fb4fffb8..ca72a5a 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/url/a-element_include=file-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/url/a-element_include=file-expected.txt
@@ -7,16 +7,16 @@
 [PASS] Parsing: <file://example:test/> against <about:blank>
 [PASS] Parsing: <file://example%/> against <about:blank>
 [PASS] Parsing: <file://[example]/> against <about:blank>
-[FAIL] Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///C:/foo/bar.html"
-[FAIL] Parsing: <  File:c|////foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <  File:c|////foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///C:////foo/bar.html"
 [PASS] Parsing: <C|/foo/bar> against <file:///tmp/mock/path>
-[PASS] Parsing: </C|\foo\bar> against <file:///tmp/mock/path>
+[PASS] Parsing: </C|\\foo\\bar> against <file:///tmp/mock/path>
 [PASS] Parsing: <//C|/foo/bar> against <file:///tmp/mock/path>
 [PASS] Parsing: <//server/file> against <file:///tmp/mock/path>
-[PASS] Parsing: <\\server\file> against <file:///tmp/mock/path>
-[PASS] Parsing: </\server/file> against <file:///tmp/mock/path>
+[PASS] Parsing: <\\\\server\\file> against <file:///tmp/mock/path>
+[PASS] Parsing: </\\server/file> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///home/me> against <file:///tmp/mock/path>
 [PASS] Parsing: <//> against <file:///tmp/mock/path>
@@ -64,26 +64,26 @@
 [PASS] Parsing: <file:?x> against <file:///test?test#test>
 [PASS] Parsing: <#x> against <file:///test?test#test>
 [PASS] Parsing: <file:#x> against <file:///test?test#test>
-[FAIL] Parsing: <file:\\//> against <about:blank>
+[FAIL] Parsing: <file:\\\\//> against <about:blank>
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\> against <about:blank>
+[FAIL] Parsing: <file:\\\\\\\\> against <about:blank>
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\?fox> against <about:blank>
-  assert_equals: href expected "file:////?fox" but got "file:\\\\\\\\?fox"
-[FAIL] Parsing: <file:\\\\#guppy> against <about:blank>
-  assert_equals: href expected "file:////#guppy" but got "file:\\\\\\\\#guppy"
+[FAIL] Parsing: <file:\\\\\\\\?fox> against <about:blank>
+  assert_equals: href expected "file:////?fox" but got "file:\\\\\\\\\\\\\\\\?fox"
+[FAIL] Parsing: <file:\\\\\\\\#guppy> against <about:blank>
+  assert_equals: href expected "file:////#guppy" but got "file:\\\\\\\\\\\\\\\\#guppy"
 [PASS] Parsing: <file://spider///> against <about:blank>
-[FAIL] Parsing: <file:\\localhost//> against <about:blank>
+[FAIL] Parsing: <file:\\\\localhost//> against <about:blank>
   assert_equals: href expected "file:////" but got "file://localhost//"
 [PASS] Parsing: <file:///localhost//cat> against <about:blank>
-[FAIL] Parsing: <file://\/localhost//cat> against <about:blank>
+[FAIL] Parsing: <file://\\/localhost//cat> against <about:blank>
   assert_equals: href expected "file:////localhost//cat" but got "file://localhost//cat"
 [FAIL] Parsing: <file://localhost//a//../..//> against <about:blank>
   assert_equals: href expected "file://///" but got "file://localhost///"
 [FAIL] Parsing: </////mouse> against <file:///elephant>
   assert_equals: href expected "file://///mouse" but got "file://mouse/"
-[PASS] Parsing: <\//pig> against <file://lion/>
-[FAIL] Parsing: <\/localhost//pig> against <file://lion/>
+[PASS] Parsing: <\\//pig> against <file://lion/>
+[FAIL] Parsing: <\\/localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
 [FAIL] Parsing: <//localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
@@ -103,7 +103,7 @@
   assert_equals: href expected "file://host/C:/" but got "file:///C:/"
 [FAIL] Parsing: <C|\n/> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file:///C:/"
-[FAIL] Parsing: <C|\> against <file://host/dir/file>
+[FAIL] Parsing: <C|\\> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file:///C:/"
 [PASS] Parsing: <C> against <file://host/dir/file>
 [FAIL] Parsing: <C|a> against <file://host/dir/file>
@@ -112,7 +112,7 @@
   assert_equals: href expected "file:///c:/foo/bar" but got "file:///C:/foo/bar"
 [FAIL] Parsing: </c|/foo/bar> against <file:///c:/baz/qux>
   assert_equals: href expected "file:///c:/foo/bar" but got "file:///C:/foo/bar"
-[FAIL] Parsing: <file:\c:\foo\bar> against <file:///c:/baz/qux>
+[FAIL] Parsing: <file:\\c:\\foo\\bar> against <file:///c:/baz/qux>
   assert_equals: href expected "file:///c:/foo/bar" but got "file:///C:/foo/bar"
 [FAIL] Parsing: </c:/foo/bar> against <file://host/path>
   assert_equals: href expected "file://host/c:/foo/bar" but got "file:///C:/foo/bar"
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/url/failure-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/url/failure-expected.txt
index 765107d..d24faf04e 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/url/failure-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/url/failure-expected.txt
@@ -280,16 +280,16 @@
   assert_throws_dom: function "() => frame.contentWindow.location = test.input" did not throw
 [FAIL] window.open(): sc://a[b/ should throw
   assert_throws_dom: function "() => self.open(test.input).close()" did not throw
-[FAIL] URL's constructor's base argument: sc://a\b/ should throw
+[FAIL] URL's constructor's base argument: sc://a\\b/ should throw
   assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
-[FAIL] URL's href: sc://a\b/ should throw
+[FAIL] URL's href: sc://a\\b/ should throw
   assert_throws_js: function "() => url.href = test.input" did not throw
-[FAIL] XHR: sc://a\b/ should throw
+[FAIL] XHR: sc://a\\b/ should throw
   assert_throws_dom: function "() => client.open("GET", test.input)" did not throw
-[PASS] sendBeacon(): sc://a\b/ should throw
-[FAIL] Location's href: sc://a\b/ should throw
+[PASS] sendBeacon(): sc://a\\b/ should throw
+[FAIL] Location's href: sc://a\\b/ should throw
   assert_throws_dom: function "() => frame.contentWindow.location = test.input" did not throw
-[FAIL] window.open(): sc://a\b/ should throw
+[FAIL] window.open(): sc://a\\b/ should throw
   assert_throws_dom: function "() => self.open(test.input).close()" did not throw
 [FAIL] URL's constructor's base argument: sc://a]b/ should throw
   assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
@@ -923,13 +923,13 @@
   assert_throws_dom: function "() => frame.contentWindow.location = test.input" did not throw
 [FAIL] window.open(): asdf://%43|/ should throw
   assert_throws_dom: function "() => self.open(test.input).close()" did not throw
-[FAIL] URL's constructor's base argument: \\\.\Y: should throw
+[FAIL] URL's constructor's base argument: \\\\\\.\\Y: should throw
   assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
-[FAIL] URL's href: \\\.\Y: should throw
+[FAIL] URL's href: \\\\\\.\\Y: should throw
   assert_throws_js: function "() => url.href = test.input" did not throw
-[FAIL] URL's constructor's base argument: \\\.\y: should throw
+[FAIL] URL's constructor's base argument: \\\\\\.\\y: should throw
   assert_throws_js: function "() => new URL("about:blank", test.input)" did not throw
-[FAIL] URL's href: \\\.\y: should throw
+[FAIL] URL's href: \\\\\\.\\y: should throw
   assert_throws_js: function "() => url.href = test.input" did not throw
 [PASS] URL's constructor's base argument: https://[0::0::0] should throw
 [PASS] URL's href: https://[0::0::0] should throw
diff --git "a/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
index a5af8f3e..cb209c4 100644
--- "a/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -31,22 +31,22 @@
 [PASS] Parsing: <> against <http://example.org/foo/bar>
 [PASS] Parsing: <  	> against <http://example.org/foo/bar>
 [PASS] Parsing: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:> against <http://example.org/foo/bar>
 [PASS] Parsing: <:a> against <http://example.org/foo/bar>
 [PASS] Parsing: <:/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#/> against <http://example.org/foo/bar>
-[PASS] Parsing: <#\> against <http://example.org/foo/bar>
+[PASS] Parsing: <#\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <#;?> against <http://example.org/foo/bar>
 [PASS] Parsing: <?> against <http://example.org/foo/bar>
 [PASS] Parsing: </> against <http://example.org/foo/bar>
 [PASS] Parsing: <:23> against <http://example.org/foo/bar>
 [PASS] Parsing: </:23> against <http://example.org/foo/bar>
-[PASS] Parsing: <\x> against <http://example.org/foo/bar>
-[FAIL] Parsing: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Parsing: <\\x> against <http://example.org/foo/bar>
+[FAIL] Parsing: <\\\\x\\hello> against <http://example.org/foo/bar>
   assert_equals: href expected "http://x/hello" but got "file://x/hello"
 [PASS] Parsing: <::> against <http://example.org/foo/bar>
 [PASS] Parsing: <::23> against <http://example.org/foo/bar>
@@ -57,9 +57,9 @@
 [PASS] Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
 [FAIL] Parsing: <foo://///////> against <http://example.org/foo/bar>
@@ -143,7 +143,7 @@
 [PASS] Parsing: <http://example.com/(%28:%3A%29)> without base
 [PASS] Parsing: <http://example.com/%3A%3a%3C%3c> without base
 [PASS] Parsing: <http://example.com/foo	bar> without base
-[PASS] Parsing: <http://example.com\\foo\\bar> without base
+[PASS] Parsing: <http://example.com\\\\foo\\\\bar> without base
 [PASS] Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> without base
 [PASS] Parsing: <http://example.com/@asdf%40> without base
 [PASS] Parsing: <http://example.com/你好你好> without base
@@ -160,7 +160,7 @@
 [PASS] Parsing: <http://www/foo/%2E/html> without base
 [PASS] Parsing: <http://user:pass@/> without base
 [PASS] Parsing: <http://%25DOMAIN:foobar@foodomain.com/> without base
-[PASS] Parsing: <http:\\www.google.com\foo> without base
+[PASS] Parsing: <http:\\\\www.google.com\\foo> without base
 [PASS] Parsing: <http://foo:80/> without base
 [PASS] Parsing: <http://foo:81/> without base
 [FAIL] Parsing: <httpa://foo:80/> without base
@@ -375,7 +375,7 @@
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <x> against <sc://ñ>
   Failed to construct 'URL': Invalid URL
-[PASS] Parsing: <sc:\../> without base
+[PASS] Parsing: <sc:\\../> without base
 [PASS] Parsing: <sc::a@example.net> without base
 [PASS] Parsing: <wow:%NBD> without base
 [PASS] Parsing: <wow:%1G> without base
@@ -391,7 +391,7 @@
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <sc://a[b/> without base
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
-[FAIL] Parsing: <sc://a\b/> without base
+[FAIL] Parsing: <sc://a\\b/> without base
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <sc://a]b/> without base
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
@@ -495,9 +495,9 @@
 [PASS] Parsing: <http://ho%7Cst/> without base
 [PASS] Parsing: <http://ho%7Fst/> without base
 [FAIL] Parsing: <http://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: href expected "http://!\"$&'()*+,-.;=_`{}~/" but got "http://!\"$&'()%2A+,-.;=_`{}~/"
+  assert_equals: href expected "http://!\\"$&'()*+,-.;=_`{}~/" but got "http://!\\"$&'()%2A+,-.;=_`{}~/"
 [FAIL] Parsing: <sc://!"$%&'()*+,-.;=_`{}~/> without base
-  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\\"$%&'()*+,-.;=_`{}~" but got ""
 [PASS] Parsing: <ftp://example.com%80/> without base
 [PASS] Parsing: <ftp://example.com%A0/> without base
 [PASS] Parsing: <https://example.com%80/> without base
@@ -543,9 +543,9 @@
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <asdf://%43%7C/> without base
   assert_equals: host expected "%43%7C" but got ""
-[FAIL] Parsing: <\\\.\Y:> without base
+[FAIL] Parsing: <\\\\\\.\\Y:> without base
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
-[FAIL] Parsing: <\\\.\y:> without base
+[FAIL] Parsing: <\\\\\\.\\y:> without base
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [PASS] Parsing: <http://[1:0::]> against <http://example.net/>
 [PASS] Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/>
@@ -691,28 +691,28 @@
 [PASS] Parsing: <non-special:cannot-be-a-base-url-\0~€> without base
 [PASS] Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> without base
 [PASS] Parsing: <https://user:pass[@foo/bar> against <http://example.org>
-[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> without base
-  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> without base
+  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\\"$%&'()*+,-.;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> without base
   assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
-[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> without base
-  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> without base
+  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\\"$%&'()*+,-.:;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> without base
   assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
 [FAIL] Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> without base
-  assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "!\\"$%&'()*+,-.;=_`{}~" but got ""
 [FAIL] Parsing: <wss://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: href expected "wss://!\"$&'()*+,-.;=_`{}~/" but got "wss://!\"$&'()%2A+,-.;=_`{}~/"
-[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
-  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
-[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
+  assert_equals: href expected "wss://!\\"$&'()*+,-.;=_`{}~/" but got "wss://!\\"$&'()%2A+,-.;=_`{}~/"
+[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
+  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\\\]^_%60%7B|%7D~" but got "foo://host/ !\\"$%&'()*+,-./:;<=>@[\\\\]^_`{|}~"
+[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
   assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
-[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~"
-[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
+[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~"
+[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
   assert_equals: host expected "host" but got ""
-[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
+[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
 [FAIL] Parsing: <abc:rootless> against <abc://host/path>
   assert_equals: href expected "abc:rootless" but got "abc://host/rootless"
 [FAIL] Parsing: <abc:rootless> against <abc:/path>
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any.worker_include=file-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any.worker_include=file-expected.txt
index 38176625..59af9a7 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any.worker_include=file-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any.worker_include=file-expected.txt
@@ -7,16 +7,16 @@
 [PASS] Parsing: <file://example:test/> without base
 [PASS] Parsing: <file://example%/> without base
 [PASS] Parsing: <file://[example]/> without base
-[FAIL] Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///C:/foo/bar.html"
-[FAIL] Parsing: <  File:c|////foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <  File:c|////foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///C:////foo/bar.html"
 [PASS] Parsing: <C|/foo/bar> against <file:///tmp/mock/path>
-[PASS] Parsing: </C|\foo\bar> against <file:///tmp/mock/path>
+[PASS] Parsing: </C|\\foo\\bar> against <file:///tmp/mock/path>
 [PASS] Parsing: <//C|/foo/bar> against <file:///tmp/mock/path>
 [PASS] Parsing: <//server/file> against <file:///tmp/mock/path>
-[PASS] Parsing: <\\server\file> against <file:///tmp/mock/path>
-[PASS] Parsing: </\server/file> against <file:///tmp/mock/path>
+[PASS] Parsing: <\\\\server\\file> against <file:///tmp/mock/path>
+[PASS] Parsing: </\\server/file> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///home/me> against <file:///tmp/mock/path>
 [PASS] Parsing: <//> against <file:///tmp/mock/path>
@@ -64,26 +64,26 @@
 [PASS] Parsing: <file:?x> against <file:///test?test#test>
 [PASS] Parsing: <#x> against <file:///test?test#test>
 [PASS] Parsing: <file:#x> against <file:///test?test#test>
-[FAIL] Parsing: <file:\\//> without base
+[FAIL] Parsing: <file:\\\\//> without base
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\> without base
+[FAIL] Parsing: <file:\\\\\\\\> without base
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\?fox> without base
+[FAIL] Parsing: <file:\\\\\\\\?fox> without base
   Failed to construct 'URL': Invalid URL
-[FAIL] Parsing: <file:\\\\#guppy> without base
+[FAIL] Parsing: <file:\\\\\\\\#guppy> without base
   Failed to construct 'URL': Invalid URL
 [PASS] Parsing: <file://spider///> without base
-[FAIL] Parsing: <file:\\localhost//> without base
+[FAIL] Parsing: <file:\\\\localhost//> without base
   assert_equals: href expected "file:////" but got "file://localhost//"
 [PASS] Parsing: <file:///localhost//cat> without base
-[FAIL] Parsing: <file://\/localhost//cat> without base
+[FAIL] Parsing: <file://\\/localhost//cat> without base
   assert_equals: href expected "file:////localhost//cat" but got "file://localhost//cat"
 [FAIL] Parsing: <file://localhost//a//../..//> without base
   assert_equals: href expected "file://///" but got "file://localhost///"
 [FAIL] Parsing: </////mouse> against <file:///elephant>
   assert_equals: href expected "file://///mouse" but got "file://mouse/"
-[PASS] Parsing: <\//pig> against <file://lion/>
-[FAIL] Parsing: <\/localhost//pig> against <file://lion/>
+[PASS] Parsing: <\\//pig> against <file://lion/>
+[FAIL] Parsing: <\\/localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
 [FAIL] Parsing: <//localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
@@ -103,7 +103,7 @@
   assert_equals: href expected "file://host/C:/" but got "file:///C:/"
 [FAIL] Parsing: <C|\n/> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file:///C:/"
-[FAIL] Parsing: <C|\> against <file://host/dir/file>
+[FAIL] Parsing: <C|\\> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file:///C:/"
 [PASS] Parsing: <C> against <file://host/dir/file>
 [FAIL] Parsing: <C|a> against <file://host/dir/file>
@@ -112,7 +112,7 @@
   assert_equals: href expected "file:///c:/foo/bar" but got "file:///C:/foo/bar"
 [FAIL] Parsing: </c|/foo/bar> against <file:///c:/baz/qux>
   assert_equals: href expected "file:///c:/foo/bar" but got "file:///C:/foo/bar"
-[FAIL] Parsing: <file:\c:\foo\bar> against <file:///c:/baz/qux>
+[FAIL] Parsing: <file:\\c:\\foo\\bar> against <file:///c:/baz/qux>
   assert_equals: href expected "file:///c:/foo/bar" but got "file:///C:/foo/bar"
 [FAIL] Parsing: </c:/foo/bar> against <file://host/path>
   assert_equals: href expected "file://host/c:/foo/bar" but got "file:///C:/foo/bar"
diff --git "a/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
index a5af8f3e..cb209c4 100644
--- "a/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -31,22 +31,22 @@
 [PASS] Parsing: <> against <http://example.org/foo/bar>
 [PASS] Parsing: <  	> against <http://example.org/foo/bar>
 [PASS] Parsing: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:> against <http://example.org/foo/bar>
 [PASS] Parsing: <:a> against <http://example.org/foo/bar>
 [PASS] Parsing: <:/> against <http://example.org/foo/bar>
-[PASS] Parsing: <:\> against <http://example.org/foo/bar>
+[PASS] Parsing: <:\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <:#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#> against <http://example.org/foo/bar>
 [PASS] Parsing: <#/> against <http://example.org/foo/bar>
-[PASS] Parsing: <#\> against <http://example.org/foo/bar>
+[PASS] Parsing: <#\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <#;?> against <http://example.org/foo/bar>
 [PASS] Parsing: <?> against <http://example.org/foo/bar>
 [PASS] Parsing: </> against <http://example.org/foo/bar>
 [PASS] Parsing: <:23> against <http://example.org/foo/bar>
 [PASS] Parsing: </:23> against <http://example.org/foo/bar>
-[PASS] Parsing: <\x> against <http://example.org/foo/bar>
-[FAIL] Parsing: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Parsing: <\\x> against <http://example.org/foo/bar>
+[FAIL] Parsing: <\\\\x\\hello> against <http://example.org/foo/bar>
   assert_equals: href expected "http://x/hello" but got "file://x/hello"
 [PASS] Parsing: <::> against <http://example.org/foo/bar>
 [PASS] Parsing: <::23> against <http://example.org/foo/bar>
@@ -57,9 +57,9 @@
 [PASS] Parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Parsing: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/> against <http://example.org/foo/bar>
 [PASS] Parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
 [FAIL] Parsing: <foo://///////> against <http://example.org/foo/bar>
@@ -143,7 +143,7 @@
 [PASS] Parsing: <http://example.com/(%28:%3A%29)> without base
 [PASS] Parsing: <http://example.com/%3A%3a%3C%3c> without base
 [PASS] Parsing: <http://example.com/foo	bar> without base
-[PASS] Parsing: <http://example.com\\foo\\bar> without base
+[PASS] Parsing: <http://example.com\\\\foo\\\\bar> without base
 [PASS] Parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> without base
 [PASS] Parsing: <http://example.com/@asdf%40> without base
 [PASS] Parsing: <http://example.com/你好你好> without base
@@ -160,7 +160,7 @@
 [PASS] Parsing: <http://www/foo/%2E/html> without base
 [PASS] Parsing: <http://user:pass@/> without base
 [PASS] Parsing: <http://%25DOMAIN:foobar@foodomain.com/> without base
-[PASS] Parsing: <http:\\www.google.com\foo> without base
+[PASS] Parsing: <http:\\\\www.google.com\\foo> without base
 [PASS] Parsing: <http://foo:80/> without base
 [PASS] Parsing: <http://foo:81/> without base
 [FAIL] Parsing: <httpa://foo:80/> without base
@@ -375,7 +375,7 @@
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <x> against <sc://ñ>
   Failed to construct 'URL': Invalid URL
-[PASS] Parsing: <sc:\../> without base
+[PASS] Parsing: <sc:\\../> without base
 [PASS] Parsing: <sc::a@example.net> without base
 [PASS] Parsing: <wow:%NBD> without base
 [PASS] Parsing: <wow:%1G> without base
@@ -391,7 +391,7 @@
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <sc://a[b/> without base
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
-[FAIL] Parsing: <sc://a\b/> without base
+[FAIL] Parsing: <sc://a\\b/> without base
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <sc://a]b/> without base
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
@@ -495,9 +495,9 @@
 [PASS] Parsing: <http://ho%7Cst/> without base
 [PASS] Parsing: <http://ho%7Fst/> without base
 [FAIL] Parsing: <http://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: href expected "http://!\"$&'()*+,-.;=_`{}~/" but got "http://!\"$&'()%2A+,-.;=_`{}~/"
+  assert_equals: href expected "http://!\\"$&'()*+,-.;=_`{}~/" but got "http://!\\"$&'()%2A+,-.;=_`{}~/"
 [FAIL] Parsing: <sc://!"$%&'()*+,-.;=_`{}~/> without base
-  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "%01%02%03%04%05%06%07%08%0B%0C%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%7F!\\"$%&'()*+,-.;=_`{}~" but got ""
 [PASS] Parsing: <ftp://example.com%80/> without base
 [PASS] Parsing: <ftp://example.com%A0/> without base
 [PASS] Parsing: <https://example.com%80/> without base
@@ -543,9 +543,9 @@
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [FAIL] Parsing: <asdf://%43%7C/> without base
   assert_equals: host expected "%43%7C" but got ""
-[FAIL] Parsing: <\\\.\Y:> without base
+[FAIL] Parsing: <\\\\\\.\\Y:> without base
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
-[FAIL] Parsing: <\\\.\y:> without base
+[FAIL] Parsing: <\\\\\\.\\y:> without base
   assert_throws_js: function "function() {\n          new URL(expected.input, base);\n        }" did not throw
 [PASS] Parsing: <http://[1:0::]> against <http://example.net/>
 [PASS] Parsing: <http://[0:1:2:3:4:5:6:7:8]> against <http://example.net/>
@@ -691,28 +691,28 @@
 [PASS] Parsing: <non-special:cannot-be-a-base-url-\0~€> without base
 [PASS] Parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> without base
 [PASS] Parsing: <https://user:pass[@foo/bar> against <http://example.org>
-[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> without base
-  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> without base
+  assert_equals: href expected "foo://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo:// !\\"$%&'()*+,-.;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> without base
   assert_equals: href expected "wss://%20!%22$%&'()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://%20!%22$%&%27()*+,-.%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
-[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> without base
-  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/"
+[FAIL] Parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> without base
+  assert_equals: href expected "foo://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5C%5D%5E_%60%7B%7C%7D~@host/" but got "foo://joe: !\\"$%&'()*+,-.:;<=>@[\\\\]^_`{|}~@host/"
 [FAIL] Parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> without base
   assert_equals: href expected "wss://joe:%20!%22$%&'()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/" but got "wss://joe:%20!%22$%&%27()*+,-.%3A%3B%3C%3D%3E%40%5B%5D%5E_%60%7B%7C%7D~@host/"
 [FAIL] Parsing: <foo://!"$%&'()*+,-.;=_`{}~/> without base
-  assert_equals: host expected "!\"$%&'()*+,-.;=_`{}~" but got ""
+  assert_equals: host expected "!\\"$%&'()*+,-.;=_`{}~" but got ""
 [FAIL] Parsing: <wss://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: href expected "wss://!\"$&'()*+,-.;=_`{}~/" but got "wss://!\"$&'()%2A+,-.;=_`{}~/"
-[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
-  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\]^_%60%7B|%7D~" but got "foo://host/ !\"$%&'()*+,-./:;<=>@[\\]^_`{|}~"
-[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
+  assert_equals: href expected "wss://!\\"$&'()*+,-.;=_`{}~/" but got "wss://!\\"$&'()%2A+,-.;=_`{}~/"
+[FAIL] Parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
+  assert_equals: href expected "foo://host/%20!%22$%&'()*+,-./:;%3C=%3E@[\\\\]^_%60%7B|%7D~" but got "foo://host/ !\\"$%&'()*+,-./:;<=>@[\\\\]^_`{|}~"
+[FAIL] Parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
   assert_equals: href expected "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]^_%60%7B|%7D~" but got "wss://host/%20!%22$%&'()*+,-./:;%3C=%3E@[/]%5E_%60%7B%7C%7D~"
-[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\]^_`{|}~"
-[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
+[FAIL] Parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+  assert_equals: href expected "foo://host/dir/?%20!%22$%&'()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~" but got "foo://host/dir/?%20!%22$%&%27()*+,-./:;%3C=%3E?@[\\\\]^_`{|}~"
+[PASS] Parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[FAIL] Parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
   assert_equals: host expected "host" but got ""
-[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
+[PASS] Parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
 [FAIL] Parsing: <abc:rootless> against <abc://host/path>
   assert_equals: href expected "abc:rootless" but got "abc://host/rootless"
 [FAIL] Parsing: <abc:rootless> against <abc:/path>
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any_include=file-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any_include=file-expected.txt
index 38176625..59af9a7 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any_include=file-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any_include=file-expected.txt
@@ -7,16 +7,16 @@
 [PASS] Parsing: <file://example:test/> without base
 [PASS] Parsing: <file://example%/> without base
 [PASS] Parsing: <file://[example]/> without base
-[FAIL] Parsing: <file:c:\foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///C:/foo/bar.html"
-[FAIL] Parsing: <  File:c|////foo\bar.html> against <file:///tmp/mock/path>
+[FAIL] Parsing: <  File:c|////foo\\bar.html> against <file:///tmp/mock/path>
   assert_equals: href expected "file:///c:////foo/bar.html" but got "file:///C:////foo/bar.html"
 [PASS] Parsing: <C|/foo/bar> against <file:///tmp/mock/path>
-[PASS] Parsing: </C|\foo\bar> against <file:///tmp/mock/path>
+[PASS] Parsing: </C|\\foo\\bar> against <file:///tmp/mock/path>
 [PASS] Parsing: <//C|/foo/bar> against <file:///tmp/mock/path>
 [PASS] Parsing: <//server/file> against <file:///tmp/mock/path>
-[PASS] Parsing: <\\server\file> against <file:///tmp/mock/path>
-[PASS] Parsing: </\server/file> against <file:///tmp/mock/path>
+[PASS] Parsing: <\\\\server\\file> against <file:///tmp/mock/path>
+[PASS] Parsing: </\\server/file> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///foo/bar.txt> against <file:///tmp/mock/path>
 [PASS] Parsing: <file:///home/me> against <file:///tmp/mock/path>
 [PASS] Parsing: <//> against <file:///tmp/mock/path>
@@ -64,26 +64,26 @@
 [PASS] Parsing: <file:?x> against <file:///test?test#test>
 [PASS] Parsing: <#x> against <file:///test?test#test>
 [PASS] Parsing: <file:#x> against <file:///test?test#test>
-[FAIL] Parsing: <file:\\//> without base
+[FAIL] Parsing: <file:\\\\//> without base
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\> without base
+[FAIL] Parsing: <file:\\\\\\\\> without base
   assert_equals: href expected "file:////" but got "file:///"
-[FAIL] Parsing: <file:\\\\?fox> without base
+[FAIL] Parsing: <file:\\\\\\\\?fox> without base
   Failed to construct 'URL': Invalid URL
-[FAIL] Parsing: <file:\\\\#guppy> without base
+[FAIL] Parsing: <file:\\\\\\\\#guppy> without base
   Failed to construct 'URL': Invalid URL
 [PASS] Parsing: <file://spider///> without base
-[FAIL] Parsing: <file:\\localhost//> without base
+[FAIL] Parsing: <file:\\\\localhost//> without base
   assert_equals: href expected "file:////" but got "file://localhost//"
 [PASS] Parsing: <file:///localhost//cat> without base
-[FAIL] Parsing: <file://\/localhost//cat> without base
+[FAIL] Parsing: <file://\\/localhost//cat> without base
   assert_equals: href expected "file:////localhost//cat" but got "file://localhost//cat"
 [FAIL] Parsing: <file://localhost//a//../..//> without base
   assert_equals: href expected "file://///" but got "file://localhost///"
 [FAIL] Parsing: </////mouse> against <file:///elephant>
   assert_equals: href expected "file://///mouse" but got "file://mouse/"
-[PASS] Parsing: <\//pig> against <file://lion/>
-[FAIL] Parsing: <\/localhost//pig> against <file://lion/>
+[PASS] Parsing: <\\//pig> against <file://lion/>
+[FAIL] Parsing: <\\/localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
 [FAIL] Parsing: <//localhost//pig> against <file://lion/>
   assert_equals: href expected "file:////pig" but got "file://localhost//pig"
@@ -103,7 +103,7 @@
   assert_equals: href expected "file://host/C:/" but got "file:///C:/"
 [FAIL] Parsing: <C|\n/> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file:///C:/"
-[FAIL] Parsing: <C|\> against <file://host/dir/file>
+[FAIL] Parsing: <C|\\> against <file://host/dir/file>
   assert_equals: href expected "file://host/C:/" but got "file:///C:/"
 [PASS] Parsing: <C> against <file://host/dir/file>
 [FAIL] Parsing: <C|a> against <file://host/dir/file>
@@ -112,7 +112,7 @@
   assert_equals: href expected "file:///c:/foo/bar" but got "file:///C:/foo/bar"
 [FAIL] Parsing: </c|/foo/bar> against <file:///c:/baz/qux>
   assert_equals: href expected "file:///c:/foo/bar" but got "file:///C:/foo/bar"
-[FAIL] Parsing: <file:\c:\foo\bar> against <file:///c:/baz/qux>
+[FAIL] Parsing: <file:\\c:\\foo\\bar> against <file:///c:/baz/qux>
   assert_equals: href expected "file:///c:/foo/bar" but got "file:///C:/foo/bar"
 [FAIL] Parsing: </c:/foo/bar> against <file://host/path>
   assert_equals: href expected "file://host/c:/foo/bar" but got "file:///C:/foo/bar"
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/url/url-origin.any-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/url/url-origin.any-expected.txt
index cfd4373..c343114 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/url/url-origin.any-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/url/url-origin.any-expected.txt
@@ -21,22 +21,22 @@
 [PASS] Origin parsing: <> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <  	> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:a> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <:\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <:\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:#> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <#> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <#/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <#\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <#\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <#;?> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <?> against <http://example.org/foo/bar>
 [PASS] Origin parsing: </> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:23> against <http://example.org/foo/bar>
 [PASS] Origin parsing: </:23> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <\x> against <http://example.org/foo/bar>
-[FAIL] Origin parsing: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <\\x> against <http://example.org/foo/bar>
+[FAIL] Origin parsing: <\\\\x\\hello> against <http://example.org/foo/bar>
   assert_equals: origin expected "http://x" but got "file://"
 [PASS] Origin parsing: <::> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <::23> against <http://example.org/foo/bar>
@@ -46,9 +46,9 @@
 [PASS] Origin parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <foo:/> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <foo://///////> against <http://example.org/foo/bar>
@@ -125,7 +125,7 @@
 [PASS] Origin parsing: <http://example.com/(%28:%3A%29)> without base
 [PASS] Origin parsing: <http://example.com/%3A%3a%3C%3c> without base
 [PASS] Origin parsing: <http://example.com/foo	bar> without base
-[PASS] Origin parsing: <http://example.com\\foo\\bar> without base
+[PASS] Origin parsing: <http://example.com\\\\foo\\\\bar> without base
 [PASS] Origin parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> without base
 [PASS] Origin parsing: <http://example.com/@asdf%40> without base
 [PASS] Origin parsing: <http://example.com/你好你好> without base
@@ -140,7 +140,7 @@
 [PASS] Origin parsing: <http://www/foo%2Ehtml> without base
 [PASS] Origin parsing: <http://www/foo/%2E/html> without base
 [PASS] Origin parsing: <http://%25DOMAIN:foobar@foodomain.com/> without base
-[PASS] Origin parsing: <http:\\www.google.com\foo> without base
+[PASS] Origin parsing: <http:\\\\www.google.com\\foo> without base
 [PASS] Origin parsing: <http://foo:80/> without base
 [PASS] Origin parsing: <http://foo:81/> without base
 [PASS] Origin parsing: <httpa://foo:80/> without base
@@ -262,14 +262,14 @@
 [PASS] Origin parsing: <sc://ñ.test/> without base
 [FAIL] Origin parsing: <x> against <sc://ñ>
   Failed to construct 'URL': Invalid URL
-[PASS] Origin parsing: <sc:\../> without base
+[PASS] Origin parsing: <sc:\\../> without base
 [PASS] Origin parsing: <sc::a@example.net> without base
 [PASS] Origin parsing: <wow:%NBD> without base
 [PASS] Origin parsing: <wow:%1G> without base
 [PASS] Origin parsing: <wow:￿> without base
 [PASS] Origin parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> without base
 [FAIL] Origin parsing: <http://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: origin expected "http://!\"$&'()*+,-.;=_`{}~" but got "http://!\"$&'()%2A+,-.;=_`{}~"
+  assert_equals: origin expected "http://!\\"$&'()*+,-.;=_`{}~" but got "http://!\\"$&'()%2A+,-.;=_`{}~"
 [PASS] Origin parsing: <sc://!"$%&'()*+,-.;=_`{}~/> without base
 [PASS] Origin parsing: <ftp://%e2%98%83> without base
 [PASS] Origin parsing: <https://%e2%98%83> without base
@@ -338,19 +338,19 @@
 [PASS] Origin parsing: <non-special:cannot-be-a-base-url-\0~€> without base
 [PASS] Origin parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> without base
 [PASS] Origin parsing: <https://user:pass[@foo/bar> against <http://example.org>
-[PASS] Origin parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> without base
+[PASS] Origin parsing: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> without base
 [PASS] Origin parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> without base
-[PASS] Origin parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> without base
+[PASS] Origin parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> without base
 [PASS] Origin parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> without base
 [PASS] Origin parsing: <foo://!"$%&'()*+,-.;=_`{}~/> without base
 [FAIL] Origin parsing: <wss://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: origin expected "wss://!\"$&'()*+,-.;=_`{}~" but got "wss://!\"$&'()%2A+,-.;=_`{}~"
-[PASS] Origin parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
-[PASS] Origin parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
-[PASS] Origin parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[PASS] Origin parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[PASS] Origin parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[PASS] Origin parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
+  assert_equals: origin expected "wss://!\\"$&'()*+,-.;=_`{}~" but got "wss://!\\"$&'()%2A+,-.;=_`{}~"
+[PASS] Origin parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
 [PASS] Origin parsing: <https://example.com/"quoted"> without base
 [PASS] Origin parsing: <https://a%C2%ADb/> without base
 [PASS] Origin parsing: <data://example.com:8080/pathname?search#hash> without base
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/url/url-origin.any.worker-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/url/url-origin.any.worker-expected.txt
index cfd4373..c343114 100644
--- a/third_party/blink/web_tests/platform/win/external/wpt/url/url-origin.any.worker-expected.txt
+++ b/third_party/blink/web_tests/platform/win/external/wpt/url/url-origin.any.worker-expected.txt
@@ -21,22 +21,22 @@
 [PASS] Origin parsing: <> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <  	> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:foo.com/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <:foo.com\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <:foo.com\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:a> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <:\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <:\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:#> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <#> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <#/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <#\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <#\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <#;?> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <?> against <http://example.org/foo/bar>
 [PASS] Origin parsing: </> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <:23> against <http://example.org/foo/bar>
 [PASS] Origin parsing: </:23> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <\x> against <http://example.org/foo/bar>
-[FAIL] Origin parsing: <\\x\hello> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <\\x> against <http://example.org/foo/bar>
+[FAIL] Origin parsing: <\\\\x\\hello> against <http://example.org/foo/bar>
   assert_equals: origin expected "http://x" but got "file://"
 [PASS] Origin parsing: <::> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <::23> against <http://example.org/foo/bar>
@@ -46,9 +46,9 @@
 [PASS] Origin parsing: <http://&a:foo(b]c@d:2/> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <http://::@c@d:2> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <http://foo.com:b@d/> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <http://foo.com/\@> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <http:\\foo.com\> against <http://example.org/foo/bar>
-[PASS] Origin parsing: <http:\\a\b:c\d@foo.com\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <http://foo.com/\\@> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <http:\\\\foo.com\\> against <http://example.org/foo/bar>
+[PASS] Origin parsing: <http:\\\\a\\b:c\\d@foo.com\\> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <foo:/> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <foo:/bar.com/> against <http://example.org/foo/bar>
 [PASS] Origin parsing: <foo://///////> against <http://example.org/foo/bar>
@@ -125,7 +125,7 @@
 [PASS] Origin parsing: <http://example.com/(%28:%3A%29)> without base
 [PASS] Origin parsing: <http://example.com/%3A%3a%3C%3c> without base
 [PASS] Origin parsing: <http://example.com/foo	bar> without base
-[PASS] Origin parsing: <http://example.com\\foo\\bar> without base
+[PASS] Origin parsing: <http://example.com\\\\foo\\\\bar> without base
 [PASS] Origin parsing: <http://example.com/%7Ffp3%3Eju%3Dduvgw%3Dd> without base
 [PASS] Origin parsing: <http://example.com/@asdf%40> without base
 [PASS] Origin parsing: <http://example.com/你好你好> without base
@@ -140,7 +140,7 @@
 [PASS] Origin parsing: <http://www/foo%2Ehtml> without base
 [PASS] Origin parsing: <http://www/foo/%2E/html> without base
 [PASS] Origin parsing: <http://%25DOMAIN:foobar@foodomain.com/> without base
-[PASS] Origin parsing: <http:\\www.google.com\foo> without base
+[PASS] Origin parsing: <http:\\\\www.google.com\\foo> without base
 [PASS] Origin parsing: <http://foo:80/> without base
 [PASS] Origin parsing: <http://foo:81/> without base
 [PASS] Origin parsing: <httpa://foo:80/> without base
@@ -262,14 +262,14 @@
 [PASS] Origin parsing: <sc://ñ.test/> without base
 [FAIL] Origin parsing: <x> against <sc://ñ>
   Failed to construct 'URL': Invalid URL
-[PASS] Origin parsing: <sc:\../> without base
+[PASS] Origin parsing: <sc:\\../> without base
 [PASS] Origin parsing: <sc::a@example.net> without base
 [PASS] Origin parsing: <wow:%NBD> without base
 [PASS] Origin parsing: <wow:%1G> without base
 [PASS] Origin parsing: <wow:￿> without base
 [PASS] Origin parsing: <http://example.com/U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿?U+d800𐟾U+dfff﷐﷏﷯ﷰ￾￿> without base
 [FAIL] Origin parsing: <http://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: origin expected "http://!\"$&'()*+,-.;=_`{}~" but got "http://!\"$&'()%2A+,-.;=_`{}~"
+  assert_equals: origin expected "http://!\\"$&'()*+,-.;=_`{}~" but got "http://!\\"$&'()%2A+,-.;=_`{}~"
 [PASS] Origin parsing: <sc://!"$%&'()*+,-.;=_`{}~/> without base
 [PASS] Origin parsing: <ftp://%e2%98%83> without base
 [PASS] Origin parsing: <https://%e2%98%83> without base
@@ -338,19 +338,19 @@
 [PASS] Origin parsing: <non-special:cannot-be-a-base-url-\0~€> without base
 [PASS] Origin parsing: <https://www.example.com/path{path.html?query'=query#fragment<fragment> without base
 [PASS] Origin parsing: <https://user:pass[@foo/bar> against <http://example.org>
-[PASS] Origin parsing: <foo:// !"$%&'()*+,-.;<=>@[\]^_`{|}~@host/> without base
+[PASS] Origin parsing: <foo:// !"$%&'()*+,-.;<=>@[\\]^_`{|}~@host/> without base
 [PASS] Origin parsing: <wss:// !"$%&'()*+,-.;<=>@[]^_`{|}~@host/> without base
-[PASS] Origin parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\]^_`{|}~@host/> without base
+[PASS] Origin parsing: <foo://joe: !"$%&'()*+,-.:;<=>@[\\]^_`{|}~@host/> without base
 [PASS] Origin parsing: <wss://joe: !"$%&'()*+,-.:;<=>@[]^_`{|}~@host/> without base
 [PASS] Origin parsing: <foo://!"$%&'()*+,-.;=_`{}~/> without base
 [FAIL] Origin parsing: <wss://!"$&'()*+,-.;=_`{}~/> without base
-  assert_equals: origin expected "wss://!\"$&'()*+,-.;=_`{}~" but got "wss://!\"$&'()%2A+,-.;=_`{}~"
-[PASS] Origin parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
-[PASS] Origin parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\]^_`{|}~> without base
-[PASS] Origin parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[PASS] Origin parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[PASS] Origin parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
-[PASS] Origin parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~> without base
+  assert_equals: origin expected "wss://!\\"$&'()*+,-.;=_`{}~" but got "wss://!\\"$&'()%2A+,-.;=_`{}~"
+[PASS] Origin parsing: <foo://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <wss://host/ !"$%&'()*+,-./:;<=>@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <foo://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <wss://host/dir/? !"$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <foo://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
+[PASS] Origin parsing: <wss://host/dir/# !"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~> without base
 [PASS] Origin parsing: <https://example.com/"quoted"> without base
 [PASS] Origin parsing: <https://a%C2%ADb/> without base
 [PASS] Origin parsing: <data://example.com:8080/pathname?search#hash> without base
diff --git "a/third_party/blink/web_tests/platform/win/external/wpt/url/url-setters-a-area.window_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/win/external/wpt/url/url-setters-a-area.window_exclude=\050file_javascript_mailto\051-expected.txt"
index 2755da7..ce347fc 100644
--- "a/third_party/blink/web_tests/platform/win/external/wpt/url/url-setters-a-area.window_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/win/external/wpt/url/url-setters-a-area.window_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -101,9 +101,9 @@
 [PASS] <area>: Setting <http://me@example.net>.username = ''
 [PASS] <a>: Setting <http://me:secret@example.net>.username = ''
 [PASS] <area>: Setting <http://me:secret@example.net>.username = ''
-[FAIL] <a>: Setting <http://example.net>.username = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+[FAIL] <a>: Setting <http://example.net>.username = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
   assert_equals: expected "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
-[FAIL] <area>: Setting <http://example.net>.username = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+[FAIL] <area>: Setting <http://example.net>.username = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
   assert_equals: expected "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
 [PASS] <a>: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is.
 [PASS] <area>: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is.
@@ -119,9 +119,9 @@
 [PASS] <area>: Setting <http://:secret@example.net>.password = ''
 [PASS] <a>: Setting <http://me:secret@example.net>.password = ''
 [PASS] <area>: Setting <http://me:secret@example.net>.password = ''
-[FAIL] <a>: Setting <http://example.net>.password = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+[FAIL] <a>: Setting <http://example.net>.password = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
   assert_equals: expected "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://:%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
-[FAIL] <area>: Setting <http://example.net>.password = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+[FAIL] <area>: Setting <http://example.net>.password = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
   assert_equals: expected "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://:%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
 [PASS] <a>: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is.
 [PASS] <area>: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is.
@@ -213,13 +213,13 @@
 [PASS] <area>: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored
 [PASS] <a>: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored
 [PASS] <area>: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored
-[PASS] <a>: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
-[PASS] <area>: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
-[PASS] <a>: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes
-[PASS] <area>: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes
-[FAIL] <a>: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+[PASS] <a>: Setting <http://example.net/path>.host = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[PASS] <area>: Setting <http://example.net/path>.host = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[PASS] <a>: Setting <http://example.net/path>.host = 'example.com:8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[PASS] <area>: Setting <http://example.net/path>.host = 'example.com:8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[FAIL] <a>: Setting <view-source+http://example.net/path>.host = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts
   assert_equals: expected "example.net" but got ""
-[FAIL] <area>: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+[FAIL] <area>: Setting <view-source+http://example.net/path>.host = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts
   assert_equals: expected "example.net" but got ""
 [FAIL] <a>: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
   assert_equals: expected "view-source+http://example.com:8080/path" but got "view-source+http://example.net/path"
@@ -331,11 +331,11 @@
 [PASS] <area>: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored
 [PASS] <a>: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored
 [PASS] <area>: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored
-[PASS] <a>: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
-[PASS] <area>: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
-[FAIL] <a>: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+[PASS] <a>: Setting <http://example.net/path>.hostname = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[PASS] <area>: Setting <http://example.net/path>.hostname = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[FAIL] <a>: Setting <view-source+http://example.net/path>.hostname = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts
   assert_equals: expected "example.net" but got ""
-[FAIL] <area>: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+[FAIL] <area>: Setting <view-source+http://example.net/path>.hostname = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts
   assert_equals: expected "example.net" but got ""
 [PASS] <a>: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6
 [PASS] <area>: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6
@@ -395,8 +395,8 @@
 [PASS] <area>: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored
 [PASS] <a>: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored
 [PASS] <area>: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored
-[PASS] <a>: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes
-[PASS] <area>: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes
+[PASS] <a>: Setting <http://example.net/path>.port = '8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[PASS] <area>: Setting <http://example.net/path>.port = '8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes
 [FAIL] <a>: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
   assert_equals: expected "view-source+http://example.net:8080/path" but got "view-source+http://example.net/path"
 [FAIL] <area>: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
@@ -459,16 +459,16 @@
 [PASS] <area>: Setting <https://example.net#nav>.pathname = 'home'
 [PASS] <a>: Setting <https://example.net#nav>.pathname = '../home'
 [PASS] <area>: Setting <https://example.net#nav>.pathname = '../home'
-[PASS] <a>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs
-[PASS] <area>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs
-[FAIL] <a>: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs
-  assert_equals: expected "view-source+http://example.net/\\a\\%2E\\b\\%2e.\\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav"
-[FAIL] <area>: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs
-  assert_equals: expected "view-source+http://example.net/\\a\\%2E\\b\\%2e.\\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav"
-[FAIL] <a>: Setting <a:/>.pathname = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.
-  assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[/]%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9"
-[FAIL] <area>: Setting <a:/>.pathname = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.
-  assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[/]%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9"
+[PASS] <a>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs
+[PASS] <area>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs
+[FAIL] <a>: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is *not* a segment delimiter for non-'special' URLs
+  assert_equals: expected "view-source+http://example.net/\\\\a\\\\%2E\\\\b\\\\%2e.\\\\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav"
+[FAIL] <area>: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is *not* a segment delimiter for non-'special' URLs
+  assert_equals: expected "view-source+http://example.net/\\\\a\\\\%2E\\\\b\\\\%2e.\\\\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav"
+[FAIL] <a>: Setting <a:/>.pathname = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[/]%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9"
+[FAIL] <area>: Setting <a:/>.pathname = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[/]%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9"
 [FAIL] <a>: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments.
   assert_equals: expected "http://example.net/%2e%2E%c3%89t%C3%A9" but got "http://example.net/..%c3%89t%C3%A9"
 [FAIL] <area>: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments.
@@ -535,10 +535,10 @@
 [PASS] <area>: Setting <https://example.net?lang=en-US>.search = ''
 [PASS] <a>: Setting <https://example.net>.search = ''
 [PASS] <area>: Setting <https://example.net>.search = ''
-[FAIL] <a>: Setting <a:/>.search = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.
-  assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///A:/?%00%01%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
-[FAIL] <area>: Setting <a:/>.search = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.
-  assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///A:/?%00%01%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
+[FAIL] <a>: Setting <a:/>.search = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///A:/?%00%01%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
+[FAIL] <area>: Setting <a:/>.search = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///A:/?%00%01%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
 [PASS] <a>: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is
 [PASS] <area>: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is
 [PASS] <a>: Setting <data:space ?query>.search = '' Drop trailing spaces from trailing opaque paths
@@ -575,10 +575,10 @@
 [PASS] <area>: Setting <http://example.net>.hash = '#foo>bar'
 [PASS] <a>: Setting <http://example.net>.hash = '#foo`bar'
 [PASS] <area>: Setting <http://example.net>.hash = '#foo`bar'
-[FAIL] <a>: Setting <a:/>.hash = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed
-  assert_equals: expected "a:/#%00%01%1F%20!%22#$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///A:/#%00%01%1F%20!%22#$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
-[FAIL] <area>: Setting <a:/>.hash = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed
-  assert_equals: expected "a:/#%00%01%1F%20!%22#$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///A:/#%00%01%1F%20!%22#$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
+[FAIL] <a>: Setting <a:/>.hash = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed
+  assert_equals: expected "a:/#%00%01%1F%20!%22#$%&'()*+,-./09:;%3C=%3E?@AZ[\\\\]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///A:/#%00%01%1F%20!%22#$%&'()*+,-./09:;%3C=%3E?@AZ[\\\\]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
+[FAIL] <area>: Setting <a:/>.hash = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed
+  assert_equals: expected "a:/#%00%01%1F%20!%22#$%&'()*+,-./09:;%3C=%3E?@AZ[\\\\]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///A:/#%00%01%1F%20!%22#$%&'()*+,-./09:;%3C=%3E?@AZ[\\\\]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
 [PASS] <a>: Setting <http://example.net>.hash = 'a\0b' Percent-encode NULLs in fragment
 [PASS] <area>: Setting <http://example.net>.hash = 'a\0b' Percent-encode NULLs in fragment
 [PASS] <a>: Setting <non-spec:/>.hash = 'a\0b' Percent-encode NULLs in fragment
diff --git "a/third_party/blink/web_tests/platform/win/external/wpt/url/url-setters.any.worker_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/win/external/wpt/url/url-setters.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
index ce7903a2..d7a081a 100644
--- "a/third_party/blink/web_tests/platform/win/external/wpt/url/url-setters.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/win/external/wpt/url/url-setters.any.worker_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -51,7 +51,7 @@
 [PASS] URL: Setting <http://:secret@example.net>.username = 'me'
 [PASS] URL: Setting <http://me@example.net>.username = ''
 [PASS] URL: Setting <http://me:secret@example.net>.username = ''
-[FAIL] URL: Setting <http://example.net>.username = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+[FAIL] URL: Setting <http://example.net>.username = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
   assert_equals: expected "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
 [PASS] URL: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is.
 [PASS] URL: Setting <sc:///>.username = 'x'
@@ -60,7 +60,7 @@
 [PASS] URL: Setting <http://me@example.net>.password = 'secret'
 [PASS] URL: Setting <http://:secret@example.net>.password = ''
 [PASS] URL: Setting <http://me:secret@example.net>.password = ''
-[FAIL] URL: Setting <http://example.net>.password = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+[FAIL] URL: Setting <http://example.net>.password = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
   assert_equals: expected "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://:%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
 [PASS] URL: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is.
 [PASS] URL: Setting <sc:///>.password = 'x'
@@ -107,9 +107,9 @@
 [PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored
-[PASS] URL: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
-[PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes
-[FAIL] URL: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+[PASS] URL: Setting <http://example.net/path>.host = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[FAIL] URL: Setting <view-source+http://example.net/path>.host = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts
   assert_equals: expected "example.net" but got ""
 [FAIL] URL: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
   assert_equals: expected "view-source+http://example.com:8080/path" but got "view-source+http://example.net/path"
@@ -166,8 +166,8 @@
 [PASS] URL: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored
-[PASS] URL: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
-[FAIL] URL: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+[PASS] URL: Setting <http://example.net/path>.hostname = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[FAIL] URL: Setting <view-source+http://example.net/path>.hostname = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts
   assert_equals: expected "example.net" but got ""
 [PASS] URL: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6
 [PASS] URL: Setting <http://example.net/>.hostname = '[::1.2.3.4x]'
@@ -198,7 +198,7 @@
 [PASS] URL: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored
-[PASS] URL: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes
+[PASS] URL: Setting <http://example.net/path>.port = '8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes
 [FAIL] URL: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
   assert_equals: expected "view-source+http://example.net:8080/path" but got "view-source+http://example.net/path"
 [PASS] URL: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
@@ -230,11 +230,11 @@
   assert_equals: expected "unix:/var/run/bar.socket?timeout=10" but got "unix:/run/foo.socket?timeout=10"
 [PASS] URL: Setting <https://example.net#nav>.pathname = 'home'
 [PASS] URL: Setting <https://example.net#nav>.pathname = '../home'
-[PASS] URL: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs
-[FAIL] URL: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs
-  assert_equals: expected "view-source+http://example.net/\\a\\%2E\\b\\%2e.\\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav"
-[FAIL] URL: Setting <a:/>.pathname = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.
-  assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[/]%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9"
+[PASS] URL: Setting <http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs
+[FAIL] URL: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is *not* a segment delimiter for non-'special' URLs
+  assert_equals: expected "view-source+http://example.net/\\\\a\\\\%2E\\\\b\\\\%2e.\\\\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav"
+[FAIL] URL: Setting <a:/>.pathname = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[/]%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9"
 [FAIL] URL: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments.
   assert_equals: expected "http://example.net/%2e%2E%c3%89t%C3%A9" but got "http://example.net/..%c3%89t%C3%A9"
 [PASS] URL: Setting <http://example.net>.pathname = '?' ? needs to be encoded
@@ -268,8 +268,8 @@
 [PASS] URL: Setting <https://example.net?lang=en-US#nav>.search = ''
 [PASS] URL: Setting <https://example.net?lang=en-US>.search = ''
 [PASS] URL: Setting <https://example.net>.search = ''
-[FAIL] URL: Setting <a:/>.search = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.
-  assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///A:/?%00%01%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
+[FAIL] URL: Setting <a:/>.search = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///A:/?%00%01%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
 [PASS] URL: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is
 [FAIL] URL: Setting <data:space ?query>.search = '' Drop trailing spaces from trailing opaque paths
   assert_equals: expected "data:space" but got "data:space "
@@ -290,8 +290,8 @@
 [PASS] URL: Setting <http://example.net>.hash = '#foo<bar'
 [PASS] URL: Setting <http://example.net>.hash = '#foo>bar'
 [PASS] URL: Setting <http://example.net>.hash = '#foo`bar'
-[FAIL] URL: Setting <a:/>.hash = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed
-  assert_equals: expected "a:/#%00%01%1F%20!%22#$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///A:/#%00%01%1F%20!%22#$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
+[FAIL] URL: Setting <a:/>.hash = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed
+  assert_equals: expected "a:/#%00%01%1F%20!%22#$%&'()*+,-./09:;%3C=%3E?@AZ[\\\\]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///A:/#%00%01%1F%20!%22#$%&'()*+,-./09:;%3C=%3E?@AZ[\\\\]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
 [PASS] URL: Setting <http://example.net>.hash = 'a\0b' Percent-encode NULLs in fragment
 [PASS] URL: Setting <non-spec:/>.hash = 'a\0b' Percent-encode NULLs in fragment
 [PASS] URL: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is
diff --git "a/third_party/blink/web_tests/platform/win/external/wpt/url/url-setters.any_exclude=\050file_javascript_mailto\051-expected.txt" "b/third_party/blink/web_tests/platform/win/external/wpt/url/url-setters.any_exclude=\050file_javascript_mailto\051-expected.txt"
index ce7903a2..d7a081a 100644
--- "a/third_party/blink/web_tests/platform/win/external/wpt/url/url-setters.any_exclude=\050file_javascript_mailto\051-expected.txt"
+++ "b/third_party/blink/web_tests/platform/win/external/wpt/url/url-setters.any_exclude=\050file_javascript_mailto\051-expected.txt"
@@ -51,7 +51,7 @@
 [PASS] URL: Setting <http://:secret@example.net>.username = 'me'
 [PASS] URL: Setting <http://me@example.net>.username = ''
 [PASS] URL: Setting <http://me:secret@example.net>.username = ''
-[FAIL] URL: Setting <http://example.net>.username = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+[FAIL] URL: Setting <http://example.net>.username = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
   assert_equals: expected "http://%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
 [PASS] URL: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is.
 [PASS] URL: Setting <sc:///>.username = 'x'
@@ -60,7 +60,7 @@
 [PASS] URL: Setting <http://me@example.net>.password = 'secret'
 [PASS] URL: Setting <http://:secret@example.net>.password = ''
 [PASS] URL: Setting <http://me:secret@example.net>.password = ''
-[FAIL] URL: Setting <http://example.net>.password = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
+[FAIL] URL: Setting <http://example.net>.password = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.
   assert_equals: expected "http://:%00%01%09%0A%0D%1F%20!%22%23$%&'()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/" but got "http://:%00%01%09%0A%0D%1F%20!%22%23$%&%27()*+,-.%2F09%3A%3B%3C%3D%3E%3F%40AZ%5B%5C%5D%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9@example.net/"
 [PASS] URL: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is.
 [PASS] URL: Setting <sc:///>.password = 'x'
@@ -107,9 +107,9 @@
 [PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored
-[PASS] URL: Setting <http://example.net/path>.host = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
-[PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080\stuff' Stuff after a \ delimiter is ignored for special schemes
-[FAIL] URL: Setting <view-source+http://example.net/path>.host = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+[PASS] URL: Setting <http://example.net/path>.host = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[PASS] URL: Setting <http://example.net/path>.host = 'example.com:8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[FAIL] URL: Setting <view-source+http://example.net/path>.host = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts
   assert_equals: expected "example.net" but got ""
 [FAIL] URL: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
   assert_equals: expected "view-source+http://example.com:8080/path" but got "view-source+http://example.net/path"
@@ -166,8 +166,8 @@
 [PASS] URL: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored
-[PASS] URL: Setting <http://example.net/path>.hostname = 'example.com\stuff' Stuff after a \ delimiter is ignored for special schemes
-[FAIL] URL: Setting <view-source+http://example.net/path>.hostname = 'example.com\stuff' \ is not a delimiter for non-special schemes, but still forbidden in hosts
+[PASS] URL: Setting <http://example.net/path>.hostname = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes
+[FAIL] URL: Setting <view-source+http://example.net/path>.hostname = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts
   assert_equals: expected "example.net" but got ""
 [PASS] URL: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6
 [PASS] URL: Setting <http://example.net/>.hostname = '[::1.2.3.4x]'
@@ -198,7 +198,7 @@
 [PASS] URL: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored
 [PASS] URL: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored
-[PASS] URL: Setting <http://example.net/path>.port = '8080\stuff' Stuff after a \ delimiter is ignored for special schemes
+[PASS] URL: Setting <http://example.net/path>.port = '8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes
 [FAIL] URL: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
   assert_equals: expected "view-source+http://example.net:8080/path" but got "view-source+http://example.net/path"
 [PASS] URL: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error
@@ -230,11 +230,11 @@
   assert_equals: expected "unix:/var/run/bar.socket?timeout=10" but got "unix:/run/foo.socket?timeout=10"
 [PASS] URL: Setting <https://example.net#nav>.pathname = 'home'
 [PASS] URL: Setting <https://example.net#nav>.pathname = '../home'
-[PASS] URL: Setting <http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is a segment delimiter for 'special' URLs
-[FAIL] URL: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\a\%2E\b\%2e.\c' \ is *not* a segment delimiter for non-'special' URLs
-  assert_equals: expected "view-source+http://example.net/\\a\\%2E\\b\\%2e.\\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav"
-[FAIL] URL: Setting <a:/>.pathname = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.
-  assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[/]%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9"
+[PASS] URL: Setting <http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs
+[FAIL] URL: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is *not* a segment delimiter for non-'special' URLs
+  assert_equals: expected "view-source+http://example.net/\\\\a\\\\%2E\\\\b\\\\%2e.\\\\c?lang=fr#nav" but got "view-source+http://example.net/home?lang=fr#nav"
+[FAIL] URL: Setting <a:/>.pathname = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[\\\\]^_%60az%7B|%7D~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E%3F@AZ[/]%5E_%60az%7B%7C%7D~%7F%C2%80%C2%81%C3%89%C3%A9"
 [FAIL] URL: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments.
   assert_equals: expected "http://example.net/%2e%2E%c3%89t%C3%A9" but got "http://example.net/..%c3%89t%C3%A9"
 [PASS] URL: Setting <http://example.net>.pathname = '?' ? needs to be encoded
@@ -268,8 +268,8 @@
 [PASS] URL: Setting <https://example.net?lang=en-US#nav>.search = ''
 [PASS] URL: Setting <https://example.net?lang=en-US>.search = ''
 [PASS] URL: Setting <https://example.net>.search = ''
-[FAIL] URL: Setting <a:/>.search = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.
-  assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///A:/?%00%01%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
+[FAIL] URL: Setting <a:/>.search = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.
+  assert_equals: expected "a:/?%00%01%1F%20!%22%23$%&'()*+,-./09:;%3C=%3E?@AZ[\\\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///A:/?%00%01%1F%20!%22%23$%&%27()*+,-./09:;%3C=%3E?@AZ[\\\\]^_`az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
 [PASS] URL: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is
 [FAIL] URL: Setting <data:space ?query>.search = '' Drop trailing spaces from trailing opaque paths
   assert_equals: expected "data:space" but got "data:space "
@@ -290,8 +290,8 @@
 [PASS] URL: Setting <http://example.net>.hash = '#foo<bar'
 [PASS] URL: Setting <http://example.net>.hash = '#foo>bar'
 [PASS] URL: Setting <http://example.net>.hash = '#foo`bar'
-[FAIL] URL: Setting <a:/>.hash = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed
-  assert_equals: expected "a:/#%00%01%1F%20!%22#$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///A:/#%00%01%1F%20!%22#$%&'()*+,-./09:;%3C=%3E?@AZ[\\]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
+[FAIL] URL: Setting <a:/>.hash = '\0	\n\r !"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed
+  assert_equals: expected "a:/#%00%01%1F%20!%22#$%&'()*+,-./09:;%3C=%3E?@AZ[\\\\]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9" but got "file:///A:/#%00%01%1F%20!%22#$%&'()*+,-./09:;%3C=%3E?@AZ[\\\\]^_%60az{|}~%7F%C2%80%C2%81%C3%89%C3%A9"
 [PASS] URL: Setting <http://example.net>.hash = 'a\0b' Percent-encode NULLs in fragment
 [PASS] URL: Setting <non-spec:/>.hash = 'a\0b' Percent-encode NULLs in fragment
 [PASS] URL: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is
diff --git a/third_party/blink/web_tests/resources/testharnessreport.js b/third_party/blink/web_tests/resources/testharnessreport.js
index c17847a..d265bd5a 100644
--- a/third_party/blink/web_tests/resources/testharnessreport.js
+++ b/third_party/blink/web_tests/resources/testharnessreport.js
@@ -355,6 +355,8 @@
         if (!text) {
             return '';
         }
+        // Change each '\' to '\\'
+        text = text.replace(/\\/g, '\\\\');
         // Escape null characters, otherwise diff will think the file is binary.
         text = text.replace(/\0/g, '\\0');
         // Escape some special characters to improve readability of the output.
diff --git a/third_party/blink/web_tests/svg/parser/whitespace-angle-1-expected.txt b/third_party/blink/web_tests/svg/parser/whitespace-angle-1-expected.txt
index 8aaa982f..f952157d 100644
--- a/third_party/blink/web_tests/svg/parser/whitespace-angle-1-expected.txt
+++ b/third_party/blink/web_tests/svg/parser/whitespace-angle-1-expected.txt
@@ -175,38 +175,38 @@
 [PASS] Test <angle> valid value: 1e-10deg   
 [PASS] Test <angle> valid value: 1e-10rad   
 [PASS] Test <angle> valid value: 1e-10grad   
-[PASS] Test <angle> valid value: -47\r\n\t 
-[PASS] Test <angle> valid value: -47deg\r\n\t 
-[PASS] Test <angle> valid value: -47rad\r\n\t 
-[PASS] Test <angle> valid value: -47grad\r\n\t 
-[PASS] Test <angle> valid value: .1\r\n\t 
-[PASS] Test <angle> valid value: .1deg\r\n\t 
-[PASS] Test <angle> valid value: .1rad\r\n\t 
-[PASS] Test <angle> valid value: .1grad\r\n\t 
-[PASS] Test <angle> valid value: 0.35\r\n\t 
-[PASS] Test <angle> valid value: 0.35deg\r\n\t 
-[PASS] Test <angle> valid value: 0.35rad\r\n\t 
-[PASS] Test <angle> valid value: 0.35grad\r\n\t 
-[PASS] Test <angle> valid value: 1e-10\r\n\t 
-[PASS] Test <angle> valid value: 1e-10deg\r\n\t 
-[PASS] Test <angle> valid value: 1e-10rad\r\n\t 
-[PASS] Test <angle> valid value: 1e-10grad\r\n\t 
-[PASS] Test <angle> valid value: -47\f
-[PASS] Test <angle> valid value: -47deg\f
-[PASS] Test <angle> valid value: -47rad\f
-[PASS] Test <angle> valid value: -47grad\f
-[PASS] Test <angle> valid value: .1\f
-[PASS] Test <angle> valid value: .1deg\f
-[PASS] Test <angle> valid value: .1rad\f
-[PASS] Test <angle> valid value: .1grad\f
-[PASS] Test <angle> valid value: 0.35\f
-[PASS] Test <angle> valid value: 0.35deg\f
-[PASS] Test <angle> valid value: 0.35rad\f
-[PASS] Test <angle> valid value: 0.35grad\f
-[PASS] Test <angle> valid value: 1e-10\f
-[PASS] Test <angle> valid value: 1e-10deg\f
-[PASS] Test <angle> valid value: 1e-10rad\f
-[PASS] Test <angle> valid value: 1e-10grad\f
+[PASS] Test <angle> valid value: -47\\r\\n\\t 
+[PASS] Test <angle> valid value: -47deg\\r\\n\\t 
+[PASS] Test <angle> valid value: -47rad\\r\\n\\t 
+[PASS] Test <angle> valid value: -47grad\\r\\n\\t 
+[PASS] Test <angle> valid value: .1\\r\\n\\t 
+[PASS] Test <angle> valid value: .1deg\\r\\n\\t 
+[PASS] Test <angle> valid value: .1rad\\r\\n\\t 
+[PASS] Test <angle> valid value: .1grad\\r\\n\\t 
+[PASS] Test <angle> valid value: 0.35\\r\\n\\t 
+[PASS] Test <angle> valid value: 0.35deg\\r\\n\\t 
+[PASS] Test <angle> valid value: 0.35rad\\r\\n\\t 
+[PASS] Test <angle> valid value: 0.35grad\\r\\n\\t 
+[PASS] Test <angle> valid value: 1e-10\\r\\n\\t 
+[PASS] Test <angle> valid value: 1e-10deg\\r\\n\\t 
+[PASS] Test <angle> valid value: 1e-10rad\\r\\n\\t 
+[PASS] Test <angle> valid value: 1e-10grad\\r\\n\\t 
+[PASS] Test <angle> valid value: -47\\f
+[PASS] Test <angle> valid value: -47deg\\f
+[PASS] Test <angle> valid value: -47rad\\f
+[PASS] Test <angle> valid value: -47grad\\f
+[PASS] Test <angle> valid value: .1\\f
+[PASS] Test <angle> valid value: .1deg\\f
+[PASS] Test <angle> valid value: .1rad\\f
+[PASS] Test <angle> valid value: .1grad\\f
+[PASS] Test <angle> valid value: 0.35\\f
+[PASS] Test <angle> valid value: 0.35deg\\f
+[PASS] Test <angle> valid value: 0.35rad\\f
+[PASS] Test <angle> valid value: 0.35grad\\f
+[PASS] Test <angle> valid value: 1e-10\\f
+[PASS] Test <angle> valid value: 1e-10deg\\f
+[PASS] Test <angle> valid value: 1e-10rad\\f
+[PASS] Test <angle> valid value: 1e-10grad\\f
 [PASS] Test <angle> trailing garbage, value: -47a
 [PASS] Test <angle> trailing garbage, value: .1a
 [PASS] Test <angle> trailing garbage, value: 0.35a
@@ -271,38 +271,38 @@
 [PASS] Test <angle> valid value:  1e-10deg   
 [PASS] Test <angle> valid value:  1e-10rad   
 [PASS] Test <angle> valid value:  1e-10grad   
-[PASS] Test <angle> valid value:  -47\r\n\t 
-[PASS] Test <angle> valid value:  -47deg\r\n\t 
-[PASS] Test <angle> valid value:  -47rad\r\n\t 
-[PASS] Test <angle> valid value:  -47grad\r\n\t 
-[PASS] Test <angle> valid value:  .1\r\n\t 
-[PASS] Test <angle> valid value:  .1deg\r\n\t 
-[PASS] Test <angle> valid value:  .1rad\r\n\t 
-[PASS] Test <angle> valid value:  .1grad\r\n\t 
-[PASS] Test <angle> valid value:  0.35\r\n\t 
-[PASS] Test <angle> valid value:  0.35deg\r\n\t 
-[PASS] Test <angle> valid value:  0.35rad\r\n\t 
-[PASS] Test <angle> valid value:  0.35grad\r\n\t 
-[PASS] Test <angle> valid value:  1e-10\r\n\t 
-[PASS] Test <angle> valid value:  1e-10deg\r\n\t 
-[PASS] Test <angle> valid value:  1e-10rad\r\n\t 
-[PASS] Test <angle> valid value:  1e-10grad\r\n\t 
-[PASS] Test <angle> valid value:  -47\f
-[PASS] Test <angle> valid value:  -47deg\f
-[PASS] Test <angle> valid value:  -47rad\f
-[PASS] Test <angle> valid value:  -47grad\f
-[PASS] Test <angle> valid value:  .1\f
-[PASS] Test <angle> valid value:  .1deg\f
-[PASS] Test <angle> valid value:  .1rad\f
-[PASS] Test <angle> valid value:  .1grad\f
-[PASS] Test <angle> valid value:  0.35\f
-[PASS] Test <angle> valid value:  0.35deg\f
-[PASS] Test <angle> valid value:  0.35rad\f
-[PASS] Test <angle> valid value:  0.35grad\f
-[PASS] Test <angle> valid value:  1e-10\f
-[PASS] Test <angle> valid value:  1e-10deg\f
-[PASS] Test <angle> valid value:  1e-10rad\f
-[PASS] Test <angle> valid value:  1e-10grad\f
+[PASS] Test <angle> valid value:  -47\\r\\n\\t 
+[PASS] Test <angle> valid value:  -47deg\\r\\n\\t 
+[PASS] Test <angle> valid value:  -47rad\\r\\n\\t 
+[PASS] Test <angle> valid value:  -47grad\\r\\n\\t 
+[PASS] Test <angle> valid value:  .1\\r\\n\\t 
+[PASS] Test <angle> valid value:  .1deg\\r\\n\\t 
+[PASS] Test <angle> valid value:  .1rad\\r\\n\\t 
+[PASS] Test <angle> valid value:  .1grad\\r\\n\\t 
+[PASS] Test <angle> valid value:  0.35\\r\\n\\t 
+[PASS] Test <angle> valid value:  0.35deg\\r\\n\\t 
+[PASS] Test <angle> valid value:  0.35rad\\r\\n\\t 
+[PASS] Test <angle> valid value:  0.35grad\\r\\n\\t 
+[PASS] Test <angle> valid value:  1e-10\\r\\n\\t 
+[PASS] Test <angle> valid value:  1e-10deg\\r\\n\\t 
+[PASS] Test <angle> valid value:  1e-10rad\\r\\n\\t 
+[PASS] Test <angle> valid value:  1e-10grad\\r\\n\\t 
+[PASS] Test <angle> valid value:  -47\\f
+[PASS] Test <angle> valid value:  -47deg\\f
+[PASS] Test <angle> valid value:  -47rad\\f
+[PASS] Test <angle> valid value:  -47grad\\f
+[PASS] Test <angle> valid value:  .1\\f
+[PASS] Test <angle> valid value:  .1deg\\f
+[PASS] Test <angle> valid value:  .1rad\\f
+[PASS] Test <angle> valid value:  .1grad\\f
+[PASS] Test <angle> valid value:  0.35\\f
+[PASS] Test <angle> valid value:  0.35deg\\f
+[PASS] Test <angle> valid value:  0.35rad\\f
+[PASS] Test <angle> valid value:  0.35grad\\f
+[PASS] Test <angle> valid value:  1e-10\\f
+[PASS] Test <angle> valid value:  1e-10deg\\f
+[PASS] Test <angle> valid value:  1e-10rad\\f
+[PASS] Test <angle> valid value:  1e-10grad\\f
 [PASS] Test <angle> WS invalid value: -47 deg
 [PASS] Test <angle> WS invalid value: .1 deg
 [PASS] Test <angle> WS invalid value: 0.35 deg
@@ -379,38 +379,38 @@
 [PASS] Test <angle> valid value:    1e-10deg   
 [PASS] Test <angle> valid value:    1e-10rad   
 [PASS] Test <angle> valid value:    1e-10grad   
-[PASS] Test <angle> valid value:    -47\r\n\t 
-[PASS] Test <angle> valid value:    -47deg\r\n\t 
-[PASS] Test <angle> valid value:    -47rad\r\n\t 
-[PASS] Test <angle> valid value:    -47grad\r\n\t 
-[PASS] Test <angle> valid value:    .1\r\n\t 
-[PASS] Test <angle> valid value:    .1deg\r\n\t 
-[PASS] Test <angle> valid value:    .1rad\r\n\t 
-[PASS] Test <angle> valid value:    .1grad\r\n\t 
-[PASS] Test <angle> valid value:    0.35\r\n\t 
-[PASS] Test <angle> valid value:    0.35deg\r\n\t 
-[PASS] Test <angle> valid value:    0.35rad\r\n\t 
-[PASS] Test <angle> valid value:    0.35grad\r\n\t 
-[PASS] Test <angle> valid value:    1e-10\r\n\t 
-[PASS] Test <angle> valid value:    1e-10deg\r\n\t 
-[PASS] Test <angle> valid value:    1e-10rad\r\n\t 
-[PASS] Test <angle> valid value:    1e-10grad\r\n\t 
-[PASS] Test <angle> valid value:    -47\f
-[PASS] Test <angle> valid value:    -47deg\f
-[PASS] Test <angle> valid value:    -47rad\f
-[PASS] Test <angle> valid value:    -47grad\f
-[PASS] Test <angle> valid value:    .1\f
-[PASS] Test <angle> valid value:    .1deg\f
-[PASS] Test <angle> valid value:    .1rad\f
-[PASS] Test <angle> valid value:    .1grad\f
-[PASS] Test <angle> valid value:    0.35\f
-[PASS] Test <angle> valid value:    0.35deg\f
-[PASS] Test <angle> valid value:    0.35rad\f
-[PASS] Test <angle> valid value:    0.35grad\f
-[PASS] Test <angle> valid value:    1e-10\f
-[PASS] Test <angle> valid value:    1e-10deg\f
-[PASS] Test <angle> valid value:    1e-10rad\f
-[PASS] Test <angle> valid value:    1e-10grad\f
+[PASS] Test <angle> valid value:    -47\\r\\n\\t 
+[PASS] Test <angle> valid value:    -47deg\\r\\n\\t 
+[PASS] Test <angle> valid value:    -47rad\\r\\n\\t 
+[PASS] Test <angle> valid value:    -47grad\\r\\n\\t 
+[PASS] Test <angle> valid value:    .1\\r\\n\\t 
+[PASS] Test <angle> valid value:    .1deg\\r\\n\\t 
+[PASS] Test <angle> valid value:    .1rad\\r\\n\\t 
+[PASS] Test <angle> valid value:    .1grad\\r\\n\\t 
+[PASS] Test <angle> valid value:    0.35\\r\\n\\t 
+[PASS] Test <angle> valid value:    0.35deg\\r\\n\\t 
+[PASS] Test <angle> valid value:    0.35rad\\r\\n\\t 
+[PASS] Test <angle> valid value:    0.35grad\\r\\n\\t 
+[PASS] Test <angle> valid value:    1e-10\\r\\n\\t 
+[PASS] Test <angle> valid value:    1e-10deg\\r\\n\\t 
+[PASS] Test <angle> valid value:    1e-10rad\\r\\n\\t 
+[PASS] Test <angle> valid value:    1e-10grad\\r\\n\\t 
+[PASS] Test <angle> valid value:    -47\\f
+[PASS] Test <angle> valid value:    -47deg\\f
+[PASS] Test <angle> valid value:    -47rad\\f
+[PASS] Test <angle> valid value:    -47grad\\f
+[PASS] Test <angle> valid value:    .1\\f
+[PASS] Test <angle> valid value:    .1deg\\f
+[PASS] Test <angle> valid value:    .1rad\\f
+[PASS] Test <angle> valid value:    .1grad\\f
+[PASS] Test <angle> valid value:    0.35\\f
+[PASS] Test <angle> valid value:    0.35deg\\f
+[PASS] Test <angle> valid value:    0.35rad\\f
+[PASS] Test <angle> valid value:    0.35grad\\f
+[PASS] Test <angle> valid value:    1e-10\\f
+[PASS] Test <angle> valid value:    1e-10deg\\f
+[PASS] Test <angle> valid value:    1e-10rad\\f
+[PASS] Test <angle> valid value:    1e-10grad\\f
 [PASS] Test <angle> WS invalid value: -47   deg
 [PASS] Test <angle> WS invalid value: .1   deg
 [PASS] Test <angle> WS invalid value: 0.35   deg
@@ -439,221 +439,221 @@
 [PASS] Test <angle> trailing garbage, value:    .1)90
 [PASS] Test <angle> trailing garbage, value:    0.35)90
 [PASS] Test <angle> trailing garbage, value:    1e-10)90
-[PASS] Test <angle> valid value: \r\n\t -47
-[PASS] Test <angle> valid value: \r\n\t -47deg
-[PASS] Test <angle> valid value: \r\n\t -47rad
-[PASS] Test <angle> valid value: \r\n\t -47grad
-[PASS] Test <angle> valid value: \r\n\t .1
-[PASS] Test <angle> valid value: \r\n\t .1deg
-[PASS] Test <angle> valid value: \r\n\t .1rad
-[PASS] Test <angle> valid value: \r\n\t .1grad
-[PASS] Test <angle> valid value: \r\n\t 0.35
-[PASS] Test <angle> valid value: \r\n\t 0.35deg
-[PASS] Test <angle> valid value: \r\n\t 0.35rad
-[PASS] Test <angle> valid value: \r\n\t 0.35grad
-[PASS] Test <angle> valid value: \r\n\t 1e-10
-[PASS] Test <angle> valid value: \r\n\t 1e-10deg
-[PASS] Test <angle> valid value: \r\n\t 1e-10rad
-[PASS] Test <angle> valid value: \r\n\t 1e-10grad
-[PASS] Test <angle> valid value: \r\n\t -47 
-[PASS] Test <angle> valid value: \r\n\t -47deg 
-[PASS] Test <angle> valid value: \r\n\t -47rad 
-[PASS] Test <angle> valid value: \r\n\t -47grad 
-[PASS] Test <angle> valid value: \r\n\t .1 
-[PASS] Test <angle> valid value: \r\n\t .1deg 
-[PASS] Test <angle> valid value: \r\n\t .1rad 
-[PASS] Test <angle> valid value: \r\n\t .1grad 
-[PASS] Test <angle> valid value: \r\n\t 0.35 
-[PASS] Test <angle> valid value: \r\n\t 0.35deg 
-[PASS] Test <angle> valid value: \r\n\t 0.35rad 
-[PASS] Test <angle> valid value: \r\n\t 0.35grad 
-[PASS] Test <angle> valid value: \r\n\t 1e-10 
-[PASS] Test <angle> valid value: \r\n\t 1e-10deg 
-[PASS] Test <angle> valid value: \r\n\t 1e-10rad 
-[PASS] Test <angle> valid value: \r\n\t 1e-10grad 
-[PASS] Test <angle> valid value: \r\n\t -47   
-[PASS] Test <angle> valid value: \r\n\t -47deg   
-[PASS] Test <angle> valid value: \r\n\t -47rad   
-[PASS] Test <angle> valid value: \r\n\t -47grad   
-[PASS] Test <angle> valid value: \r\n\t .1   
-[PASS] Test <angle> valid value: \r\n\t .1deg   
-[PASS] Test <angle> valid value: \r\n\t .1rad   
-[PASS] Test <angle> valid value: \r\n\t .1grad   
-[PASS] Test <angle> valid value: \r\n\t 0.35   
-[PASS] Test <angle> valid value: \r\n\t 0.35deg   
-[PASS] Test <angle> valid value: \r\n\t 0.35rad   
-[PASS] Test <angle> valid value: \r\n\t 0.35grad   
-[PASS] Test <angle> valid value: \r\n\t 1e-10   
-[PASS] Test <angle> valid value: \r\n\t 1e-10deg   
-[PASS] Test <angle> valid value: \r\n\t 1e-10rad   
-[PASS] Test <angle> valid value: \r\n\t 1e-10grad   
-[PASS] Test <angle> valid value: \r\n\t -47\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t -47deg\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t -47rad\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t -47grad\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t .1\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t .1deg\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t .1rad\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t .1grad\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t 0.35\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t 0.35deg\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t 0.35rad\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t 0.35grad\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t 1e-10\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t 1e-10deg\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t 1e-10rad\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t 1e-10grad\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t -47\f
-[PASS] Test <angle> valid value: \r\n\t -47deg\f
-[PASS] Test <angle> valid value: \r\n\t -47rad\f
-[PASS] Test <angle> valid value: \r\n\t -47grad\f
-[PASS] Test <angle> valid value: \r\n\t .1\f
-[PASS] Test <angle> valid value: \r\n\t .1deg\f
-[PASS] Test <angle> valid value: \r\n\t .1rad\f
-[PASS] Test <angle> valid value: \r\n\t .1grad\f
-[PASS] Test <angle> valid value: \r\n\t 0.35\f
-[PASS] Test <angle> valid value: \r\n\t 0.35deg\f
-[PASS] Test <angle> valid value: \r\n\t 0.35rad\f
-[PASS] Test <angle> valid value: \r\n\t 0.35grad\f
-[PASS] Test <angle> valid value: \r\n\t 1e-10\f
-[PASS] Test <angle> valid value: \r\n\t 1e-10deg\f
-[PASS] Test <angle> valid value: \r\n\t 1e-10rad\f
-[PASS] Test <angle> valid value: \r\n\t 1e-10grad\f
-[PASS] Test <angle> WS invalid value: -47\r\n\t deg
-[PASS] Test <angle> WS invalid value: .1\r\n\t deg
-[PASS] Test <angle> WS invalid value: 0.35\r\n\t deg
-[PASS] Test <angle> WS invalid value: 1e-10\r\n\t deg
-[PASS] Test <angle> WS invalid value: -47\r\n\t rad
-[PASS] Test <angle> WS invalid value: .1\r\n\t rad
-[PASS] Test <angle> WS invalid value: 0.35\r\n\t rad
-[PASS] Test <angle> WS invalid value: 1e-10\r\n\t rad
-[PASS] Test <angle> WS invalid value: -47\r\n\t grad
-[PASS] Test <angle> WS invalid value: .1\r\n\t grad
-[PASS] Test <angle> WS invalid value: 0.35\r\n\t grad
-[PASS] Test <angle> WS invalid value: 1e-10\r\n\t grad
-[PASS] Test <angle> trailing garbage, value: \r\n\t -47a
-[PASS] Test <angle> trailing garbage, value: \r\n\t .1a
-[PASS] Test <angle> trailing garbage, value: \r\n\t 0.35a
-[PASS] Test <angle> trailing garbage, value: \r\n\t 1e-10a
-[PASS] Test <angle> trailing garbage, value: \r\n\t -47e
-[PASS] Test <angle> trailing garbage, value: \r\n\t .1e
-[PASS] Test <angle> trailing garbage, value: \r\n\t 0.35e
-[PASS] Test <angle> trailing garbage, value: \r\n\t 1e-10e
-[PASS] Test <angle> trailing garbage, value: \r\n\t -47foo
-[PASS] Test <angle> trailing garbage, value: \r\n\t .1foo
-[PASS] Test <angle> trailing garbage, value: \r\n\t 0.35foo
-[PASS] Test <angle> trailing garbage, value: \r\n\t 1e-10foo
-[PASS] Test <angle> trailing garbage, value: \r\n\t -47)90
-[PASS] Test <angle> trailing garbage, value: \r\n\t .1)90
-[PASS] Test <angle> trailing garbage, value: \r\n\t 0.35)90
-[PASS] Test <angle> trailing garbage, value: \r\n\t 1e-10)90
-[PASS] Test <angle> valid value: \f-47
-[PASS] Test <angle> valid value: \f-47deg
-[PASS] Test <angle> valid value: \f-47rad
-[PASS] Test <angle> valid value: \f-47grad
-[PASS] Test <angle> valid value: \f.1
-[PASS] Test <angle> valid value: \f.1deg
-[PASS] Test <angle> valid value: \f.1rad
-[PASS] Test <angle> valid value: \f.1grad
-[PASS] Test <angle> valid value: \f0.35
-[PASS] Test <angle> valid value: \f0.35deg
-[PASS] Test <angle> valid value: \f0.35rad
-[PASS] Test <angle> valid value: \f0.35grad
-[PASS] Test <angle> valid value: \f1e-10
-[PASS] Test <angle> valid value: \f1e-10deg
-[PASS] Test <angle> valid value: \f1e-10rad
-[PASS] Test <angle> valid value: \f1e-10grad
-[PASS] Test <angle> valid value: \f-47 
-[PASS] Test <angle> valid value: \f-47deg 
-[PASS] Test <angle> valid value: \f-47rad 
-[PASS] Test <angle> valid value: \f-47grad 
-[PASS] Test <angle> valid value: \f.1 
-[PASS] Test <angle> valid value: \f.1deg 
-[PASS] Test <angle> valid value: \f.1rad 
-[PASS] Test <angle> valid value: \f.1grad 
-[PASS] Test <angle> valid value: \f0.35 
-[PASS] Test <angle> valid value: \f0.35deg 
-[PASS] Test <angle> valid value: \f0.35rad 
-[PASS] Test <angle> valid value: \f0.35grad 
-[PASS] Test <angle> valid value: \f1e-10 
-[PASS] Test <angle> valid value: \f1e-10deg 
-[PASS] Test <angle> valid value: \f1e-10rad 
-[PASS] Test <angle> valid value: \f1e-10grad 
-[PASS] Test <angle> valid value: \f-47   
-[PASS] Test <angle> valid value: \f-47deg   
-[PASS] Test <angle> valid value: \f-47rad   
-[PASS] Test <angle> valid value: \f-47grad   
-[PASS] Test <angle> valid value: \f.1   
-[PASS] Test <angle> valid value: \f.1deg   
-[PASS] Test <angle> valid value: \f.1rad   
-[PASS] Test <angle> valid value: \f.1grad   
-[PASS] Test <angle> valid value: \f0.35   
-[PASS] Test <angle> valid value: \f0.35deg   
-[PASS] Test <angle> valid value: \f0.35rad   
-[PASS] Test <angle> valid value: \f0.35grad   
-[PASS] Test <angle> valid value: \f1e-10   
-[PASS] Test <angle> valid value: \f1e-10deg   
-[PASS] Test <angle> valid value: \f1e-10rad   
-[PASS] Test <angle> valid value: \f1e-10grad   
-[PASS] Test <angle> valid value: \f-47\r\n\t 
-[PASS] Test <angle> valid value: \f-47deg\r\n\t 
-[PASS] Test <angle> valid value: \f-47rad\r\n\t 
-[PASS] Test <angle> valid value: \f-47grad\r\n\t 
-[PASS] Test <angle> valid value: \f.1\r\n\t 
-[PASS] Test <angle> valid value: \f.1deg\r\n\t 
-[PASS] Test <angle> valid value: \f.1rad\r\n\t 
-[PASS] Test <angle> valid value: \f.1grad\r\n\t 
-[PASS] Test <angle> valid value: \f0.35\r\n\t 
-[PASS] Test <angle> valid value: \f0.35deg\r\n\t 
-[PASS] Test <angle> valid value: \f0.35rad\r\n\t 
-[PASS] Test <angle> valid value: \f0.35grad\r\n\t 
-[PASS] Test <angle> valid value: \f1e-10\r\n\t 
-[PASS] Test <angle> valid value: \f1e-10deg\r\n\t 
-[PASS] Test <angle> valid value: \f1e-10rad\r\n\t 
-[PASS] Test <angle> valid value: \f1e-10grad\r\n\t 
-[PASS] Test <angle> valid value: \f-47\f
-[PASS] Test <angle> valid value: \f-47deg\f
-[PASS] Test <angle> valid value: \f-47rad\f
-[PASS] Test <angle> valid value: \f-47grad\f
-[PASS] Test <angle> valid value: \f.1\f
-[PASS] Test <angle> valid value: \f.1deg\f
-[PASS] Test <angle> valid value: \f.1rad\f
-[PASS] Test <angle> valid value: \f.1grad\f
-[PASS] Test <angle> valid value: \f0.35\f
-[PASS] Test <angle> valid value: \f0.35deg\f
-[PASS] Test <angle> valid value: \f0.35rad\f
-[PASS] Test <angle> valid value: \f0.35grad\f
-[PASS] Test <angle> valid value: \f1e-10\f
-[PASS] Test <angle> valid value: \f1e-10deg\f
-[PASS] Test <angle> valid value: \f1e-10rad\f
-[PASS] Test <angle> valid value: \f1e-10grad\f
-[PASS] Test <angle> WS invalid value: -47\fdeg
-[PASS] Test <angle> WS invalid value: .1\fdeg
-[PASS] Test <angle> WS invalid value: 0.35\fdeg
-[PASS] Test <angle> WS invalid value: 1e-10\fdeg
-[PASS] Test <angle> WS invalid value: -47\frad
-[PASS] Test <angle> WS invalid value: .1\frad
-[PASS] Test <angle> WS invalid value: 0.35\frad
-[PASS] Test <angle> WS invalid value: 1e-10\frad
-[PASS] Test <angle> WS invalid value: -47\fgrad
-[PASS] Test <angle> WS invalid value: .1\fgrad
-[PASS] Test <angle> WS invalid value: 0.35\fgrad
-[PASS] Test <angle> WS invalid value: 1e-10\fgrad
-[PASS] Test <angle> trailing garbage, value: \f-47a
-[PASS] Test <angle> trailing garbage, value: \f.1a
-[PASS] Test <angle> trailing garbage, value: \f0.35a
-[PASS] Test <angle> trailing garbage, value: \f1e-10a
-[PASS] Test <angle> trailing garbage, value: \f-47e
-[PASS] Test <angle> trailing garbage, value: \f.1e
-[PASS] Test <angle> trailing garbage, value: \f0.35e
-[PASS] Test <angle> trailing garbage, value: \f1e-10e
-[PASS] Test <angle> trailing garbage, value: \f-47foo
-[PASS] Test <angle> trailing garbage, value: \f.1foo
-[PASS] Test <angle> trailing garbage, value: \f0.35foo
-[PASS] Test <angle> trailing garbage, value: \f1e-10foo
-[PASS] Test <angle> trailing garbage, value: \f-47)90
-[PASS] Test <angle> trailing garbage, value: \f.1)90
-[PASS] Test <angle> trailing garbage, value: \f0.35)90
-[PASS] Test <angle> trailing garbage, value: \f1e-10)90
+[PASS] Test <angle> valid value: \\r\\n\\t -47
+[PASS] Test <angle> valid value: \\r\\n\\t -47deg
+[PASS] Test <angle> valid value: \\r\\n\\t -47rad
+[PASS] Test <angle> valid value: \\r\\n\\t -47grad
+[PASS] Test <angle> valid value: \\r\\n\\t .1
+[PASS] Test <angle> valid value: \\r\\n\\t .1deg
+[PASS] Test <angle> valid value: \\r\\n\\t .1rad
+[PASS] Test <angle> valid value: \\r\\n\\t .1grad
+[PASS] Test <angle> valid value: \\r\\n\\t 0.35
+[PASS] Test <angle> valid value: \\r\\n\\t 0.35deg
+[PASS] Test <angle> valid value: \\r\\n\\t 0.35rad
+[PASS] Test <angle> valid value: \\r\\n\\t 0.35grad
+[PASS] Test <angle> valid value: \\r\\n\\t 1e-10
+[PASS] Test <angle> valid value: \\r\\n\\t 1e-10deg
+[PASS] Test <angle> valid value: \\r\\n\\t 1e-10rad
+[PASS] Test <angle> valid value: \\r\\n\\t 1e-10grad
+[PASS] Test <angle> valid value: \\r\\n\\t -47 
+[PASS] Test <angle> valid value: \\r\\n\\t -47deg 
+[PASS] Test <angle> valid value: \\r\\n\\t -47rad 
+[PASS] Test <angle> valid value: \\r\\n\\t -47grad 
+[PASS] Test <angle> valid value: \\r\\n\\t .1 
+[PASS] Test <angle> valid value: \\r\\n\\t .1deg 
+[PASS] Test <angle> valid value: \\r\\n\\t .1rad 
+[PASS] Test <angle> valid value: \\r\\n\\t .1grad 
+[PASS] Test <angle> valid value: \\r\\n\\t 0.35 
+[PASS] Test <angle> valid value: \\r\\n\\t 0.35deg 
+[PASS] Test <angle> valid value: \\r\\n\\t 0.35rad 
+[PASS] Test <angle> valid value: \\r\\n\\t 0.35grad 
+[PASS] Test <angle> valid value: \\r\\n\\t 1e-10 
+[PASS] Test <angle> valid value: \\r\\n\\t 1e-10deg 
+[PASS] Test <angle> valid value: \\r\\n\\t 1e-10rad 
+[PASS] Test <angle> valid value: \\r\\n\\t 1e-10grad 
+[PASS] Test <angle> valid value: \\r\\n\\t -47   
+[PASS] Test <angle> valid value: \\r\\n\\t -47deg   
+[PASS] Test <angle> valid value: \\r\\n\\t -47rad   
+[PASS] Test <angle> valid value: \\r\\n\\t -47grad   
+[PASS] Test <angle> valid value: \\r\\n\\t .1   
+[PASS] Test <angle> valid value: \\r\\n\\t .1deg   
+[PASS] Test <angle> valid value: \\r\\n\\t .1rad   
+[PASS] Test <angle> valid value: \\r\\n\\t .1grad   
+[PASS] Test <angle> valid value: \\r\\n\\t 0.35   
+[PASS] Test <angle> valid value: \\r\\n\\t 0.35deg   
+[PASS] Test <angle> valid value: \\r\\n\\t 0.35rad   
+[PASS] Test <angle> valid value: \\r\\n\\t 0.35grad   
+[PASS] Test <angle> valid value: \\r\\n\\t 1e-10   
+[PASS] Test <angle> valid value: \\r\\n\\t 1e-10deg   
+[PASS] Test <angle> valid value: \\r\\n\\t 1e-10rad   
+[PASS] Test <angle> valid value: \\r\\n\\t 1e-10grad   
+[PASS] Test <angle> valid value: \\r\\n\\t -47\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t -47deg\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t -47rad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t -47grad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t .1\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t .1deg\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t .1rad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t .1grad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t 0.35\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t 0.35deg\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t 0.35rad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t 0.35grad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t 1e-10\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t 1e-10deg\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t 1e-10rad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t 1e-10grad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t -47\\f
+[PASS] Test <angle> valid value: \\r\\n\\t -47deg\\f
+[PASS] Test <angle> valid value: \\r\\n\\t -47rad\\f
+[PASS] Test <angle> valid value: \\r\\n\\t -47grad\\f
+[PASS] Test <angle> valid value: \\r\\n\\t .1\\f
+[PASS] Test <angle> valid value: \\r\\n\\t .1deg\\f
+[PASS] Test <angle> valid value: \\r\\n\\t .1rad\\f
+[PASS] Test <angle> valid value: \\r\\n\\t .1grad\\f
+[PASS] Test <angle> valid value: \\r\\n\\t 0.35\\f
+[PASS] Test <angle> valid value: \\r\\n\\t 0.35deg\\f
+[PASS] Test <angle> valid value: \\r\\n\\t 0.35rad\\f
+[PASS] Test <angle> valid value: \\r\\n\\t 0.35grad\\f
+[PASS] Test <angle> valid value: \\r\\n\\t 1e-10\\f
+[PASS] Test <angle> valid value: \\r\\n\\t 1e-10deg\\f
+[PASS] Test <angle> valid value: \\r\\n\\t 1e-10rad\\f
+[PASS] Test <angle> valid value: \\r\\n\\t 1e-10grad\\f
+[PASS] Test <angle> WS invalid value: -47\\r\\n\\t deg
+[PASS] Test <angle> WS invalid value: .1\\r\\n\\t deg
+[PASS] Test <angle> WS invalid value: 0.35\\r\\n\\t deg
+[PASS] Test <angle> WS invalid value: 1e-10\\r\\n\\t deg
+[PASS] Test <angle> WS invalid value: -47\\r\\n\\t rad
+[PASS] Test <angle> WS invalid value: .1\\r\\n\\t rad
+[PASS] Test <angle> WS invalid value: 0.35\\r\\n\\t rad
+[PASS] Test <angle> WS invalid value: 1e-10\\r\\n\\t rad
+[PASS] Test <angle> WS invalid value: -47\\r\\n\\t grad
+[PASS] Test <angle> WS invalid value: .1\\r\\n\\t grad
+[PASS] Test <angle> WS invalid value: 0.35\\r\\n\\t grad
+[PASS] Test <angle> WS invalid value: 1e-10\\r\\n\\t grad
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t -47a
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t .1a
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t 0.35a
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t 1e-10a
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t -47e
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t .1e
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t 0.35e
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t 1e-10e
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t -47foo
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t .1foo
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t 0.35foo
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t 1e-10foo
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t -47)90
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t .1)90
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t 0.35)90
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t 1e-10)90
+[PASS] Test <angle> valid value: \\f-47
+[PASS] Test <angle> valid value: \\f-47deg
+[PASS] Test <angle> valid value: \\f-47rad
+[PASS] Test <angle> valid value: \\f-47grad
+[PASS] Test <angle> valid value: \\f.1
+[PASS] Test <angle> valid value: \\f.1deg
+[PASS] Test <angle> valid value: \\f.1rad
+[PASS] Test <angle> valid value: \\f.1grad
+[PASS] Test <angle> valid value: \\f0.35
+[PASS] Test <angle> valid value: \\f0.35deg
+[PASS] Test <angle> valid value: \\f0.35rad
+[PASS] Test <angle> valid value: \\f0.35grad
+[PASS] Test <angle> valid value: \\f1e-10
+[PASS] Test <angle> valid value: \\f1e-10deg
+[PASS] Test <angle> valid value: \\f1e-10rad
+[PASS] Test <angle> valid value: \\f1e-10grad
+[PASS] Test <angle> valid value: \\f-47 
+[PASS] Test <angle> valid value: \\f-47deg 
+[PASS] Test <angle> valid value: \\f-47rad 
+[PASS] Test <angle> valid value: \\f-47grad 
+[PASS] Test <angle> valid value: \\f.1 
+[PASS] Test <angle> valid value: \\f.1deg 
+[PASS] Test <angle> valid value: \\f.1rad 
+[PASS] Test <angle> valid value: \\f.1grad 
+[PASS] Test <angle> valid value: \\f0.35 
+[PASS] Test <angle> valid value: \\f0.35deg 
+[PASS] Test <angle> valid value: \\f0.35rad 
+[PASS] Test <angle> valid value: \\f0.35grad 
+[PASS] Test <angle> valid value: \\f1e-10 
+[PASS] Test <angle> valid value: \\f1e-10deg 
+[PASS] Test <angle> valid value: \\f1e-10rad 
+[PASS] Test <angle> valid value: \\f1e-10grad 
+[PASS] Test <angle> valid value: \\f-47   
+[PASS] Test <angle> valid value: \\f-47deg   
+[PASS] Test <angle> valid value: \\f-47rad   
+[PASS] Test <angle> valid value: \\f-47grad   
+[PASS] Test <angle> valid value: \\f.1   
+[PASS] Test <angle> valid value: \\f.1deg   
+[PASS] Test <angle> valid value: \\f.1rad   
+[PASS] Test <angle> valid value: \\f.1grad   
+[PASS] Test <angle> valid value: \\f0.35   
+[PASS] Test <angle> valid value: \\f0.35deg   
+[PASS] Test <angle> valid value: \\f0.35rad   
+[PASS] Test <angle> valid value: \\f0.35grad   
+[PASS] Test <angle> valid value: \\f1e-10   
+[PASS] Test <angle> valid value: \\f1e-10deg   
+[PASS] Test <angle> valid value: \\f1e-10rad   
+[PASS] Test <angle> valid value: \\f1e-10grad   
+[PASS] Test <angle> valid value: \\f-47\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f-47deg\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f-47rad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f-47grad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f.1\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f.1deg\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f.1rad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f.1grad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f0.35\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f0.35deg\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f0.35rad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f0.35grad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f1e-10\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f1e-10deg\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f1e-10rad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f1e-10grad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f-47\\f
+[PASS] Test <angle> valid value: \\f-47deg\\f
+[PASS] Test <angle> valid value: \\f-47rad\\f
+[PASS] Test <angle> valid value: \\f-47grad\\f
+[PASS] Test <angle> valid value: \\f.1\\f
+[PASS] Test <angle> valid value: \\f.1deg\\f
+[PASS] Test <angle> valid value: \\f.1rad\\f
+[PASS] Test <angle> valid value: \\f.1grad\\f
+[PASS] Test <angle> valid value: \\f0.35\\f
+[PASS] Test <angle> valid value: \\f0.35deg\\f
+[PASS] Test <angle> valid value: \\f0.35rad\\f
+[PASS] Test <angle> valid value: \\f0.35grad\\f
+[PASS] Test <angle> valid value: \\f1e-10\\f
+[PASS] Test <angle> valid value: \\f1e-10deg\\f
+[PASS] Test <angle> valid value: \\f1e-10rad\\f
+[PASS] Test <angle> valid value: \\f1e-10grad\\f
+[PASS] Test <angle> WS invalid value: -47\\fdeg
+[PASS] Test <angle> WS invalid value: .1\\fdeg
+[PASS] Test <angle> WS invalid value: 0.35\\fdeg
+[PASS] Test <angle> WS invalid value: 1e-10\\fdeg
+[PASS] Test <angle> WS invalid value: -47\\frad
+[PASS] Test <angle> WS invalid value: .1\\frad
+[PASS] Test <angle> WS invalid value: 0.35\\frad
+[PASS] Test <angle> WS invalid value: 1e-10\\frad
+[PASS] Test <angle> WS invalid value: -47\\fgrad
+[PASS] Test <angle> WS invalid value: .1\\fgrad
+[PASS] Test <angle> WS invalid value: 0.35\\fgrad
+[PASS] Test <angle> WS invalid value: 1e-10\\fgrad
+[PASS] Test <angle> trailing garbage, value: \\f-47a
+[PASS] Test <angle> trailing garbage, value: \\f.1a
+[PASS] Test <angle> trailing garbage, value: \\f0.35a
+[PASS] Test <angle> trailing garbage, value: \\f1e-10a
+[PASS] Test <angle> trailing garbage, value: \\f-47e
+[PASS] Test <angle> trailing garbage, value: \\f.1e
+[PASS] Test <angle> trailing garbage, value: \\f0.35e
+[PASS] Test <angle> trailing garbage, value: \\f1e-10e
+[PASS] Test <angle> trailing garbage, value: \\f-47foo
+[PASS] Test <angle> trailing garbage, value: \\f.1foo
+[PASS] Test <angle> trailing garbage, value: \\f0.35foo
+[PASS] Test <angle> trailing garbage, value: \\f1e-10foo
+[PASS] Test <angle> trailing garbage, value: \\f-47)90
+[PASS] Test <angle> trailing garbage, value: \\f.1)90
+[PASS] Test <angle> trailing garbage, value: \\f0.35)90
+[PASS] Test <angle> trailing garbage, value: \\f1e-10)90
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/svg/parser/whitespace-angle-2-expected.txt b/third_party/blink/web_tests/svg/parser/whitespace-angle-2-expected.txt
index f168804..8289b7af 100644
--- a/third_party/blink/web_tests/svg/parser/whitespace-angle-2-expected.txt
+++ b/third_party/blink/web_tests/svg/parser/whitespace-angle-2-expected.txt
@@ -131,30 +131,30 @@
 [PASS] Test <angle> valid value: 17e+2deg   
 [PASS] Test <angle> valid value: 17e+2rad   
 [PASS] Test <angle> valid value: 17e+2grad   
-[PASS] Test <angle> valid value: +32\r\n\t 
-[PASS] Test <angle> valid value: +32deg\r\n\t 
-[PASS] Test <angle> valid value: +32rad\r\n\t 
-[PASS] Test <angle> valid value: +32grad\r\n\t 
-[PASS] Test <angle> valid value: +17E-1\r\n\t 
-[PASS] Test <angle> valid value: +17E-1deg\r\n\t 
-[PASS] Test <angle> valid value: +17E-1rad\r\n\t 
-[PASS] Test <angle> valid value: +17E-1grad\r\n\t 
-[PASS] Test <angle> valid value: 17e+2\r\n\t 
-[PASS] Test <angle> valid value: 17e+2deg\r\n\t 
-[PASS] Test <angle> valid value: 17e+2rad\r\n\t 
-[PASS] Test <angle> valid value: 17e+2grad\r\n\t 
-[PASS] Test <angle> valid value: +32\f
-[PASS] Test <angle> valid value: +32deg\f
-[PASS] Test <angle> valid value: +32rad\f
-[PASS] Test <angle> valid value: +32grad\f
-[PASS] Test <angle> valid value: +17E-1\f
-[PASS] Test <angle> valid value: +17E-1deg\f
-[PASS] Test <angle> valid value: +17E-1rad\f
-[PASS] Test <angle> valid value: +17E-1grad\f
-[PASS] Test <angle> valid value: 17e+2\f
-[PASS] Test <angle> valid value: 17e+2deg\f
-[PASS] Test <angle> valid value: 17e+2rad\f
-[PASS] Test <angle> valid value: 17e+2grad\f
+[PASS] Test <angle> valid value: +32\\r\\n\\t 
+[PASS] Test <angle> valid value: +32deg\\r\\n\\t 
+[PASS] Test <angle> valid value: +32rad\\r\\n\\t 
+[PASS] Test <angle> valid value: +32grad\\r\\n\\t 
+[PASS] Test <angle> valid value: +17E-1\\r\\n\\t 
+[PASS] Test <angle> valid value: +17E-1deg\\r\\n\\t 
+[PASS] Test <angle> valid value: +17E-1rad\\r\\n\\t 
+[PASS] Test <angle> valid value: +17E-1grad\\r\\n\\t 
+[PASS] Test <angle> valid value: 17e+2\\r\\n\\t 
+[PASS] Test <angle> valid value: 17e+2deg\\r\\n\\t 
+[PASS] Test <angle> valid value: 17e+2rad\\r\\n\\t 
+[PASS] Test <angle> valid value: 17e+2grad\\r\\n\\t 
+[PASS] Test <angle> valid value: +32\\f
+[PASS] Test <angle> valid value: +32deg\\f
+[PASS] Test <angle> valid value: +32rad\\f
+[PASS] Test <angle> valid value: +32grad\\f
+[PASS] Test <angle> valid value: +17E-1\\f
+[PASS] Test <angle> valid value: +17E-1deg\\f
+[PASS] Test <angle> valid value: +17E-1rad\\f
+[PASS] Test <angle> valid value: +17E-1grad\\f
+[PASS] Test <angle> valid value: 17e+2\\f
+[PASS] Test <angle> valid value: 17e+2deg\\f
+[PASS] Test <angle> valid value: 17e+2rad\\f
+[PASS] Test <angle> valid value: 17e+2grad\\f
 [PASS] Test <angle> trailing garbage, value: +32a
 [PASS] Test <angle> trailing garbage, value: +17E-1a
 [PASS] Test <angle> trailing garbage, value: 17e+2a
@@ -203,30 +203,30 @@
 [PASS] Test <angle> valid value:  17e+2deg   
 [PASS] Test <angle> valid value:  17e+2rad   
 [PASS] Test <angle> valid value:  17e+2grad   
-[PASS] Test <angle> valid value:  +32\r\n\t 
-[PASS] Test <angle> valid value:  +32deg\r\n\t 
-[PASS] Test <angle> valid value:  +32rad\r\n\t 
-[PASS] Test <angle> valid value:  +32grad\r\n\t 
-[PASS] Test <angle> valid value:  +17E-1\r\n\t 
-[PASS] Test <angle> valid value:  +17E-1deg\r\n\t 
-[PASS] Test <angle> valid value:  +17E-1rad\r\n\t 
-[PASS] Test <angle> valid value:  +17E-1grad\r\n\t 
-[PASS] Test <angle> valid value:  17e+2\r\n\t 
-[PASS] Test <angle> valid value:  17e+2deg\r\n\t 
-[PASS] Test <angle> valid value:  17e+2rad\r\n\t 
-[PASS] Test <angle> valid value:  17e+2grad\r\n\t 
-[PASS] Test <angle> valid value:  +32\f
-[PASS] Test <angle> valid value:  +32deg\f
-[PASS] Test <angle> valid value:  +32rad\f
-[PASS] Test <angle> valid value:  +32grad\f
-[PASS] Test <angle> valid value:  +17E-1\f
-[PASS] Test <angle> valid value:  +17E-1deg\f
-[PASS] Test <angle> valid value:  +17E-1rad\f
-[PASS] Test <angle> valid value:  +17E-1grad\f
-[PASS] Test <angle> valid value:  17e+2\f
-[PASS] Test <angle> valid value:  17e+2deg\f
-[PASS] Test <angle> valid value:  17e+2rad\f
-[PASS] Test <angle> valid value:  17e+2grad\f
+[PASS] Test <angle> valid value:  +32\\r\\n\\t 
+[PASS] Test <angle> valid value:  +32deg\\r\\n\\t 
+[PASS] Test <angle> valid value:  +32rad\\r\\n\\t 
+[PASS] Test <angle> valid value:  +32grad\\r\\n\\t 
+[PASS] Test <angle> valid value:  +17E-1\\r\\n\\t 
+[PASS] Test <angle> valid value:  +17E-1deg\\r\\n\\t 
+[PASS] Test <angle> valid value:  +17E-1rad\\r\\n\\t 
+[PASS] Test <angle> valid value:  +17E-1grad\\r\\n\\t 
+[PASS] Test <angle> valid value:  17e+2\\r\\n\\t 
+[PASS] Test <angle> valid value:  17e+2deg\\r\\n\\t 
+[PASS] Test <angle> valid value:  17e+2rad\\r\\n\\t 
+[PASS] Test <angle> valid value:  17e+2grad\\r\\n\\t 
+[PASS] Test <angle> valid value:  +32\\f
+[PASS] Test <angle> valid value:  +32deg\\f
+[PASS] Test <angle> valid value:  +32rad\\f
+[PASS] Test <angle> valid value:  +32grad\\f
+[PASS] Test <angle> valid value:  +17E-1\\f
+[PASS] Test <angle> valid value:  +17E-1deg\\f
+[PASS] Test <angle> valid value:  +17E-1rad\\f
+[PASS] Test <angle> valid value:  +17E-1grad\\f
+[PASS] Test <angle> valid value:  17e+2\\f
+[PASS] Test <angle> valid value:  17e+2deg\\f
+[PASS] Test <angle> valid value:  17e+2rad\\f
+[PASS] Test <angle> valid value:  17e+2grad\\f
 [PASS] Test <angle> WS invalid value: +32 deg
 [PASS] Test <angle> WS invalid value: +17E-1 deg
 [PASS] Test <angle> WS invalid value: 17e+2 deg
@@ -284,30 +284,30 @@
 [PASS] Test <angle> valid value:    17e+2deg   
 [PASS] Test <angle> valid value:    17e+2rad   
 [PASS] Test <angle> valid value:    17e+2grad   
-[PASS] Test <angle> valid value:    +32\r\n\t 
-[PASS] Test <angle> valid value:    +32deg\r\n\t 
-[PASS] Test <angle> valid value:    +32rad\r\n\t 
-[PASS] Test <angle> valid value:    +32grad\r\n\t 
-[PASS] Test <angle> valid value:    +17E-1\r\n\t 
-[PASS] Test <angle> valid value:    +17E-1deg\r\n\t 
-[PASS] Test <angle> valid value:    +17E-1rad\r\n\t 
-[PASS] Test <angle> valid value:    +17E-1grad\r\n\t 
-[PASS] Test <angle> valid value:    17e+2\r\n\t 
-[PASS] Test <angle> valid value:    17e+2deg\r\n\t 
-[PASS] Test <angle> valid value:    17e+2rad\r\n\t 
-[PASS] Test <angle> valid value:    17e+2grad\r\n\t 
-[PASS] Test <angle> valid value:    +32\f
-[PASS] Test <angle> valid value:    +32deg\f
-[PASS] Test <angle> valid value:    +32rad\f
-[PASS] Test <angle> valid value:    +32grad\f
-[PASS] Test <angle> valid value:    +17E-1\f
-[PASS] Test <angle> valid value:    +17E-1deg\f
-[PASS] Test <angle> valid value:    +17E-1rad\f
-[PASS] Test <angle> valid value:    +17E-1grad\f
-[PASS] Test <angle> valid value:    17e+2\f
-[PASS] Test <angle> valid value:    17e+2deg\f
-[PASS] Test <angle> valid value:    17e+2rad\f
-[PASS] Test <angle> valid value:    17e+2grad\f
+[PASS] Test <angle> valid value:    +32\\r\\n\\t 
+[PASS] Test <angle> valid value:    +32deg\\r\\n\\t 
+[PASS] Test <angle> valid value:    +32rad\\r\\n\\t 
+[PASS] Test <angle> valid value:    +32grad\\r\\n\\t 
+[PASS] Test <angle> valid value:    +17E-1\\r\\n\\t 
+[PASS] Test <angle> valid value:    +17E-1deg\\r\\n\\t 
+[PASS] Test <angle> valid value:    +17E-1rad\\r\\n\\t 
+[PASS] Test <angle> valid value:    +17E-1grad\\r\\n\\t 
+[PASS] Test <angle> valid value:    17e+2\\r\\n\\t 
+[PASS] Test <angle> valid value:    17e+2deg\\r\\n\\t 
+[PASS] Test <angle> valid value:    17e+2rad\\r\\n\\t 
+[PASS] Test <angle> valid value:    17e+2grad\\r\\n\\t 
+[PASS] Test <angle> valid value:    +32\\f
+[PASS] Test <angle> valid value:    +32deg\\f
+[PASS] Test <angle> valid value:    +32rad\\f
+[PASS] Test <angle> valid value:    +32grad\\f
+[PASS] Test <angle> valid value:    +17E-1\\f
+[PASS] Test <angle> valid value:    +17E-1deg\\f
+[PASS] Test <angle> valid value:    +17E-1rad\\f
+[PASS] Test <angle> valid value:    +17E-1grad\\f
+[PASS] Test <angle> valid value:    17e+2\\f
+[PASS] Test <angle> valid value:    17e+2deg\\f
+[PASS] Test <angle> valid value:    17e+2rad\\f
+[PASS] Test <angle> valid value:    17e+2grad\\f
 [PASS] Test <angle> WS invalid value: +32   deg
 [PASS] Test <angle> WS invalid value: +17E-1   deg
 [PASS] Test <angle> WS invalid value: 17e+2   deg
@@ -329,167 +329,167 @@
 [PASS] Test <angle> trailing garbage, value:    +32)90
 [PASS] Test <angle> trailing garbage, value:    +17E-1)90
 [PASS] Test <angle> trailing garbage, value:    17e+2)90
-[PASS] Test <angle> valid value: \r\n\t +32
-[PASS] Test <angle> valid value: \r\n\t +32deg
-[PASS] Test <angle> valid value: \r\n\t +32rad
-[PASS] Test <angle> valid value: \r\n\t +32grad
-[PASS] Test <angle> valid value: \r\n\t +17E-1
-[PASS] Test <angle> valid value: \r\n\t +17E-1deg
-[PASS] Test <angle> valid value: \r\n\t +17E-1rad
-[PASS] Test <angle> valid value: \r\n\t +17E-1grad
-[PASS] Test <angle> valid value: \r\n\t 17e+2
-[PASS] Test <angle> valid value: \r\n\t 17e+2deg
-[PASS] Test <angle> valid value: \r\n\t 17e+2rad
-[PASS] Test <angle> valid value: \r\n\t 17e+2grad
-[PASS] Test <angle> valid value: \r\n\t +32 
-[PASS] Test <angle> valid value: \r\n\t +32deg 
-[PASS] Test <angle> valid value: \r\n\t +32rad 
-[PASS] Test <angle> valid value: \r\n\t +32grad 
-[PASS] Test <angle> valid value: \r\n\t +17E-1 
-[PASS] Test <angle> valid value: \r\n\t +17E-1deg 
-[PASS] Test <angle> valid value: \r\n\t +17E-1rad 
-[PASS] Test <angle> valid value: \r\n\t +17E-1grad 
-[PASS] Test <angle> valid value: \r\n\t 17e+2 
-[PASS] Test <angle> valid value: \r\n\t 17e+2deg 
-[PASS] Test <angle> valid value: \r\n\t 17e+2rad 
-[PASS] Test <angle> valid value: \r\n\t 17e+2grad 
-[PASS] Test <angle> valid value: \r\n\t +32   
-[PASS] Test <angle> valid value: \r\n\t +32deg   
-[PASS] Test <angle> valid value: \r\n\t +32rad   
-[PASS] Test <angle> valid value: \r\n\t +32grad   
-[PASS] Test <angle> valid value: \r\n\t +17E-1   
-[PASS] Test <angle> valid value: \r\n\t +17E-1deg   
-[PASS] Test <angle> valid value: \r\n\t +17E-1rad   
-[PASS] Test <angle> valid value: \r\n\t +17E-1grad   
-[PASS] Test <angle> valid value: \r\n\t 17e+2   
-[PASS] Test <angle> valid value: \r\n\t 17e+2deg   
-[PASS] Test <angle> valid value: \r\n\t 17e+2rad   
-[PASS] Test <angle> valid value: \r\n\t 17e+2grad   
-[PASS] Test <angle> valid value: \r\n\t +32\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t +32deg\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t +32rad\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t +32grad\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t +17E-1\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t +17E-1deg\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t +17E-1rad\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t +17E-1grad\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t 17e+2\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t 17e+2deg\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t 17e+2rad\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t 17e+2grad\r\n\t 
-[PASS] Test <angle> valid value: \r\n\t +32\f
-[PASS] Test <angle> valid value: \r\n\t +32deg\f
-[PASS] Test <angle> valid value: \r\n\t +32rad\f
-[PASS] Test <angle> valid value: \r\n\t +32grad\f
-[PASS] Test <angle> valid value: \r\n\t +17E-1\f
-[PASS] Test <angle> valid value: \r\n\t +17E-1deg\f
-[PASS] Test <angle> valid value: \r\n\t +17E-1rad\f
-[PASS] Test <angle> valid value: \r\n\t +17E-1grad\f
-[PASS] Test <angle> valid value: \r\n\t 17e+2\f
-[PASS] Test <angle> valid value: \r\n\t 17e+2deg\f
-[PASS] Test <angle> valid value: \r\n\t 17e+2rad\f
-[PASS] Test <angle> valid value: \r\n\t 17e+2grad\f
-[PASS] Test <angle> WS invalid value: +32\r\n\t deg
-[PASS] Test <angle> WS invalid value: +17E-1\r\n\t deg
-[PASS] Test <angle> WS invalid value: 17e+2\r\n\t deg
-[PASS] Test <angle> WS invalid value: +32\r\n\t rad
-[PASS] Test <angle> WS invalid value: +17E-1\r\n\t rad
-[PASS] Test <angle> WS invalid value: 17e+2\r\n\t rad
-[PASS] Test <angle> WS invalid value: +32\r\n\t grad
-[PASS] Test <angle> WS invalid value: +17E-1\r\n\t grad
-[PASS] Test <angle> WS invalid value: 17e+2\r\n\t grad
-[PASS] Test <angle> trailing garbage, value: \r\n\t +32a
-[PASS] Test <angle> trailing garbage, value: \r\n\t +17E-1a
-[PASS] Test <angle> trailing garbage, value: \r\n\t 17e+2a
-[PASS] Test <angle> trailing garbage, value: \r\n\t +32e
-[PASS] Test <angle> trailing garbage, value: \r\n\t +17E-1e
-[PASS] Test <angle> trailing garbage, value: \r\n\t 17e+2e
-[PASS] Test <angle> trailing garbage, value: \r\n\t +32foo
-[PASS] Test <angle> trailing garbage, value: \r\n\t +17E-1foo
-[PASS] Test <angle> trailing garbage, value: \r\n\t 17e+2foo
-[PASS] Test <angle> trailing garbage, value: \r\n\t +32)90
-[PASS] Test <angle> trailing garbage, value: \r\n\t +17E-1)90
-[PASS] Test <angle> trailing garbage, value: \r\n\t 17e+2)90
-[PASS] Test <angle> valid value: \f+32
-[PASS] Test <angle> valid value: \f+32deg
-[PASS] Test <angle> valid value: \f+32rad
-[PASS] Test <angle> valid value: \f+32grad
-[PASS] Test <angle> valid value: \f+17E-1
-[PASS] Test <angle> valid value: \f+17E-1deg
-[PASS] Test <angle> valid value: \f+17E-1rad
-[PASS] Test <angle> valid value: \f+17E-1grad
-[PASS] Test <angle> valid value: \f17e+2
-[PASS] Test <angle> valid value: \f17e+2deg
-[PASS] Test <angle> valid value: \f17e+2rad
-[PASS] Test <angle> valid value: \f17e+2grad
-[PASS] Test <angle> valid value: \f+32 
-[PASS] Test <angle> valid value: \f+32deg 
-[PASS] Test <angle> valid value: \f+32rad 
-[PASS] Test <angle> valid value: \f+32grad 
-[PASS] Test <angle> valid value: \f+17E-1 
-[PASS] Test <angle> valid value: \f+17E-1deg 
-[PASS] Test <angle> valid value: \f+17E-1rad 
-[PASS] Test <angle> valid value: \f+17E-1grad 
-[PASS] Test <angle> valid value: \f17e+2 
-[PASS] Test <angle> valid value: \f17e+2deg 
-[PASS] Test <angle> valid value: \f17e+2rad 
-[PASS] Test <angle> valid value: \f17e+2grad 
-[PASS] Test <angle> valid value: \f+32   
-[PASS] Test <angle> valid value: \f+32deg   
-[PASS] Test <angle> valid value: \f+32rad   
-[PASS] Test <angle> valid value: \f+32grad   
-[PASS] Test <angle> valid value: \f+17E-1   
-[PASS] Test <angle> valid value: \f+17E-1deg   
-[PASS] Test <angle> valid value: \f+17E-1rad   
-[PASS] Test <angle> valid value: \f+17E-1grad   
-[PASS] Test <angle> valid value: \f17e+2   
-[PASS] Test <angle> valid value: \f17e+2deg   
-[PASS] Test <angle> valid value: \f17e+2rad   
-[PASS] Test <angle> valid value: \f17e+2grad   
-[PASS] Test <angle> valid value: \f+32\r\n\t 
-[PASS] Test <angle> valid value: \f+32deg\r\n\t 
-[PASS] Test <angle> valid value: \f+32rad\r\n\t 
-[PASS] Test <angle> valid value: \f+32grad\r\n\t 
-[PASS] Test <angle> valid value: \f+17E-1\r\n\t 
-[PASS] Test <angle> valid value: \f+17E-1deg\r\n\t 
-[PASS] Test <angle> valid value: \f+17E-1rad\r\n\t 
-[PASS] Test <angle> valid value: \f+17E-1grad\r\n\t 
-[PASS] Test <angle> valid value: \f17e+2\r\n\t 
-[PASS] Test <angle> valid value: \f17e+2deg\r\n\t 
-[PASS] Test <angle> valid value: \f17e+2rad\r\n\t 
-[PASS] Test <angle> valid value: \f17e+2grad\r\n\t 
-[PASS] Test <angle> valid value: \f+32\f
-[PASS] Test <angle> valid value: \f+32deg\f
-[PASS] Test <angle> valid value: \f+32rad\f
-[PASS] Test <angle> valid value: \f+32grad\f
-[PASS] Test <angle> valid value: \f+17E-1\f
-[PASS] Test <angle> valid value: \f+17E-1deg\f
-[PASS] Test <angle> valid value: \f+17E-1rad\f
-[PASS] Test <angle> valid value: \f+17E-1grad\f
-[PASS] Test <angle> valid value: \f17e+2\f
-[PASS] Test <angle> valid value: \f17e+2deg\f
-[PASS] Test <angle> valid value: \f17e+2rad\f
-[PASS] Test <angle> valid value: \f17e+2grad\f
-[PASS] Test <angle> WS invalid value: +32\fdeg
-[PASS] Test <angle> WS invalid value: +17E-1\fdeg
-[PASS] Test <angle> WS invalid value: 17e+2\fdeg
-[PASS] Test <angle> WS invalid value: +32\frad
-[PASS] Test <angle> WS invalid value: +17E-1\frad
-[PASS] Test <angle> WS invalid value: 17e+2\frad
-[PASS] Test <angle> WS invalid value: +32\fgrad
-[PASS] Test <angle> WS invalid value: +17E-1\fgrad
-[PASS] Test <angle> WS invalid value: 17e+2\fgrad
-[PASS] Test <angle> trailing garbage, value: \f+32a
-[PASS] Test <angle> trailing garbage, value: \f+17E-1a
-[PASS] Test <angle> trailing garbage, value: \f17e+2a
-[PASS] Test <angle> trailing garbage, value: \f+32e
-[PASS] Test <angle> trailing garbage, value: \f+17E-1e
-[PASS] Test <angle> trailing garbage, value: \f17e+2e
-[PASS] Test <angle> trailing garbage, value: \f+32foo
-[PASS] Test <angle> trailing garbage, value: \f+17E-1foo
-[PASS] Test <angle> trailing garbage, value: \f17e+2foo
-[PASS] Test <angle> trailing garbage, value: \f+32)90
-[PASS] Test <angle> trailing garbage, value: \f+17E-1)90
-[PASS] Test <angle> trailing garbage, value: \f17e+2)90
+[PASS] Test <angle> valid value: \\r\\n\\t +32
+[PASS] Test <angle> valid value: \\r\\n\\t +32deg
+[PASS] Test <angle> valid value: \\r\\n\\t +32rad
+[PASS] Test <angle> valid value: \\r\\n\\t +32grad
+[PASS] Test <angle> valid value: \\r\\n\\t +17E-1
+[PASS] Test <angle> valid value: \\r\\n\\t +17E-1deg
+[PASS] Test <angle> valid value: \\r\\n\\t +17E-1rad
+[PASS] Test <angle> valid value: \\r\\n\\t +17E-1grad
+[PASS] Test <angle> valid value: \\r\\n\\t 17e+2
+[PASS] Test <angle> valid value: \\r\\n\\t 17e+2deg
+[PASS] Test <angle> valid value: \\r\\n\\t 17e+2rad
+[PASS] Test <angle> valid value: \\r\\n\\t 17e+2grad
+[PASS] Test <angle> valid value: \\r\\n\\t +32 
+[PASS] Test <angle> valid value: \\r\\n\\t +32deg 
+[PASS] Test <angle> valid value: \\r\\n\\t +32rad 
+[PASS] Test <angle> valid value: \\r\\n\\t +32grad 
+[PASS] Test <angle> valid value: \\r\\n\\t +17E-1 
+[PASS] Test <angle> valid value: \\r\\n\\t +17E-1deg 
+[PASS] Test <angle> valid value: \\r\\n\\t +17E-1rad 
+[PASS] Test <angle> valid value: \\r\\n\\t +17E-1grad 
+[PASS] Test <angle> valid value: \\r\\n\\t 17e+2 
+[PASS] Test <angle> valid value: \\r\\n\\t 17e+2deg 
+[PASS] Test <angle> valid value: \\r\\n\\t 17e+2rad 
+[PASS] Test <angle> valid value: \\r\\n\\t 17e+2grad 
+[PASS] Test <angle> valid value: \\r\\n\\t +32   
+[PASS] Test <angle> valid value: \\r\\n\\t +32deg   
+[PASS] Test <angle> valid value: \\r\\n\\t +32rad   
+[PASS] Test <angle> valid value: \\r\\n\\t +32grad   
+[PASS] Test <angle> valid value: \\r\\n\\t +17E-1   
+[PASS] Test <angle> valid value: \\r\\n\\t +17E-1deg   
+[PASS] Test <angle> valid value: \\r\\n\\t +17E-1rad   
+[PASS] Test <angle> valid value: \\r\\n\\t +17E-1grad   
+[PASS] Test <angle> valid value: \\r\\n\\t 17e+2   
+[PASS] Test <angle> valid value: \\r\\n\\t 17e+2deg   
+[PASS] Test <angle> valid value: \\r\\n\\t 17e+2rad   
+[PASS] Test <angle> valid value: \\r\\n\\t 17e+2grad   
+[PASS] Test <angle> valid value: \\r\\n\\t +32\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t +32deg\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t +32rad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t +32grad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t +17E-1\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t +17E-1deg\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t +17E-1rad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t +17E-1grad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t 17e+2\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t 17e+2deg\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t 17e+2rad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t 17e+2grad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\r\\n\\t +32\\f
+[PASS] Test <angle> valid value: \\r\\n\\t +32deg\\f
+[PASS] Test <angle> valid value: \\r\\n\\t +32rad\\f
+[PASS] Test <angle> valid value: \\r\\n\\t +32grad\\f
+[PASS] Test <angle> valid value: \\r\\n\\t +17E-1\\f
+[PASS] Test <angle> valid value: \\r\\n\\t +17E-1deg\\f
+[PASS] Test <angle> valid value: \\r\\n\\t +17E-1rad\\f
+[PASS] Test <angle> valid value: \\r\\n\\t +17E-1grad\\f
+[PASS] Test <angle> valid value: \\r\\n\\t 17e+2\\f
+[PASS] Test <angle> valid value: \\r\\n\\t 17e+2deg\\f
+[PASS] Test <angle> valid value: \\r\\n\\t 17e+2rad\\f
+[PASS] Test <angle> valid value: \\r\\n\\t 17e+2grad\\f
+[PASS] Test <angle> WS invalid value: +32\\r\\n\\t deg
+[PASS] Test <angle> WS invalid value: +17E-1\\r\\n\\t deg
+[PASS] Test <angle> WS invalid value: 17e+2\\r\\n\\t deg
+[PASS] Test <angle> WS invalid value: +32\\r\\n\\t rad
+[PASS] Test <angle> WS invalid value: +17E-1\\r\\n\\t rad
+[PASS] Test <angle> WS invalid value: 17e+2\\r\\n\\t rad
+[PASS] Test <angle> WS invalid value: +32\\r\\n\\t grad
+[PASS] Test <angle> WS invalid value: +17E-1\\r\\n\\t grad
+[PASS] Test <angle> WS invalid value: 17e+2\\r\\n\\t grad
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t +32a
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t +17E-1a
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t 17e+2a
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t +32e
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t +17E-1e
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t 17e+2e
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t +32foo
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t +17E-1foo
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t 17e+2foo
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t +32)90
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t +17E-1)90
+[PASS] Test <angle> trailing garbage, value: \\r\\n\\t 17e+2)90
+[PASS] Test <angle> valid value: \\f+32
+[PASS] Test <angle> valid value: \\f+32deg
+[PASS] Test <angle> valid value: \\f+32rad
+[PASS] Test <angle> valid value: \\f+32grad
+[PASS] Test <angle> valid value: \\f+17E-1
+[PASS] Test <angle> valid value: \\f+17E-1deg
+[PASS] Test <angle> valid value: \\f+17E-1rad
+[PASS] Test <angle> valid value: \\f+17E-1grad
+[PASS] Test <angle> valid value: \\f17e+2
+[PASS] Test <angle> valid value: \\f17e+2deg
+[PASS] Test <angle> valid value: \\f17e+2rad
+[PASS] Test <angle> valid value: \\f17e+2grad
+[PASS] Test <angle> valid value: \\f+32 
+[PASS] Test <angle> valid value: \\f+32deg 
+[PASS] Test <angle> valid value: \\f+32rad 
+[PASS] Test <angle> valid value: \\f+32grad 
+[PASS] Test <angle> valid value: \\f+17E-1 
+[PASS] Test <angle> valid value: \\f+17E-1deg 
+[PASS] Test <angle> valid value: \\f+17E-1rad 
+[PASS] Test <angle> valid value: \\f+17E-1grad 
+[PASS] Test <angle> valid value: \\f17e+2 
+[PASS] Test <angle> valid value: \\f17e+2deg 
+[PASS] Test <angle> valid value: \\f17e+2rad 
+[PASS] Test <angle> valid value: \\f17e+2grad 
+[PASS] Test <angle> valid value: \\f+32   
+[PASS] Test <angle> valid value: \\f+32deg   
+[PASS] Test <angle> valid value: \\f+32rad   
+[PASS] Test <angle> valid value: \\f+32grad   
+[PASS] Test <angle> valid value: \\f+17E-1   
+[PASS] Test <angle> valid value: \\f+17E-1deg   
+[PASS] Test <angle> valid value: \\f+17E-1rad   
+[PASS] Test <angle> valid value: \\f+17E-1grad   
+[PASS] Test <angle> valid value: \\f17e+2   
+[PASS] Test <angle> valid value: \\f17e+2deg   
+[PASS] Test <angle> valid value: \\f17e+2rad   
+[PASS] Test <angle> valid value: \\f17e+2grad   
+[PASS] Test <angle> valid value: \\f+32\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f+32deg\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f+32rad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f+32grad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f+17E-1\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f+17E-1deg\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f+17E-1rad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f+17E-1grad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f17e+2\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f17e+2deg\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f17e+2rad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f17e+2grad\\r\\n\\t 
+[PASS] Test <angle> valid value: \\f+32\\f
+[PASS] Test <angle> valid value: \\f+32deg\\f
+[PASS] Test <angle> valid value: \\f+32rad\\f
+[PASS] Test <angle> valid value: \\f+32grad\\f
+[PASS] Test <angle> valid value: \\f+17E-1\\f
+[PASS] Test <angle> valid value: \\f+17E-1deg\\f
+[PASS] Test <angle> valid value: \\f+17E-1rad\\f
+[PASS] Test <angle> valid value: \\f+17E-1grad\\f
+[PASS] Test <angle> valid value: \\f17e+2\\f
+[PASS] Test <angle> valid value: \\f17e+2deg\\f
+[PASS] Test <angle> valid value: \\f17e+2rad\\f
+[PASS] Test <angle> valid value: \\f17e+2grad\\f
+[PASS] Test <angle> WS invalid value: +32\\fdeg
+[PASS] Test <angle> WS invalid value: +17E-1\\fdeg
+[PASS] Test <angle> WS invalid value: 17e+2\\fdeg
+[PASS] Test <angle> WS invalid value: +32\\frad
+[PASS] Test <angle> WS invalid value: +17E-1\\frad
+[PASS] Test <angle> WS invalid value: 17e+2\\frad
+[PASS] Test <angle> WS invalid value: +32\\fgrad
+[PASS] Test <angle> WS invalid value: +17E-1\\fgrad
+[PASS] Test <angle> WS invalid value: 17e+2\\fgrad
+[PASS] Test <angle> trailing garbage, value: \\f+32a
+[PASS] Test <angle> trailing garbage, value: \\f+17E-1a
+[PASS] Test <angle> trailing garbage, value: \\f17e+2a
+[PASS] Test <angle> trailing garbage, value: \\f+32e
+[PASS] Test <angle> trailing garbage, value: \\f+17E-1e
+[PASS] Test <angle> trailing garbage, value: \\f17e+2e
+[PASS] Test <angle> trailing garbage, value: \\f+32foo
+[PASS] Test <angle> trailing garbage, value: \\f+17E-1foo
+[PASS] Test <angle> trailing garbage, value: \\f17e+2foo
+[PASS] Test <angle> trailing garbage, value: \\f+32)90
+[PASS] Test <angle> trailing garbage, value: \\f+17E-1)90
+[PASS] Test <angle> trailing garbage, value: \\f17e+2)90
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/svg/parser/whitespace-angle-invalid-1-expected.txt b/third_party/blink/web_tests/svg/parser/whitespace-angle-invalid-1-expected.txt
index c5fc70e..bc59fee32 100644
--- a/third_party/blink/web_tests/svg/parser/whitespace-angle-invalid-1-expected.txt
+++ b/third_party/blink/web_tests/svg/parser/whitespace-angle-invalid-1-expected.txt
@@ -895,70 +895,70 @@
 [PASS] Test <angle> invalid value: E-deg   
 [PASS] Test <angle> invalid value: E-rad   
 [PASS] Test <angle> invalid value: E-grad   
-[PASS] Test <angle> invalid value: NaN\r\n\t 
-[PASS] Test <angle> invalid value: NaNdeg\r\n\t 
-[PASS] Test <angle> invalid value: NaNrad\r\n\t 
-[PASS] Test <angle> invalid value: NaNgrad\r\n\t 
-[PASS] Test <angle> invalid value: Infinity\r\n\t 
-[PASS] Test <angle> invalid value: Infinitydeg\r\n\t 
-[PASS] Test <angle> invalid value: Infinityrad\r\n\t 
-[PASS] Test <angle> invalid value: Infinitygrad\r\n\t 
-[PASS] Test <angle> invalid value: -Infinity\r\n\t 
-[PASS] Test <angle> invalid value: -Infinitydeg\r\n\t 
-[PASS] Test <angle> invalid value: -Infinityrad\r\n\t 
-[PASS] Test <angle> invalid value: -Infinitygrad\r\n\t 
-[PASS] Test <angle> invalid value: fnord\r\n\t 
-[PASS] Test <angle> invalid value: fnorddeg\r\n\t 
-[PASS] Test <angle> invalid value: fnordrad\r\n\t 
-[PASS] Test <angle> invalid value: fnordgrad\r\n\t 
-[PASS] Test <angle> invalid value: E\r\n\t 
-[PASS] Test <angle> invalid value: Edeg\r\n\t 
-[PASS] Test <angle> invalid value: Erad\r\n\t 
-[PASS] Test <angle> invalid value: Egrad\r\n\t 
-[PASS] Test <angle> invalid value: e\r\n\t 
-[PASS] Test <angle> invalid value: edeg\r\n\t 
-[PASS] Test <angle> invalid value: erad\r\n\t 
-[PASS] Test <angle> invalid value: egrad\r\n\t 
-[PASS] Test <angle> invalid value: e+\r\n\t 
-[PASS] Test <angle> invalid value: e+deg\r\n\t 
-[PASS] Test <angle> invalid value: e+rad\r\n\t 
-[PASS] Test <angle> invalid value: e+grad\r\n\t 
-[PASS] Test <angle> invalid value: E-\r\n\t 
-[PASS] Test <angle> invalid value: E-deg\r\n\t 
-[PASS] Test <angle> invalid value: E-rad\r\n\t 
-[PASS] Test <angle> invalid value: E-grad\r\n\t 
-[PASS] Test <angle> invalid value: NaN\f
-[PASS] Test <angle> invalid value: NaNdeg\f
-[PASS] Test <angle> invalid value: NaNrad\f
-[PASS] Test <angle> invalid value: NaNgrad\f
-[PASS] Test <angle> invalid value: Infinity\f
-[PASS] Test <angle> invalid value: Infinitydeg\f
-[PASS] Test <angle> invalid value: Infinityrad\f
-[PASS] Test <angle> invalid value: Infinitygrad\f
-[PASS] Test <angle> invalid value: -Infinity\f
-[PASS] Test <angle> invalid value: -Infinitydeg\f
-[PASS] Test <angle> invalid value: -Infinityrad\f
-[PASS] Test <angle> invalid value: -Infinitygrad\f
-[PASS] Test <angle> invalid value: fnord\f
-[PASS] Test <angle> invalid value: fnorddeg\f
-[PASS] Test <angle> invalid value: fnordrad\f
-[PASS] Test <angle> invalid value: fnordgrad\f
-[PASS] Test <angle> invalid value: E\f
-[PASS] Test <angle> invalid value: Edeg\f
-[PASS] Test <angle> invalid value: Erad\f
-[PASS] Test <angle> invalid value: Egrad\f
-[PASS] Test <angle> invalid value: e\f
-[PASS] Test <angle> invalid value: edeg\f
-[PASS] Test <angle> invalid value: erad\f
-[PASS] Test <angle> invalid value: egrad\f
-[PASS] Test <angle> invalid value: e+\f
-[PASS] Test <angle> invalid value: e+deg\f
-[PASS] Test <angle> invalid value: e+rad\f
-[PASS] Test <angle> invalid value: e+grad\f
-[PASS] Test <angle> invalid value: E-\f
-[PASS] Test <angle> invalid value: E-deg\f
-[PASS] Test <angle> invalid value: E-rad\f
-[PASS] Test <angle> invalid value: E-grad\f
+[PASS] Test <angle> invalid value: NaN\\r\\n\\t 
+[PASS] Test <angle> invalid value: NaNdeg\\r\\n\\t 
+[PASS] Test <angle> invalid value: NaNrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: NaNgrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: Infinity\\r\\n\\t 
+[PASS] Test <angle> invalid value: Infinitydeg\\r\\n\\t 
+[PASS] Test <angle> invalid value: Infinityrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: Infinitygrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: -Infinity\\r\\n\\t 
+[PASS] Test <angle> invalid value: -Infinitydeg\\r\\n\\t 
+[PASS] Test <angle> invalid value: -Infinityrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: -Infinitygrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: fnord\\r\\n\\t 
+[PASS] Test <angle> invalid value: fnorddeg\\r\\n\\t 
+[PASS] Test <angle> invalid value: fnordrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: fnordgrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: E\\r\\n\\t 
+[PASS] Test <angle> invalid value: Edeg\\r\\n\\t 
+[PASS] Test <angle> invalid value: Erad\\r\\n\\t 
+[PASS] Test <angle> invalid value: Egrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: e\\r\\n\\t 
+[PASS] Test <angle> invalid value: edeg\\r\\n\\t 
+[PASS] Test <angle> invalid value: erad\\r\\n\\t 
+[PASS] Test <angle> invalid value: egrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: e+\\r\\n\\t 
+[PASS] Test <angle> invalid value: e+deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: e+rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: e+grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: E-\\r\\n\\t 
+[PASS] Test <angle> invalid value: E-deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: E-rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: E-grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: NaN\\f
+[PASS] Test <angle> invalid value: NaNdeg\\f
+[PASS] Test <angle> invalid value: NaNrad\\f
+[PASS] Test <angle> invalid value: NaNgrad\\f
+[PASS] Test <angle> invalid value: Infinity\\f
+[PASS] Test <angle> invalid value: Infinitydeg\\f
+[PASS] Test <angle> invalid value: Infinityrad\\f
+[PASS] Test <angle> invalid value: Infinitygrad\\f
+[PASS] Test <angle> invalid value: -Infinity\\f
+[PASS] Test <angle> invalid value: -Infinitydeg\\f
+[PASS] Test <angle> invalid value: -Infinityrad\\f
+[PASS] Test <angle> invalid value: -Infinitygrad\\f
+[PASS] Test <angle> invalid value: fnord\\f
+[PASS] Test <angle> invalid value: fnorddeg\\f
+[PASS] Test <angle> invalid value: fnordrad\\f
+[PASS] Test <angle> invalid value: fnordgrad\\f
+[PASS] Test <angle> invalid value: E\\f
+[PASS] Test <angle> invalid value: Edeg\\f
+[PASS] Test <angle> invalid value: Erad\\f
+[PASS] Test <angle> invalid value: Egrad\\f
+[PASS] Test <angle> invalid value: e\\f
+[PASS] Test <angle> invalid value: edeg\\f
+[PASS] Test <angle> invalid value: erad\\f
+[PASS] Test <angle> invalid value: egrad\\f
+[PASS] Test <angle> invalid value: e+\\f
+[PASS] Test <angle> invalid value: e+deg\\f
+[PASS] Test <angle> invalid value: e+rad\\f
+[PASS] Test <angle> invalid value: e+grad\\f
+[PASS] Test <angle> invalid value: E-\\f
+[PASS] Test <angle> invalid value: E-deg\\f
+[PASS] Test <angle> invalid value: E-rad\\f
+[PASS] Test <angle> invalid value: E-grad\\f
 [PASS] Test <angle> invalid value:  NaN
 [PASS] Test <angle> invalid value:  NaNdeg
 [PASS] Test <angle> invalid value:  NaNrad
@@ -1055,70 +1055,70 @@
 [PASS] Test <angle> invalid value:  E-deg   
 [PASS] Test <angle> invalid value:  E-rad   
 [PASS] Test <angle> invalid value:  E-grad   
-[PASS] Test <angle> invalid value:  NaN\r\n\t 
-[PASS] Test <angle> invalid value:  NaNdeg\r\n\t 
-[PASS] Test <angle> invalid value:  NaNrad\r\n\t 
-[PASS] Test <angle> invalid value:  NaNgrad\r\n\t 
-[PASS] Test <angle> invalid value:  Infinity\r\n\t 
-[PASS] Test <angle> invalid value:  Infinitydeg\r\n\t 
-[PASS] Test <angle> invalid value:  Infinityrad\r\n\t 
-[PASS] Test <angle> invalid value:  Infinitygrad\r\n\t 
-[PASS] Test <angle> invalid value:  -Infinity\r\n\t 
-[PASS] Test <angle> invalid value:  -Infinitydeg\r\n\t 
-[PASS] Test <angle> invalid value:  -Infinityrad\r\n\t 
-[PASS] Test <angle> invalid value:  -Infinitygrad\r\n\t 
-[PASS] Test <angle> invalid value:  fnord\r\n\t 
-[PASS] Test <angle> invalid value:  fnorddeg\r\n\t 
-[PASS] Test <angle> invalid value:  fnordrad\r\n\t 
-[PASS] Test <angle> invalid value:  fnordgrad\r\n\t 
-[PASS] Test <angle> invalid value:  E\r\n\t 
-[PASS] Test <angle> invalid value:  Edeg\r\n\t 
-[PASS] Test <angle> invalid value:  Erad\r\n\t 
-[PASS] Test <angle> invalid value:  Egrad\r\n\t 
-[PASS] Test <angle> invalid value:  e\r\n\t 
-[PASS] Test <angle> invalid value:  edeg\r\n\t 
-[PASS] Test <angle> invalid value:  erad\r\n\t 
-[PASS] Test <angle> invalid value:  egrad\r\n\t 
-[PASS] Test <angle> invalid value:  e+\r\n\t 
-[PASS] Test <angle> invalid value:  e+deg\r\n\t 
-[PASS] Test <angle> invalid value:  e+rad\r\n\t 
-[PASS] Test <angle> invalid value:  e+grad\r\n\t 
-[PASS] Test <angle> invalid value:  E-\r\n\t 
-[PASS] Test <angle> invalid value:  E-deg\r\n\t 
-[PASS] Test <angle> invalid value:  E-rad\r\n\t 
-[PASS] Test <angle> invalid value:  E-grad\r\n\t 
-[PASS] Test <angle> invalid value:  NaN\f
-[PASS] Test <angle> invalid value:  NaNdeg\f
-[PASS] Test <angle> invalid value:  NaNrad\f
-[PASS] Test <angle> invalid value:  NaNgrad\f
-[PASS] Test <angle> invalid value:  Infinity\f
-[PASS] Test <angle> invalid value:  Infinitydeg\f
-[PASS] Test <angle> invalid value:  Infinityrad\f
-[PASS] Test <angle> invalid value:  Infinitygrad\f
-[PASS] Test <angle> invalid value:  -Infinity\f
-[PASS] Test <angle> invalid value:  -Infinitydeg\f
-[PASS] Test <angle> invalid value:  -Infinityrad\f
-[PASS] Test <angle> invalid value:  -Infinitygrad\f
-[PASS] Test <angle> invalid value:  fnord\f
-[PASS] Test <angle> invalid value:  fnorddeg\f
-[PASS] Test <angle> invalid value:  fnordrad\f
-[PASS] Test <angle> invalid value:  fnordgrad\f
-[PASS] Test <angle> invalid value:  E\f
-[PASS] Test <angle> invalid value:  Edeg\f
-[PASS] Test <angle> invalid value:  Erad\f
-[PASS] Test <angle> invalid value:  Egrad\f
-[PASS] Test <angle> invalid value:  e\f
-[PASS] Test <angle> invalid value:  edeg\f
-[PASS] Test <angle> invalid value:  erad\f
-[PASS] Test <angle> invalid value:  egrad\f
-[PASS] Test <angle> invalid value:  e+\f
-[PASS] Test <angle> invalid value:  e+deg\f
-[PASS] Test <angle> invalid value:  e+rad\f
-[PASS] Test <angle> invalid value:  e+grad\f
-[PASS] Test <angle> invalid value:  E-\f
-[PASS] Test <angle> invalid value:  E-deg\f
-[PASS] Test <angle> invalid value:  E-rad\f
-[PASS] Test <angle> invalid value:  E-grad\f
+[PASS] Test <angle> invalid value:  NaN\\r\\n\\t 
+[PASS] Test <angle> invalid value:  NaNdeg\\r\\n\\t 
+[PASS] Test <angle> invalid value:  NaNrad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  NaNgrad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  Infinity\\r\\n\\t 
+[PASS] Test <angle> invalid value:  Infinitydeg\\r\\n\\t 
+[PASS] Test <angle> invalid value:  Infinityrad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  Infinitygrad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  -Infinity\\r\\n\\t 
+[PASS] Test <angle> invalid value:  -Infinitydeg\\r\\n\\t 
+[PASS] Test <angle> invalid value:  -Infinityrad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  -Infinitygrad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  fnord\\r\\n\\t 
+[PASS] Test <angle> invalid value:  fnorddeg\\r\\n\\t 
+[PASS] Test <angle> invalid value:  fnordrad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  fnordgrad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  E\\r\\n\\t 
+[PASS] Test <angle> invalid value:  Edeg\\r\\n\\t 
+[PASS] Test <angle> invalid value:  Erad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  Egrad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  e\\r\\n\\t 
+[PASS] Test <angle> invalid value:  edeg\\r\\n\\t 
+[PASS] Test <angle> invalid value:  erad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  egrad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  e+\\r\\n\\t 
+[PASS] Test <angle> invalid value:  e+deg\\r\\n\\t 
+[PASS] Test <angle> invalid value:  e+rad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  e+grad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  E-\\r\\n\\t 
+[PASS] Test <angle> invalid value:  E-deg\\r\\n\\t 
+[PASS] Test <angle> invalid value:  E-rad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  E-grad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  NaN\\f
+[PASS] Test <angle> invalid value:  NaNdeg\\f
+[PASS] Test <angle> invalid value:  NaNrad\\f
+[PASS] Test <angle> invalid value:  NaNgrad\\f
+[PASS] Test <angle> invalid value:  Infinity\\f
+[PASS] Test <angle> invalid value:  Infinitydeg\\f
+[PASS] Test <angle> invalid value:  Infinityrad\\f
+[PASS] Test <angle> invalid value:  Infinitygrad\\f
+[PASS] Test <angle> invalid value:  -Infinity\\f
+[PASS] Test <angle> invalid value:  -Infinitydeg\\f
+[PASS] Test <angle> invalid value:  -Infinityrad\\f
+[PASS] Test <angle> invalid value:  -Infinitygrad\\f
+[PASS] Test <angle> invalid value:  fnord\\f
+[PASS] Test <angle> invalid value:  fnorddeg\\f
+[PASS] Test <angle> invalid value:  fnordrad\\f
+[PASS] Test <angle> invalid value:  fnordgrad\\f
+[PASS] Test <angle> invalid value:  E\\f
+[PASS] Test <angle> invalid value:  Edeg\\f
+[PASS] Test <angle> invalid value:  Erad\\f
+[PASS] Test <angle> invalid value:  Egrad\\f
+[PASS] Test <angle> invalid value:  e\\f
+[PASS] Test <angle> invalid value:  edeg\\f
+[PASS] Test <angle> invalid value:  erad\\f
+[PASS] Test <angle> invalid value:  egrad\\f
+[PASS] Test <angle> invalid value:  e+\\f
+[PASS] Test <angle> invalid value:  e+deg\\f
+[PASS] Test <angle> invalid value:  e+rad\\f
+[PASS] Test <angle> invalid value:  e+grad\\f
+[PASS] Test <angle> invalid value:  E-\\f
+[PASS] Test <angle> invalid value:  E-deg\\f
+[PASS] Test <angle> invalid value:  E-rad\\f
+[PASS] Test <angle> invalid value:  E-grad\\f
 [PASS] Test <angle> invalid value:    NaN
 [PASS] Test <angle> invalid value:    NaNdeg
 [PASS] Test <angle> invalid value:    NaNrad
@@ -1215,389 +1215,389 @@
 [PASS] Test <angle> invalid value:    E-deg   
 [PASS] Test <angle> invalid value:    E-rad   
 [PASS] Test <angle> invalid value:    E-grad   
-[PASS] Test <angle> invalid value:    NaN\r\n\t 
-[PASS] Test <angle> invalid value:    NaNdeg\r\n\t 
-[PASS] Test <angle> invalid value:    NaNrad\r\n\t 
-[PASS] Test <angle> invalid value:    NaNgrad\r\n\t 
-[PASS] Test <angle> invalid value:    Infinity\r\n\t 
-[PASS] Test <angle> invalid value:    Infinitydeg\r\n\t 
-[PASS] Test <angle> invalid value:    Infinityrad\r\n\t 
-[PASS] Test <angle> invalid value:    Infinitygrad\r\n\t 
-[PASS] Test <angle> invalid value:    -Infinity\r\n\t 
-[PASS] Test <angle> invalid value:    -Infinitydeg\r\n\t 
-[PASS] Test <angle> invalid value:    -Infinityrad\r\n\t 
-[PASS] Test <angle> invalid value:    -Infinitygrad\r\n\t 
-[PASS] Test <angle> invalid value:    fnord\r\n\t 
-[PASS] Test <angle> invalid value:    fnorddeg\r\n\t 
-[PASS] Test <angle> invalid value:    fnordrad\r\n\t 
-[PASS] Test <angle> invalid value:    fnordgrad\r\n\t 
-[PASS] Test <angle> invalid value:    E\r\n\t 
-[PASS] Test <angle> invalid value:    Edeg\r\n\t 
-[PASS] Test <angle> invalid value:    Erad\r\n\t 
-[PASS] Test <angle> invalid value:    Egrad\r\n\t 
-[PASS] Test <angle> invalid value:    e\r\n\t 
-[PASS] Test <angle> invalid value:    edeg\r\n\t 
-[PASS] Test <angle> invalid value:    erad\r\n\t 
-[PASS] Test <angle> invalid value:    egrad\r\n\t 
-[PASS] Test <angle> invalid value:    e+\r\n\t 
-[PASS] Test <angle> invalid value:    e+deg\r\n\t 
-[PASS] Test <angle> invalid value:    e+rad\r\n\t 
-[PASS] Test <angle> invalid value:    e+grad\r\n\t 
-[PASS] Test <angle> invalid value:    E-\r\n\t 
-[PASS] Test <angle> invalid value:    E-deg\r\n\t 
-[PASS] Test <angle> invalid value:    E-rad\r\n\t 
-[PASS] Test <angle> invalid value:    E-grad\r\n\t 
-[PASS] Test <angle> invalid value:    NaN\f
-[PASS] Test <angle> invalid value:    NaNdeg\f
-[PASS] Test <angle> invalid value:    NaNrad\f
-[PASS] Test <angle> invalid value:    NaNgrad\f
-[PASS] Test <angle> invalid value:    Infinity\f
-[PASS] Test <angle> invalid value:    Infinitydeg\f
-[PASS] Test <angle> invalid value:    Infinityrad\f
-[PASS] Test <angle> invalid value:    Infinitygrad\f
-[PASS] Test <angle> invalid value:    -Infinity\f
-[PASS] Test <angle> invalid value:    -Infinitydeg\f
-[PASS] Test <angle> invalid value:    -Infinityrad\f
-[PASS] Test <angle> invalid value:    -Infinitygrad\f
-[PASS] Test <angle> invalid value:    fnord\f
-[PASS] Test <angle> invalid value:    fnorddeg\f
-[PASS] Test <angle> invalid value:    fnordrad\f
-[PASS] Test <angle> invalid value:    fnordgrad\f
-[PASS] Test <angle> invalid value:    E\f
-[PASS] Test <angle> invalid value:    Edeg\f
-[PASS] Test <angle> invalid value:    Erad\f
-[PASS] Test <angle> invalid value:    Egrad\f
-[PASS] Test <angle> invalid value:    e\f
-[PASS] Test <angle> invalid value:    edeg\f
-[PASS] Test <angle> invalid value:    erad\f
-[PASS] Test <angle> invalid value:    egrad\f
-[PASS] Test <angle> invalid value:    e+\f
-[PASS] Test <angle> invalid value:    e+deg\f
-[PASS] Test <angle> invalid value:    e+rad\f
-[PASS] Test <angle> invalid value:    e+grad\f
-[PASS] Test <angle> invalid value:    E-\f
-[PASS] Test <angle> invalid value:    E-deg\f
-[PASS] Test <angle> invalid value:    E-rad\f
-[PASS] Test <angle> invalid value:    E-grad\f
-[PASS] Test <angle> invalid value: \r\n\t NaN
-[PASS] Test <angle> invalid value: \r\n\t NaNdeg
-[PASS] Test <angle> invalid value: \r\n\t NaNrad
-[PASS] Test <angle> invalid value: \r\n\t NaNgrad
-[PASS] Test <angle> invalid value: \r\n\t Infinity
-[PASS] Test <angle> invalid value: \r\n\t Infinitydeg
-[PASS] Test <angle> invalid value: \r\n\t Infinityrad
-[PASS] Test <angle> invalid value: \r\n\t Infinitygrad
-[PASS] Test <angle> invalid value: \r\n\t -Infinity
-[PASS] Test <angle> invalid value: \r\n\t -Infinitydeg
-[PASS] Test <angle> invalid value: \r\n\t -Infinityrad
-[PASS] Test <angle> invalid value: \r\n\t -Infinitygrad
-[PASS] Test <angle> invalid value: \r\n\t fnord
-[PASS] Test <angle> invalid value: \r\n\t fnorddeg
-[PASS] Test <angle> invalid value: \r\n\t fnordrad
-[PASS] Test <angle> invalid value: \r\n\t fnordgrad
-[PASS] Test <angle> invalid value: \r\n\t E
-[PASS] Test <angle> invalid value: \r\n\t Edeg
-[PASS] Test <angle> invalid value: \r\n\t Erad
-[PASS] Test <angle> invalid value: \r\n\t Egrad
-[PASS] Test <angle> invalid value: \r\n\t e
-[PASS] Test <angle> invalid value: \r\n\t edeg
-[PASS] Test <angle> invalid value: \r\n\t erad
-[PASS] Test <angle> invalid value: \r\n\t egrad
-[PASS] Test <angle> invalid value: \r\n\t e+
-[PASS] Test <angle> invalid value: \r\n\t e+deg
-[PASS] Test <angle> invalid value: \r\n\t e+rad
-[PASS] Test <angle> invalid value: \r\n\t e+grad
-[PASS] Test <angle> invalid value: \r\n\t E-
-[PASS] Test <angle> invalid value: \r\n\t E-deg
-[PASS] Test <angle> invalid value: \r\n\t E-rad
-[PASS] Test <angle> invalid value: \r\n\t E-grad
-[PASS] Test <angle> invalid value: \r\n\t NaN 
-[PASS] Test <angle> invalid value: \r\n\t NaNdeg 
-[PASS] Test <angle> invalid value: \r\n\t NaNrad 
-[PASS] Test <angle> invalid value: \r\n\t NaNgrad 
-[PASS] Test <angle> invalid value: \r\n\t Infinity 
-[PASS] Test <angle> invalid value: \r\n\t Infinitydeg 
-[PASS] Test <angle> invalid value: \r\n\t Infinityrad 
-[PASS] Test <angle> invalid value: \r\n\t Infinitygrad 
-[PASS] Test <angle> invalid value: \r\n\t -Infinity 
-[PASS] Test <angle> invalid value: \r\n\t -Infinitydeg 
-[PASS] Test <angle> invalid value: \r\n\t -Infinityrad 
-[PASS] Test <angle> invalid value: \r\n\t -Infinitygrad 
-[PASS] Test <angle> invalid value: \r\n\t fnord 
-[PASS] Test <angle> invalid value: \r\n\t fnorddeg 
-[PASS] Test <angle> invalid value: \r\n\t fnordrad 
-[PASS] Test <angle> invalid value: \r\n\t fnordgrad 
-[PASS] Test <angle> invalid value: \r\n\t E 
-[PASS] Test <angle> invalid value: \r\n\t Edeg 
-[PASS] Test <angle> invalid value: \r\n\t Erad 
-[PASS] Test <angle> invalid value: \r\n\t Egrad 
-[PASS] Test <angle> invalid value: \r\n\t e 
-[PASS] Test <angle> invalid value: \r\n\t edeg 
-[PASS] Test <angle> invalid value: \r\n\t erad 
-[PASS] Test <angle> invalid value: \r\n\t egrad 
-[PASS] Test <angle> invalid value: \r\n\t e+ 
-[PASS] Test <angle> invalid value: \r\n\t e+deg 
-[PASS] Test <angle> invalid value: \r\n\t e+rad 
-[PASS] Test <angle> invalid value: \r\n\t e+grad 
-[PASS] Test <angle> invalid value: \r\n\t E- 
-[PASS] Test <angle> invalid value: \r\n\t E-deg 
-[PASS] Test <angle> invalid value: \r\n\t E-rad 
-[PASS] Test <angle> invalid value: \r\n\t E-grad 
-[PASS] Test <angle> invalid value: \r\n\t NaN   
-[PASS] Test <angle> invalid value: \r\n\t NaNdeg   
-[PASS] Test <angle> invalid value: \r\n\t NaNrad   
-[PASS] Test <angle> invalid value: \r\n\t NaNgrad   
-[PASS] Test <angle> invalid value: \r\n\t Infinity   
-[PASS] Test <angle> invalid value: \r\n\t Infinitydeg   
-[PASS] Test <angle> invalid value: \r\n\t Infinityrad   
-[PASS] Test <angle> invalid value: \r\n\t Infinitygrad   
-[PASS] Test <angle> invalid value: \r\n\t -Infinity   
-[PASS] Test <angle> invalid value: \r\n\t -Infinitydeg   
-[PASS] Test <angle> invalid value: \r\n\t -Infinityrad   
-[PASS] Test <angle> invalid value: \r\n\t -Infinitygrad   
-[PASS] Test <angle> invalid value: \r\n\t fnord   
-[PASS] Test <angle> invalid value: \r\n\t fnorddeg   
-[PASS] Test <angle> invalid value: \r\n\t fnordrad   
-[PASS] Test <angle> invalid value: \r\n\t fnordgrad   
-[PASS] Test <angle> invalid value: \r\n\t E   
-[PASS] Test <angle> invalid value: \r\n\t Edeg   
-[PASS] Test <angle> invalid value: \r\n\t Erad   
-[PASS] Test <angle> invalid value: \r\n\t Egrad   
-[PASS] Test <angle> invalid value: \r\n\t e   
-[PASS] Test <angle> invalid value: \r\n\t edeg   
-[PASS] Test <angle> invalid value: \r\n\t erad   
-[PASS] Test <angle> invalid value: \r\n\t egrad   
-[PASS] Test <angle> invalid value: \r\n\t e+   
-[PASS] Test <angle> invalid value: \r\n\t e+deg   
-[PASS] Test <angle> invalid value: \r\n\t e+rad   
-[PASS] Test <angle> invalid value: \r\n\t e+grad   
-[PASS] Test <angle> invalid value: \r\n\t E-   
-[PASS] Test <angle> invalid value: \r\n\t E-deg   
-[PASS] Test <angle> invalid value: \r\n\t E-rad   
-[PASS] Test <angle> invalid value: \r\n\t E-grad   
-[PASS] Test <angle> invalid value: \r\n\t NaN\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t NaNdeg\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t NaNrad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t NaNgrad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t Infinity\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t Infinitydeg\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t Infinityrad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t Infinitygrad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t -Infinity\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t -Infinitydeg\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t -Infinityrad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t -Infinitygrad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t fnord\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t fnorddeg\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t fnordrad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t fnordgrad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t E\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t Edeg\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t Erad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t Egrad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t e\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t edeg\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t erad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t egrad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t e+\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t e+deg\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t e+rad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t e+grad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t E-\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t E-deg\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t E-rad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t E-grad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t NaN\f
-[PASS] Test <angle> invalid value: \r\n\t NaNdeg\f
-[PASS] Test <angle> invalid value: \r\n\t NaNrad\f
-[PASS] Test <angle> invalid value: \r\n\t NaNgrad\f
-[PASS] Test <angle> invalid value: \r\n\t Infinity\f
-[PASS] Test <angle> invalid value: \r\n\t Infinitydeg\f
-[PASS] Test <angle> invalid value: \r\n\t Infinityrad\f
-[PASS] Test <angle> invalid value: \r\n\t Infinitygrad\f
-[PASS] Test <angle> invalid value: \r\n\t -Infinity\f
-[PASS] Test <angle> invalid value: \r\n\t -Infinitydeg\f
-[PASS] Test <angle> invalid value: \r\n\t -Infinityrad\f
-[PASS] Test <angle> invalid value: \r\n\t -Infinitygrad\f
-[PASS] Test <angle> invalid value: \r\n\t fnord\f
-[PASS] Test <angle> invalid value: \r\n\t fnorddeg\f
-[PASS] Test <angle> invalid value: \r\n\t fnordrad\f
-[PASS] Test <angle> invalid value: \r\n\t fnordgrad\f
-[PASS] Test <angle> invalid value: \r\n\t E\f
-[PASS] Test <angle> invalid value: \r\n\t Edeg\f
-[PASS] Test <angle> invalid value: \r\n\t Erad\f
-[PASS] Test <angle> invalid value: \r\n\t Egrad\f
-[PASS] Test <angle> invalid value: \r\n\t e\f
-[PASS] Test <angle> invalid value: \r\n\t edeg\f
-[PASS] Test <angle> invalid value: \r\n\t erad\f
-[PASS] Test <angle> invalid value: \r\n\t egrad\f
-[PASS] Test <angle> invalid value: \r\n\t e+\f
-[PASS] Test <angle> invalid value: \r\n\t e+deg\f
-[PASS] Test <angle> invalid value: \r\n\t e+rad\f
-[PASS] Test <angle> invalid value: \r\n\t e+grad\f
-[PASS] Test <angle> invalid value: \r\n\t E-\f
-[PASS] Test <angle> invalid value: \r\n\t E-deg\f
-[PASS] Test <angle> invalid value: \r\n\t E-rad\f
-[PASS] Test <angle> invalid value: \r\n\t E-grad\f
-[PASS] Test <angle> invalid value: \fNaN
-[PASS] Test <angle> invalid value: \fNaNdeg
-[PASS] Test <angle> invalid value: \fNaNrad
-[PASS] Test <angle> invalid value: \fNaNgrad
-[PASS] Test <angle> invalid value: \fInfinity
-[PASS] Test <angle> invalid value: \fInfinitydeg
-[PASS] Test <angle> invalid value: \fInfinityrad
-[PASS] Test <angle> invalid value: \fInfinitygrad
-[PASS] Test <angle> invalid value: \f-Infinity
-[PASS] Test <angle> invalid value: \f-Infinitydeg
-[PASS] Test <angle> invalid value: \f-Infinityrad
-[PASS] Test <angle> invalid value: \f-Infinitygrad
-[PASS] Test <angle> invalid value: \ffnord
-[PASS] Test <angle> invalid value: \ffnorddeg
-[PASS] Test <angle> invalid value: \ffnordrad
-[PASS] Test <angle> invalid value: \ffnordgrad
-[PASS] Test <angle> invalid value: \fE
-[PASS] Test <angle> invalid value: \fEdeg
-[PASS] Test <angle> invalid value: \fErad
-[PASS] Test <angle> invalid value: \fEgrad
-[PASS] Test <angle> invalid value: \fe
-[PASS] Test <angle> invalid value: \fedeg
-[PASS] Test <angle> invalid value: \ferad
-[PASS] Test <angle> invalid value: \fegrad
-[PASS] Test <angle> invalid value: \fe+
-[PASS] Test <angle> invalid value: \fe+deg
-[PASS] Test <angle> invalid value: \fe+rad
-[PASS] Test <angle> invalid value: \fe+grad
-[PASS] Test <angle> invalid value: \fE-
-[PASS] Test <angle> invalid value: \fE-deg
-[PASS] Test <angle> invalid value: \fE-rad
-[PASS] Test <angle> invalid value: \fE-grad
-[PASS] Test <angle> invalid value: \fNaN 
-[PASS] Test <angle> invalid value: \fNaNdeg 
-[PASS] Test <angle> invalid value: \fNaNrad 
-[PASS] Test <angle> invalid value: \fNaNgrad 
-[PASS] Test <angle> invalid value: \fInfinity 
-[PASS] Test <angle> invalid value: \fInfinitydeg 
-[PASS] Test <angle> invalid value: \fInfinityrad 
-[PASS] Test <angle> invalid value: \fInfinitygrad 
-[PASS] Test <angle> invalid value: \f-Infinity 
-[PASS] Test <angle> invalid value: \f-Infinitydeg 
-[PASS] Test <angle> invalid value: \f-Infinityrad 
-[PASS] Test <angle> invalid value: \f-Infinitygrad 
-[PASS] Test <angle> invalid value: \ffnord 
-[PASS] Test <angle> invalid value: \ffnorddeg 
-[PASS] Test <angle> invalid value: \ffnordrad 
-[PASS] Test <angle> invalid value: \ffnordgrad 
-[PASS] Test <angle> invalid value: \fE 
-[PASS] Test <angle> invalid value: \fEdeg 
-[PASS] Test <angle> invalid value: \fErad 
-[PASS] Test <angle> invalid value: \fEgrad 
-[PASS] Test <angle> invalid value: \fe 
-[PASS] Test <angle> invalid value: \fedeg 
-[PASS] Test <angle> invalid value: \ferad 
-[PASS] Test <angle> invalid value: \fegrad 
-[PASS] Test <angle> invalid value: \fe+ 
-[PASS] Test <angle> invalid value: \fe+deg 
-[PASS] Test <angle> invalid value: \fe+rad 
-[PASS] Test <angle> invalid value: \fe+grad 
-[PASS] Test <angle> invalid value: \fE- 
-[PASS] Test <angle> invalid value: \fE-deg 
-[PASS] Test <angle> invalid value: \fE-rad 
-[PASS] Test <angle> invalid value: \fE-grad 
-[PASS] Test <angle> invalid value: \fNaN   
-[PASS] Test <angle> invalid value: \fNaNdeg   
-[PASS] Test <angle> invalid value: \fNaNrad   
-[PASS] Test <angle> invalid value: \fNaNgrad   
-[PASS] Test <angle> invalid value: \fInfinity   
-[PASS] Test <angle> invalid value: \fInfinitydeg   
-[PASS] Test <angle> invalid value: \fInfinityrad   
-[PASS] Test <angle> invalid value: \fInfinitygrad   
-[PASS] Test <angle> invalid value: \f-Infinity   
-[PASS] Test <angle> invalid value: \f-Infinitydeg   
-[PASS] Test <angle> invalid value: \f-Infinityrad   
-[PASS] Test <angle> invalid value: \f-Infinitygrad   
-[PASS] Test <angle> invalid value: \ffnord   
-[PASS] Test <angle> invalid value: \ffnorddeg   
-[PASS] Test <angle> invalid value: \ffnordrad   
-[PASS] Test <angle> invalid value: \ffnordgrad   
-[PASS] Test <angle> invalid value: \fE   
-[PASS] Test <angle> invalid value: \fEdeg   
-[PASS] Test <angle> invalid value: \fErad   
-[PASS] Test <angle> invalid value: \fEgrad   
-[PASS] Test <angle> invalid value: \fe   
-[PASS] Test <angle> invalid value: \fedeg   
-[PASS] Test <angle> invalid value: \ferad   
-[PASS] Test <angle> invalid value: \fegrad   
-[PASS] Test <angle> invalid value: \fe+   
-[PASS] Test <angle> invalid value: \fe+deg   
-[PASS] Test <angle> invalid value: \fe+rad   
-[PASS] Test <angle> invalid value: \fe+grad   
-[PASS] Test <angle> invalid value: \fE-   
-[PASS] Test <angle> invalid value: \fE-deg   
-[PASS] Test <angle> invalid value: \fE-rad   
-[PASS] Test <angle> invalid value: \fE-grad   
-[PASS] Test <angle> invalid value: \fNaN\r\n\t 
-[PASS] Test <angle> invalid value: \fNaNdeg\r\n\t 
-[PASS] Test <angle> invalid value: \fNaNrad\r\n\t 
-[PASS] Test <angle> invalid value: \fNaNgrad\r\n\t 
-[PASS] Test <angle> invalid value: \fInfinity\r\n\t 
-[PASS] Test <angle> invalid value: \fInfinitydeg\r\n\t 
-[PASS] Test <angle> invalid value: \fInfinityrad\r\n\t 
-[PASS] Test <angle> invalid value: \fInfinitygrad\r\n\t 
-[PASS] Test <angle> invalid value: \f-Infinity\r\n\t 
-[PASS] Test <angle> invalid value: \f-Infinitydeg\r\n\t 
-[PASS] Test <angle> invalid value: \f-Infinityrad\r\n\t 
-[PASS] Test <angle> invalid value: \f-Infinitygrad\r\n\t 
-[PASS] Test <angle> invalid value: \ffnord\r\n\t 
-[PASS] Test <angle> invalid value: \ffnorddeg\r\n\t 
-[PASS] Test <angle> invalid value: \ffnordrad\r\n\t 
-[PASS] Test <angle> invalid value: \ffnordgrad\r\n\t 
-[PASS] Test <angle> invalid value: \fE\r\n\t 
-[PASS] Test <angle> invalid value: \fEdeg\r\n\t 
-[PASS] Test <angle> invalid value: \fErad\r\n\t 
-[PASS] Test <angle> invalid value: \fEgrad\r\n\t 
-[PASS] Test <angle> invalid value: \fe\r\n\t 
-[PASS] Test <angle> invalid value: \fedeg\r\n\t 
-[PASS] Test <angle> invalid value: \ferad\r\n\t 
-[PASS] Test <angle> invalid value: \fegrad\r\n\t 
-[PASS] Test <angle> invalid value: \fe+\r\n\t 
-[PASS] Test <angle> invalid value: \fe+deg\r\n\t 
-[PASS] Test <angle> invalid value: \fe+rad\r\n\t 
-[PASS] Test <angle> invalid value: \fe+grad\r\n\t 
-[PASS] Test <angle> invalid value: \fE-\r\n\t 
-[PASS] Test <angle> invalid value: \fE-deg\r\n\t 
-[PASS] Test <angle> invalid value: \fE-rad\r\n\t 
-[PASS] Test <angle> invalid value: \fE-grad\r\n\t 
-[PASS] Test <angle> invalid value: \fNaN\f
-[PASS] Test <angle> invalid value: \fNaNdeg\f
-[PASS] Test <angle> invalid value: \fNaNrad\f
-[PASS] Test <angle> invalid value: \fNaNgrad\f
-[PASS] Test <angle> invalid value: \fInfinity\f
-[PASS] Test <angle> invalid value: \fInfinitydeg\f
-[PASS] Test <angle> invalid value: \fInfinityrad\f
-[PASS] Test <angle> invalid value: \fInfinitygrad\f
-[PASS] Test <angle> invalid value: \f-Infinity\f
-[PASS] Test <angle> invalid value: \f-Infinitydeg\f
-[PASS] Test <angle> invalid value: \f-Infinityrad\f
-[PASS] Test <angle> invalid value: \f-Infinitygrad\f
-[PASS] Test <angle> invalid value: \ffnord\f
-[PASS] Test <angle> invalid value: \ffnorddeg\f
-[PASS] Test <angle> invalid value: \ffnordrad\f
-[PASS] Test <angle> invalid value: \ffnordgrad\f
-[PASS] Test <angle> invalid value: \fE\f
-[PASS] Test <angle> invalid value: \fEdeg\f
-[PASS] Test <angle> invalid value: \fErad\f
-[PASS] Test <angle> invalid value: \fEgrad\f
-[PASS] Test <angle> invalid value: \fe\f
-[PASS] Test <angle> invalid value: \fedeg\f
-[PASS] Test <angle> invalid value: \ferad\f
-[PASS] Test <angle> invalid value: \fegrad\f
-[PASS] Test <angle> invalid value: \fe+\f
-[PASS] Test <angle> invalid value: \fe+deg\f
-[PASS] Test <angle> invalid value: \fe+rad\f
-[PASS] Test <angle> invalid value: \fe+grad\f
-[PASS] Test <angle> invalid value: \fE-\f
-[PASS] Test <angle> invalid value: \fE-deg\f
-[PASS] Test <angle> invalid value: \fE-rad\f
-[PASS] Test <angle> invalid value: \fE-grad\f
+[PASS] Test <angle> invalid value:    NaN\\r\\n\\t 
+[PASS] Test <angle> invalid value:    NaNdeg\\r\\n\\t 
+[PASS] Test <angle> invalid value:    NaNrad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    NaNgrad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    Infinity\\r\\n\\t 
+[PASS] Test <angle> invalid value:    Infinitydeg\\r\\n\\t 
+[PASS] Test <angle> invalid value:    Infinityrad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    Infinitygrad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    -Infinity\\r\\n\\t 
+[PASS] Test <angle> invalid value:    -Infinitydeg\\r\\n\\t 
+[PASS] Test <angle> invalid value:    -Infinityrad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    -Infinitygrad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    fnord\\r\\n\\t 
+[PASS] Test <angle> invalid value:    fnorddeg\\r\\n\\t 
+[PASS] Test <angle> invalid value:    fnordrad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    fnordgrad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    E\\r\\n\\t 
+[PASS] Test <angle> invalid value:    Edeg\\r\\n\\t 
+[PASS] Test <angle> invalid value:    Erad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    Egrad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    e\\r\\n\\t 
+[PASS] Test <angle> invalid value:    edeg\\r\\n\\t 
+[PASS] Test <angle> invalid value:    erad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    egrad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    e+\\r\\n\\t 
+[PASS] Test <angle> invalid value:    e+deg\\r\\n\\t 
+[PASS] Test <angle> invalid value:    e+rad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    e+grad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    E-\\r\\n\\t 
+[PASS] Test <angle> invalid value:    E-deg\\r\\n\\t 
+[PASS] Test <angle> invalid value:    E-rad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    E-grad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    NaN\\f
+[PASS] Test <angle> invalid value:    NaNdeg\\f
+[PASS] Test <angle> invalid value:    NaNrad\\f
+[PASS] Test <angle> invalid value:    NaNgrad\\f
+[PASS] Test <angle> invalid value:    Infinity\\f
+[PASS] Test <angle> invalid value:    Infinitydeg\\f
+[PASS] Test <angle> invalid value:    Infinityrad\\f
+[PASS] Test <angle> invalid value:    Infinitygrad\\f
+[PASS] Test <angle> invalid value:    -Infinity\\f
+[PASS] Test <angle> invalid value:    -Infinitydeg\\f
+[PASS] Test <angle> invalid value:    -Infinityrad\\f
+[PASS] Test <angle> invalid value:    -Infinitygrad\\f
+[PASS] Test <angle> invalid value:    fnord\\f
+[PASS] Test <angle> invalid value:    fnorddeg\\f
+[PASS] Test <angle> invalid value:    fnordrad\\f
+[PASS] Test <angle> invalid value:    fnordgrad\\f
+[PASS] Test <angle> invalid value:    E\\f
+[PASS] Test <angle> invalid value:    Edeg\\f
+[PASS] Test <angle> invalid value:    Erad\\f
+[PASS] Test <angle> invalid value:    Egrad\\f
+[PASS] Test <angle> invalid value:    e\\f
+[PASS] Test <angle> invalid value:    edeg\\f
+[PASS] Test <angle> invalid value:    erad\\f
+[PASS] Test <angle> invalid value:    egrad\\f
+[PASS] Test <angle> invalid value:    e+\\f
+[PASS] Test <angle> invalid value:    e+deg\\f
+[PASS] Test <angle> invalid value:    e+rad\\f
+[PASS] Test <angle> invalid value:    e+grad\\f
+[PASS] Test <angle> invalid value:    E-\\f
+[PASS] Test <angle> invalid value:    E-deg\\f
+[PASS] Test <angle> invalid value:    E-rad\\f
+[PASS] Test <angle> invalid value:    E-grad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t NaN
+[PASS] Test <angle> invalid value: \\r\\n\\t NaNdeg
+[PASS] Test <angle> invalid value: \\r\\n\\t NaNrad
+[PASS] Test <angle> invalid value: \\r\\n\\t NaNgrad
+[PASS] Test <angle> invalid value: \\r\\n\\t Infinity
+[PASS] Test <angle> invalid value: \\r\\n\\t Infinitydeg
+[PASS] Test <angle> invalid value: \\r\\n\\t Infinityrad
+[PASS] Test <angle> invalid value: \\r\\n\\t Infinitygrad
+[PASS] Test <angle> invalid value: \\r\\n\\t -Infinity
+[PASS] Test <angle> invalid value: \\r\\n\\t -Infinitydeg
+[PASS] Test <angle> invalid value: \\r\\n\\t -Infinityrad
+[PASS] Test <angle> invalid value: \\r\\n\\t -Infinitygrad
+[PASS] Test <angle> invalid value: \\r\\n\\t fnord
+[PASS] Test <angle> invalid value: \\r\\n\\t fnorddeg
+[PASS] Test <angle> invalid value: \\r\\n\\t fnordrad
+[PASS] Test <angle> invalid value: \\r\\n\\t fnordgrad
+[PASS] Test <angle> invalid value: \\r\\n\\t E
+[PASS] Test <angle> invalid value: \\r\\n\\t Edeg
+[PASS] Test <angle> invalid value: \\r\\n\\t Erad
+[PASS] Test <angle> invalid value: \\r\\n\\t Egrad
+[PASS] Test <angle> invalid value: \\r\\n\\t e
+[PASS] Test <angle> invalid value: \\r\\n\\t edeg
+[PASS] Test <angle> invalid value: \\r\\n\\t erad
+[PASS] Test <angle> invalid value: \\r\\n\\t egrad
+[PASS] Test <angle> invalid value: \\r\\n\\t e+
+[PASS] Test <angle> invalid value: \\r\\n\\t e+deg
+[PASS] Test <angle> invalid value: \\r\\n\\t e+rad
+[PASS] Test <angle> invalid value: \\r\\n\\t e+grad
+[PASS] Test <angle> invalid value: \\r\\n\\t E-
+[PASS] Test <angle> invalid value: \\r\\n\\t E-deg
+[PASS] Test <angle> invalid value: \\r\\n\\t E-rad
+[PASS] Test <angle> invalid value: \\r\\n\\t E-grad
+[PASS] Test <angle> invalid value: \\r\\n\\t NaN 
+[PASS] Test <angle> invalid value: \\r\\n\\t NaNdeg 
+[PASS] Test <angle> invalid value: \\r\\n\\t NaNrad 
+[PASS] Test <angle> invalid value: \\r\\n\\t NaNgrad 
+[PASS] Test <angle> invalid value: \\r\\n\\t Infinity 
+[PASS] Test <angle> invalid value: \\r\\n\\t Infinitydeg 
+[PASS] Test <angle> invalid value: \\r\\n\\t Infinityrad 
+[PASS] Test <angle> invalid value: \\r\\n\\t Infinitygrad 
+[PASS] Test <angle> invalid value: \\r\\n\\t -Infinity 
+[PASS] Test <angle> invalid value: \\r\\n\\t -Infinitydeg 
+[PASS] Test <angle> invalid value: \\r\\n\\t -Infinityrad 
+[PASS] Test <angle> invalid value: \\r\\n\\t -Infinitygrad 
+[PASS] Test <angle> invalid value: \\r\\n\\t fnord 
+[PASS] Test <angle> invalid value: \\r\\n\\t fnorddeg 
+[PASS] Test <angle> invalid value: \\r\\n\\t fnordrad 
+[PASS] Test <angle> invalid value: \\r\\n\\t fnordgrad 
+[PASS] Test <angle> invalid value: \\r\\n\\t E 
+[PASS] Test <angle> invalid value: \\r\\n\\t Edeg 
+[PASS] Test <angle> invalid value: \\r\\n\\t Erad 
+[PASS] Test <angle> invalid value: \\r\\n\\t Egrad 
+[PASS] Test <angle> invalid value: \\r\\n\\t e 
+[PASS] Test <angle> invalid value: \\r\\n\\t edeg 
+[PASS] Test <angle> invalid value: \\r\\n\\t erad 
+[PASS] Test <angle> invalid value: \\r\\n\\t egrad 
+[PASS] Test <angle> invalid value: \\r\\n\\t e+ 
+[PASS] Test <angle> invalid value: \\r\\n\\t e+deg 
+[PASS] Test <angle> invalid value: \\r\\n\\t e+rad 
+[PASS] Test <angle> invalid value: \\r\\n\\t e+grad 
+[PASS] Test <angle> invalid value: \\r\\n\\t E- 
+[PASS] Test <angle> invalid value: \\r\\n\\t E-deg 
+[PASS] Test <angle> invalid value: \\r\\n\\t E-rad 
+[PASS] Test <angle> invalid value: \\r\\n\\t E-grad 
+[PASS] Test <angle> invalid value: \\r\\n\\t NaN   
+[PASS] Test <angle> invalid value: \\r\\n\\t NaNdeg   
+[PASS] Test <angle> invalid value: \\r\\n\\t NaNrad   
+[PASS] Test <angle> invalid value: \\r\\n\\t NaNgrad   
+[PASS] Test <angle> invalid value: \\r\\n\\t Infinity   
+[PASS] Test <angle> invalid value: \\r\\n\\t Infinitydeg   
+[PASS] Test <angle> invalid value: \\r\\n\\t Infinityrad   
+[PASS] Test <angle> invalid value: \\r\\n\\t Infinitygrad   
+[PASS] Test <angle> invalid value: \\r\\n\\t -Infinity   
+[PASS] Test <angle> invalid value: \\r\\n\\t -Infinitydeg   
+[PASS] Test <angle> invalid value: \\r\\n\\t -Infinityrad   
+[PASS] Test <angle> invalid value: \\r\\n\\t -Infinitygrad   
+[PASS] Test <angle> invalid value: \\r\\n\\t fnord   
+[PASS] Test <angle> invalid value: \\r\\n\\t fnorddeg   
+[PASS] Test <angle> invalid value: \\r\\n\\t fnordrad   
+[PASS] Test <angle> invalid value: \\r\\n\\t fnordgrad   
+[PASS] Test <angle> invalid value: \\r\\n\\t E   
+[PASS] Test <angle> invalid value: \\r\\n\\t Edeg   
+[PASS] Test <angle> invalid value: \\r\\n\\t Erad   
+[PASS] Test <angle> invalid value: \\r\\n\\t Egrad   
+[PASS] Test <angle> invalid value: \\r\\n\\t e   
+[PASS] Test <angle> invalid value: \\r\\n\\t edeg   
+[PASS] Test <angle> invalid value: \\r\\n\\t erad   
+[PASS] Test <angle> invalid value: \\r\\n\\t egrad   
+[PASS] Test <angle> invalid value: \\r\\n\\t e+   
+[PASS] Test <angle> invalid value: \\r\\n\\t e+deg   
+[PASS] Test <angle> invalid value: \\r\\n\\t e+rad   
+[PASS] Test <angle> invalid value: \\r\\n\\t e+grad   
+[PASS] Test <angle> invalid value: \\r\\n\\t E-   
+[PASS] Test <angle> invalid value: \\r\\n\\t E-deg   
+[PASS] Test <angle> invalid value: \\r\\n\\t E-rad   
+[PASS] Test <angle> invalid value: \\r\\n\\t E-grad   
+[PASS] Test <angle> invalid value: \\r\\n\\t NaN\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t NaNdeg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t NaNrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t NaNgrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t Infinity\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t Infinitydeg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t Infinityrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t Infinitygrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t -Infinity\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t -Infinitydeg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t -Infinityrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t -Infinitygrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t fnord\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t fnorddeg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t fnordrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t fnordgrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t E\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t Edeg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t Erad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t Egrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t e\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t edeg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t erad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t egrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t e+\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t e+deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t e+rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t e+grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t E-\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t E-deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t E-rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t E-grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t NaN\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t NaNdeg\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t NaNrad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t NaNgrad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t Infinity\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t Infinitydeg\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t Infinityrad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t Infinitygrad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t -Infinity\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t -Infinitydeg\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t -Infinityrad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t -Infinitygrad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t fnord\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t fnorddeg\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t fnordrad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t fnordgrad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t E\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t Edeg\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t Erad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t Egrad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t e\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t edeg\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t erad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t egrad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t e+\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t e+deg\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t e+rad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t e+grad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t E-\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t E-deg\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t E-rad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t E-grad\\f
+[PASS] Test <angle> invalid value: \\fNaN
+[PASS] Test <angle> invalid value: \\fNaNdeg
+[PASS] Test <angle> invalid value: \\fNaNrad
+[PASS] Test <angle> invalid value: \\fNaNgrad
+[PASS] Test <angle> invalid value: \\fInfinity
+[PASS] Test <angle> invalid value: \\fInfinitydeg
+[PASS] Test <angle> invalid value: \\fInfinityrad
+[PASS] Test <angle> invalid value: \\fInfinitygrad
+[PASS] Test <angle> invalid value: \\f-Infinity
+[PASS] Test <angle> invalid value: \\f-Infinitydeg
+[PASS] Test <angle> invalid value: \\f-Infinityrad
+[PASS] Test <angle> invalid value: \\f-Infinitygrad
+[PASS] Test <angle> invalid value: \\ffnord
+[PASS] Test <angle> invalid value: \\ffnorddeg
+[PASS] Test <angle> invalid value: \\ffnordrad
+[PASS] Test <angle> invalid value: \\ffnordgrad
+[PASS] Test <angle> invalid value: \\fE
+[PASS] Test <angle> invalid value: \\fEdeg
+[PASS] Test <angle> invalid value: \\fErad
+[PASS] Test <angle> invalid value: \\fEgrad
+[PASS] Test <angle> invalid value: \\fe
+[PASS] Test <angle> invalid value: \\fedeg
+[PASS] Test <angle> invalid value: \\ferad
+[PASS] Test <angle> invalid value: \\fegrad
+[PASS] Test <angle> invalid value: \\fe+
+[PASS] Test <angle> invalid value: \\fe+deg
+[PASS] Test <angle> invalid value: \\fe+rad
+[PASS] Test <angle> invalid value: \\fe+grad
+[PASS] Test <angle> invalid value: \\fE-
+[PASS] Test <angle> invalid value: \\fE-deg
+[PASS] Test <angle> invalid value: \\fE-rad
+[PASS] Test <angle> invalid value: \\fE-grad
+[PASS] Test <angle> invalid value: \\fNaN 
+[PASS] Test <angle> invalid value: \\fNaNdeg 
+[PASS] Test <angle> invalid value: \\fNaNrad 
+[PASS] Test <angle> invalid value: \\fNaNgrad 
+[PASS] Test <angle> invalid value: \\fInfinity 
+[PASS] Test <angle> invalid value: \\fInfinitydeg 
+[PASS] Test <angle> invalid value: \\fInfinityrad 
+[PASS] Test <angle> invalid value: \\fInfinitygrad 
+[PASS] Test <angle> invalid value: \\f-Infinity 
+[PASS] Test <angle> invalid value: \\f-Infinitydeg 
+[PASS] Test <angle> invalid value: \\f-Infinityrad 
+[PASS] Test <angle> invalid value: \\f-Infinitygrad 
+[PASS] Test <angle> invalid value: \\ffnord 
+[PASS] Test <angle> invalid value: \\ffnorddeg 
+[PASS] Test <angle> invalid value: \\ffnordrad 
+[PASS] Test <angle> invalid value: \\ffnordgrad 
+[PASS] Test <angle> invalid value: \\fE 
+[PASS] Test <angle> invalid value: \\fEdeg 
+[PASS] Test <angle> invalid value: \\fErad 
+[PASS] Test <angle> invalid value: \\fEgrad 
+[PASS] Test <angle> invalid value: \\fe 
+[PASS] Test <angle> invalid value: \\fedeg 
+[PASS] Test <angle> invalid value: \\ferad 
+[PASS] Test <angle> invalid value: \\fegrad 
+[PASS] Test <angle> invalid value: \\fe+ 
+[PASS] Test <angle> invalid value: \\fe+deg 
+[PASS] Test <angle> invalid value: \\fe+rad 
+[PASS] Test <angle> invalid value: \\fe+grad 
+[PASS] Test <angle> invalid value: \\fE- 
+[PASS] Test <angle> invalid value: \\fE-deg 
+[PASS] Test <angle> invalid value: \\fE-rad 
+[PASS] Test <angle> invalid value: \\fE-grad 
+[PASS] Test <angle> invalid value: \\fNaN   
+[PASS] Test <angle> invalid value: \\fNaNdeg   
+[PASS] Test <angle> invalid value: \\fNaNrad   
+[PASS] Test <angle> invalid value: \\fNaNgrad   
+[PASS] Test <angle> invalid value: \\fInfinity   
+[PASS] Test <angle> invalid value: \\fInfinitydeg   
+[PASS] Test <angle> invalid value: \\fInfinityrad   
+[PASS] Test <angle> invalid value: \\fInfinitygrad   
+[PASS] Test <angle> invalid value: \\f-Infinity   
+[PASS] Test <angle> invalid value: \\f-Infinitydeg   
+[PASS] Test <angle> invalid value: \\f-Infinityrad   
+[PASS] Test <angle> invalid value: \\f-Infinitygrad   
+[PASS] Test <angle> invalid value: \\ffnord   
+[PASS] Test <angle> invalid value: \\ffnorddeg   
+[PASS] Test <angle> invalid value: \\ffnordrad   
+[PASS] Test <angle> invalid value: \\ffnordgrad   
+[PASS] Test <angle> invalid value: \\fE   
+[PASS] Test <angle> invalid value: \\fEdeg   
+[PASS] Test <angle> invalid value: \\fErad   
+[PASS] Test <angle> invalid value: \\fEgrad   
+[PASS] Test <angle> invalid value: \\fe   
+[PASS] Test <angle> invalid value: \\fedeg   
+[PASS] Test <angle> invalid value: \\ferad   
+[PASS] Test <angle> invalid value: \\fegrad   
+[PASS] Test <angle> invalid value: \\fe+   
+[PASS] Test <angle> invalid value: \\fe+deg   
+[PASS] Test <angle> invalid value: \\fe+rad   
+[PASS] Test <angle> invalid value: \\fe+grad   
+[PASS] Test <angle> invalid value: \\fE-   
+[PASS] Test <angle> invalid value: \\fE-deg   
+[PASS] Test <angle> invalid value: \\fE-rad   
+[PASS] Test <angle> invalid value: \\fE-grad   
+[PASS] Test <angle> invalid value: \\fNaN\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fNaNdeg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fNaNrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fNaNgrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fInfinity\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fInfinitydeg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fInfinityrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fInfinitygrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f-Infinity\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f-Infinitydeg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f-Infinityrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f-Infinitygrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\ffnord\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\ffnorddeg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\ffnordrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\ffnordgrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fE\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fEdeg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fErad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fEgrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fe\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fedeg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\ferad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fegrad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fe+\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fe+deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fe+rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fe+grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fE-\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fE-deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fE-rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fE-grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fNaN\\f
+[PASS] Test <angle> invalid value: \\fNaNdeg\\f
+[PASS] Test <angle> invalid value: \\fNaNrad\\f
+[PASS] Test <angle> invalid value: \\fNaNgrad\\f
+[PASS] Test <angle> invalid value: \\fInfinity\\f
+[PASS] Test <angle> invalid value: \\fInfinitydeg\\f
+[PASS] Test <angle> invalid value: \\fInfinityrad\\f
+[PASS] Test <angle> invalid value: \\fInfinitygrad\\f
+[PASS] Test <angle> invalid value: \\f-Infinity\\f
+[PASS] Test <angle> invalid value: \\f-Infinitydeg\\f
+[PASS] Test <angle> invalid value: \\f-Infinityrad\\f
+[PASS] Test <angle> invalid value: \\f-Infinitygrad\\f
+[PASS] Test <angle> invalid value: \\ffnord\\f
+[PASS] Test <angle> invalid value: \\ffnorddeg\\f
+[PASS] Test <angle> invalid value: \\ffnordrad\\f
+[PASS] Test <angle> invalid value: \\ffnordgrad\\f
+[PASS] Test <angle> invalid value: \\fE\\f
+[PASS] Test <angle> invalid value: \\fEdeg\\f
+[PASS] Test <angle> invalid value: \\fErad\\f
+[PASS] Test <angle> invalid value: \\fEgrad\\f
+[PASS] Test <angle> invalid value: \\fe\\f
+[PASS] Test <angle> invalid value: \\fedeg\\f
+[PASS] Test <angle> invalid value: \\ferad\\f
+[PASS] Test <angle> invalid value: \\fegrad\\f
+[PASS] Test <angle> invalid value: \\fe+\\f
+[PASS] Test <angle> invalid value: \\fe+deg\\f
+[PASS] Test <angle> invalid value: \\fe+rad\\f
+[PASS] Test <angle> invalid value: \\fe+grad\\f
+[PASS] Test <angle> invalid value: \\fE-\\f
+[PASS] Test <angle> invalid value: \\fE-deg\\f
+[PASS] Test <angle> invalid value: \\fE-rad\\f
+[PASS] Test <angle> invalid value: \\fE-grad\\f
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/svg/parser/whitespace-angle-invalid-2-expected.txt b/third_party/blink/web_tests/svg/parser/whitespace-angle-invalid-2-expected.txt
index 191c0cca..aa33105 100644
--- a/third_party/blink/web_tests/svg/parser/whitespace-angle-invalid-2-expected.txt
+++ b/third_party/blink/web_tests/svg/parser/whitespace-angle-invalid-2-expected.txt
@@ -895,70 +895,70 @@
 [PASS] Test <angle> invalid value: e1deg   
 [PASS] Test <angle> invalid value: e1rad   
 [PASS] Test <angle> invalid value: e1grad   
-[PASS] Test <angle> invalid value: -\r\n\t 
-[PASS] Test <angle> invalid value: -deg\r\n\t 
-[PASS] Test <angle> invalid value: -rad\r\n\t 
-[PASS] Test <angle> invalid value: -grad\r\n\t 
-[PASS] Test <angle> invalid value: +\r\n\t 
-[PASS] Test <angle> invalid value: +deg\r\n\t 
-[PASS] Test <angle> invalid value: +rad\r\n\t 
-[PASS] Test <angle> invalid value: +grad\r\n\t 
-[PASS] Test <angle> invalid value: -.\r\n\t 
-[PASS] Test <angle> invalid value: -.deg\r\n\t 
-[PASS] Test <angle> invalid value: -.rad\r\n\t 
-[PASS] Test <angle> invalid value: -.grad\r\n\t 
-[PASS] Test <angle> invalid value: .-\r\n\t 
-[PASS] Test <angle> invalid value: .-deg\r\n\t 
-[PASS] Test <angle> invalid value: .-rad\r\n\t 
-[PASS] Test <angle> invalid value: .-grad\r\n\t 
-[PASS] Test <angle> invalid value: .\r\n\t 
-[PASS] Test <angle> invalid value: .deg\r\n\t 
-[PASS] Test <angle> invalid value: .rad\r\n\t 
-[PASS] Test <angle> invalid value: .grad\r\n\t 
-[PASS] Test <angle> invalid value: +.\r\n\t 
-[PASS] Test <angle> invalid value: +.deg\r\n\t 
-[PASS] Test <angle> invalid value: +.rad\r\n\t 
-[PASS] Test <angle> invalid value: +.grad\r\n\t 
-[PASS] Test <angle> invalid value: .E0\r\n\t 
-[PASS] Test <angle> invalid value: .E0deg\r\n\t 
-[PASS] Test <angle> invalid value: .E0rad\r\n\t 
-[PASS] Test <angle> invalid value: .E0grad\r\n\t 
-[PASS] Test <angle> invalid value: e1\r\n\t 
-[PASS] Test <angle> invalid value: e1deg\r\n\t 
-[PASS] Test <angle> invalid value: e1rad\r\n\t 
-[PASS] Test <angle> invalid value: e1grad\r\n\t 
-[PASS] Test <angle> invalid value: -\f
-[PASS] Test <angle> invalid value: -deg\f
-[PASS] Test <angle> invalid value: -rad\f
-[PASS] Test <angle> invalid value: -grad\f
-[PASS] Test <angle> invalid value: +\f
-[PASS] Test <angle> invalid value: +deg\f
-[PASS] Test <angle> invalid value: +rad\f
-[PASS] Test <angle> invalid value: +grad\f
-[PASS] Test <angle> invalid value: -.\f
-[PASS] Test <angle> invalid value: -.deg\f
-[PASS] Test <angle> invalid value: -.rad\f
-[PASS] Test <angle> invalid value: -.grad\f
-[PASS] Test <angle> invalid value: .-\f
-[PASS] Test <angle> invalid value: .-deg\f
-[PASS] Test <angle> invalid value: .-rad\f
-[PASS] Test <angle> invalid value: .-grad\f
-[PASS] Test <angle> invalid value: .\f
-[PASS] Test <angle> invalid value: .deg\f
-[PASS] Test <angle> invalid value: .rad\f
-[PASS] Test <angle> invalid value: .grad\f
-[PASS] Test <angle> invalid value: +.\f
-[PASS] Test <angle> invalid value: +.deg\f
-[PASS] Test <angle> invalid value: +.rad\f
-[PASS] Test <angle> invalid value: +.grad\f
-[PASS] Test <angle> invalid value: .E0\f
-[PASS] Test <angle> invalid value: .E0deg\f
-[PASS] Test <angle> invalid value: .E0rad\f
-[PASS] Test <angle> invalid value: .E0grad\f
-[PASS] Test <angle> invalid value: e1\f
-[PASS] Test <angle> invalid value: e1deg\f
-[PASS] Test <angle> invalid value: e1rad\f
-[PASS] Test <angle> invalid value: e1grad\f
+[PASS] Test <angle> invalid value: -\\r\\n\\t 
+[PASS] Test <angle> invalid value: -deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: -rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: -grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: +\\r\\n\\t 
+[PASS] Test <angle> invalid value: +deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: +rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: +grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: -.\\r\\n\\t 
+[PASS] Test <angle> invalid value: -.deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: -.rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: -.grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: .-\\r\\n\\t 
+[PASS] Test <angle> invalid value: .-deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: .-rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: .-grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: .\\r\\n\\t 
+[PASS] Test <angle> invalid value: .deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: .rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: .grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: +.\\r\\n\\t 
+[PASS] Test <angle> invalid value: +.deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: +.rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: +.grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: .E0\\r\\n\\t 
+[PASS] Test <angle> invalid value: .E0deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: .E0rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: .E0grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: e1\\r\\n\\t 
+[PASS] Test <angle> invalid value: e1deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: e1rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: e1grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: -\\f
+[PASS] Test <angle> invalid value: -deg\\f
+[PASS] Test <angle> invalid value: -rad\\f
+[PASS] Test <angle> invalid value: -grad\\f
+[PASS] Test <angle> invalid value: +\\f
+[PASS] Test <angle> invalid value: +deg\\f
+[PASS] Test <angle> invalid value: +rad\\f
+[PASS] Test <angle> invalid value: +grad\\f
+[PASS] Test <angle> invalid value: -.\\f
+[PASS] Test <angle> invalid value: -.deg\\f
+[PASS] Test <angle> invalid value: -.rad\\f
+[PASS] Test <angle> invalid value: -.grad\\f
+[PASS] Test <angle> invalid value: .-\\f
+[PASS] Test <angle> invalid value: .-deg\\f
+[PASS] Test <angle> invalid value: .-rad\\f
+[PASS] Test <angle> invalid value: .-grad\\f
+[PASS] Test <angle> invalid value: .\\f
+[PASS] Test <angle> invalid value: .deg\\f
+[PASS] Test <angle> invalid value: .rad\\f
+[PASS] Test <angle> invalid value: .grad\\f
+[PASS] Test <angle> invalid value: +.\\f
+[PASS] Test <angle> invalid value: +.deg\\f
+[PASS] Test <angle> invalid value: +.rad\\f
+[PASS] Test <angle> invalid value: +.grad\\f
+[PASS] Test <angle> invalid value: .E0\\f
+[PASS] Test <angle> invalid value: .E0deg\\f
+[PASS] Test <angle> invalid value: .E0rad\\f
+[PASS] Test <angle> invalid value: .E0grad\\f
+[PASS] Test <angle> invalid value: e1\\f
+[PASS] Test <angle> invalid value: e1deg\\f
+[PASS] Test <angle> invalid value: e1rad\\f
+[PASS] Test <angle> invalid value: e1grad\\f
 [PASS] Test <angle> invalid value:  -
 [PASS] Test <angle> invalid value:  -deg
 [PASS] Test <angle> invalid value:  -rad
@@ -1055,70 +1055,70 @@
 [PASS] Test <angle> invalid value:  e1deg   
 [PASS] Test <angle> invalid value:  e1rad   
 [PASS] Test <angle> invalid value:  e1grad   
-[PASS] Test <angle> invalid value:  -\r\n\t 
-[PASS] Test <angle> invalid value:  -deg\r\n\t 
-[PASS] Test <angle> invalid value:  -rad\r\n\t 
-[PASS] Test <angle> invalid value:  -grad\r\n\t 
-[PASS] Test <angle> invalid value:  +\r\n\t 
-[PASS] Test <angle> invalid value:  +deg\r\n\t 
-[PASS] Test <angle> invalid value:  +rad\r\n\t 
-[PASS] Test <angle> invalid value:  +grad\r\n\t 
-[PASS] Test <angle> invalid value:  -.\r\n\t 
-[PASS] Test <angle> invalid value:  -.deg\r\n\t 
-[PASS] Test <angle> invalid value:  -.rad\r\n\t 
-[PASS] Test <angle> invalid value:  -.grad\r\n\t 
-[PASS] Test <angle> invalid value:  .-\r\n\t 
-[PASS] Test <angle> invalid value:  .-deg\r\n\t 
-[PASS] Test <angle> invalid value:  .-rad\r\n\t 
-[PASS] Test <angle> invalid value:  .-grad\r\n\t 
-[PASS] Test <angle> invalid value:  .\r\n\t 
-[PASS] Test <angle> invalid value:  .deg\r\n\t 
-[PASS] Test <angle> invalid value:  .rad\r\n\t 
-[PASS] Test <angle> invalid value:  .grad\r\n\t 
-[PASS] Test <angle> invalid value:  +.\r\n\t 
-[PASS] Test <angle> invalid value:  +.deg\r\n\t 
-[PASS] Test <angle> invalid value:  +.rad\r\n\t 
-[PASS] Test <angle> invalid value:  +.grad\r\n\t 
-[PASS] Test <angle> invalid value:  .E0\r\n\t 
-[PASS] Test <angle> invalid value:  .E0deg\r\n\t 
-[PASS] Test <angle> invalid value:  .E0rad\r\n\t 
-[PASS] Test <angle> invalid value:  .E0grad\r\n\t 
-[PASS] Test <angle> invalid value:  e1\r\n\t 
-[PASS] Test <angle> invalid value:  e1deg\r\n\t 
-[PASS] Test <angle> invalid value:  e1rad\r\n\t 
-[PASS] Test <angle> invalid value:  e1grad\r\n\t 
-[PASS] Test <angle> invalid value:  -\f
-[PASS] Test <angle> invalid value:  -deg\f
-[PASS] Test <angle> invalid value:  -rad\f
-[PASS] Test <angle> invalid value:  -grad\f
-[PASS] Test <angle> invalid value:  +\f
-[PASS] Test <angle> invalid value:  +deg\f
-[PASS] Test <angle> invalid value:  +rad\f
-[PASS] Test <angle> invalid value:  +grad\f
-[PASS] Test <angle> invalid value:  -.\f
-[PASS] Test <angle> invalid value:  -.deg\f
-[PASS] Test <angle> invalid value:  -.rad\f
-[PASS] Test <angle> invalid value:  -.grad\f
-[PASS] Test <angle> invalid value:  .-\f
-[PASS] Test <angle> invalid value:  .-deg\f
-[PASS] Test <angle> invalid value:  .-rad\f
-[PASS] Test <angle> invalid value:  .-grad\f
-[PASS] Test <angle> invalid value:  .\f
-[PASS] Test <angle> invalid value:  .deg\f
-[PASS] Test <angle> invalid value:  .rad\f
-[PASS] Test <angle> invalid value:  .grad\f
-[PASS] Test <angle> invalid value:  +.\f
-[PASS] Test <angle> invalid value:  +.deg\f
-[PASS] Test <angle> invalid value:  +.rad\f
-[PASS] Test <angle> invalid value:  +.grad\f
-[PASS] Test <angle> invalid value:  .E0\f
-[PASS] Test <angle> invalid value:  .E0deg\f
-[PASS] Test <angle> invalid value:  .E0rad\f
-[PASS] Test <angle> invalid value:  .E0grad\f
-[PASS] Test <angle> invalid value:  e1\f
-[PASS] Test <angle> invalid value:  e1deg\f
-[PASS] Test <angle> invalid value:  e1rad\f
-[PASS] Test <angle> invalid value:  e1grad\f
+[PASS] Test <angle> invalid value:  -\\r\\n\\t 
+[PASS] Test <angle> invalid value:  -deg\\r\\n\\t 
+[PASS] Test <angle> invalid value:  -rad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  -grad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  +\\r\\n\\t 
+[PASS] Test <angle> invalid value:  +deg\\r\\n\\t 
+[PASS] Test <angle> invalid value:  +rad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  +grad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  -.\\r\\n\\t 
+[PASS] Test <angle> invalid value:  -.deg\\r\\n\\t 
+[PASS] Test <angle> invalid value:  -.rad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  -.grad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  .-\\r\\n\\t 
+[PASS] Test <angle> invalid value:  .-deg\\r\\n\\t 
+[PASS] Test <angle> invalid value:  .-rad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  .-grad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  .\\r\\n\\t 
+[PASS] Test <angle> invalid value:  .deg\\r\\n\\t 
+[PASS] Test <angle> invalid value:  .rad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  .grad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  +.\\r\\n\\t 
+[PASS] Test <angle> invalid value:  +.deg\\r\\n\\t 
+[PASS] Test <angle> invalid value:  +.rad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  +.grad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  .E0\\r\\n\\t 
+[PASS] Test <angle> invalid value:  .E0deg\\r\\n\\t 
+[PASS] Test <angle> invalid value:  .E0rad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  .E0grad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  e1\\r\\n\\t 
+[PASS] Test <angle> invalid value:  e1deg\\r\\n\\t 
+[PASS] Test <angle> invalid value:  e1rad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  e1grad\\r\\n\\t 
+[PASS] Test <angle> invalid value:  -\\f
+[PASS] Test <angle> invalid value:  -deg\\f
+[PASS] Test <angle> invalid value:  -rad\\f
+[PASS] Test <angle> invalid value:  -grad\\f
+[PASS] Test <angle> invalid value:  +\\f
+[PASS] Test <angle> invalid value:  +deg\\f
+[PASS] Test <angle> invalid value:  +rad\\f
+[PASS] Test <angle> invalid value:  +grad\\f
+[PASS] Test <angle> invalid value:  -.\\f
+[PASS] Test <angle> invalid value:  -.deg\\f
+[PASS] Test <angle> invalid value:  -.rad\\f
+[PASS] Test <angle> invalid value:  -.grad\\f
+[PASS] Test <angle> invalid value:  .-\\f
+[PASS] Test <angle> invalid value:  .-deg\\f
+[PASS] Test <angle> invalid value:  .-rad\\f
+[PASS] Test <angle> invalid value:  .-grad\\f
+[PASS] Test <angle> invalid value:  .\\f
+[PASS] Test <angle> invalid value:  .deg\\f
+[PASS] Test <angle> invalid value:  .rad\\f
+[PASS] Test <angle> invalid value:  .grad\\f
+[PASS] Test <angle> invalid value:  +.\\f
+[PASS] Test <angle> invalid value:  +.deg\\f
+[PASS] Test <angle> invalid value:  +.rad\\f
+[PASS] Test <angle> invalid value:  +.grad\\f
+[PASS] Test <angle> invalid value:  .E0\\f
+[PASS] Test <angle> invalid value:  .E0deg\\f
+[PASS] Test <angle> invalid value:  .E0rad\\f
+[PASS] Test <angle> invalid value:  .E0grad\\f
+[PASS] Test <angle> invalid value:  e1\\f
+[PASS] Test <angle> invalid value:  e1deg\\f
+[PASS] Test <angle> invalid value:  e1rad\\f
+[PASS] Test <angle> invalid value:  e1grad\\f
 [PASS] Test <angle> invalid value:    -
 [PASS] Test <angle> invalid value:    -deg
 [PASS] Test <angle> invalid value:    -rad
@@ -1215,389 +1215,389 @@
 [PASS] Test <angle> invalid value:    e1deg   
 [PASS] Test <angle> invalid value:    e1rad   
 [PASS] Test <angle> invalid value:    e1grad   
-[PASS] Test <angle> invalid value:    -\r\n\t 
-[PASS] Test <angle> invalid value:    -deg\r\n\t 
-[PASS] Test <angle> invalid value:    -rad\r\n\t 
-[PASS] Test <angle> invalid value:    -grad\r\n\t 
-[PASS] Test <angle> invalid value:    +\r\n\t 
-[PASS] Test <angle> invalid value:    +deg\r\n\t 
-[PASS] Test <angle> invalid value:    +rad\r\n\t 
-[PASS] Test <angle> invalid value:    +grad\r\n\t 
-[PASS] Test <angle> invalid value:    -.\r\n\t 
-[PASS] Test <angle> invalid value:    -.deg\r\n\t 
-[PASS] Test <angle> invalid value:    -.rad\r\n\t 
-[PASS] Test <angle> invalid value:    -.grad\r\n\t 
-[PASS] Test <angle> invalid value:    .-\r\n\t 
-[PASS] Test <angle> invalid value:    .-deg\r\n\t 
-[PASS] Test <angle> invalid value:    .-rad\r\n\t 
-[PASS] Test <angle> invalid value:    .-grad\r\n\t 
-[PASS] Test <angle> invalid value:    .\r\n\t 
-[PASS] Test <angle> invalid value:    .deg\r\n\t 
-[PASS] Test <angle> invalid value:    .rad\r\n\t 
-[PASS] Test <angle> invalid value:    .grad\r\n\t 
-[PASS] Test <angle> invalid value:    +.\r\n\t 
-[PASS] Test <angle> invalid value:    +.deg\r\n\t 
-[PASS] Test <angle> invalid value:    +.rad\r\n\t 
-[PASS] Test <angle> invalid value:    +.grad\r\n\t 
-[PASS] Test <angle> invalid value:    .E0\r\n\t 
-[PASS] Test <angle> invalid value:    .E0deg\r\n\t 
-[PASS] Test <angle> invalid value:    .E0rad\r\n\t 
-[PASS] Test <angle> invalid value:    .E0grad\r\n\t 
-[PASS] Test <angle> invalid value:    e1\r\n\t 
-[PASS] Test <angle> invalid value:    e1deg\r\n\t 
-[PASS] Test <angle> invalid value:    e1rad\r\n\t 
-[PASS] Test <angle> invalid value:    e1grad\r\n\t 
-[PASS] Test <angle> invalid value:    -\f
-[PASS] Test <angle> invalid value:    -deg\f
-[PASS] Test <angle> invalid value:    -rad\f
-[PASS] Test <angle> invalid value:    -grad\f
-[PASS] Test <angle> invalid value:    +\f
-[PASS] Test <angle> invalid value:    +deg\f
-[PASS] Test <angle> invalid value:    +rad\f
-[PASS] Test <angle> invalid value:    +grad\f
-[PASS] Test <angle> invalid value:    -.\f
-[PASS] Test <angle> invalid value:    -.deg\f
-[PASS] Test <angle> invalid value:    -.rad\f
-[PASS] Test <angle> invalid value:    -.grad\f
-[PASS] Test <angle> invalid value:    .-\f
-[PASS] Test <angle> invalid value:    .-deg\f
-[PASS] Test <angle> invalid value:    .-rad\f
-[PASS] Test <angle> invalid value:    .-grad\f
-[PASS] Test <angle> invalid value:    .\f
-[PASS] Test <angle> invalid value:    .deg\f
-[PASS] Test <angle> invalid value:    .rad\f
-[PASS] Test <angle> invalid value:    .grad\f
-[PASS] Test <angle> invalid value:    +.\f
-[PASS] Test <angle> invalid value:    +.deg\f
-[PASS] Test <angle> invalid value:    +.rad\f
-[PASS] Test <angle> invalid value:    +.grad\f
-[PASS] Test <angle> invalid value:    .E0\f
-[PASS] Test <angle> invalid value:    .E0deg\f
-[PASS] Test <angle> invalid value:    .E0rad\f
-[PASS] Test <angle> invalid value:    .E0grad\f
-[PASS] Test <angle> invalid value:    e1\f
-[PASS] Test <angle> invalid value:    e1deg\f
-[PASS] Test <angle> invalid value:    e1rad\f
-[PASS] Test <angle> invalid value:    e1grad\f
-[PASS] Test <angle> invalid value: \r\n\t -
-[PASS] Test <angle> invalid value: \r\n\t -deg
-[PASS] Test <angle> invalid value: \r\n\t -rad
-[PASS] Test <angle> invalid value: \r\n\t -grad
-[PASS] Test <angle> invalid value: \r\n\t +
-[PASS] Test <angle> invalid value: \r\n\t +deg
-[PASS] Test <angle> invalid value: \r\n\t +rad
-[PASS] Test <angle> invalid value: \r\n\t +grad
-[PASS] Test <angle> invalid value: \r\n\t -.
-[PASS] Test <angle> invalid value: \r\n\t -.deg
-[PASS] Test <angle> invalid value: \r\n\t -.rad
-[PASS] Test <angle> invalid value: \r\n\t -.grad
-[PASS] Test <angle> invalid value: \r\n\t .-
-[PASS] Test <angle> invalid value: \r\n\t .-deg
-[PASS] Test <angle> invalid value: \r\n\t .-rad
-[PASS] Test <angle> invalid value: \r\n\t .-grad
-[PASS] Test <angle> invalid value: \r\n\t .
-[PASS] Test <angle> invalid value: \r\n\t .deg
-[PASS] Test <angle> invalid value: \r\n\t .rad
-[PASS] Test <angle> invalid value: \r\n\t .grad
-[PASS] Test <angle> invalid value: \r\n\t +.
-[PASS] Test <angle> invalid value: \r\n\t +.deg
-[PASS] Test <angle> invalid value: \r\n\t +.rad
-[PASS] Test <angle> invalid value: \r\n\t +.grad
-[PASS] Test <angle> invalid value: \r\n\t .E0
-[PASS] Test <angle> invalid value: \r\n\t .E0deg
-[PASS] Test <angle> invalid value: \r\n\t .E0rad
-[PASS] Test <angle> invalid value: \r\n\t .E0grad
-[PASS] Test <angle> invalid value: \r\n\t e1
-[PASS] Test <angle> invalid value: \r\n\t e1deg
-[PASS] Test <angle> invalid value: \r\n\t e1rad
-[PASS] Test <angle> invalid value: \r\n\t e1grad
-[PASS] Test <angle> invalid value: \r\n\t - 
-[PASS] Test <angle> invalid value: \r\n\t -deg 
-[PASS] Test <angle> invalid value: \r\n\t -rad 
-[PASS] Test <angle> invalid value: \r\n\t -grad 
-[PASS] Test <angle> invalid value: \r\n\t + 
-[PASS] Test <angle> invalid value: \r\n\t +deg 
-[PASS] Test <angle> invalid value: \r\n\t +rad 
-[PASS] Test <angle> invalid value: \r\n\t +grad 
-[PASS] Test <angle> invalid value: \r\n\t -. 
-[PASS] Test <angle> invalid value: \r\n\t -.deg 
-[PASS] Test <angle> invalid value: \r\n\t -.rad 
-[PASS] Test <angle> invalid value: \r\n\t -.grad 
-[PASS] Test <angle> invalid value: \r\n\t .- 
-[PASS] Test <angle> invalid value: \r\n\t .-deg 
-[PASS] Test <angle> invalid value: \r\n\t .-rad 
-[PASS] Test <angle> invalid value: \r\n\t .-grad 
-[PASS] Test <angle> invalid value: \r\n\t . 
-[PASS] Test <angle> invalid value: \r\n\t .deg 
-[PASS] Test <angle> invalid value: \r\n\t .rad 
-[PASS] Test <angle> invalid value: \r\n\t .grad 
-[PASS] Test <angle> invalid value: \r\n\t +. 
-[PASS] Test <angle> invalid value: \r\n\t +.deg 
-[PASS] Test <angle> invalid value: \r\n\t +.rad 
-[PASS] Test <angle> invalid value: \r\n\t +.grad 
-[PASS] Test <angle> invalid value: \r\n\t .E0 
-[PASS] Test <angle> invalid value: \r\n\t .E0deg 
-[PASS] Test <angle> invalid value: \r\n\t .E0rad 
-[PASS] Test <angle> invalid value: \r\n\t .E0grad 
-[PASS] Test <angle> invalid value: \r\n\t e1 
-[PASS] Test <angle> invalid value: \r\n\t e1deg 
-[PASS] Test <angle> invalid value: \r\n\t e1rad 
-[PASS] Test <angle> invalid value: \r\n\t e1grad 
-[PASS] Test <angle> invalid value: \r\n\t -   
-[PASS] Test <angle> invalid value: \r\n\t -deg   
-[PASS] Test <angle> invalid value: \r\n\t -rad   
-[PASS] Test <angle> invalid value: \r\n\t -grad   
-[PASS] Test <angle> invalid value: \r\n\t +   
-[PASS] Test <angle> invalid value: \r\n\t +deg   
-[PASS] Test <angle> invalid value: \r\n\t +rad   
-[PASS] Test <angle> invalid value: \r\n\t +grad   
-[PASS] Test <angle> invalid value: \r\n\t -.   
-[PASS] Test <angle> invalid value: \r\n\t -.deg   
-[PASS] Test <angle> invalid value: \r\n\t -.rad   
-[PASS] Test <angle> invalid value: \r\n\t -.grad   
-[PASS] Test <angle> invalid value: \r\n\t .-   
-[PASS] Test <angle> invalid value: \r\n\t .-deg   
-[PASS] Test <angle> invalid value: \r\n\t .-rad   
-[PASS] Test <angle> invalid value: \r\n\t .-grad   
-[PASS] Test <angle> invalid value: \r\n\t .   
-[PASS] Test <angle> invalid value: \r\n\t .deg   
-[PASS] Test <angle> invalid value: \r\n\t .rad   
-[PASS] Test <angle> invalid value: \r\n\t .grad   
-[PASS] Test <angle> invalid value: \r\n\t +.   
-[PASS] Test <angle> invalid value: \r\n\t +.deg   
-[PASS] Test <angle> invalid value: \r\n\t +.rad   
-[PASS] Test <angle> invalid value: \r\n\t +.grad   
-[PASS] Test <angle> invalid value: \r\n\t .E0   
-[PASS] Test <angle> invalid value: \r\n\t .E0deg   
-[PASS] Test <angle> invalid value: \r\n\t .E0rad   
-[PASS] Test <angle> invalid value: \r\n\t .E0grad   
-[PASS] Test <angle> invalid value: \r\n\t e1   
-[PASS] Test <angle> invalid value: \r\n\t e1deg   
-[PASS] Test <angle> invalid value: \r\n\t e1rad   
-[PASS] Test <angle> invalid value: \r\n\t e1grad   
-[PASS] Test <angle> invalid value: \r\n\t -\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t -deg\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t -rad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t -grad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t +\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t +deg\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t +rad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t +grad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t -.\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t -.deg\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t -.rad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t -.grad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t .-\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t .-deg\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t .-rad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t .-grad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t .\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t .deg\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t .rad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t .grad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t +.\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t +.deg\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t +.rad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t +.grad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t .E0\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t .E0deg\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t .E0rad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t .E0grad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t e1\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t e1deg\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t e1rad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t e1grad\r\n\t 
-[PASS] Test <angle> invalid value: \r\n\t -\f
-[PASS] Test <angle> invalid value: \r\n\t -deg\f
-[PASS] Test <angle> invalid value: \r\n\t -rad\f
-[PASS] Test <angle> invalid value: \r\n\t -grad\f
-[PASS] Test <angle> invalid value: \r\n\t +\f
-[PASS] Test <angle> invalid value: \r\n\t +deg\f
-[PASS] Test <angle> invalid value: \r\n\t +rad\f
-[PASS] Test <angle> invalid value: \r\n\t +grad\f
-[PASS] Test <angle> invalid value: \r\n\t -.\f
-[PASS] Test <angle> invalid value: \r\n\t -.deg\f
-[PASS] Test <angle> invalid value: \r\n\t -.rad\f
-[PASS] Test <angle> invalid value: \r\n\t -.grad\f
-[PASS] Test <angle> invalid value: \r\n\t .-\f
-[PASS] Test <angle> invalid value: \r\n\t .-deg\f
-[PASS] Test <angle> invalid value: \r\n\t .-rad\f
-[PASS] Test <angle> invalid value: \r\n\t .-grad\f
-[PASS] Test <angle> invalid value: \r\n\t .\f
-[PASS] Test <angle> invalid value: \r\n\t .deg\f
-[PASS] Test <angle> invalid value: \r\n\t .rad\f
-[PASS] Test <angle> invalid value: \r\n\t .grad\f
-[PASS] Test <angle> invalid value: \r\n\t +.\f
-[PASS] Test <angle> invalid value: \r\n\t +.deg\f
-[PASS] Test <angle> invalid value: \r\n\t +.rad\f
-[PASS] Test <angle> invalid value: \r\n\t +.grad\f
-[PASS] Test <angle> invalid value: \r\n\t .E0\f
-[PASS] Test <angle> invalid value: \r\n\t .E0deg\f
-[PASS] Test <angle> invalid value: \r\n\t .E0rad\f
-[PASS] Test <angle> invalid value: \r\n\t .E0grad\f
-[PASS] Test <angle> invalid value: \r\n\t e1\f
-[PASS] Test <angle> invalid value: \r\n\t e1deg\f
-[PASS] Test <angle> invalid value: \r\n\t e1rad\f
-[PASS] Test <angle> invalid value: \r\n\t e1grad\f
-[PASS] Test <angle> invalid value: \f-
-[PASS] Test <angle> invalid value: \f-deg
-[PASS] Test <angle> invalid value: \f-rad
-[PASS] Test <angle> invalid value: \f-grad
-[PASS] Test <angle> invalid value: \f+
-[PASS] Test <angle> invalid value: \f+deg
-[PASS] Test <angle> invalid value: \f+rad
-[PASS] Test <angle> invalid value: \f+grad
-[PASS] Test <angle> invalid value: \f-.
-[PASS] Test <angle> invalid value: \f-.deg
-[PASS] Test <angle> invalid value: \f-.rad
-[PASS] Test <angle> invalid value: \f-.grad
-[PASS] Test <angle> invalid value: \f.-
-[PASS] Test <angle> invalid value: \f.-deg
-[PASS] Test <angle> invalid value: \f.-rad
-[PASS] Test <angle> invalid value: \f.-grad
-[PASS] Test <angle> invalid value: \f.
-[PASS] Test <angle> invalid value: \f.deg
-[PASS] Test <angle> invalid value: \f.rad
-[PASS] Test <angle> invalid value: \f.grad
-[PASS] Test <angle> invalid value: \f+.
-[PASS] Test <angle> invalid value: \f+.deg
-[PASS] Test <angle> invalid value: \f+.rad
-[PASS] Test <angle> invalid value: \f+.grad
-[PASS] Test <angle> invalid value: \f.E0
-[PASS] Test <angle> invalid value: \f.E0deg
-[PASS] Test <angle> invalid value: \f.E0rad
-[PASS] Test <angle> invalid value: \f.E0grad
-[PASS] Test <angle> invalid value: \fe1
-[PASS] Test <angle> invalid value: \fe1deg
-[PASS] Test <angle> invalid value: \fe1rad
-[PASS] Test <angle> invalid value: \fe1grad
-[PASS] Test <angle> invalid value: \f- 
-[PASS] Test <angle> invalid value: \f-deg 
-[PASS] Test <angle> invalid value: \f-rad 
-[PASS] Test <angle> invalid value: \f-grad 
-[PASS] Test <angle> invalid value: \f+ 
-[PASS] Test <angle> invalid value: \f+deg 
-[PASS] Test <angle> invalid value: \f+rad 
-[PASS] Test <angle> invalid value: \f+grad 
-[PASS] Test <angle> invalid value: \f-. 
-[PASS] Test <angle> invalid value: \f-.deg 
-[PASS] Test <angle> invalid value: \f-.rad 
-[PASS] Test <angle> invalid value: \f-.grad 
-[PASS] Test <angle> invalid value: \f.- 
-[PASS] Test <angle> invalid value: \f.-deg 
-[PASS] Test <angle> invalid value: \f.-rad 
-[PASS] Test <angle> invalid value: \f.-grad 
-[PASS] Test <angle> invalid value: \f. 
-[PASS] Test <angle> invalid value: \f.deg 
-[PASS] Test <angle> invalid value: \f.rad 
-[PASS] Test <angle> invalid value: \f.grad 
-[PASS] Test <angle> invalid value: \f+. 
-[PASS] Test <angle> invalid value: \f+.deg 
-[PASS] Test <angle> invalid value: \f+.rad 
-[PASS] Test <angle> invalid value: \f+.grad 
-[PASS] Test <angle> invalid value: \f.E0 
-[PASS] Test <angle> invalid value: \f.E0deg 
-[PASS] Test <angle> invalid value: \f.E0rad 
-[PASS] Test <angle> invalid value: \f.E0grad 
-[PASS] Test <angle> invalid value: \fe1 
-[PASS] Test <angle> invalid value: \fe1deg 
-[PASS] Test <angle> invalid value: \fe1rad 
-[PASS] Test <angle> invalid value: \fe1grad 
-[PASS] Test <angle> invalid value: \f-   
-[PASS] Test <angle> invalid value: \f-deg   
-[PASS] Test <angle> invalid value: \f-rad   
-[PASS] Test <angle> invalid value: \f-grad   
-[PASS] Test <angle> invalid value: \f+   
-[PASS] Test <angle> invalid value: \f+deg   
-[PASS] Test <angle> invalid value: \f+rad   
-[PASS] Test <angle> invalid value: \f+grad   
-[PASS] Test <angle> invalid value: \f-.   
-[PASS] Test <angle> invalid value: \f-.deg   
-[PASS] Test <angle> invalid value: \f-.rad   
-[PASS] Test <angle> invalid value: \f-.grad   
-[PASS] Test <angle> invalid value: \f.-   
-[PASS] Test <angle> invalid value: \f.-deg   
-[PASS] Test <angle> invalid value: \f.-rad   
-[PASS] Test <angle> invalid value: \f.-grad   
-[PASS] Test <angle> invalid value: \f.   
-[PASS] Test <angle> invalid value: \f.deg   
-[PASS] Test <angle> invalid value: \f.rad   
-[PASS] Test <angle> invalid value: \f.grad   
-[PASS] Test <angle> invalid value: \f+.   
-[PASS] Test <angle> invalid value: \f+.deg   
-[PASS] Test <angle> invalid value: \f+.rad   
-[PASS] Test <angle> invalid value: \f+.grad   
-[PASS] Test <angle> invalid value: \f.E0   
-[PASS] Test <angle> invalid value: \f.E0deg   
-[PASS] Test <angle> invalid value: \f.E0rad   
-[PASS] Test <angle> invalid value: \f.E0grad   
-[PASS] Test <angle> invalid value: \fe1   
-[PASS] Test <angle> invalid value: \fe1deg   
-[PASS] Test <angle> invalid value: \fe1rad   
-[PASS] Test <angle> invalid value: \fe1grad   
-[PASS] Test <angle> invalid value: \f-\r\n\t 
-[PASS] Test <angle> invalid value: \f-deg\r\n\t 
-[PASS] Test <angle> invalid value: \f-rad\r\n\t 
-[PASS] Test <angle> invalid value: \f-grad\r\n\t 
-[PASS] Test <angle> invalid value: \f+\r\n\t 
-[PASS] Test <angle> invalid value: \f+deg\r\n\t 
-[PASS] Test <angle> invalid value: \f+rad\r\n\t 
-[PASS] Test <angle> invalid value: \f+grad\r\n\t 
-[PASS] Test <angle> invalid value: \f-.\r\n\t 
-[PASS] Test <angle> invalid value: \f-.deg\r\n\t 
-[PASS] Test <angle> invalid value: \f-.rad\r\n\t 
-[PASS] Test <angle> invalid value: \f-.grad\r\n\t 
-[PASS] Test <angle> invalid value: \f.-\r\n\t 
-[PASS] Test <angle> invalid value: \f.-deg\r\n\t 
-[PASS] Test <angle> invalid value: \f.-rad\r\n\t 
-[PASS] Test <angle> invalid value: \f.-grad\r\n\t 
-[PASS] Test <angle> invalid value: \f.\r\n\t 
-[PASS] Test <angle> invalid value: \f.deg\r\n\t 
-[PASS] Test <angle> invalid value: \f.rad\r\n\t 
-[PASS] Test <angle> invalid value: \f.grad\r\n\t 
-[PASS] Test <angle> invalid value: \f+.\r\n\t 
-[PASS] Test <angle> invalid value: \f+.deg\r\n\t 
-[PASS] Test <angle> invalid value: \f+.rad\r\n\t 
-[PASS] Test <angle> invalid value: \f+.grad\r\n\t 
-[PASS] Test <angle> invalid value: \f.E0\r\n\t 
-[PASS] Test <angle> invalid value: \f.E0deg\r\n\t 
-[PASS] Test <angle> invalid value: \f.E0rad\r\n\t 
-[PASS] Test <angle> invalid value: \f.E0grad\r\n\t 
-[PASS] Test <angle> invalid value: \fe1\r\n\t 
-[PASS] Test <angle> invalid value: \fe1deg\r\n\t 
-[PASS] Test <angle> invalid value: \fe1rad\r\n\t 
-[PASS] Test <angle> invalid value: \fe1grad\r\n\t 
-[PASS] Test <angle> invalid value: \f-\f
-[PASS] Test <angle> invalid value: \f-deg\f
-[PASS] Test <angle> invalid value: \f-rad\f
-[PASS] Test <angle> invalid value: \f-grad\f
-[PASS] Test <angle> invalid value: \f+\f
-[PASS] Test <angle> invalid value: \f+deg\f
-[PASS] Test <angle> invalid value: \f+rad\f
-[PASS] Test <angle> invalid value: \f+grad\f
-[PASS] Test <angle> invalid value: \f-.\f
-[PASS] Test <angle> invalid value: \f-.deg\f
-[PASS] Test <angle> invalid value: \f-.rad\f
-[PASS] Test <angle> invalid value: \f-.grad\f
-[PASS] Test <angle> invalid value: \f.-\f
-[PASS] Test <angle> invalid value: \f.-deg\f
-[PASS] Test <angle> invalid value: \f.-rad\f
-[PASS] Test <angle> invalid value: \f.-grad\f
-[PASS] Test <angle> invalid value: \f.\f
-[PASS] Test <angle> invalid value: \f.deg\f
-[PASS] Test <angle> invalid value: \f.rad\f
-[PASS] Test <angle> invalid value: \f.grad\f
-[PASS] Test <angle> invalid value: \f+.\f
-[PASS] Test <angle> invalid value: \f+.deg\f
-[PASS] Test <angle> invalid value: \f+.rad\f
-[PASS] Test <angle> invalid value: \f+.grad\f
-[PASS] Test <angle> invalid value: \f.E0\f
-[PASS] Test <angle> invalid value: \f.E0deg\f
-[PASS] Test <angle> invalid value: \f.E0rad\f
-[PASS] Test <angle> invalid value: \f.E0grad\f
-[PASS] Test <angle> invalid value: \fe1\f
-[PASS] Test <angle> invalid value: \fe1deg\f
-[PASS] Test <angle> invalid value: \fe1rad\f
-[PASS] Test <angle> invalid value: \fe1grad\f
+[PASS] Test <angle> invalid value:    -\\r\\n\\t 
+[PASS] Test <angle> invalid value:    -deg\\r\\n\\t 
+[PASS] Test <angle> invalid value:    -rad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    -grad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    +\\r\\n\\t 
+[PASS] Test <angle> invalid value:    +deg\\r\\n\\t 
+[PASS] Test <angle> invalid value:    +rad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    +grad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    -.\\r\\n\\t 
+[PASS] Test <angle> invalid value:    -.deg\\r\\n\\t 
+[PASS] Test <angle> invalid value:    -.rad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    -.grad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    .-\\r\\n\\t 
+[PASS] Test <angle> invalid value:    .-deg\\r\\n\\t 
+[PASS] Test <angle> invalid value:    .-rad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    .-grad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    .\\r\\n\\t 
+[PASS] Test <angle> invalid value:    .deg\\r\\n\\t 
+[PASS] Test <angle> invalid value:    .rad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    .grad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    +.\\r\\n\\t 
+[PASS] Test <angle> invalid value:    +.deg\\r\\n\\t 
+[PASS] Test <angle> invalid value:    +.rad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    +.grad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    .E0\\r\\n\\t 
+[PASS] Test <angle> invalid value:    .E0deg\\r\\n\\t 
+[PASS] Test <angle> invalid value:    .E0rad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    .E0grad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    e1\\r\\n\\t 
+[PASS] Test <angle> invalid value:    e1deg\\r\\n\\t 
+[PASS] Test <angle> invalid value:    e1rad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    e1grad\\r\\n\\t 
+[PASS] Test <angle> invalid value:    -\\f
+[PASS] Test <angle> invalid value:    -deg\\f
+[PASS] Test <angle> invalid value:    -rad\\f
+[PASS] Test <angle> invalid value:    -grad\\f
+[PASS] Test <angle> invalid value:    +\\f
+[PASS] Test <angle> invalid value:    +deg\\f
+[PASS] Test <angle> invalid value:    +rad\\f
+[PASS] Test <angle> invalid value:    +grad\\f
+[PASS] Test <angle> invalid value:    -.\\f
+[PASS] Test <angle> invalid value:    -.deg\\f
+[PASS] Test <angle> invalid value:    -.rad\\f
+[PASS] Test <angle> invalid value:    -.grad\\f
+[PASS] Test <angle> invalid value:    .-\\f
+[PASS] Test <angle> invalid value:    .-deg\\f
+[PASS] Test <angle> invalid value:    .-rad\\f
+[PASS] Test <angle> invalid value:    .-grad\\f
+[PASS] Test <angle> invalid value:    .\\f
+[PASS] Test <angle> invalid value:    .deg\\f
+[PASS] Test <angle> invalid value:    .rad\\f
+[PASS] Test <angle> invalid value:    .grad\\f
+[PASS] Test <angle> invalid value:    +.\\f
+[PASS] Test <angle> invalid value:    +.deg\\f
+[PASS] Test <angle> invalid value:    +.rad\\f
+[PASS] Test <angle> invalid value:    +.grad\\f
+[PASS] Test <angle> invalid value:    .E0\\f
+[PASS] Test <angle> invalid value:    .E0deg\\f
+[PASS] Test <angle> invalid value:    .E0rad\\f
+[PASS] Test <angle> invalid value:    .E0grad\\f
+[PASS] Test <angle> invalid value:    e1\\f
+[PASS] Test <angle> invalid value:    e1deg\\f
+[PASS] Test <angle> invalid value:    e1rad\\f
+[PASS] Test <angle> invalid value:    e1grad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t -
+[PASS] Test <angle> invalid value: \\r\\n\\t -deg
+[PASS] Test <angle> invalid value: \\r\\n\\t -rad
+[PASS] Test <angle> invalid value: \\r\\n\\t -grad
+[PASS] Test <angle> invalid value: \\r\\n\\t +
+[PASS] Test <angle> invalid value: \\r\\n\\t +deg
+[PASS] Test <angle> invalid value: \\r\\n\\t +rad
+[PASS] Test <angle> invalid value: \\r\\n\\t +grad
+[PASS] Test <angle> invalid value: \\r\\n\\t -.
+[PASS] Test <angle> invalid value: \\r\\n\\t -.deg
+[PASS] Test <angle> invalid value: \\r\\n\\t -.rad
+[PASS] Test <angle> invalid value: \\r\\n\\t -.grad
+[PASS] Test <angle> invalid value: \\r\\n\\t .-
+[PASS] Test <angle> invalid value: \\r\\n\\t .-deg
+[PASS] Test <angle> invalid value: \\r\\n\\t .-rad
+[PASS] Test <angle> invalid value: \\r\\n\\t .-grad
+[PASS] Test <angle> invalid value: \\r\\n\\t .
+[PASS] Test <angle> invalid value: \\r\\n\\t .deg
+[PASS] Test <angle> invalid value: \\r\\n\\t .rad
+[PASS] Test <angle> invalid value: \\r\\n\\t .grad
+[PASS] Test <angle> invalid value: \\r\\n\\t +.
+[PASS] Test <angle> invalid value: \\r\\n\\t +.deg
+[PASS] Test <angle> invalid value: \\r\\n\\t +.rad
+[PASS] Test <angle> invalid value: \\r\\n\\t +.grad
+[PASS] Test <angle> invalid value: \\r\\n\\t .E0
+[PASS] Test <angle> invalid value: \\r\\n\\t .E0deg
+[PASS] Test <angle> invalid value: \\r\\n\\t .E0rad
+[PASS] Test <angle> invalid value: \\r\\n\\t .E0grad
+[PASS] Test <angle> invalid value: \\r\\n\\t e1
+[PASS] Test <angle> invalid value: \\r\\n\\t e1deg
+[PASS] Test <angle> invalid value: \\r\\n\\t e1rad
+[PASS] Test <angle> invalid value: \\r\\n\\t e1grad
+[PASS] Test <angle> invalid value: \\r\\n\\t - 
+[PASS] Test <angle> invalid value: \\r\\n\\t -deg 
+[PASS] Test <angle> invalid value: \\r\\n\\t -rad 
+[PASS] Test <angle> invalid value: \\r\\n\\t -grad 
+[PASS] Test <angle> invalid value: \\r\\n\\t + 
+[PASS] Test <angle> invalid value: \\r\\n\\t +deg 
+[PASS] Test <angle> invalid value: \\r\\n\\t +rad 
+[PASS] Test <angle> invalid value: \\r\\n\\t +grad 
+[PASS] Test <angle> invalid value: \\r\\n\\t -. 
+[PASS] Test <angle> invalid value: \\r\\n\\t -.deg 
+[PASS] Test <angle> invalid value: \\r\\n\\t -.rad 
+[PASS] Test <angle> invalid value: \\r\\n\\t -.grad 
+[PASS] Test <angle> invalid value: \\r\\n\\t .- 
+[PASS] Test <angle> invalid value: \\r\\n\\t .-deg 
+[PASS] Test <angle> invalid value: \\r\\n\\t .-rad 
+[PASS] Test <angle> invalid value: \\r\\n\\t .-grad 
+[PASS] Test <angle> invalid value: \\r\\n\\t . 
+[PASS] Test <angle> invalid value: \\r\\n\\t .deg 
+[PASS] Test <angle> invalid value: \\r\\n\\t .rad 
+[PASS] Test <angle> invalid value: \\r\\n\\t .grad 
+[PASS] Test <angle> invalid value: \\r\\n\\t +. 
+[PASS] Test <angle> invalid value: \\r\\n\\t +.deg 
+[PASS] Test <angle> invalid value: \\r\\n\\t +.rad 
+[PASS] Test <angle> invalid value: \\r\\n\\t +.grad 
+[PASS] Test <angle> invalid value: \\r\\n\\t .E0 
+[PASS] Test <angle> invalid value: \\r\\n\\t .E0deg 
+[PASS] Test <angle> invalid value: \\r\\n\\t .E0rad 
+[PASS] Test <angle> invalid value: \\r\\n\\t .E0grad 
+[PASS] Test <angle> invalid value: \\r\\n\\t e1 
+[PASS] Test <angle> invalid value: \\r\\n\\t e1deg 
+[PASS] Test <angle> invalid value: \\r\\n\\t e1rad 
+[PASS] Test <angle> invalid value: \\r\\n\\t e1grad 
+[PASS] Test <angle> invalid value: \\r\\n\\t -   
+[PASS] Test <angle> invalid value: \\r\\n\\t -deg   
+[PASS] Test <angle> invalid value: \\r\\n\\t -rad   
+[PASS] Test <angle> invalid value: \\r\\n\\t -grad   
+[PASS] Test <angle> invalid value: \\r\\n\\t +   
+[PASS] Test <angle> invalid value: \\r\\n\\t +deg   
+[PASS] Test <angle> invalid value: \\r\\n\\t +rad   
+[PASS] Test <angle> invalid value: \\r\\n\\t +grad   
+[PASS] Test <angle> invalid value: \\r\\n\\t -.   
+[PASS] Test <angle> invalid value: \\r\\n\\t -.deg   
+[PASS] Test <angle> invalid value: \\r\\n\\t -.rad   
+[PASS] Test <angle> invalid value: \\r\\n\\t -.grad   
+[PASS] Test <angle> invalid value: \\r\\n\\t .-   
+[PASS] Test <angle> invalid value: \\r\\n\\t .-deg   
+[PASS] Test <angle> invalid value: \\r\\n\\t .-rad   
+[PASS] Test <angle> invalid value: \\r\\n\\t .-grad   
+[PASS] Test <angle> invalid value: \\r\\n\\t .   
+[PASS] Test <angle> invalid value: \\r\\n\\t .deg   
+[PASS] Test <angle> invalid value: \\r\\n\\t .rad   
+[PASS] Test <angle> invalid value: \\r\\n\\t .grad   
+[PASS] Test <angle> invalid value: \\r\\n\\t +.   
+[PASS] Test <angle> invalid value: \\r\\n\\t +.deg   
+[PASS] Test <angle> invalid value: \\r\\n\\t +.rad   
+[PASS] Test <angle> invalid value: \\r\\n\\t +.grad   
+[PASS] Test <angle> invalid value: \\r\\n\\t .E0   
+[PASS] Test <angle> invalid value: \\r\\n\\t .E0deg   
+[PASS] Test <angle> invalid value: \\r\\n\\t .E0rad   
+[PASS] Test <angle> invalid value: \\r\\n\\t .E0grad   
+[PASS] Test <angle> invalid value: \\r\\n\\t e1   
+[PASS] Test <angle> invalid value: \\r\\n\\t e1deg   
+[PASS] Test <angle> invalid value: \\r\\n\\t e1rad   
+[PASS] Test <angle> invalid value: \\r\\n\\t e1grad   
+[PASS] Test <angle> invalid value: \\r\\n\\t -\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t -deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t -rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t -grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t +\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t +deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t +rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t +grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t -.\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t -.deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t -.rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t -.grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t .-\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t .-deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t .-rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t .-grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t .\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t .deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t .rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t .grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t +.\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t +.deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t +.rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t +.grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t .E0\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t .E0deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t .E0rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t .E0grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t e1\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t e1deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t e1rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t e1grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\r\\n\\t -\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t -deg\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t -rad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t -grad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t +\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t +deg\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t +rad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t +grad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t -.\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t -.deg\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t -.rad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t -.grad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t .-\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t .-deg\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t .-rad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t .-grad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t .\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t .deg\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t .rad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t .grad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t +.\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t +.deg\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t +.rad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t +.grad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t .E0\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t .E0deg\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t .E0rad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t .E0grad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t e1\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t e1deg\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t e1rad\\f
+[PASS] Test <angle> invalid value: \\r\\n\\t e1grad\\f
+[PASS] Test <angle> invalid value: \\f-
+[PASS] Test <angle> invalid value: \\f-deg
+[PASS] Test <angle> invalid value: \\f-rad
+[PASS] Test <angle> invalid value: \\f-grad
+[PASS] Test <angle> invalid value: \\f+
+[PASS] Test <angle> invalid value: \\f+deg
+[PASS] Test <angle> invalid value: \\f+rad
+[PASS] Test <angle> invalid value: \\f+grad
+[PASS] Test <angle> invalid value: \\f-.
+[PASS] Test <angle> invalid value: \\f-.deg
+[PASS] Test <angle> invalid value: \\f-.rad
+[PASS] Test <angle> invalid value: \\f-.grad
+[PASS] Test <angle> invalid value: \\f.-
+[PASS] Test <angle> invalid value: \\f.-deg
+[PASS] Test <angle> invalid value: \\f.-rad
+[PASS] Test <angle> invalid value: \\f.-grad
+[PASS] Test <angle> invalid value: \\f.
+[PASS] Test <angle> invalid value: \\f.deg
+[PASS] Test <angle> invalid value: \\f.rad
+[PASS] Test <angle> invalid value: \\f.grad
+[PASS] Test <angle> invalid value: \\f+.
+[PASS] Test <angle> invalid value: \\f+.deg
+[PASS] Test <angle> invalid value: \\f+.rad
+[PASS] Test <angle> invalid value: \\f+.grad
+[PASS] Test <angle> invalid value: \\f.E0
+[PASS] Test <angle> invalid value: \\f.E0deg
+[PASS] Test <angle> invalid value: \\f.E0rad
+[PASS] Test <angle> invalid value: \\f.E0grad
+[PASS] Test <angle> invalid value: \\fe1
+[PASS] Test <angle> invalid value: \\fe1deg
+[PASS] Test <angle> invalid value: \\fe1rad
+[PASS] Test <angle> invalid value: \\fe1grad
+[PASS] Test <angle> invalid value: \\f- 
+[PASS] Test <angle> invalid value: \\f-deg 
+[PASS] Test <angle> invalid value: \\f-rad 
+[PASS] Test <angle> invalid value: \\f-grad 
+[PASS] Test <angle> invalid value: \\f+ 
+[PASS] Test <angle> invalid value: \\f+deg 
+[PASS] Test <angle> invalid value: \\f+rad 
+[PASS] Test <angle> invalid value: \\f+grad 
+[PASS] Test <angle> invalid value: \\f-. 
+[PASS] Test <angle> invalid value: \\f-.deg 
+[PASS] Test <angle> invalid value: \\f-.rad 
+[PASS] Test <angle> invalid value: \\f-.grad 
+[PASS] Test <angle> invalid value: \\f.- 
+[PASS] Test <angle> invalid value: \\f.-deg 
+[PASS] Test <angle> invalid value: \\f.-rad 
+[PASS] Test <angle> invalid value: \\f.-grad 
+[PASS] Test <angle> invalid value: \\f. 
+[PASS] Test <angle> invalid value: \\f.deg 
+[PASS] Test <angle> invalid value: \\f.rad 
+[PASS] Test <angle> invalid value: \\f.grad 
+[PASS] Test <angle> invalid value: \\f+. 
+[PASS] Test <angle> invalid value: \\f+.deg 
+[PASS] Test <angle> invalid value: \\f+.rad 
+[PASS] Test <angle> invalid value: \\f+.grad 
+[PASS] Test <angle> invalid value: \\f.E0 
+[PASS] Test <angle> invalid value: \\f.E0deg 
+[PASS] Test <angle> invalid value: \\f.E0rad 
+[PASS] Test <angle> invalid value: \\f.E0grad 
+[PASS] Test <angle> invalid value: \\fe1 
+[PASS] Test <angle> invalid value: \\fe1deg 
+[PASS] Test <angle> invalid value: \\fe1rad 
+[PASS] Test <angle> invalid value: \\fe1grad 
+[PASS] Test <angle> invalid value: \\f-   
+[PASS] Test <angle> invalid value: \\f-deg   
+[PASS] Test <angle> invalid value: \\f-rad   
+[PASS] Test <angle> invalid value: \\f-grad   
+[PASS] Test <angle> invalid value: \\f+   
+[PASS] Test <angle> invalid value: \\f+deg   
+[PASS] Test <angle> invalid value: \\f+rad   
+[PASS] Test <angle> invalid value: \\f+grad   
+[PASS] Test <angle> invalid value: \\f-.   
+[PASS] Test <angle> invalid value: \\f-.deg   
+[PASS] Test <angle> invalid value: \\f-.rad   
+[PASS] Test <angle> invalid value: \\f-.grad   
+[PASS] Test <angle> invalid value: \\f.-   
+[PASS] Test <angle> invalid value: \\f.-deg   
+[PASS] Test <angle> invalid value: \\f.-rad   
+[PASS] Test <angle> invalid value: \\f.-grad   
+[PASS] Test <angle> invalid value: \\f.   
+[PASS] Test <angle> invalid value: \\f.deg   
+[PASS] Test <angle> invalid value: \\f.rad   
+[PASS] Test <angle> invalid value: \\f.grad   
+[PASS] Test <angle> invalid value: \\f+.   
+[PASS] Test <angle> invalid value: \\f+.deg   
+[PASS] Test <angle> invalid value: \\f+.rad   
+[PASS] Test <angle> invalid value: \\f+.grad   
+[PASS] Test <angle> invalid value: \\f.E0   
+[PASS] Test <angle> invalid value: \\f.E0deg   
+[PASS] Test <angle> invalid value: \\f.E0rad   
+[PASS] Test <angle> invalid value: \\f.E0grad   
+[PASS] Test <angle> invalid value: \\fe1   
+[PASS] Test <angle> invalid value: \\fe1deg   
+[PASS] Test <angle> invalid value: \\fe1rad   
+[PASS] Test <angle> invalid value: \\fe1grad   
+[PASS] Test <angle> invalid value: \\f-\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f-deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f-rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f-grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f+\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f+deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f+rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f+grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f-.\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f-.deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f-.rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f-.grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f.-\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f.-deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f.-rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f.-grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f.\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f.deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f.rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f.grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f+.\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f+.deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f+.rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f+.grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f.E0\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f.E0deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f.E0rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f.E0grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fe1\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fe1deg\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fe1rad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\fe1grad\\r\\n\\t 
+[PASS] Test <angle> invalid value: \\f-\\f
+[PASS] Test <angle> invalid value: \\f-deg\\f
+[PASS] Test <angle> invalid value: \\f-rad\\f
+[PASS] Test <angle> invalid value: \\f-grad\\f
+[PASS] Test <angle> invalid value: \\f+\\f
+[PASS] Test <angle> invalid value: \\f+deg\\f
+[PASS] Test <angle> invalid value: \\f+rad\\f
+[PASS] Test <angle> invalid value: \\f+grad\\f
+[PASS] Test <angle> invalid value: \\f-.\\f
+[PASS] Test <angle> invalid value: \\f-.deg\\f
+[PASS] Test <angle> invalid value: \\f-.rad\\f
+[PASS] Test <angle> invalid value: \\f-.grad\\f
+[PASS] Test <angle> invalid value: \\f.-\\f
+[PASS] Test <angle> invalid value: \\f.-deg\\f
+[PASS] Test <angle> invalid value: \\f.-rad\\f
+[PASS] Test <angle> invalid value: \\f.-grad\\f
+[PASS] Test <angle> invalid value: \\f.\\f
+[PASS] Test <angle> invalid value: \\f.deg\\f
+[PASS] Test <angle> invalid value: \\f.rad\\f
+[PASS] Test <angle> invalid value: \\f.grad\\f
+[PASS] Test <angle> invalid value: \\f+.\\f
+[PASS] Test <angle> invalid value: \\f+.deg\\f
+[PASS] Test <angle> invalid value: \\f+.rad\\f
+[PASS] Test <angle> invalid value: \\f+.grad\\f
+[PASS] Test <angle> invalid value: \\f.E0\\f
+[PASS] Test <angle> invalid value: \\f.E0deg\\f
+[PASS] Test <angle> invalid value: \\f.E0rad\\f
+[PASS] Test <angle> invalid value: \\f.E0grad\\f
+[PASS] Test <angle> invalid value: \\fe1\\f
+[PASS] Test <angle> invalid value: \\fe1deg\\f
+[PASS] Test <angle> invalid value: \\fe1rad\\f
+[PASS] Test <angle> invalid value: \\fe1grad\\f
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/svg/parser/whitespace-length-expected.txt b/third_party/blink/web_tests/svg/parser/whitespace-length-expected.txt
index 1998cde4..7d8d5e61 100644
--- a/third_party/blink/web_tests/svg/parser/whitespace-length-expected.txt
+++ b/third_party/blink/web_tests/svg/parser/whitespace-length-expected.txt
@@ -601,146 +601,146 @@
 [PASS] Test <length> valid value: 17e+2pt   
 [PASS] Test <length> valid value: 17e+2pc   
 [PASS] Test <length> valid value: 17e+2%   
-[PASS] Test <length> valid value: -47\r\n\t 
-[PASS] Test <length> valid value: -47em\r\n\t 
-[PASS] Test <length> valid value: -47ex\r\n\t 
-[PASS] Test <length> valid value: -47px\r\n\t 
-[PASS] Test <length> valid value: -47in\r\n\t 
-[PASS] Test <length> valid value: -47cm\r\n\t 
-[PASS] Test <length> valid value: -47mm\r\n\t 
-[PASS] Test <length> valid value: -47pt\r\n\t 
-[PASS] Test <length> valid value: -47pc\r\n\t 
-[PASS] Test <length> valid value: -47%\r\n\t 
-[PASS] Test <length> valid value: .1\r\n\t 
-[PASS] Test <length> valid value: .1em\r\n\t 
-[PASS] Test <length> valid value: .1ex\r\n\t 
-[PASS] Test <length> valid value: .1px\r\n\t 
-[PASS] Test <length> valid value: .1in\r\n\t 
-[PASS] Test <length> valid value: .1cm\r\n\t 
-[PASS] Test <length> valid value: .1mm\r\n\t 
-[PASS] Test <length> valid value: .1pt\r\n\t 
-[PASS] Test <length> valid value: .1pc\r\n\t 
-[PASS] Test <length> valid value: .1%\r\n\t 
-[PASS] Test <length> valid value: 0.35\r\n\t 
-[PASS] Test <length> valid value: 0.35em\r\n\t 
-[PASS] Test <length> valid value: 0.35ex\r\n\t 
-[PASS] Test <length> valid value: 0.35px\r\n\t 
-[PASS] Test <length> valid value: 0.35in\r\n\t 
-[PASS] Test <length> valid value: 0.35cm\r\n\t 
-[PASS] Test <length> valid value: 0.35mm\r\n\t 
-[PASS] Test <length> valid value: 0.35pt\r\n\t 
-[PASS] Test <length> valid value: 0.35pc\r\n\t 
-[PASS] Test <length> valid value: 0.35%\r\n\t 
-[PASS] Test <length> valid value: 1e-10\r\n\t 
-[PASS] Test <length> valid value: 1e-10em\r\n\t 
-[PASS] Test <length> valid value: 1e-10ex\r\n\t 
-[PASS] Test <length> valid value: 1e-10px\r\n\t 
-[PASS] Test <length> valid value: 1e-10in\r\n\t 
-[PASS] Test <length> valid value: 1e-10cm\r\n\t 
-[PASS] Test <length> valid value: 1e-10mm\r\n\t 
-[PASS] Test <length> valid value: 1e-10pt\r\n\t 
-[PASS] Test <length> valid value: 1e-10pc\r\n\t 
-[PASS] Test <length> valid value: 1e-10%\r\n\t 
-[PASS] Test <length> valid value: +32\r\n\t 
-[PASS] Test <length> valid value: +32em\r\n\t 
-[PASS] Test <length> valid value: +32ex\r\n\t 
-[PASS] Test <length> valid value: +32px\r\n\t 
-[PASS] Test <length> valid value: +32in\r\n\t 
-[PASS] Test <length> valid value: +32cm\r\n\t 
-[PASS] Test <length> valid value: +32mm\r\n\t 
-[PASS] Test <length> valid value: +32pt\r\n\t 
-[PASS] Test <length> valid value: +32pc\r\n\t 
-[PASS] Test <length> valid value: +32%\r\n\t 
-[PASS] Test <length> valid value: +17E-1\r\n\t 
-[PASS] Test <length> valid value: +17E-1em\r\n\t 
-[PASS] Test <length> valid value: +17E-1ex\r\n\t 
-[PASS] Test <length> valid value: +17E-1px\r\n\t 
-[PASS] Test <length> valid value: +17E-1in\r\n\t 
-[PASS] Test <length> valid value: +17E-1cm\r\n\t 
-[PASS] Test <length> valid value: +17E-1mm\r\n\t 
-[PASS] Test <length> valid value: +17E-1pt\r\n\t 
-[PASS] Test <length> valid value: +17E-1pc\r\n\t 
-[PASS] Test <length> valid value: +17E-1%\r\n\t 
-[PASS] Test <length> valid value: 17e+2\r\n\t 
-[PASS] Test <length> valid value: 17e+2em\r\n\t 
-[PASS] Test <length> valid value: 17e+2ex\r\n\t 
-[PASS] Test <length> valid value: 17e+2px\r\n\t 
-[PASS] Test <length> valid value: 17e+2in\r\n\t 
-[PASS] Test <length> valid value: 17e+2cm\r\n\t 
-[PASS] Test <length> valid value: 17e+2mm\r\n\t 
-[PASS] Test <length> valid value: 17e+2pt\r\n\t 
-[PASS] Test <length> valid value: 17e+2pc\r\n\t 
-[PASS] Test <length> valid value: 17e+2%\r\n\t 
-[PASS] Test <length> valid value: -47\f
-[PASS] Test <length> valid value: -47em\f
-[PASS] Test <length> valid value: -47ex\f
-[PASS] Test <length> valid value: -47px\f
-[PASS] Test <length> valid value: -47in\f
-[PASS] Test <length> valid value: -47cm\f
-[PASS] Test <length> valid value: -47mm\f
-[PASS] Test <length> valid value: -47pt\f
-[PASS] Test <length> valid value: -47pc\f
-[PASS] Test <length> valid value: -47%\f
-[PASS] Test <length> valid value: .1\f
-[PASS] Test <length> valid value: .1em\f
-[PASS] Test <length> valid value: .1ex\f
-[PASS] Test <length> valid value: .1px\f
-[PASS] Test <length> valid value: .1in\f
-[PASS] Test <length> valid value: .1cm\f
-[PASS] Test <length> valid value: .1mm\f
-[PASS] Test <length> valid value: .1pt\f
-[PASS] Test <length> valid value: .1pc\f
-[PASS] Test <length> valid value: .1%\f
-[PASS] Test <length> valid value: 0.35\f
-[PASS] Test <length> valid value: 0.35em\f
-[PASS] Test <length> valid value: 0.35ex\f
-[PASS] Test <length> valid value: 0.35px\f
-[PASS] Test <length> valid value: 0.35in\f
-[PASS] Test <length> valid value: 0.35cm\f
-[PASS] Test <length> valid value: 0.35mm\f
-[PASS] Test <length> valid value: 0.35pt\f
-[PASS] Test <length> valid value: 0.35pc\f
-[PASS] Test <length> valid value: 0.35%\f
-[PASS] Test <length> valid value: 1e-10\f
-[PASS] Test <length> valid value: 1e-10em\f
-[PASS] Test <length> valid value: 1e-10ex\f
-[PASS] Test <length> valid value: 1e-10px\f
-[PASS] Test <length> valid value: 1e-10in\f
-[PASS] Test <length> valid value: 1e-10cm\f
-[PASS] Test <length> valid value: 1e-10mm\f
-[PASS] Test <length> valid value: 1e-10pt\f
-[PASS] Test <length> valid value: 1e-10pc\f
-[PASS] Test <length> valid value: 1e-10%\f
-[PASS] Test <length> valid value: +32\f
-[PASS] Test <length> valid value: +32em\f
-[PASS] Test <length> valid value: +32ex\f
-[PASS] Test <length> valid value: +32px\f
-[PASS] Test <length> valid value: +32in\f
-[PASS] Test <length> valid value: +32cm\f
-[PASS] Test <length> valid value: +32mm\f
-[PASS] Test <length> valid value: +32pt\f
-[PASS] Test <length> valid value: +32pc\f
-[PASS] Test <length> valid value: +32%\f
-[PASS] Test <length> valid value: +17E-1\f
-[PASS] Test <length> valid value: +17E-1em\f
-[PASS] Test <length> valid value: +17E-1ex\f
-[PASS] Test <length> valid value: +17E-1px\f
-[PASS] Test <length> valid value: +17E-1in\f
-[PASS] Test <length> valid value: +17E-1cm\f
-[PASS] Test <length> valid value: +17E-1mm\f
-[PASS] Test <length> valid value: +17E-1pt\f
-[PASS] Test <length> valid value: +17E-1pc\f
-[PASS] Test <length> valid value: +17E-1%\f
-[PASS] Test <length> valid value: 17e+2\f
-[PASS] Test <length> valid value: 17e+2em\f
-[PASS] Test <length> valid value: 17e+2ex\f
-[PASS] Test <length> valid value: 17e+2px\f
-[PASS] Test <length> valid value: 17e+2in\f
-[PASS] Test <length> valid value: 17e+2cm\f
-[PASS] Test <length> valid value: 17e+2mm\f
-[PASS] Test <length> valid value: 17e+2pt\f
-[PASS] Test <length> valid value: 17e+2pc\f
-[PASS] Test <length> valid value: 17e+2%\f
+[PASS] Test <length> valid value: -47\\r\\n\\t 
+[PASS] Test <length> valid value: -47em\\r\\n\\t 
+[PASS] Test <length> valid value: -47ex\\r\\n\\t 
+[PASS] Test <length> valid value: -47px\\r\\n\\t 
+[PASS] Test <length> valid value: -47in\\r\\n\\t 
+[PASS] Test <length> valid value: -47cm\\r\\n\\t 
+[PASS] Test <length> valid value: -47mm\\r\\n\\t 
+[PASS] Test <length> valid value: -47pt\\r\\n\\t 
+[PASS] Test <length> valid value: -47pc\\r\\n\\t 
+[PASS] Test <length> valid value: -47%\\r\\n\\t 
+[PASS] Test <length> valid value: .1\\r\\n\\t 
+[PASS] Test <length> valid value: .1em\\r\\n\\t 
+[PASS] Test <length> valid value: .1ex\\r\\n\\t 
+[PASS] Test <length> valid value: .1px\\r\\n\\t 
+[PASS] Test <length> valid value: .1in\\r\\n\\t 
+[PASS] Test <length> valid value: .1cm\\r\\n\\t 
+[PASS] Test <length> valid value: .1mm\\r\\n\\t 
+[PASS] Test <length> valid value: .1pt\\r\\n\\t 
+[PASS] Test <length> valid value: .1pc\\r\\n\\t 
+[PASS] Test <length> valid value: .1%\\r\\n\\t 
+[PASS] Test <length> valid value: 0.35\\r\\n\\t 
+[PASS] Test <length> valid value: 0.35em\\r\\n\\t 
+[PASS] Test <length> valid value: 0.35ex\\r\\n\\t 
+[PASS] Test <length> valid value: 0.35px\\r\\n\\t 
+[PASS] Test <length> valid value: 0.35in\\r\\n\\t 
+[PASS] Test <length> valid value: 0.35cm\\r\\n\\t 
+[PASS] Test <length> valid value: 0.35mm\\r\\n\\t 
+[PASS] Test <length> valid value: 0.35pt\\r\\n\\t 
+[PASS] Test <length> valid value: 0.35pc\\r\\n\\t 
+[PASS] Test <length> valid value: 0.35%\\r\\n\\t 
+[PASS] Test <length> valid value: 1e-10\\r\\n\\t 
+[PASS] Test <length> valid value: 1e-10em\\r\\n\\t 
+[PASS] Test <length> valid value: 1e-10ex\\r\\n\\t 
+[PASS] Test <length> valid value: 1e-10px\\r\\n\\t 
+[PASS] Test <length> valid value: 1e-10in\\r\\n\\t 
+[PASS] Test <length> valid value: 1e-10cm\\r\\n\\t 
+[PASS] Test <length> valid value: 1e-10mm\\r\\n\\t 
+[PASS] Test <length> valid value: 1e-10pt\\r\\n\\t 
+[PASS] Test <length> valid value: 1e-10pc\\r\\n\\t 
+[PASS] Test <length> valid value: 1e-10%\\r\\n\\t 
+[PASS] Test <length> valid value: +32\\r\\n\\t 
+[PASS] Test <length> valid value: +32em\\r\\n\\t 
+[PASS] Test <length> valid value: +32ex\\r\\n\\t 
+[PASS] Test <length> valid value: +32px\\r\\n\\t 
+[PASS] Test <length> valid value: +32in\\r\\n\\t 
+[PASS] Test <length> valid value: +32cm\\r\\n\\t 
+[PASS] Test <length> valid value: +32mm\\r\\n\\t 
+[PASS] Test <length> valid value: +32pt\\r\\n\\t 
+[PASS] Test <length> valid value: +32pc\\r\\n\\t 
+[PASS] Test <length> valid value: +32%\\r\\n\\t 
+[PASS] Test <length> valid value: +17E-1\\r\\n\\t 
+[PASS] Test <length> valid value: +17E-1em\\r\\n\\t 
+[PASS] Test <length> valid value: +17E-1ex\\r\\n\\t 
+[PASS] Test <length> valid value: +17E-1px\\r\\n\\t 
+[PASS] Test <length> valid value: +17E-1in\\r\\n\\t 
+[PASS] Test <length> valid value: +17E-1cm\\r\\n\\t 
+[PASS] Test <length> valid value: +17E-1mm\\r\\n\\t 
+[PASS] Test <length> valid value: +17E-1pt\\r\\n\\t 
+[PASS] Test <length> valid value: +17E-1pc\\r\\n\\t 
+[PASS] Test <length> valid value: +17E-1%\\r\\n\\t 
+[PASS] Test <length> valid value: 17e+2\\r\\n\\t 
+[PASS] Test <length> valid value: 17e+2em\\r\\n\\t 
+[PASS] Test <length> valid value: 17e+2ex\\r\\n\\t 
+[PASS] Test <length> valid value: 17e+2px\\r\\n\\t 
+[PASS] Test <length> valid value: 17e+2in\\r\\n\\t 
+[PASS] Test <length> valid value: 17e+2cm\\r\\n\\t 
+[PASS] Test <length> valid value: 17e+2mm\\r\\n\\t 
+[PASS] Test <length> valid value: 17e+2pt\\r\\n\\t 
+[PASS] Test <length> valid value: 17e+2pc\\r\\n\\t 
+[PASS] Test <length> valid value: 17e+2%\\r\\n\\t 
+[PASS] Test <length> valid value: -47\\f
+[PASS] Test <length> valid value: -47em\\f
+[PASS] Test <length> valid value: -47ex\\f
+[PASS] Test <length> valid value: -47px\\f
+[PASS] Test <length> valid value: -47in\\f
+[PASS] Test <length> valid value: -47cm\\f
+[PASS] Test <length> valid value: -47mm\\f
+[PASS] Test <length> valid value: -47pt\\f
+[PASS] Test <length> valid value: -47pc\\f
+[PASS] Test <length> valid value: -47%\\f
+[PASS] Test <length> valid value: .1\\f
+[PASS] Test <length> valid value: .1em\\f
+[PASS] Test <length> valid value: .1ex\\f
+[PASS] Test <length> valid value: .1px\\f
+[PASS] Test <length> valid value: .1in\\f
+[PASS] Test <length> valid value: .1cm\\f
+[PASS] Test <length> valid value: .1mm\\f
+[PASS] Test <length> valid value: .1pt\\f
+[PASS] Test <length> valid value: .1pc\\f
+[PASS] Test <length> valid value: .1%\\f
+[PASS] Test <length> valid value: 0.35\\f
+[PASS] Test <length> valid value: 0.35em\\f
+[PASS] Test <length> valid value: 0.35ex\\f
+[PASS] Test <length> valid value: 0.35px\\f
+[PASS] Test <length> valid value: 0.35in\\f
+[PASS] Test <length> valid value: 0.35cm\\f
+[PASS] Test <length> valid value: 0.35mm\\f
+[PASS] Test <length> valid value: 0.35pt\\f
+[PASS] Test <length> valid value: 0.35pc\\f
+[PASS] Test <length> valid value: 0.35%\\f
+[PASS] Test <length> valid value: 1e-10\\f
+[PASS] Test <length> valid value: 1e-10em\\f
+[PASS] Test <length> valid value: 1e-10ex\\f
+[PASS] Test <length> valid value: 1e-10px\\f
+[PASS] Test <length> valid value: 1e-10in\\f
+[PASS] Test <length> valid value: 1e-10cm\\f
+[PASS] Test <length> valid value: 1e-10mm\\f
+[PASS] Test <length> valid value: 1e-10pt\\f
+[PASS] Test <length> valid value: 1e-10pc\\f
+[PASS] Test <length> valid value: 1e-10%\\f
+[PASS] Test <length> valid value: +32\\f
+[PASS] Test <length> valid value: +32em\\f
+[PASS] Test <length> valid value: +32ex\\f
+[PASS] Test <length> valid value: +32px\\f
+[PASS] Test <length> valid value: +32in\\f
+[PASS] Test <length> valid value: +32cm\\f
+[PASS] Test <length> valid value: +32mm\\f
+[PASS] Test <length> valid value: +32pt\\f
+[PASS] Test <length> valid value: +32pc\\f
+[PASS] Test <length> valid value: +32%\\f
+[PASS] Test <length> valid value: +17E-1\\f
+[PASS] Test <length> valid value: +17E-1em\\f
+[PASS] Test <length> valid value: +17E-1ex\\f
+[PASS] Test <length> valid value: +17E-1px\\f
+[PASS] Test <length> valid value: +17E-1in\\f
+[PASS] Test <length> valid value: +17E-1cm\\f
+[PASS] Test <length> valid value: +17E-1mm\\f
+[PASS] Test <length> valid value: +17E-1pt\\f
+[PASS] Test <length> valid value: +17E-1pc\\f
+[PASS] Test <length> valid value: +17E-1%\\f
+[PASS] Test <length> valid value: 17e+2\\f
+[PASS] Test <length> valid value: 17e+2em\\f
+[PASS] Test <length> valid value: 17e+2ex\\f
+[PASS] Test <length> valid value: 17e+2px\\f
+[PASS] Test <length> valid value: 17e+2in\\f
+[PASS] Test <length> valid value: 17e+2cm\\f
+[PASS] Test <length> valid value: 17e+2mm\\f
+[PASS] Test <length> valid value: 17e+2pt\\f
+[PASS] Test <length> valid value: 17e+2pc\\f
+[PASS] Test <length> valid value: 17e+2%\\f
 [PASS] Test <length> trailing garbage, value: -47a
 [PASS] Test <length> trailing garbage, value: .1a
 [PASS] Test <length> trailing garbage, value: 0.35a
@@ -979,146 +979,146 @@
 [PASS] Test <length> valid value:  17e+2pt   
 [PASS] Test <length> valid value:  17e+2pc   
 [PASS] Test <length> valid value:  17e+2%   
-[PASS] Test <length> valid value:  -47\r\n\t 
-[PASS] Test <length> valid value:  -47em\r\n\t 
-[PASS] Test <length> valid value:  -47ex\r\n\t 
-[PASS] Test <length> valid value:  -47px\r\n\t 
-[PASS] Test <length> valid value:  -47in\r\n\t 
-[PASS] Test <length> valid value:  -47cm\r\n\t 
-[PASS] Test <length> valid value:  -47mm\r\n\t 
-[PASS] Test <length> valid value:  -47pt\r\n\t 
-[PASS] Test <length> valid value:  -47pc\r\n\t 
-[PASS] Test <length> valid value:  -47%\r\n\t 
-[PASS] Test <length> valid value:  .1\r\n\t 
-[PASS] Test <length> valid value:  .1em\r\n\t 
-[PASS] Test <length> valid value:  .1ex\r\n\t 
-[PASS] Test <length> valid value:  .1px\r\n\t 
-[PASS] Test <length> valid value:  .1in\r\n\t 
-[PASS] Test <length> valid value:  .1cm\r\n\t 
-[PASS] Test <length> valid value:  .1mm\r\n\t 
-[PASS] Test <length> valid value:  .1pt\r\n\t 
-[PASS] Test <length> valid value:  .1pc\r\n\t 
-[PASS] Test <length> valid value:  .1%\r\n\t 
-[PASS] Test <length> valid value:  0.35\r\n\t 
-[PASS] Test <length> valid value:  0.35em\r\n\t 
-[PASS] Test <length> valid value:  0.35ex\r\n\t 
-[PASS] Test <length> valid value:  0.35px\r\n\t 
-[PASS] Test <length> valid value:  0.35in\r\n\t 
-[PASS] Test <length> valid value:  0.35cm\r\n\t 
-[PASS] Test <length> valid value:  0.35mm\r\n\t 
-[PASS] Test <length> valid value:  0.35pt\r\n\t 
-[PASS] Test <length> valid value:  0.35pc\r\n\t 
-[PASS] Test <length> valid value:  0.35%\r\n\t 
-[PASS] Test <length> valid value:  1e-10\r\n\t 
-[PASS] Test <length> valid value:  1e-10em\r\n\t 
-[PASS] Test <length> valid value:  1e-10ex\r\n\t 
-[PASS] Test <length> valid value:  1e-10px\r\n\t 
-[PASS] Test <length> valid value:  1e-10in\r\n\t 
-[PASS] Test <length> valid value:  1e-10cm\r\n\t 
-[PASS] Test <length> valid value:  1e-10mm\r\n\t 
-[PASS] Test <length> valid value:  1e-10pt\r\n\t 
-[PASS] Test <length> valid value:  1e-10pc\r\n\t 
-[PASS] Test <length> valid value:  1e-10%\r\n\t 
-[PASS] Test <length> valid value:  +32\r\n\t 
-[PASS] Test <length> valid value:  +32em\r\n\t 
-[PASS] Test <length> valid value:  +32ex\r\n\t 
-[PASS] Test <length> valid value:  +32px\r\n\t 
-[PASS] Test <length> valid value:  +32in\r\n\t 
-[PASS] Test <length> valid value:  +32cm\r\n\t 
-[PASS] Test <length> valid value:  +32mm\r\n\t 
-[PASS] Test <length> valid value:  +32pt\r\n\t 
-[PASS] Test <length> valid value:  +32pc\r\n\t 
-[PASS] Test <length> valid value:  +32%\r\n\t 
-[PASS] Test <length> valid value:  +17E-1\r\n\t 
-[PASS] Test <length> valid value:  +17E-1em\r\n\t 
-[PASS] Test <length> valid value:  +17E-1ex\r\n\t 
-[PASS] Test <length> valid value:  +17E-1px\r\n\t 
-[PASS] Test <length> valid value:  +17E-1in\r\n\t 
-[PASS] Test <length> valid value:  +17E-1cm\r\n\t 
-[PASS] Test <length> valid value:  +17E-1mm\r\n\t 
-[PASS] Test <length> valid value:  +17E-1pt\r\n\t 
-[PASS] Test <length> valid value:  +17E-1pc\r\n\t 
-[PASS] Test <length> valid value:  +17E-1%\r\n\t 
-[PASS] Test <length> valid value:  17e+2\r\n\t 
-[PASS] Test <length> valid value:  17e+2em\r\n\t 
-[PASS] Test <length> valid value:  17e+2ex\r\n\t 
-[PASS] Test <length> valid value:  17e+2px\r\n\t 
-[PASS] Test <length> valid value:  17e+2in\r\n\t 
-[PASS] Test <length> valid value:  17e+2cm\r\n\t 
-[PASS] Test <length> valid value:  17e+2mm\r\n\t 
-[PASS] Test <length> valid value:  17e+2pt\r\n\t 
-[PASS] Test <length> valid value:  17e+2pc\r\n\t 
-[PASS] Test <length> valid value:  17e+2%\r\n\t 
-[PASS] Test <length> valid value:  -47\f
-[PASS] Test <length> valid value:  -47em\f
-[PASS] Test <length> valid value:  -47ex\f
-[PASS] Test <length> valid value:  -47px\f
-[PASS] Test <length> valid value:  -47in\f
-[PASS] Test <length> valid value:  -47cm\f
-[PASS] Test <length> valid value:  -47mm\f
-[PASS] Test <length> valid value:  -47pt\f
-[PASS] Test <length> valid value:  -47pc\f
-[PASS] Test <length> valid value:  -47%\f
-[PASS] Test <length> valid value:  .1\f
-[PASS] Test <length> valid value:  .1em\f
-[PASS] Test <length> valid value:  .1ex\f
-[PASS] Test <length> valid value:  .1px\f
-[PASS] Test <length> valid value:  .1in\f
-[PASS] Test <length> valid value:  .1cm\f
-[PASS] Test <length> valid value:  .1mm\f
-[PASS] Test <length> valid value:  .1pt\f
-[PASS] Test <length> valid value:  .1pc\f
-[PASS] Test <length> valid value:  .1%\f
-[PASS] Test <length> valid value:  0.35\f
-[PASS] Test <length> valid value:  0.35em\f
-[PASS] Test <length> valid value:  0.35ex\f
-[PASS] Test <length> valid value:  0.35px\f
-[PASS] Test <length> valid value:  0.35in\f
-[PASS] Test <length> valid value:  0.35cm\f
-[PASS] Test <length> valid value:  0.35mm\f
-[PASS] Test <length> valid value:  0.35pt\f
-[PASS] Test <length> valid value:  0.35pc\f
-[PASS] Test <length> valid value:  0.35%\f
-[PASS] Test <length> valid value:  1e-10\f
-[PASS] Test <length> valid value:  1e-10em\f
-[PASS] Test <length> valid value:  1e-10ex\f
-[PASS] Test <length> valid value:  1e-10px\f
-[PASS] Test <length> valid value:  1e-10in\f
-[PASS] Test <length> valid value:  1e-10cm\f
-[PASS] Test <length> valid value:  1e-10mm\f
-[PASS] Test <length> valid value:  1e-10pt\f
-[PASS] Test <length> valid value:  1e-10pc\f
-[PASS] Test <length> valid value:  1e-10%\f
-[PASS] Test <length> valid value:  +32\f
-[PASS] Test <length> valid value:  +32em\f
-[PASS] Test <length> valid value:  +32ex\f
-[PASS] Test <length> valid value:  +32px\f
-[PASS] Test <length> valid value:  +32in\f
-[PASS] Test <length> valid value:  +32cm\f
-[PASS] Test <length> valid value:  +32mm\f
-[PASS] Test <length> valid value:  +32pt\f
-[PASS] Test <length> valid value:  +32pc\f
-[PASS] Test <length> valid value:  +32%\f
-[PASS] Test <length> valid value:  +17E-1\f
-[PASS] Test <length> valid value:  +17E-1em\f
-[PASS] Test <length> valid value:  +17E-1ex\f
-[PASS] Test <length> valid value:  +17E-1px\f
-[PASS] Test <length> valid value:  +17E-1in\f
-[PASS] Test <length> valid value:  +17E-1cm\f
-[PASS] Test <length> valid value:  +17E-1mm\f
-[PASS] Test <length> valid value:  +17E-1pt\f
-[PASS] Test <length> valid value:  +17E-1pc\f
-[PASS] Test <length> valid value:  +17E-1%\f
-[PASS] Test <length> valid value:  17e+2\f
-[PASS] Test <length> valid value:  17e+2em\f
-[PASS] Test <length> valid value:  17e+2ex\f
-[PASS] Test <length> valid value:  17e+2px\f
-[PASS] Test <length> valid value:  17e+2in\f
-[PASS] Test <length> valid value:  17e+2cm\f
-[PASS] Test <length> valid value:  17e+2mm\f
-[PASS] Test <length> valid value:  17e+2pt\f
-[PASS] Test <length> valid value:  17e+2pc\f
-[PASS] Test <length> valid value:  17e+2%\f
+[PASS] Test <length> valid value:  -47\\r\\n\\t 
+[PASS] Test <length> valid value:  -47em\\r\\n\\t 
+[PASS] Test <length> valid value:  -47ex\\r\\n\\t 
+[PASS] Test <length> valid value:  -47px\\r\\n\\t 
+[PASS] Test <length> valid value:  -47in\\r\\n\\t 
+[PASS] Test <length> valid value:  -47cm\\r\\n\\t 
+[PASS] Test <length> valid value:  -47mm\\r\\n\\t 
+[PASS] Test <length> valid value:  -47pt\\r\\n\\t 
+[PASS] Test <length> valid value:  -47pc\\r\\n\\t 
+[PASS] Test <length> valid value:  -47%\\r\\n\\t 
+[PASS] Test <length> valid value:  .1\\r\\n\\t 
+[PASS] Test <length> valid value:  .1em\\r\\n\\t 
+[PASS] Test <length> valid value:  .1ex\\r\\n\\t 
+[PASS] Test <length> valid value:  .1px\\r\\n\\t 
+[PASS] Test <length> valid value:  .1in\\r\\n\\t 
+[PASS] Test <length> valid value:  .1cm\\r\\n\\t 
+[PASS] Test <length> valid value:  .1mm\\r\\n\\t 
+[PASS] Test <length> valid value:  .1pt\\r\\n\\t 
+[PASS] Test <length> valid value:  .1pc\\r\\n\\t 
+[PASS] Test <length> valid value:  .1%\\r\\n\\t 
+[PASS] Test <length> valid value:  0.35\\r\\n\\t 
+[PASS] Test <length> valid value:  0.35em\\r\\n\\t 
+[PASS] Test <length> valid value:  0.35ex\\r\\n\\t 
+[PASS] Test <length> valid value:  0.35px\\r\\n\\t 
+[PASS] Test <length> valid value:  0.35in\\r\\n\\t 
+[PASS] Test <length> valid value:  0.35cm\\r\\n\\t 
+[PASS] Test <length> valid value:  0.35mm\\r\\n\\t 
+[PASS] Test <length> valid value:  0.35pt\\r\\n\\t 
+[PASS] Test <length> valid value:  0.35pc\\r\\n\\t 
+[PASS] Test <length> valid value:  0.35%\\r\\n\\t 
+[PASS] Test <length> valid value:  1e-10\\r\\n\\t 
+[PASS] Test <length> valid value:  1e-10em\\r\\n\\t 
+[PASS] Test <length> valid value:  1e-10ex\\r\\n\\t 
+[PASS] Test <length> valid value:  1e-10px\\r\\n\\t 
+[PASS] Test <length> valid value:  1e-10in\\r\\n\\t 
+[PASS] Test <length> valid value:  1e-10cm\\r\\n\\t 
+[PASS] Test <length> valid value:  1e-10mm\\r\\n\\t 
+[PASS] Test <length> valid value:  1e-10pt\\r\\n\\t 
+[PASS] Test <length> valid value:  1e-10pc\\r\\n\\t 
+[PASS] Test <length> valid value:  1e-10%\\r\\n\\t 
+[PASS] Test <length> valid value:  +32\\r\\n\\t 
+[PASS] Test <length> valid value:  +32em\\r\\n\\t 
+[PASS] Test <length> valid value:  +32ex\\r\\n\\t 
+[PASS] Test <length> valid value:  +32px\\r\\n\\t 
+[PASS] Test <length> valid value:  +32in\\r\\n\\t 
+[PASS] Test <length> valid value:  +32cm\\r\\n\\t 
+[PASS] Test <length> valid value:  +32mm\\r\\n\\t 
+[PASS] Test <length> valid value:  +32pt\\r\\n\\t 
+[PASS] Test <length> valid value:  +32pc\\r\\n\\t 
+[PASS] Test <length> valid value:  +32%\\r\\n\\t 
+[PASS] Test <length> valid value:  +17E-1\\r\\n\\t 
+[PASS] Test <length> valid value:  +17E-1em\\r\\n\\t 
+[PASS] Test <length> valid value:  +17E-1ex\\r\\n\\t 
+[PASS] Test <length> valid value:  +17E-1px\\r\\n\\t 
+[PASS] Test <length> valid value:  +17E-1in\\r\\n\\t 
+[PASS] Test <length> valid value:  +17E-1cm\\r\\n\\t 
+[PASS] Test <length> valid value:  +17E-1mm\\r\\n\\t 
+[PASS] Test <length> valid value:  +17E-1pt\\r\\n\\t 
+[PASS] Test <length> valid value:  +17E-1pc\\r\\n\\t 
+[PASS] Test <length> valid value:  +17E-1%\\r\\n\\t 
+[PASS] Test <length> valid value:  17e+2\\r\\n\\t 
+[PASS] Test <length> valid value:  17e+2em\\r\\n\\t 
+[PASS] Test <length> valid value:  17e+2ex\\r\\n\\t 
+[PASS] Test <length> valid value:  17e+2px\\r\\n\\t 
+[PASS] Test <length> valid value:  17e+2in\\r\\n\\t 
+[PASS] Test <length> valid value:  17e+2cm\\r\\n\\t 
+[PASS] Test <length> valid value:  17e+2mm\\r\\n\\t 
+[PASS] Test <length> valid value:  17e+2pt\\r\\n\\t 
+[PASS] Test <length> valid value:  17e+2pc\\r\\n\\t 
+[PASS] Test <length> valid value:  17e+2%\\r\\n\\t 
+[PASS] Test <length> valid value:  -47\\f
+[PASS] Test <length> valid value:  -47em\\f
+[PASS] Test <length> valid value:  -47ex\\f
+[PASS] Test <length> valid value:  -47px\\f
+[PASS] Test <length> valid value:  -47in\\f
+[PASS] Test <length> valid value:  -47cm\\f
+[PASS] Test <length> valid value:  -47mm\\f
+[PASS] Test <length> valid value:  -47pt\\f
+[PASS] Test <length> valid value:  -47pc\\f
+[PASS] Test <length> valid value:  -47%\\f
+[PASS] Test <length> valid value:  .1\\f
+[PASS] Test <length> valid value:  .1em\\f
+[PASS] Test <length> valid value:  .1ex\\f
+[PASS] Test <length> valid value:  .1px\\f
+[PASS] Test <length> valid value:  .1in\\f
+[PASS] Test <length> valid value:  .1cm\\f
+[PASS] Test <length> valid value:  .1mm\\f
+[PASS] Test <length> valid value:  .1pt\\f
+[PASS] Test <length> valid value:  .1pc\\f
+[PASS] Test <length> valid value:  .1%\\f
+[PASS] Test <length> valid value:  0.35\\f
+[PASS] Test <length> valid value:  0.35em\\f
+[PASS] Test <length> valid value:  0.35ex\\f
+[PASS] Test <length> valid value:  0.35px\\f
+[PASS] Test <length> valid value:  0.35in\\f
+[PASS] Test <length> valid value:  0.35cm\\f
+[PASS] Test <length> valid value:  0.35mm\\f
+[PASS] Test <length> valid value:  0.35pt\\f
+[PASS] Test <length> valid value:  0.35pc\\f
+[PASS] Test <length> valid value:  0.35%\\f
+[PASS] Test <length> valid value:  1e-10\\f
+[PASS] Test <length> valid value:  1e-10em\\f
+[PASS] Test <length> valid value:  1e-10ex\\f
+[PASS] Test <length> valid value:  1e-10px\\f
+[PASS] Test <length> valid value:  1e-10in\\f
+[PASS] Test <length> valid value:  1e-10cm\\f
+[PASS] Test <length> valid value:  1e-10mm\\f
+[PASS] Test <length> valid value:  1e-10pt\\f
+[PASS] Test <length> valid value:  1e-10pc\\f
+[PASS] Test <length> valid value:  1e-10%\\f
+[PASS] Test <length> valid value:  +32\\f
+[PASS] Test <length> valid value:  +32em\\f
+[PASS] Test <length> valid value:  +32ex\\f
+[PASS] Test <length> valid value:  +32px\\f
+[PASS] Test <length> valid value:  +32in\\f
+[PASS] Test <length> valid value:  +32cm\\f
+[PASS] Test <length> valid value:  +32mm\\f
+[PASS] Test <length> valid value:  +32pt\\f
+[PASS] Test <length> valid value:  +32pc\\f
+[PASS] Test <length> valid value:  +32%\\f
+[PASS] Test <length> valid value:  +17E-1\\f
+[PASS] Test <length> valid value:  +17E-1em\\f
+[PASS] Test <length> valid value:  +17E-1ex\\f
+[PASS] Test <length> valid value:  +17E-1px\\f
+[PASS] Test <length> valid value:  +17E-1in\\f
+[PASS] Test <length> valid value:  +17E-1cm\\f
+[PASS] Test <length> valid value:  +17E-1mm\\f
+[PASS] Test <length> valid value:  +17E-1pt\\f
+[PASS] Test <length> valid value:  +17E-1pc\\f
+[PASS] Test <length> valid value:  +17E-1%\\f
+[PASS] Test <length> valid value:  17e+2\\f
+[PASS] Test <length> valid value:  17e+2em\\f
+[PASS] Test <length> valid value:  17e+2ex\\f
+[PASS] Test <length> valid value:  17e+2px\\f
+[PASS] Test <length> valid value:  17e+2in\\f
+[PASS] Test <length> valid value:  17e+2cm\\f
+[PASS] Test <length> valid value:  17e+2mm\\f
+[PASS] Test <length> valid value:  17e+2pt\\f
+[PASS] Test <length> valid value:  17e+2pc\\f
+[PASS] Test <length> valid value:  17e+2%\\f
 [PASS] Test <length> WS invalid value: -47 em
 [PASS] Test <length> WS invalid value: .1 em
 [PASS] Test <length> WS invalid value: 0.35 em
@@ -1420,146 +1420,146 @@
 [PASS] Test <length> valid value:    17e+2pt   
 [PASS] Test <length> valid value:    17e+2pc   
 [PASS] Test <length> valid value:    17e+2%   
-[PASS] Test <length> valid value:    -47\r\n\t 
-[PASS] Test <length> valid value:    -47em\r\n\t 
-[PASS] Test <length> valid value:    -47ex\r\n\t 
-[PASS] Test <length> valid value:    -47px\r\n\t 
-[PASS] Test <length> valid value:    -47in\r\n\t 
-[PASS] Test <length> valid value:    -47cm\r\n\t 
-[PASS] Test <length> valid value:    -47mm\r\n\t 
-[PASS] Test <length> valid value:    -47pt\r\n\t 
-[PASS] Test <length> valid value:    -47pc\r\n\t 
-[PASS] Test <length> valid value:    -47%\r\n\t 
-[PASS] Test <length> valid value:    .1\r\n\t 
-[PASS] Test <length> valid value:    .1em\r\n\t 
-[PASS] Test <length> valid value:    .1ex\r\n\t 
-[PASS] Test <length> valid value:    .1px\r\n\t 
-[PASS] Test <length> valid value:    .1in\r\n\t 
-[PASS] Test <length> valid value:    .1cm\r\n\t 
-[PASS] Test <length> valid value:    .1mm\r\n\t 
-[PASS] Test <length> valid value:    .1pt\r\n\t 
-[PASS] Test <length> valid value:    .1pc\r\n\t 
-[PASS] Test <length> valid value:    .1%\r\n\t 
-[PASS] Test <length> valid value:    0.35\r\n\t 
-[PASS] Test <length> valid value:    0.35em\r\n\t 
-[PASS] Test <length> valid value:    0.35ex\r\n\t 
-[PASS] Test <length> valid value:    0.35px\r\n\t 
-[PASS] Test <length> valid value:    0.35in\r\n\t 
-[PASS] Test <length> valid value:    0.35cm\r\n\t 
-[PASS] Test <length> valid value:    0.35mm\r\n\t 
-[PASS] Test <length> valid value:    0.35pt\r\n\t 
-[PASS] Test <length> valid value:    0.35pc\r\n\t 
-[PASS] Test <length> valid value:    0.35%\r\n\t 
-[PASS] Test <length> valid value:    1e-10\r\n\t 
-[PASS] Test <length> valid value:    1e-10em\r\n\t 
-[PASS] Test <length> valid value:    1e-10ex\r\n\t 
-[PASS] Test <length> valid value:    1e-10px\r\n\t 
-[PASS] Test <length> valid value:    1e-10in\r\n\t 
-[PASS] Test <length> valid value:    1e-10cm\r\n\t 
-[PASS] Test <length> valid value:    1e-10mm\r\n\t 
-[PASS] Test <length> valid value:    1e-10pt\r\n\t 
-[PASS] Test <length> valid value:    1e-10pc\r\n\t 
-[PASS] Test <length> valid value:    1e-10%\r\n\t 
-[PASS] Test <length> valid value:    +32\r\n\t 
-[PASS] Test <length> valid value:    +32em\r\n\t 
-[PASS] Test <length> valid value:    +32ex\r\n\t 
-[PASS] Test <length> valid value:    +32px\r\n\t 
-[PASS] Test <length> valid value:    +32in\r\n\t 
-[PASS] Test <length> valid value:    +32cm\r\n\t 
-[PASS] Test <length> valid value:    +32mm\r\n\t 
-[PASS] Test <length> valid value:    +32pt\r\n\t 
-[PASS] Test <length> valid value:    +32pc\r\n\t 
-[PASS] Test <length> valid value:    +32%\r\n\t 
-[PASS] Test <length> valid value:    +17E-1\r\n\t 
-[PASS] Test <length> valid value:    +17E-1em\r\n\t 
-[PASS] Test <length> valid value:    +17E-1ex\r\n\t 
-[PASS] Test <length> valid value:    +17E-1px\r\n\t 
-[PASS] Test <length> valid value:    +17E-1in\r\n\t 
-[PASS] Test <length> valid value:    +17E-1cm\r\n\t 
-[PASS] Test <length> valid value:    +17E-1mm\r\n\t 
-[PASS] Test <length> valid value:    +17E-1pt\r\n\t 
-[PASS] Test <length> valid value:    +17E-1pc\r\n\t 
-[PASS] Test <length> valid value:    +17E-1%\r\n\t 
-[PASS] Test <length> valid value:    17e+2\r\n\t 
-[PASS] Test <length> valid value:    17e+2em\r\n\t 
-[PASS] Test <length> valid value:    17e+2ex\r\n\t 
-[PASS] Test <length> valid value:    17e+2px\r\n\t 
-[PASS] Test <length> valid value:    17e+2in\r\n\t 
-[PASS] Test <length> valid value:    17e+2cm\r\n\t 
-[PASS] Test <length> valid value:    17e+2mm\r\n\t 
-[PASS] Test <length> valid value:    17e+2pt\r\n\t 
-[PASS] Test <length> valid value:    17e+2pc\r\n\t 
-[PASS] Test <length> valid value:    17e+2%\r\n\t 
-[PASS] Test <length> valid value:    -47\f
-[PASS] Test <length> valid value:    -47em\f
-[PASS] Test <length> valid value:    -47ex\f
-[PASS] Test <length> valid value:    -47px\f
-[PASS] Test <length> valid value:    -47in\f
-[PASS] Test <length> valid value:    -47cm\f
-[PASS] Test <length> valid value:    -47mm\f
-[PASS] Test <length> valid value:    -47pt\f
-[PASS] Test <length> valid value:    -47pc\f
-[PASS] Test <length> valid value:    -47%\f
-[PASS] Test <length> valid value:    .1\f
-[PASS] Test <length> valid value:    .1em\f
-[PASS] Test <length> valid value:    .1ex\f
-[PASS] Test <length> valid value:    .1px\f
-[PASS] Test <length> valid value:    .1in\f
-[PASS] Test <length> valid value:    .1cm\f
-[PASS] Test <length> valid value:    .1mm\f
-[PASS] Test <length> valid value:    .1pt\f
-[PASS] Test <length> valid value:    .1pc\f
-[PASS] Test <length> valid value:    .1%\f
-[PASS] Test <length> valid value:    0.35\f
-[PASS] Test <length> valid value:    0.35em\f
-[PASS] Test <length> valid value:    0.35ex\f
-[PASS] Test <length> valid value:    0.35px\f
-[PASS] Test <length> valid value:    0.35in\f
-[PASS] Test <length> valid value:    0.35cm\f
-[PASS] Test <length> valid value:    0.35mm\f
-[PASS] Test <length> valid value:    0.35pt\f
-[PASS] Test <length> valid value:    0.35pc\f
-[PASS] Test <length> valid value:    0.35%\f
-[PASS] Test <length> valid value:    1e-10\f
-[PASS] Test <length> valid value:    1e-10em\f
-[PASS] Test <length> valid value:    1e-10ex\f
-[PASS] Test <length> valid value:    1e-10px\f
-[PASS] Test <length> valid value:    1e-10in\f
-[PASS] Test <length> valid value:    1e-10cm\f
-[PASS] Test <length> valid value:    1e-10mm\f
-[PASS] Test <length> valid value:    1e-10pt\f
-[PASS] Test <length> valid value:    1e-10pc\f
-[PASS] Test <length> valid value:    1e-10%\f
-[PASS] Test <length> valid value:    +32\f
-[PASS] Test <length> valid value:    +32em\f
-[PASS] Test <length> valid value:    +32ex\f
-[PASS] Test <length> valid value:    +32px\f
-[PASS] Test <length> valid value:    +32in\f
-[PASS] Test <length> valid value:    +32cm\f
-[PASS] Test <length> valid value:    +32mm\f
-[PASS] Test <length> valid value:    +32pt\f
-[PASS] Test <length> valid value:    +32pc\f
-[PASS] Test <length> valid value:    +32%\f
-[PASS] Test <length> valid value:    +17E-1\f
-[PASS] Test <length> valid value:    +17E-1em\f
-[PASS] Test <length> valid value:    +17E-1ex\f
-[PASS] Test <length> valid value:    +17E-1px\f
-[PASS] Test <length> valid value:    +17E-1in\f
-[PASS] Test <length> valid value:    +17E-1cm\f
-[PASS] Test <length> valid value:    +17E-1mm\f
-[PASS] Test <length> valid value:    +17E-1pt\f
-[PASS] Test <length> valid value:    +17E-1pc\f
-[PASS] Test <length> valid value:    +17E-1%\f
-[PASS] Test <length> valid value:    17e+2\f
-[PASS] Test <length> valid value:    17e+2em\f
-[PASS] Test <length> valid value:    17e+2ex\f
-[PASS] Test <length> valid value:    17e+2px\f
-[PASS] Test <length> valid value:    17e+2in\f
-[PASS] Test <length> valid value:    17e+2cm\f
-[PASS] Test <length> valid value:    17e+2mm\f
-[PASS] Test <length> valid value:    17e+2pt\f
-[PASS] Test <length> valid value:    17e+2pc\f
-[PASS] Test <length> valid value:    17e+2%\f
+[PASS] Test <length> valid value:    -47\\r\\n\\t 
+[PASS] Test <length> valid value:    -47em\\r\\n\\t 
+[PASS] Test <length> valid value:    -47ex\\r\\n\\t 
+[PASS] Test <length> valid value:    -47px\\r\\n\\t 
+[PASS] Test <length> valid value:    -47in\\r\\n\\t 
+[PASS] Test <length> valid value:    -47cm\\r\\n\\t 
+[PASS] Test <length> valid value:    -47mm\\r\\n\\t 
+[PASS] Test <length> valid value:    -47pt\\r\\n\\t 
+[PASS] Test <length> valid value:    -47pc\\r\\n\\t 
+[PASS] Test <length> valid value:    -47%\\r\\n\\t 
+[PASS] Test <length> valid value:    .1\\r\\n\\t 
+[PASS] Test <length> valid value:    .1em\\r\\n\\t 
+[PASS] Test <length> valid value:    .1ex\\r\\n\\t 
+[PASS] Test <length> valid value:    .1px\\r\\n\\t 
+[PASS] Test <length> valid value:    .1in\\r\\n\\t 
+[PASS] Test <length> valid value:    .1cm\\r\\n\\t 
+[PASS] Test <length> valid value:    .1mm\\r\\n\\t 
+[PASS] Test <length> valid value:    .1pt\\r\\n\\t 
+[PASS] Test <length> valid value:    .1pc\\r\\n\\t 
+[PASS] Test <length> valid value:    .1%\\r\\n\\t 
+[PASS] Test <length> valid value:    0.35\\r\\n\\t 
+[PASS] Test <length> valid value:    0.35em\\r\\n\\t 
+[PASS] Test <length> valid value:    0.35ex\\r\\n\\t 
+[PASS] Test <length> valid value:    0.35px\\r\\n\\t 
+[PASS] Test <length> valid value:    0.35in\\r\\n\\t 
+[PASS] Test <length> valid value:    0.35cm\\r\\n\\t 
+[PASS] Test <length> valid value:    0.35mm\\r\\n\\t 
+[PASS] Test <length> valid value:    0.35pt\\r\\n\\t 
+[PASS] Test <length> valid value:    0.35pc\\r\\n\\t 
+[PASS] Test <length> valid value:    0.35%\\r\\n\\t 
+[PASS] Test <length> valid value:    1e-10\\r\\n\\t 
+[PASS] Test <length> valid value:    1e-10em\\r\\n\\t 
+[PASS] Test <length> valid value:    1e-10ex\\r\\n\\t 
+[PASS] Test <length> valid value:    1e-10px\\r\\n\\t 
+[PASS] Test <length> valid value:    1e-10in\\r\\n\\t 
+[PASS] Test <length> valid value:    1e-10cm\\r\\n\\t 
+[PASS] Test <length> valid value:    1e-10mm\\r\\n\\t 
+[PASS] Test <length> valid value:    1e-10pt\\r\\n\\t 
+[PASS] Test <length> valid value:    1e-10pc\\r\\n\\t 
+[PASS] Test <length> valid value:    1e-10%\\r\\n\\t 
+[PASS] Test <length> valid value:    +32\\r\\n\\t 
+[PASS] Test <length> valid value:    +32em\\r\\n\\t 
+[PASS] Test <length> valid value:    +32ex\\r\\n\\t 
+[PASS] Test <length> valid value:    +32px\\r\\n\\t 
+[PASS] Test <length> valid value:    +32in\\r\\n\\t 
+[PASS] Test <length> valid value:    +32cm\\r\\n\\t 
+[PASS] Test <length> valid value:    +32mm\\r\\n\\t 
+[PASS] Test <length> valid value:    +32pt\\r\\n\\t 
+[PASS] Test <length> valid value:    +32pc\\r\\n\\t 
+[PASS] Test <length> valid value:    +32%\\r\\n\\t 
+[PASS] Test <length> valid value:    +17E-1\\r\\n\\t 
+[PASS] Test <length> valid value:    +17E-1em\\r\\n\\t 
+[PASS] Test <length> valid value:    +17E-1ex\\r\\n\\t 
+[PASS] Test <length> valid value:    +17E-1px\\r\\n\\t 
+[PASS] Test <length> valid value:    +17E-1in\\r\\n\\t 
+[PASS] Test <length> valid value:    +17E-1cm\\r\\n\\t 
+[PASS] Test <length> valid value:    +17E-1mm\\r\\n\\t 
+[PASS] Test <length> valid value:    +17E-1pt\\r\\n\\t 
+[PASS] Test <length> valid value:    +17E-1pc\\r\\n\\t 
+[PASS] Test <length> valid value:    +17E-1%\\r\\n\\t 
+[PASS] Test <length> valid value:    17e+2\\r\\n\\t 
+[PASS] Test <length> valid value:    17e+2em\\r\\n\\t 
+[PASS] Test <length> valid value:    17e+2ex\\r\\n\\t 
+[PASS] Test <length> valid value:    17e+2px\\r\\n\\t 
+[PASS] Test <length> valid value:    17e+2in\\r\\n\\t 
+[PASS] Test <length> valid value:    17e+2cm\\r\\n\\t 
+[PASS] Test <length> valid value:    17e+2mm\\r\\n\\t 
+[PASS] Test <length> valid value:    17e+2pt\\r\\n\\t 
+[PASS] Test <length> valid value:    17e+2pc\\r\\n\\t 
+[PASS] Test <length> valid value:    17e+2%\\r\\n\\t 
+[PASS] Test <length> valid value:    -47\\f
+[PASS] Test <length> valid value:    -47em\\f
+[PASS] Test <length> valid value:    -47ex\\f
+[PASS] Test <length> valid value:    -47px\\f
+[PASS] Test <length> valid value:    -47in\\f
+[PASS] Test <length> valid value:    -47cm\\f
+[PASS] Test <length> valid value:    -47mm\\f
+[PASS] Test <length> valid value:    -47pt\\f
+[PASS] Test <length> valid value:    -47pc\\f
+[PASS] Test <length> valid value:    -47%\\f
+[PASS] Test <length> valid value:    .1\\f
+[PASS] Test <length> valid value:    .1em\\f
+[PASS] Test <length> valid value:    .1ex\\f
+[PASS] Test <length> valid value:    .1px\\f
+[PASS] Test <length> valid value:    .1in\\f
+[PASS] Test <length> valid value:    .1cm\\f
+[PASS] Test <length> valid value:    .1mm\\f
+[PASS] Test <length> valid value:    .1pt\\f
+[PASS] Test <length> valid value:    .1pc\\f
+[PASS] Test <length> valid value:    .1%\\f
+[PASS] Test <length> valid value:    0.35\\f
+[PASS] Test <length> valid value:    0.35em\\f
+[PASS] Test <length> valid value:    0.35ex\\f
+[PASS] Test <length> valid value:    0.35px\\f
+[PASS] Test <length> valid value:    0.35in\\f
+[PASS] Test <length> valid value:    0.35cm\\f
+[PASS] Test <length> valid value:    0.35mm\\f
+[PASS] Test <length> valid value:    0.35pt\\f
+[PASS] Test <length> valid value:    0.35pc\\f
+[PASS] Test <length> valid value:    0.35%\\f
+[PASS] Test <length> valid value:    1e-10\\f
+[PASS] Test <length> valid value:    1e-10em\\f
+[PASS] Test <length> valid value:    1e-10ex\\f
+[PASS] Test <length> valid value:    1e-10px\\f
+[PASS] Test <length> valid value:    1e-10in\\f
+[PASS] Test <length> valid value:    1e-10cm\\f
+[PASS] Test <length> valid value:    1e-10mm\\f
+[PASS] Test <length> valid value:    1e-10pt\\f
+[PASS] Test <length> valid value:    1e-10pc\\f
+[PASS] Test <length> valid value:    1e-10%\\f
+[PASS] Test <length> valid value:    +32\\f
+[PASS] Test <length> valid value:    +32em\\f
+[PASS] Test <length> valid value:    +32ex\\f
+[PASS] Test <length> valid value:    +32px\\f
+[PASS] Test <length> valid value:    +32in\\f
+[PASS] Test <length> valid value:    +32cm\\f
+[PASS] Test <length> valid value:    +32mm\\f
+[PASS] Test <length> valid value:    +32pt\\f
+[PASS] Test <length> valid value:    +32pc\\f
+[PASS] Test <length> valid value:    +32%\\f
+[PASS] Test <length> valid value:    +17E-1\\f
+[PASS] Test <length> valid value:    +17E-1em\\f
+[PASS] Test <length> valid value:    +17E-1ex\\f
+[PASS] Test <length> valid value:    +17E-1px\\f
+[PASS] Test <length> valid value:    +17E-1in\\f
+[PASS] Test <length> valid value:    +17E-1cm\\f
+[PASS] Test <length> valid value:    +17E-1mm\\f
+[PASS] Test <length> valid value:    +17E-1pt\\f
+[PASS] Test <length> valid value:    +17E-1pc\\f
+[PASS] Test <length> valid value:    +17E-1%\\f
+[PASS] Test <length> valid value:    17e+2\\f
+[PASS] Test <length> valid value:    17e+2em\\f
+[PASS] Test <length> valid value:    17e+2ex\\f
+[PASS] Test <length> valid value:    17e+2px\\f
+[PASS] Test <length> valid value:    17e+2in\\f
+[PASS] Test <length> valid value:    17e+2cm\\f
+[PASS] Test <length> valid value:    17e+2mm\\f
+[PASS] Test <length> valid value:    17e+2pt\\f
+[PASS] Test <length> valid value:    17e+2pc\\f
+[PASS] Test <length> valid value:    17e+2%\\f
 [PASS] Test <length> WS invalid value: -47   em
 [PASS] Test <length> WS invalid value: .1   em
 [PASS] Test <length> WS invalid value: 0.35   em
@@ -1651,887 +1651,887 @@
 [PASS] Test <length> trailing garbage, value:    +32)90
 [PASS] Test <length> trailing garbage, value:    +17E-1)90
 [PASS] Test <length> trailing garbage, value:    17e+2)90
-[PASS] Test <length> valid value: \r\n\t -47
-[PASS] Test <length> valid value: \r\n\t -47em
-[PASS] Test <length> valid value: \r\n\t -47ex
-[PASS] Test <length> valid value: \r\n\t -47px
-[PASS] Test <length> valid value: \r\n\t -47in
-[PASS] Test <length> valid value: \r\n\t -47cm
-[PASS] Test <length> valid value: \r\n\t -47mm
-[PASS] Test <length> valid value: \r\n\t -47pt
-[PASS] Test <length> valid value: \r\n\t -47pc
-[PASS] Test <length> valid value: \r\n\t -47%
-[PASS] Test <length> valid value: \r\n\t .1
-[PASS] Test <length> valid value: \r\n\t .1em
-[PASS] Test <length> valid value: \r\n\t .1ex
-[PASS] Test <length> valid value: \r\n\t .1px
-[PASS] Test <length> valid value: \r\n\t .1in
-[PASS] Test <length> valid value: \r\n\t .1cm
-[PASS] Test <length> valid value: \r\n\t .1mm
-[PASS] Test <length> valid value: \r\n\t .1pt
-[PASS] Test <length> valid value: \r\n\t .1pc
-[PASS] Test <length> valid value: \r\n\t .1%
-[PASS] Test <length> valid value: \r\n\t 0.35
-[PASS] Test <length> valid value: \r\n\t 0.35em
-[PASS] Test <length> valid value: \r\n\t 0.35ex
-[PASS] Test <length> valid value: \r\n\t 0.35px
-[PASS] Test <length> valid value: \r\n\t 0.35in
-[PASS] Test <length> valid value: \r\n\t 0.35cm
-[PASS] Test <length> valid value: \r\n\t 0.35mm
-[PASS] Test <length> valid value: \r\n\t 0.35pt
-[PASS] Test <length> valid value: \r\n\t 0.35pc
-[PASS] Test <length> valid value: \r\n\t 0.35%
-[PASS] Test <length> valid value: \r\n\t 1e-10
-[PASS] Test <length> valid value: \r\n\t 1e-10em
-[PASS] Test <length> valid value: \r\n\t 1e-10ex
-[PASS] Test <length> valid value: \r\n\t 1e-10px
-[PASS] Test <length> valid value: \r\n\t 1e-10in
-[PASS] Test <length> valid value: \r\n\t 1e-10cm
-[PASS] Test <length> valid value: \r\n\t 1e-10mm
-[PASS] Test <length> valid value: \r\n\t 1e-10pt
-[PASS] Test <length> valid value: \r\n\t 1e-10pc
-[PASS] Test <length> valid value: \r\n\t 1e-10%
-[PASS] Test <length> valid value: \r\n\t +32
-[PASS] Test <length> valid value: \r\n\t +32em
-[PASS] Test <length> valid value: \r\n\t +32ex
-[PASS] Test <length> valid value: \r\n\t +32px
-[PASS] Test <length> valid value: \r\n\t +32in
-[PASS] Test <length> valid value: \r\n\t +32cm
-[PASS] Test <length> valid value: \r\n\t +32mm
-[PASS] Test <length> valid value: \r\n\t +32pt
-[PASS] Test <length> valid value: \r\n\t +32pc
-[PASS] Test <length> valid value: \r\n\t +32%
-[PASS] Test <length> valid value: \r\n\t +17E-1
-[PASS] Test <length> valid value: \r\n\t +17E-1em
-[PASS] Test <length> valid value: \r\n\t +17E-1ex
-[PASS] Test <length> valid value: \r\n\t +17E-1px
-[PASS] Test <length> valid value: \r\n\t +17E-1in
-[PASS] Test <length> valid value: \r\n\t +17E-1cm
-[PASS] Test <length> valid value: \r\n\t +17E-1mm
-[PASS] Test <length> valid value: \r\n\t +17E-1pt
-[PASS] Test <length> valid value: \r\n\t +17E-1pc
-[PASS] Test <length> valid value: \r\n\t +17E-1%
-[PASS] Test <length> valid value: \r\n\t 17e+2
-[PASS] Test <length> valid value: \r\n\t 17e+2em
-[PASS] Test <length> valid value: \r\n\t 17e+2ex
-[PASS] Test <length> valid value: \r\n\t 17e+2px
-[PASS] Test <length> valid value: \r\n\t 17e+2in
-[PASS] Test <length> valid value: \r\n\t 17e+2cm
-[PASS] Test <length> valid value: \r\n\t 17e+2mm
-[PASS] Test <length> valid value: \r\n\t 17e+2pt
-[PASS] Test <length> valid value: \r\n\t 17e+2pc
-[PASS] Test <length> valid value: \r\n\t 17e+2%
-[PASS] Test <length> valid value: \r\n\t -47 
-[PASS] Test <length> valid value: \r\n\t -47em 
-[PASS] Test <length> valid value: \r\n\t -47ex 
-[PASS] Test <length> valid value: \r\n\t -47px 
-[PASS] Test <length> valid value: \r\n\t -47in 
-[PASS] Test <length> valid value: \r\n\t -47cm 
-[PASS] Test <length> valid value: \r\n\t -47mm 
-[PASS] Test <length> valid value: \r\n\t -47pt 
-[PASS] Test <length> valid value: \r\n\t -47pc 
-[PASS] Test <length> valid value: \r\n\t -47% 
-[PASS] Test <length> valid value: \r\n\t .1 
-[PASS] Test <length> valid value: \r\n\t .1em 
-[PASS] Test <length> valid value: \r\n\t .1ex 
-[PASS] Test <length> valid value: \r\n\t .1px 
-[PASS] Test <length> valid value: \r\n\t .1in 
-[PASS] Test <length> valid value: \r\n\t .1cm 
-[PASS] Test <length> valid value: \r\n\t .1mm 
-[PASS] Test <length> valid value: \r\n\t .1pt 
-[PASS] Test <length> valid value: \r\n\t .1pc 
-[PASS] Test <length> valid value: \r\n\t .1% 
-[PASS] Test <length> valid value: \r\n\t 0.35 
-[PASS] Test <length> valid value: \r\n\t 0.35em 
-[PASS] Test <length> valid value: \r\n\t 0.35ex 
-[PASS] Test <length> valid value: \r\n\t 0.35px 
-[PASS] Test <length> valid value: \r\n\t 0.35in 
-[PASS] Test <length> valid value: \r\n\t 0.35cm 
-[PASS] Test <length> valid value: \r\n\t 0.35mm 
-[PASS] Test <length> valid value: \r\n\t 0.35pt 
-[PASS] Test <length> valid value: \r\n\t 0.35pc 
-[PASS] Test <length> valid value: \r\n\t 0.35% 
-[PASS] Test <length> valid value: \r\n\t 1e-10 
-[PASS] Test <length> valid value: \r\n\t 1e-10em 
-[PASS] Test <length> valid value: \r\n\t 1e-10ex 
-[PASS] Test <length> valid value: \r\n\t 1e-10px 
-[PASS] Test <length> valid value: \r\n\t 1e-10in 
-[PASS] Test <length> valid value: \r\n\t 1e-10cm 
-[PASS] Test <length> valid value: \r\n\t 1e-10mm 
-[PASS] Test <length> valid value: \r\n\t 1e-10pt 
-[PASS] Test <length> valid value: \r\n\t 1e-10pc 
-[PASS] Test <length> valid value: \r\n\t 1e-10% 
-[PASS] Test <length> valid value: \r\n\t +32 
-[PASS] Test <length> valid value: \r\n\t +32em 
-[PASS] Test <length> valid value: \r\n\t +32ex 
-[PASS] Test <length> valid value: \r\n\t +32px 
-[PASS] Test <length> valid value: \r\n\t +32in 
-[PASS] Test <length> valid value: \r\n\t +32cm 
-[PASS] Test <length> valid value: \r\n\t +32mm 
-[PASS] Test <length> valid value: \r\n\t +32pt 
-[PASS] Test <length> valid value: \r\n\t +32pc 
-[PASS] Test <length> valid value: \r\n\t +32% 
-[PASS] Test <length> valid value: \r\n\t +17E-1 
-[PASS] Test <length> valid value: \r\n\t +17E-1em 
-[PASS] Test <length> valid value: \r\n\t +17E-1ex 
-[PASS] Test <length> valid value: \r\n\t +17E-1px 
-[PASS] Test <length> valid value: \r\n\t +17E-1in 
-[PASS] Test <length> valid value: \r\n\t +17E-1cm 
-[PASS] Test <length> valid value: \r\n\t +17E-1mm 
-[PASS] Test <length> valid value: \r\n\t +17E-1pt 
-[PASS] Test <length> valid value: \r\n\t +17E-1pc 
-[PASS] Test <length> valid value: \r\n\t +17E-1% 
-[PASS] Test <length> valid value: \r\n\t 17e+2 
-[PASS] Test <length> valid value: \r\n\t 17e+2em 
-[PASS] Test <length> valid value: \r\n\t 17e+2ex 
-[PASS] Test <length> valid value: \r\n\t 17e+2px 
-[PASS] Test <length> valid value: \r\n\t 17e+2in 
-[PASS] Test <length> valid value: \r\n\t 17e+2cm 
-[PASS] Test <length> valid value: \r\n\t 17e+2mm 
-[PASS] Test <length> valid value: \r\n\t 17e+2pt 
-[PASS] Test <length> valid value: \r\n\t 17e+2pc 
-[PASS] Test <length> valid value: \r\n\t 17e+2% 
-[PASS] Test <length> valid value: \r\n\t -47   
-[PASS] Test <length> valid value: \r\n\t -47em   
-[PASS] Test <length> valid value: \r\n\t -47ex   
-[PASS] Test <length> valid value: \r\n\t -47px   
-[PASS] Test <length> valid value: \r\n\t -47in   
-[PASS] Test <length> valid value: \r\n\t -47cm   
-[PASS] Test <length> valid value: \r\n\t -47mm   
-[PASS] Test <length> valid value: \r\n\t -47pt   
-[PASS] Test <length> valid value: \r\n\t -47pc   
-[PASS] Test <length> valid value: \r\n\t -47%   
-[PASS] Test <length> valid value: \r\n\t .1   
-[PASS] Test <length> valid value: \r\n\t .1em   
-[PASS] Test <length> valid value: \r\n\t .1ex   
-[PASS] Test <length> valid value: \r\n\t .1px   
-[PASS] Test <length> valid value: \r\n\t .1in   
-[PASS] Test <length> valid value: \r\n\t .1cm   
-[PASS] Test <length> valid value: \r\n\t .1mm   
-[PASS] Test <length> valid value: \r\n\t .1pt   
-[PASS] Test <length> valid value: \r\n\t .1pc   
-[PASS] Test <length> valid value: \r\n\t .1%   
-[PASS] Test <length> valid value: \r\n\t 0.35   
-[PASS] Test <length> valid value: \r\n\t 0.35em   
-[PASS] Test <length> valid value: \r\n\t 0.35ex   
-[PASS] Test <length> valid value: \r\n\t 0.35px   
-[PASS] Test <length> valid value: \r\n\t 0.35in   
-[PASS] Test <length> valid value: \r\n\t 0.35cm   
-[PASS] Test <length> valid value: \r\n\t 0.35mm   
-[PASS] Test <length> valid value: \r\n\t 0.35pt   
-[PASS] Test <length> valid value: \r\n\t 0.35pc   
-[PASS] Test <length> valid value: \r\n\t 0.35%   
-[PASS] Test <length> valid value: \r\n\t 1e-10   
-[PASS] Test <length> valid value: \r\n\t 1e-10em   
-[PASS] Test <length> valid value: \r\n\t 1e-10ex   
-[PASS] Test <length> valid value: \r\n\t 1e-10px   
-[PASS] Test <length> valid value: \r\n\t 1e-10in   
-[PASS] Test <length> valid value: \r\n\t 1e-10cm   
-[PASS] Test <length> valid value: \r\n\t 1e-10mm   
-[PASS] Test <length> valid value: \r\n\t 1e-10pt   
-[PASS] Test <length> valid value: \r\n\t 1e-10pc   
-[PASS] Test <length> valid value: \r\n\t 1e-10%   
-[PASS] Test <length> valid value: \r\n\t +32   
-[PASS] Test <length> valid value: \r\n\t +32em   
-[PASS] Test <length> valid value: \r\n\t +32ex   
-[PASS] Test <length> valid value: \r\n\t +32px   
-[PASS] Test <length> valid value: \r\n\t +32in   
-[PASS] Test <length> valid value: \r\n\t +32cm   
-[PASS] Test <length> valid value: \r\n\t +32mm   
-[PASS] Test <length> valid value: \r\n\t +32pt   
-[PASS] Test <length> valid value: \r\n\t +32pc   
-[PASS] Test <length> valid value: \r\n\t +32%   
-[PASS] Test <length> valid value: \r\n\t +17E-1   
-[PASS] Test <length> valid value: \r\n\t +17E-1em   
-[PASS] Test <length> valid value: \r\n\t +17E-1ex   
-[PASS] Test <length> valid value: \r\n\t +17E-1px   
-[PASS] Test <length> valid value: \r\n\t +17E-1in   
-[PASS] Test <length> valid value: \r\n\t +17E-1cm   
-[PASS] Test <length> valid value: \r\n\t +17E-1mm   
-[PASS] Test <length> valid value: \r\n\t +17E-1pt   
-[PASS] Test <length> valid value: \r\n\t +17E-1pc   
-[PASS] Test <length> valid value: \r\n\t +17E-1%   
-[PASS] Test <length> valid value: \r\n\t 17e+2   
-[PASS] Test <length> valid value: \r\n\t 17e+2em   
-[PASS] Test <length> valid value: \r\n\t 17e+2ex   
-[PASS] Test <length> valid value: \r\n\t 17e+2px   
-[PASS] Test <length> valid value: \r\n\t 17e+2in   
-[PASS] Test <length> valid value: \r\n\t 17e+2cm   
-[PASS] Test <length> valid value: \r\n\t 17e+2mm   
-[PASS] Test <length> valid value: \r\n\t 17e+2pt   
-[PASS] Test <length> valid value: \r\n\t 17e+2pc   
-[PASS] Test <length> valid value: \r\n\t 17e+2%   
-[PASS] Test <length> valid value: \r\n\t -47\r\n\t 
-[PASS] Test <length> valid value: \r\n\t -47em\r\n\t 
-[PASS] Test <length> valid value: \r\n\t -47ex\r\n\t 
-[PASS] Test <length> valid value: \r\n\t -47px\r\n\t 
-[PASS] Test <length> valid value: \r\n\t -47in\r\n\t 
-[PASS] Test <length> valid value: \r\n\t -47cm\r\n\t 
-[PASS] Test <length> valid value: \r\n\t -47mm\r\n\t 
-[PASS] Test <length> valid value: \r\n\t -47pt\r\n\t 
-[PASS] Test <length> valid value: \r\n\t -47pc\r\n\t 
-[PASS] Test <length> valid value: \r\n\t -47%\r\n\t 
-[PASS] Test <length> valid value: \r\n\t .1\r\n\t 
-[PASS] Test <length> valid value: \r\n\t .1em\r\n\t 
-[PASS] Test <length> valid value: \r\n\t .1ex\r\n\t 
-[PASS] Test <length> valid value: \r\n\t .1px\r\n\t 
-[PASS] Test <length> valid value: \r\n\t .1in\r\n\t 
-[PASS] Test <length> valid value: \r\n\t .1cm\r\n\t 
-[PASS] Test <length> valid value: \r\n\t .1mm\r\n\t 
-[PASS] Test <length> valid value: \r\n\t .1pt\r\n\t 
-[PASS] Test <length> valid value: \r\n\t .1pc\r\n\t 
-[PASS] Test <length> valid value: \r\n\t .1%\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 0.35\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 0.35em\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 0.35ex\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 0.35px\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 0.35in\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 0.35cm\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 0.35mm\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 0.35pt\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 0.35pc\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 0.35%\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 1e-10\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 1e-10em\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 1e-10ex\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 1e-10px\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 1e-10in\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 1e-10cm\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 1e-10mm\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 1e-10pt\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 1e-10pc\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 1e-10%\r\n\t 
-[PASS] Test <length> valid value: \r\n\t +32\r\n\t 
-[PASS] Test <length> valid value: \r\n\t +32em\r\n\t 
-[PASS] Test <length> valid value: \r\n\t +32ex\r\n\t 
-[PASS] Test <length> valid value: \r\n\t +32px\r\n\t 
-[PASS] Test <length> valid value: \r\n\t +32in\r\n\t 
-[PASS] Test <length> valid value: \r\n\t +32cm\r\n\t 
-[PASS] Test <length> valid value: \r\n\t +32mm\r\n\t 
-[PASS] Test <length> valid value: \r\n\t +32pt\r\n\t 
-[PASS] Test <length> valid value: \r\n\t +32pc\r\n\t 
-[PASS] Test <length> valid value: \r\n\t +32%\r\n\t 
-[PASS] Test <length> valid value: \r\n\t +17E-1\r\n\t 
-[PASS] Test <length> valid value: \r\n\t +17E-1em\r\n\t 
-[PASS] Test <length> valid value: \r\n\t +17E-1ex\r\n\t 
-[PASS] Test <length> valid value: \r\n\t +17E-1px\r\n\t 
-[PASS] Test <length> valid value: \r\n\t +17E-1in\r\n\t 
-[PASS] Test <length> valid value: \r\n\t +17E-1cm\r\n\t 
-[PASS] Test <length> valid value: \r\n\t +17E-1mm\r\n\t 
-[PASS] Test <length> valid value: \r\n\t +17E-1pt\r\n\t 
-[PASS] Test <length> valid value: \r\n\t +17E-1pc\r\n\t 
-[PASS] Test <length> valid value: \r\n\t +17E-1%\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 17e+2\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 17e+2em\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 17e+2ex\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 17e+2px\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 17e+2in\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 17e+2cm\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 17e+2mm\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 17e+2pt\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 17e+2pc\r\n\t 
-[PASS] Test <length> valid value: \r\n\t 17e+2%\r\n\t 
-[PASS] Test <length> valid value: \r\n\t -47\f
-[PASS] Test <length> valid value: \r\n\t -47em\f
-[PASS] Test <length> valid value: \r\n\t -47ex\f
-[PASS] Test <length> valid value: \r\n\t -47px\f
-[PASS] Test <length> valid value: \r\n\t -47in\f
-[PASS] Test <length> valid value: \r\n\t -47cm\f
-[PASS] Test <length> valid value: \r\n\t -47mm\f
-[PASS] Test <length> valid value: \r\n\t -47pt\f
-[PASS] Test <length> valid value: \r\n\t -47pc\f
-[PASS] Test <length> valid value: \r\n\t -47%\f
-[PASS] Test <length> valid value: \r\n\t .1\f
-[PASS] Test <length> valid value: \r\n\t .1em\f
-[PASS] Test <length> valid value: \r\n\t .1ex\f
-[PASS] Test <length> valid value: \r\n\t .1px\f
-[PASS] Test <length> valid value: \r\n\t .1in\f
-[PASS] Test <length> valid value: \r\n\t .1cm\f
-[PASS] Test <length> valid value: \r\n\t .1mm\f
-[PASS] Test <length> valid value: \r\n\t .1pt\f
-[PASS] Test <length> valid value: \r\n\t .1pc\f
-[PASS] Test <length> valid value: \r\n\t .1%\f
-[PASS] Test <length> valid value: \r\n\t 0.35\f
-[PASS] Test <length> valid value: \r\n\t 0.35em\f
-[PASS] Test <length> valid value: \r\n\t 0.35ex\f
-[PASS] Test <length> valid value: \r\n\t 0.35px\f
-[PASS] Test <length> valid value: \r\n\t 0.35in\f
-[PASS] Test <length> valid value: \r\n\t 0.35cm\f
-[PASS] Test <length> valid value: \r\n\t 0.35mm\f
-[PASS] Test <length> valid value: \r\n\t 0.35pt\f
-[PASS] Test <length> valid value: \r\n\t 0.35pc\f
-[PASS] Test <length> valid value: \r\n\t 0.35%\f
-[PASS] Test <length> valid value: \r\n\t 1e-10\f
-[PASS] Test <length> valid value: \r\n\t 1e-10em\f
-[PASS] Test <length> valid value: \r\n\t 1e-10ex\f
-[PASS] Test <length> valid value: \r\n\t 1e-10px\f
-[PASS] Test <length> valid value: \r\n\t 1e-10in\f
-[PASS] Test <length> valid value: \r\n\t 1e-10cm\f
-[PASS] Test <length> valid value: \r\n\t 1e-10mm\f
-[PASS] Test <length> valid value: \r\n\t 1e-10pt\f
-[PASS] Test <length> valid value: \r\n\t 1e-10pc\f
-[PASS] Test <length> valid value: \r\n\t 1e-10%\f
-[PASS] Test <length> valid value: \r\n\t +32\f
-[PASS] Test <length> valid value: \r\n\t +32em\f
-[PASS] Test <length> valid value: \r\n\t +32ex\f
-[PASS] Test <length> valid value: \r\n\t +32px\f
-[PASS] Test <length> valid value: \r\n\t +32in\f
-[PASS] Test <length> valid value: \r\n\t +32cm\f
-[PASS] Test <length> valid value: \r\n\t +32mm\f
-[PASS] Test <length> valid value: \r\n\t +32pt\f
-[PASS] Test <length> valid value: \r\n\t +32pc\f
-[PASS] Test <length> valid value: \r\n\t +32%\f
-[PASS] Test <length> valid value: \r\n\t +17E-1\f
-[PASS] Test <length> valid value: \r\n\t +17E-1em\f
-[PASS] Test <length> valid value: \r\n\t +17E-1ex\f
-[PASS] Test <length> valid value: \r\n\t +17E-1px\f
-[PASS] Test <length> valid value: \r\n\t +17E-1in\f
-[PASS] Test <length> valid value: \r\n\t +17E-1cm\f
-[PASS] Test <length> valid value: \r\n\t +17E-1mm\f
-[PASS] Test <length> valid value: \r\n\t +17E-1pt\f
-[PASS] Test <length> valid value: \r\n\t +17E-1pc\f
-[PASS] Test <length> valid value: \r\n\t +17E-1%\f
-[PASS] Test <length> valid value: \r\n\t 17e+2\f
-[PASS] Test <length> valid value: \r\n\t 17e+2em\f
-[PASS] Test <length> valid value: \r\n\t 17e+2ex\f
-[PASS] Test <length> valid value: \r\n\t 17e+2px\f
-[PASS] Test <length> valid value: \r\n\t 17e+2in\f
-[PASS] Test <length> valid value: \r\n\t 17e+2cm\f
-[PASS] Test <length> valid value: \r\n\t 17e+2mm\f
-[PASS] Test <length> valid value: \r\n\t 17e+2pt\f
-[PASS] Test <length> valid value: \r\n\t 17e+2pc\f
-[PASS] Test <length> valid value: \r\n\t 17e+2%\f
-[PASS] Test <length> WS invalid value: -47\r\n\t em
-[PASS] Test <length> WS invalid value: .1\r\n\t em
-[PASS] Test <length> WS invalid value: 0.35\r\n\t em
-[PASS] Test <length> WS invalid value: 1e-10\r\n\t em
-[PASS] Test <length> WS invalid value: +32\r\n\t em
-[PASS] Test <length> WS invalid value: +17E-1\r\n\t em
-[PASS] Test <length> WS invalid value: 17e+2\r\n\t em
-[PASS] Test <length> WS invalid value: -47\r\n\t ex
-[PASS] Test <length> WS invalid value: .1\r\n\t ex
-[PASS] Test <length> WS invalid value: 0.35\r\n\t ex
-[PASS] Test <length> WS invalid value: 1e-10\r\n\t ex
-[PASS] Test <length> WS invalid value: +32\r\n\t ex
-[PASS] Test <length> WS invalid value: +17E-1\r\n\t ex
-[PASS] Test <length> WS invalid value: 17e+2\r\n\t ex
-[PASS] Test <length> WS invalid value: -47\r\n\t px
-[PASS] Test <length> WS invalid value: .1\r\n\t px
-[PASS] Test <length> WS invalid value: 0.35\r\n\t px
-[PASS] Test <length> WS invalid value: 1e-10\r\n\t px
-[PASS] Test <length> WS invalid value: +32\r\n\t px
-[PASS] Test <length> WS invalid value: +17E-1\r\n\t px
-[PASS] Test <length> WS invalid value: 17e+2\r\n\t px
-[PASS] Test <length> WS invalid value: -47\r\n\t in
-[PASS] Test <length> WS invalid value: .1\r\n\t in
-[PASS] Test <length> WS invalid value: 0.35\r\n\t in
-[PASS] Test <length> WS invalid value: 1e-10\r\n\t in
-[PASS] Test <length> WS invalid value: +32\r\n\t in
-[PASS] Test <length> WS invalid value: +17E-1\r\n\t in
-[PASS] Test <length> WS invalid value: 17e+2\r\n\t in
-[PASS] Test <length> WS invalid value: -47\r\n\t cm
-[PASS] Test <length> WS invalid value: .1\r\n\t cm
-[PASS] Test <length> WS invalid value: 0.35\r\n\t cm
-[PASS] Test <length> WS invalid value: 1e-10\r\n\t cm
-[PASS] Test <length> WS invalid value: +32\r\n\t cm
-[PASS] Test <length> WS invalid value: +17E-1\r\n\t cm
-[PASS] Test <length> WS invalid value: 17e+2\r\n\t cm
-[PASS] Test <length> WS invalid value: -47\r\n\t mm
-[PASS] Test <length> WS invalid value: .1\r\n\t mm
-[PASS] Test <length> WS invalid value: 0.35\r\n\t mm
-[PASS] Test <length> WS invalid value: 1e-10\r\n\t mm
-[PASS] Test <length> WS invalid value: +32\r\n\t mm
-[PASS] Test <length> WS invalid value: +17E-1\r\n\t mm
-[PASS] Test <length> WS invalid value: 17e+2\r\n\t mm
-[PASS] Test <length> WS invalid value: -47\r\n\t pt
-[PASS] Test <length> WS invalid value: .1\r\n\t pt
-[PASS] Test <length> WS invalid value: 0.35\r\n\t pt
-[PASS] Test <length> WS invalid value: 1e-10\r\n\t pt
-[PASS] Test <length> WS invalid value: +32\r\n\t pt
-[PASS] Test <length> WS invalid value: +17E-1\r\n\t pt
-[PASS] Test <length> WS invalid value: 17e+2\r\n\t pt
-[PASS] Test <length> WS invalid value: -47\r\n\t pc
-[PASS] Test <length> WS invalid value: .1\r\n\t pc
-[PASS] Test <length> WS invalid value: 0.35\r\n\t pc
-[PASS] Test <length> WS invalid value: 1e-10\r\n\t pc
-[PASS] Test <length> WS invalid value: +32\r\n\t pc
-[PASS] Test <length> WS invalid value: +17E-1\r\n\t pc
-[PASS] Test <length> WS invalid value: 17e+2\r\n\t pc
-[PASS] Test <length> WS invalid value: -47\r\n\t %
-[PASS] Test <length> WS invalid value: .1\r\n\t %
-[PASS] Test <length> WS invalid value: 0.35\r\n\t %
-[PASS] Test <length> WS invalid value: 1e-10\r\n\t %
-[PASS] Test <length> WS invalid value: +32\r\n\t %
-[PASS] Test <length> WS invalid value: +17E-1\r\n\t %
-[PASS] Test <length> WS invalid value: 17e+2\r\n\t %
-[PASS] Test <length> trailing garbage, value: \r\n\t -47a
-[PASS] Test <length> trailing garbage, value: \r\n\t .1a
-[PASS] Test <length> trailing garbage, value: \r\n\t 0.35a
-[PASS] Test <length> trailing garbage, value: \r\n\t 1e-10a
-[PASS] Test <length> trailing garbage, value: \r\n\t +32a
-[PASS] Test <length> trailing garbage, value: \r\n\t +17E-1a
-[PASS] Test <length> trailing garbage, value: \r\n\t 17e+2a
-[PASS] Test <length> trailing garbage, value: \r\n\t -47e
-[PASS] Test <length> trailing garbage, value: \r\n\t .1e
-[PASS] Test <length> trailing garbage, value: \r\n\t 0.35e
-[PASS] Test <length> trailing garbage, value: \r\n\t 1e-10e
-[PASS] Test <length> trailing garbage, value: \r\n\t +32e
-[PASS] Test <length> trailing garbage, value: \r\n\t +17E-1e
-[PASS] Test <length> trailing garbage, value: \r\n\t 17e+2e
-[PASS] Test <length> trailing garbage, value: \r\n\t -47foo
-[PASS] Test <length> trailing garbage, value: \r\n\t .1foo
-[PASS] Test <length> trailing garbage, value: \r\n\t 0.35foo
-[PASS] Test <length> trailing garbage, value: \r\n\t 1e-10foo
-[PASS] Test <length> trailing garbage, value: \r\n\t +32foo
-[PASS] Test <length> trailing garbage, value: \r\n\t +17E-1foo
-[PASS] Test <length> trailing garbage, value: \r\n\t 17e+2foo
-[PASS] Test <length> trailing garbage, value: \r\n\t -47)90
-[PASS] Test <length> trailing garbage, value: \r\n\t .1)90
-[PASS] Test <length> trailing garbage, value: \r\n\t 0.35)90
-[PASS] Test <length> trailing garbage, value: \r\n\t 1e-10)90
-[PASS] Test <length> trailing garbage, value: \r\n\t +32)90
-[PASS] Test <length> trailing garbage, value: \r\n\t +17E-1)90
-[PASS] Test <length> trailing garbage, value: \r\n\t 17e+2)90
-[PASS] Test <length> valid value: \f-47
-[PASS] Test <length> valid value: \f-47em
-[PASS] Test <length> valid value: \f-47ex
-[PASS] Test <length> valid value: \f-47px
-[PASS] Test <length> valid value: \f-47in
-[PASS] Test <length> valid value: \f-47cm
-[PASS] Test <length> valid value: \f-47mm
-[PASS] Test <length> valid value: \f-47pt
-[PASS] Test <length> valid value: \f-47pc
-[PASS] Test <length> valid value: \f-47%
-[PASS] Test <length> valid value: \f.1
-[PASS] Test <length> valid value: \f.1em
-[PASS] Test <length> valid value: \f.1ex
-[PASS] Test <length> valid value: \f.1px
-[PASS] Test <length> valid value: \f.1in
-[PASS] Test <length> valid value: \f.1cm
-[PASS] Test <length> valid value: \f.1mm
-[PASS] Test <length> valid value: \f.1pt
-[PASS] Test <length> valid value: \f.1pc
-[PASS] Test <length> valid value: \f.1%
-[PASS] Test <length> valid value: \f0.35
-[PASS] Test <length> valid value: \f0.35em
-[PASS] Test <length> valid value: \f0.35ex
-[PASS] Test <length> valid value: \f0.35px
-[PASS] Test <length> valid value: \f0.35in
-[PASS] Test <length> valid value: \f0.35cm
-[PASS] Test <length> valid value: \f0.35mm
-[PASS] Test <length> valid value: \f0.35pt
-[PASS] Test <length> valid value: \f0.35pc
-[PASS] Test <length> valid value: \f0.35%
-[PASS] Test <length> valid value: \f1e-10
-[PASS] Test <length> valid value: \f1e-10em
-[PASS] Test <length> valid value: \f1e-10ex
-[PASS] Test <length> valid value: \f1e-10px
-[PASS] Test <length> valid value: \f1e-10in
-[PASS] Test <length> valid value: \f1e-10cm
-[PASS] Test <length> valid value: \f1e-10mm
-[PASS] Test <length> valid value: \f1e-10pt
-[PASS] Test <length> valid value: \f1e-10pc
-[PASS] Test <length> valid value: \f1e-10%
-[PASS] Test <length> valid value: \f+32
-[PASS] Test <length> valid value: \f+32em
-[PASS] Test <length> valid value: \f+32ex
-[PASS] Test <length> valid value: \f+32px
-[PASS] Test <length> valid value: \f+32in
-[PASS] Test <length> valid value: \f+32cm
-[PASS] Test <length> valid value: \f+32mm
-[PASS] Test <length> valid value: \f+32pt
-[PASS] Test <length> valid value: \f+32pc
-[PASS] Test <length> valid value: \f+32%
-[PASS] Test <length> valid value: \f+17E-1
-[PASS] Test <length> valid value: \f+17E-1em
-[PASS] Test <length> valid value: \f+17E-1ex
-[PASS] Test <length> valid value: \f+17E-1px
-[PASS] Test <length> valid value: \f+17E-1in
-[PASS] Test <length> valid value: \f+17E-1cm
-[PASS] Test <length> valid value: \f+17E-1mm
-[PASS] Test <length> valid value: \f+17E-1pt
-[PASS] Test <length> valid value: \f+17E-1pc
-[PASS] Test <length> valid value: \f+17E-1%
-[PASS] Test <length> valid value: \f17e+2
-[PASS] Test <length> valid value: \f17e+2em
-[PASS] Test <length> valid value: \f17e+2ex
-[PASS] Test <length> valid value: \f17e+2px
-[PASS] Test <length> valid value: \f17e+2in
-[PASS] Test <length> valid value: \f17e+2cm
-[PASS] Test <length> valid value: \f17e+2mm
-[PASS] Test <length> valid value: \f17e+2pt
-[PASS] Test <length> valid value: \f17e+2pc
-[PASS] Test <length> valid value: \f17e+2%
-[PASS] Test <length> valid value: \f-47 
-[PASS] Test <length> valid value: \f-47em 
-[PASS] Test <length> valid value: \f-47ex 
-[PASS] Test <length> valid value: \f-47px 
-[PASS] Test <length> valid value: \f-47in 
-[PASS] Test <length> valid value: \f-47cm 
-[PASS] Test <length> valid value: \f-47mm 
-[PASS] Test <length> valid value: \f-47pt 
-[PASS] Test <length> valid value: \f-47pc 
-[PASS] Test <length> valid value: \f-47% 
-[PASS] Test <length> valid value: \f.1 
-[PASS] Test <length> valid value: \f.1em 
-[PASS] Test <length> valid value: \f.1ex 
-[PASS] Test <length> valid value: \f.1px 
-[PASS] Test <length> valid value: \f.1in 
-[PASS] Test <length> valid value: \f.1cm 
-[PASS] Test <length> valid value: \f.1mm 
-[PASS] Test <length> valid value: \f.1pt 
-[PASS] Test <length> valid value: \f.1pc 
-[PASS] Test <length> valid value: \f.1% 
-[PASS] Test <length> valid value: \f0.35 
-[PASS] Test <length> valid value: \f0.35em 
-[PASS] Test <length> valid value: \f0.35ex 
-[PASS] Test <length> valid value: \f0.35px 
-[PASS] Test <length> valid value: \f0.35in 
-[PASS] Test <length> valid value: \f0.35cm 
-[PASS] Test <length> valid value: \f0.35mm 
-[PASS] Test <length> valid value: \f0.35pt 
-[PASS] Test <length> valid value: \f0.35pc 
-[PASS] Test <length> valid value: \f0.35% 
-[PASS] Test <length> valid value: \f1e-10 
-[PASS] Test <length> valid value: \f1e-10em 
-[PASS] Test <length> valid value: \f1e-10ex 
-[PASS] Test <length> valid value: \f1e-10px 
-[PASS] Test <length> valid value: \f1e-10in 
-[PASS] Test <length> valid value: \f1e-10cm 
-[PASS] Test <length> valid value: \f1e-10mm 
-[PASS] Test <length> valid value: \f1e-10pt 
-[PASS] Test <length> valid value: \f1e-10pc 
-[PASS] Test <length> valid value: \f1e-10% 
-[PASS] Test <length> valid value: \f+32 
-[PASS] Test <length> valid value: \f+32em 
-[PASS] Test <length> valid value: \f+32ex 
-[PASS] Test <length> valid value: \f+32px 
-[PASS] Test <length> valid value: \f+32in 
-[PASS] Test <length> valid value: \f+32cm 
-[PASS] Test <length> valid value: \f+32mm 
-[PASS] Test <length> valid value: \f+32pt 
-[PASS] Test <length> valid value: \f+32pc 
-[PASS] Test <length> valid value: \f+32% 
-[PASS] Test <length> valid value: \f+17E-1 
-[PASS] Test <length> valid value: \f+17E-1em 
-[PASS] Test <length> valid value: \f+17E-1ex 
-[PASS] Test <length> valid value: \f+17E-1px 
-[PASS] Test <length> valid value: \f+17E-1in 
-[PASS] Test <length> valid value: \f+17E-1cm 
-[PASS] Test <length> valid value: \f+17E-1mm 
-[PASS] Test <length> valid value: \f+17E-1pt 
-[PASS] Test <length> valid value: \f+17E-1pc 
-[PASS] Test <length> valid value: \f+17E-1% 
-[PASS] Test <length> valid value: \f17e+2 
-[PASS] Test <length> valid value: \f17e+2em 
-[PASS] Test <length> valid value: \f17e+2ex 
-[PASS] Test <length> valid value: \f17e+2px 
-[PASS] Test <length> valid value: \f17e+2in 
-[PASS] Test <length> valid value: \f17e+2cm 
-[PASS] Test <length> valid value: \f17e+2mm 
-[PASS] Test <length> valid value: \f17e+2pt 
-[PASS] Test <length> valid value: \f17e+2pc 
-[PASS] Test <length> valid value: \f17e+2% 
-[PASS] Test <length> valid value: \f-47   
-[PASS] Test <length> valid value: \f-47em   
-[PASS] Test <length> valid value: \f-47ex   
-[PASS] Test <length> valid value: \f-47px   
-[PASS] Test <length> valid value: \f-47in   
-[PASS] Test <length> valid value: \f-47cm   
-[PASS] Test <length> valid value: \f-47mm   
-[PASS] Test <length> valid value: \f-47pt   
-[PASS] Test <length> valid value: \f-47pc   
-[PASS] Test <length> valid value: \f-47%   
-[PASS] Test <length> valid value: \f.1   
-[PASS] Test <length> valid value: \f.1em   
-[PASS] Test <length> valid value: \f.1ex   
-[PASS] Test <length> valid value: \f.1px   
-[PASS] Test <length> valid value: \f.1in   
-[PASS] Test <length> valid value: \f.1cm   
-[PASS] Test <length> valid value: \f.1mm   
-[PASS] Test <length> valid value: \f.1pt   
-[PASS] Test <length> valid value: \f.1pc   
-[PASS] Test <length> valid value: \f.1%   
-[PASS] Test <length> valid value: \f0.35   
-[PASS] Test <length> valid value: \f0.35em   
-[PASS] Test <length> valid value: \f0.35ex   
-[PASS] Test <length> valid value: \f0.35px   
-[PASS] Test <length> valid value: \f0.35in   
-[PASS] Test <length> valid value: \f0.35cm   
-[PASS] Test <length> valid value: \f0.35mm   
-[PASS] Test <length> valid value: \f0.35pt   
-[PASS] Test <length> valid value: \f0.35pc   
-[PASS] Test <length> valid value: \f0.35%   
-[PASS] Test <length> valid value: \f1e-10   
-[PASS] Test <length> valid value: \f1e-10em   
-[PASS] Test <length> valid value: \f1e-10ex   
-[PASS] Test <length> valid value: \f1e-10px   
-[PASS] Test <length> valid value: \f1e-10in   
-[PASS] Test <length> valid value: \f1e-10cm   
-[PASS] Test <length> valid value: \f1e-10mm   
-[PASS] Test <length> valid value: \f1e-10pt   
-[PASS] Test <length> valid value: \f1e-10pc   
-[PASS] Test <length> valid value: \f1e-10%   
-[PASS] Test <length> valid value: \f+32   
-[PASS] Test <length> valid value: \f+32em   
-[PASS] Test <length> valid value: \f+32ex   
-[PASS] Test <length> valid value: \f+32px   
-[PASS] Test <length> valid value: \f+32in   
-[PASS] Test <length> valid value: \f+32cm   
-[PASS] Test <length> valid value: \f+32mm   
-[PASS] Test <length> valid value: \f+32pt   
-[PASS] Test <length> valid value: \f+32pc   
-[PASS] Test <length> valid value: \f+32%   
-[PASS] Test <length> valid value: \f+17E-1   
-[PASS] Test <length> valid value: \f+17E-1em   
-[PASS] Test <length> valid value: \f+17E-1ex   
-[PASS] Test <length> valid value: \f+17E-1px   
-[PASS] Test <length> valid value: \f+17E-1in   
-[PASS] Test <length> valid value: \f+17E-1cm   
-[PASS] Test <length> valid value: \f+17E-1mm   
-[PASS] Test <length> valid value: \f+17E-1pt   
-[PASS] Test <length> valid value: \f+17E-1pc   
-[PASS] Test <length> valid value: \f+17E-1%   
-[PASS] Test <length> valid value: \f17e+2   
-[PASS] Test <length> valid value: \f17e+2em   
-[PASS] Test <length> valid value: \f17e+2ex   
-[PASS] Test <length> valid value: \f17e+2px   
-[PASS] Test <length> valid value: \f17e+2in   
-[PASS] Test <length> valid value: \f17e+2cm   
-[PASS] Test <length> valid value: \f17e+2mm   
-[PASS] Test <length> valid value: \f17e+2pt   
-[PASS] Test <length> valid value: \f17e+2pc   
-[PASS] Test <length> valid value: \f17e+2%   
-[PASS] Test <length> valid value: \f-47\r\n\t 
-[PASS] Test <length> valid value: \f-47em\r\n\t 
-[PASS] Test <length> valid value: \f-47ex\r\n\t 
-[PASS] Test <length> valid value: \f-47px\r\n\t 
-[PASS] Test <length> valid value: \f-47in\r\n\t 
-[PASS] Test <length> valid value: \f-47cm\r\n\t 
-[PASS] Test <length> valid value: \f-47mm\r\n\t 
-[PASS] Test <length> valid value: \f-47pt\r\n\t 
-[PASS] Test <length> valid value: \f-47pc\r\n\t 
-[PASS] Test <length> valid value: \f-47%\r\n\t 
-[PASS] Test <length> valid value: \f.1\r\n\t 
-[PASS] Test <length> valid value: \f.1em\r\n\t 
-[PASS] Test <length> valid value: \f.1ex\r\n\t 
-[PASS] Test <length> valid value: \f.1px\r\n\t 
-[PASS] Test <length> valid value: \f.1in\r\n\t 
-[PASS] Test <length> valid value: \f.1cm\r\n\t 
-[PASS] Test <length> valid value: \f.1mm\r\n\t 
-[PASS] Test <length> valid value: \f.1pt\r\n\t 
-[PASS] Test <length> valid value: \f.1pc\r\n\t 
-[PASS] Test <length> valid value: \f.1%\r\n\t 
-[PASS] Test <length> valid value: \f0.35\r\n\t 
-[PASS] Test <length> valid value: \f0.35em\r\n\t 
-[PASS] Test <length> valid value: \f0.35ex\r\n\t 
-[PASS] Test <length> valid value: \f0.35px\r\n\t 
-[PASS] Test <length> valid value: \f0.35in\r\n\t 
-[PASS] Test <length> valid value: \f0.35cm\r\n\t 
-[PASS] Test <length> valid value: \f0.35mm\r\n\t 
-[PASS] Test <length> valid value: \f0.35pt\r\n\t 
-[PASS] Test <length> valid value: \f0.35pc\r\n\t 
-[PASS] Test <length> valid value: \f0.35%\r\n\t 
-[PASS] Test <length> valid value: \f1e-10\r\n\t 
-[PASS] Test <length> valid value: \f1e-10em\r\n\t 
-[PASS] Test <length> valid value: \f1e-10ex\r\n\t 
-[PASS] Test <length> valid value: \f1e-10px\r\n\t 
-[PASS] Test <length> valid value: \f1e-10in\r\n\t 
-[PASS] Test <length> valid value: \f1e-10cm\r\n\t 
-[PASS] Test <length> valid value: \f1e-10mm\r\n\t 
-[PASS] Test <length> valid value: \f1e-10pt\r\n\t 
-[PASS] Test <length> valid value: \f1e-10pc\r\n\t 
-[PASS] Test <length> valid value: \f1e-10%\r\n\t 
-[PASS] Test <length> valid value: \f+32\r\n\t 
-[PASS] Test <length> valid value: \f+32em\r\n\t 
-[PASS] Test <length> valid value: \f+32ex\r\n\t 
-[PASS] Test <length> valid value: \f+32px\r\n\t 
-[PASS] Test <length> valid value: \f+32in\r\n\t 
-[PASS] Test <length> valid value: \f+32cm\r\n\t 
-[PASS] Test <length> valid value: \f+32mm\r\n\t 
-[PASS] Test <length> valid value: \f+32pt\r\n\t 
-[PASS] Test <length> valid value: \f+32pc\r\n\t 
-[PASS] Test <length> valid value: \f+32%\r\n\t 
-[PASS] Test <length> valid value: \f+17E-1\r\n\t 
-[PASS] Test <length> valid value: \f+17E-1em\r\n\t 
-[PASS] Test <length> valid value: \f+17E-1ex\r\n\t 
-[PASS] Test <length> valid value: \f+17E-1px\r\n\t 
-[PASS] Test <length> valid value: \f+17E-1in\r\n\t 
-[PASS] Test <length> valid value: \f+17E-1cm\r\n\t 
-[PASS] Test <length> valid value: \f+17E-1mm\r\n\t 
-[PASS] Test <length> valid value: \f+17E-1pt\r\n\t 
-[PASS] Test <length> valid value: \f+17E-1pc\r\n\t 
-[PASS] Test <length> valid value: \f+17E-1%\r\n\t 
-[PASS] Test <length> valid value: \f17e+2\r\n\t 
-[PASS] Test <length> valid value: \f17e+2em\r\n\t 
-[PASS] Test <length> valid value: \f17e+2ex\r\n\t 
-[PASS] Test <length> valid value: \f17e+2px\r\n\t 
-[PASS] Test <length> valid value: \f17e+2in\r\n\t 
-[PASS] Test <length> valid value: \f17e+2cm\r\n\t 
-[PASS] Test <length> valid value: \f17e+2mm\r\n\t 
-[PASS] Test <length> valid value: \f17e+2pt\r\n\t 
-[PASS] Test <length> valid value: \f17e+2pc\r\n\t 
-[PASS] Test <length> valid value: \f17e+2%\r\n\t 
-[PASS] Test <length> valid value: \f-47\f
-[PASS] Test <length> valid value: \f-47em\f
-[PASS] Test <length> valid value: \f-47ex\f
-[PASS] Test <length> valid value: \f-47px\f
-[PASS] Test <length> valid value: \f-47in\f
-[PASS] Test <length> valid value: \f-47cm\f
-[PASS] Test <length> valid value: \f-47mm\f
-[PASS] Test <length> valid value: \f-47pt\f
-[PASS] Test <length> valid value: \f-47pc\f
-[PASS] Test <length> valid value: \f-47%\f
-[PASS] Test <length> valid value: \f.1\f
-[PASS] Test <length> valid value: \f.1em\f
-[PASS] Test <length> valid value: \f.1ex\f
-[PASS] Test <length> valid value: \f.1px\f
-[PASS] Test <length> valid value: \f.1in\f
-[PASS] Test <length> valid value: \f.1cm\f
-[PASS] Test <length> valid value: \f.1mm\f
-[PASS] Test <length> valid value: \f.1pt\f
-[PASS] Test <length> valid value: \f.1pc\f
-[PASS] Test <length> valid value: \f.1%\f
-[PASS] Test <length> valid value: \f0.35\f
-[PASS] Test <length> valid value: \f0.35em\f
-[PASS] Test <length> valid value: \f0.35ex\f
-[PASS] Test <length> valid value: \f0.35px\f
-[PASS] Test <length> valid value: \f0.35in\f
-[PASS] Test <length> valid value: \f0.35cm\f
-[PASS] Test <length> valid value: \f0.35mm\f
-[PASS] Test <length> valid value: \f0.35pt\f
-[PASS] Test <length> valid value: \f0.35pc\f
-[PASS] Test <length> valid value: \f0.35%\f
-[PASS] Test <length> valid value: \f1e-10\f
-[PASS] Test <length> valid value: \f1e-10em\f
-[PASS] Test <length> valid value: \f1e-10ex\f
-[PASS] Test <length> valid value: \f1e-10px\f
-[PASS] Test <length> valid value: \f1e-10in\f
-[PASS] Test <length> valid value: \f1e-10cm\f
-[PASS] Test <length> valid value: \f1e-10mm\f
-[PASS] Test <length> valid value: \f1e-10pt\f
-[PASS] Test <length> valid value: \f1e-10pc\f
-[PASS] Test <length> valid value: \f1e-10%\f
-[PASS] Test <length> valid value: \f+32\f
-[PASS] Test <length> valid value: \f+32em\f
-[PASS] Test <length> valid value: \f+32ex\f
-[PASS] Test <length> valid value: \f+32px\f
-[PASS] Test <length> valid value: \f+32in\f
-[PASS] Test <length> valid value: \f+32cm\f
-[PASS] Test <length> valid value: \f+32mm\f
-[PASS] Test <length> valid value: \f+32pt\f
-[PASS] Test <length> valid value: \f+32pc\f
-[PASS] Test <length> valid value: \f+32%\f
-[PASS] Test <length> valid value: \f+17E-1\f
-[PASS] Test <length> valid value: \f+17E-1em\f
-[PASS] Test <length> valid value: \f+17E-1ex\f
-[PASS] Test <length> valid value: \f+17E-1px\f
-[PASS] Test <length> valid value: \f+17E-1in\f
-[PASS] Test <length> valid value: \f+17E-1cm\f
-[PASS] Test <length> valid value: \f+17E-1mm\f
-[PASS] Test <length> valid value: \f+17E-1pt\f
-[PASS] Test <length> valid value: \f+17E-1pc\f
-[PASS] Test <length> valid value: \f+17E-1%\f
-[PASS] Test <length> valid value: \f17e+2\f
-[PASS] Test <length> valid value: \f17e+2em\f
-[PASS] Test <length> valid value: \f17e+2ex\f
-[PASS] Test <length> valid value: \f17e+2px\f
-[PASS] Test <length> valid value: \f17e+2in\f
-[PASS] Test <length> valid value: \f17e+2cm\f
-[PASS] Test <length> valid value: \f17e+2mm\f
-[PASS] Test <length> valid value: \f17e+2pt\f
-[PASS] Test <length> valid value: \f17e+2pc\f
-[PASS] Test <length> valid value: \f17e+2%\f
-[PASS] Test <length> WS invalid value: -47\fem
-[PASS] Test <length> WS invalid value: .1\fem
-[PASS] Test <length> WS invalid value: 0.35\fem
-[PASS] Test <length> WS invalid value: 1e-10\fem
-[PASS] Test <length> WS invalid value: +32\fem
-[PASS] Test <length> WS invalid value: +17E-1\fem
-[PASS] Test <length> WS invalid value: 17e+2\fem
-[PASS] Test <length> WS invalid value: -47\fex
-[PASS] Test <length> WS invalid value: .1\fex
-[PASS] Test <length> WS invalid value: 0.35\fex
-[PASS] Test <length> WS invalid value: 1e-10\fex
-[PASS] Test <length> WS invalid value: +32\fex
-[PASS] Test <length> WS invalid value: +17E-1\fex
-[PASS] Test <length> WS invalid value: 17e+2\fex
-[PASS] Test <length> WS invalid value: -47\fpx
-[PASS] Test <length> WS invalid value: .1\fpx
-[PASS] Test <length> WS invalid value: 0.35\fpx
-[PASS] Test <length> WS invalid value: 1e-10\fpx
-[PASS] Test <length> WS invalid value: +32\fpx
-[PASS] Test <length> WS invalid value: +17E-1\fpx
-[PASS] Test <length> WS invalid value: 17e+2\fpx
-[PASS] Test <length> WS invalid value: -47\fin
-[PASS] Test <length> WS invalid value: .1\fin
-[PASS] Test <length> WS invalid value: 0.35\fin
-[PASS] Test <length> WS invalid value: 1e-10\fin
-[PASS] Test <length> WS invalid value: +32\fin
-[PASS] Test <length> WS invalid value: +17E-1\fin
-[PASS] Test <length> WS invalid value: 17e+2\fin
-[PASS] Test <length> WS invalid value: -47\fcm
-[PASS] Test <length> WS invalid value: .1\fcm
-[PASS] Test <length> WS invalid value: 0.35\fcm
-[PASS] Test <length> WS invalid value: 1e-10\fcm
-[PASS] Test <length> WS invalid value: +32\fcm
-[PASS] Test <length> WS invalid value: +17E-1\fcm
-[PASS] Test <length> WS invalid value: 17e+2\fcm
-[PASS] Test <length> WS invalid value: -47\fmm
-[PASS] Test <length> WS invalid value: .1\fmm
-[PASS] Test <length> WS invalid value: 0.35\fmm
-[PASS] Test <length> WS invalid value: 1e-10\fmm
-[PASS] Test <length> WS invalid value: +32\fmm
-[PASS] Test <length> WS invalid value: +17E-1\fmm
-[PASS] Test <length> WS invalid value: 17e+2\fmm
-[PASS] Test <length> WS invalid value: -47\fpt
-[PASS] Test <length> WS invalid value: .1\fpt
-[PASS] Test <length> WS invalid value: 0.35\fpt
-[PASS] Test <length> WS invalid value: 1e-10\fpt
-[PASS] Test <length> WS invalid value: +32\fpt
-[PASS] Test <length> WS invalid value: +17E-1\fpt
-[PASS] Test <length> WS invalid value: 17e+2\fpt
-[PASS] Test <length> WS invalid value: -47\fpc
-[PASS] Test <length> WS invalid value: .1\fpc
-[PASS] Test <length> WS invalid value: 0.35\fpc
-[PASS] Test <length> WS invalid value: 1e-10\fpc
-[PASS] Test <length> WS invalid value: +32\fpc
-[PASS] Test <length> WS invalid value: +17E-1\fpc
-[PASS] Test <length> WS invalid value: 17e+2\fpc
-[PASS] Test <length> WS invalid value: -47\f%
-[PASS] Test <length> WS invalid value: .1\f%
-[PASS] Test <length> WS invalid value: 0.35\f%
-[PASS] Test <length> WS invalid value: 1e-10\f%
-[PASS] Test <length> WS invalid value: +32\f%
-[PASS] Test <length> WS invalid value: +17E-1\f%
-[PASS] Test <length> WS invalid value: 17e+2\f%
-[PASS] Test <length> trailing garbage, value: \f-47a
-[PASS] Test <length> trailing garbage, value: \f.1a
-[PASS] Test <length> trailing garbage, value: \f0.35a
-[PASS] Test <length> trailing garbage, value: \f1e-10a
-[PASS] Test <length> trailing garbage, value: \f+32a
-[PASS] Test <length> trailing garbage, value: \f+17E-1a
-[PASS] Test <length> trailing garbage, value: \f17e+2a
-[PASS] Test <length> trailing garbage, value: \f-47e
-[PASS] Test <length> trailing garbage, value: \f.1e
-[PASS] Test <length> trailing garbage, value: \f0.35e
-[PASS] Test <length> trailing garbage, value: \f1e-10e
-[PASS] Test <length> trailing garbage, value: \f+32e
-[PASS] Test <length> trailing garbage, value: \f+17E-1e
-[PASS] Test <length> trailing garbage, value: \f17e+2e
-[PASS] Test <length> trailing garbage, value: \f-47foo
-[PASS] Test <length> trailing garbage, value: \f.1foo
-[PASS] Test <length> trailing garbage, value: \f0.35foo
-[PASS] Test <length> trailing garbage, value: \f1e-10foo
-[PASS] Test <length> trailing garbage, value: \f+32foo
-[PASS] Test <length> trailing garbage, value: \f+17E-1foo
-[PASS] Test <length> trailing garbage, value: \f17e+2foo
-[PASS] Test <length> trailing garbage, value: \f-47)90
-[PASS] Test <length> trailing garbage, value: \f.1)90
-[PASS] Test <length> trailing garbage, value: \f0.35)90
-[PASS] Test <length> trailing garbage, value: \f1e-10)90
-[PASS] Test <length> trailing garbage, value: \f+32)90
-[PASS] Test <length> trailing garbage, value: \f+17E-1)90
-[PASS] Test <length> trailing garbage, value: \f17e+2)90
+[PASS] Test <length> valid value: \\r\\n\\t -47
+[PASS] Test <length> valid value: \\r\\n\\t -47em
+[PASS] Test <length> valid value: \\r\\n\\t -47ex
+[PASS] Test <length> valid value: \\r\\n\\t -47px
+[PASS] Test <length> valid value: \\r\\n\\t -47in
+[PASS] Test <length> valid value: \\r\\n\\t -47cm
+[PASS] Test <length> valid value: \\r\\n\\t -47mm
+[PASS] Test <length> valid value: \\r\\n\\t -47pt
+[PASS] Test <length> valid value: \\r\\n\\t -47pc
+[PASS] Test <length> valid value: \\r\\n\\t -47%
+[PASS] Test <length> valid value: \\r\\n\\t .1
+[PASS] Test <length> valid value: \\r\\n\\t .1em
+[PASS] Test <length> valid value: \\r\\n\\t .1ex
+[PASS] Test <length> valid value: \\r\\n\\t .1px
+[PASS] Test <length> valid value: \\r\\n\\t .1in
+[PASS] Test <length> valid value: \\r\\n\\t .1cm
+[PASS] Test <length> valid value: \\r\\n\\t .1mm
+[PASS] Test <length> valid value: \\r\\n\\t .1pt
+[PASS] Test <length> valid value: \\r\\n\\t .1pc
+[PASS] Test <length> valid value: \\r\\n\\t .1%
+[PASS] Test <length> valid value: \\r\\n\\t 0.35
+[PASS] Test <length> valid value: \\r\\n\\t 0.35em
+[PASS] Test <length> valid value: \\r\\n\\t 0.35ex
+[PASS] Test <length> valid value: \\r\\n\\t 0.35px
+[PASS] Test <length> valid value: \\r\\n\\t 0.35in
+[PASS] Test <length> valid value: \\r\\n\\t 0.35cm
+[PASS] Test <length> valid value: \\r\\n\\t 0.35mm
+[PASS] Test <length> valid value: \\r\\n\\t 0.35pt
+[PASS] Test <length> valid value: \\r\\n\\t 0.35pc
+[PASS] Test <length> valid value: \\r\\n\\t 0.35%
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10em
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10ex
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10px
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10in
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10cm
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10mm
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10pt
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10pc
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10%
+[PASS] Test <length> valid value: \\r\\n\\t +32
+[PASS] Test <length> valid value: \\r\\n\\t +32em
+[PASS] Test <length> valid value: \\r\\n\\t +32ex
+[PASS] Test <length> valid value: \\r\\n\\t +32px
+[PASS] Test <length> valid value: \\r\\n\\t +32in
+[PASS] Test <length> valid value: \\r\\n\\t +32cm
+[PASS] Test <length> valid value: \\r\\n\\t +32mm
+[PASS] Test <length> valid value: \\r\\n\\t +32pt
+[PASS] Test <length> valid value: \\r\\n\\t +32pc
+[PASS] Test <length> valid value: \\r\\n\\t +32%
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1em
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1ex
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1px
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1in
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1cm
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1mm
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1pt
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1pc
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1%
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2em
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2ex
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2px
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2in
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2cm
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2mm
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2pt
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2pc
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2%
+[PASS] Test <length> valid value: \\r\\n\\t -47 
+[PASS] Test <length> valid value: \\r\\n\\t -47em 
+[PASS] Test <length> valid value: \\r\\n\\t -47ex 
+[PASS] Test <length> valid value: \\r\\n\\t -47px 
+[PASS] Test <length> valid value: \\r\\n\\t -47in 
+[PASS] Test <length> valid value: \\r\\n\\t -47cm 
+[PASS] Test <length> valid value: \\r\\n\\t -47mm 
+[PASS] Test <length> valid value: \\r\\n\\t -47pt 
+[PASS] Test <length> valid value: \\r\\n\\t -47pc 
+[PASS] Test <length> valid value: \\r\\n\\t -47% 
+[PASS] Test <length> valid value: \\r\\n\\t .1 
+[PASS] Test <length> valid value: \\r\\n\\t .1em 
+[PASS] Test <length> valid value: \\r\\n\\t .1ex 
+[PASS] Test <length> valid value: \\r\\n\\t .1px 
+[PASS] Test <length> valid value: \\r\\n\\t .1in 
+[PASS] Test <length> valid value: \\r\\n\\t .1cm 
+[PASS] Test <length> valid value: \\r\\n\\t .1mm 
+[PASS] Test <length> valid value: \\r\\n\\t .1pt 
+[PASS] Test <length> valid value: \\r\\n\\t .1pc 
+[PASS] Test <length> valid value: \\r\\n\\t .1% 
+[PASS] Test <length> valid value: \\r\\n\\t 0.35 
+[PASS] Test <length> valid value: \\r\\n\\t 0.35em 
+[PASS] Test <length> valid value: \\r\\n\\t 0.35ex 
+[PASS] Test <length> valid value: \\r\\n\\t 0.35px 
+[PASS] Test <length> valid value: \\r\\n\\t 0.35in 
+[PASS] Test <length> valid value: \\r\\n\\t 0.35cm 
+[PASS] Test <length> valid value: \\r\\n\\t 0.35mm 
+[PASS] Test <length> valid value: \\r\\n\\t 0.35pt 
+[PASS] Test <length> valid value: \\r\\n\\t 0.35pc 
+[PASS] Test <length> valid value: \\r\\n\\t 0.35% 
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10 
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10em 
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10ex 
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10px 
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10in 
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10cm 
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10mm 
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10pt 
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10pc 
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10% 
+[PASS] Test <length> valid value: \\r\\n\\t +32 
+[PASS] Test <length> valid value: \\r\\n\\t +32em 
+[PASS] Test <length> valid value: \\r\\n\\t +32ex 
+[PASS] Test <length> valid value: \\r\\n\\t +32px 
+[PASS] Test <length> valid value: \\r\\n\\t +32in 
+[PASS] Test <length> valid value: \\r\\n\\t +32cm 
+[PASS] Test <length> valid value: \\r\\n\\t +32mm 
+[PASS] Test <length> valid value: \\r\\n\\t +32pt 
+[PASS] Test <length> valid value: \\r\\n\\t +32pc 
+[PASS] Test <length> valid value: \\r\\n\\t +32% 
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1 
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1em 
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1ex 
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1px 
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1in 
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1cm 
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1mm 
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1pt 
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1pc 
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1% 
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2 
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2em 
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2ex 
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2px 
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2in 
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2cm 
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2mm 
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2pt 
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2pc 
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2% 
+[PASS] Test <length> valid value: \\r\\n\\t -47   
+[PASS] Test <length> valid value: \\r\\n\\t -47em   
+[PASS] Test <length> valid value: \\r\\n\\t -47ex   
+[PASS] Test <length> valid value: \\r\\n\\t -47px   
+[PASS] Test <length> valid value: \\r\\n\\t -47in   
+[PASS] Test <length> valid value: \\r\\n\\t -47cm   
+[PASS] Test <length> valid value: \\r\\n\\t -47mm   
+[PASS] Test <length> valid value: \\r\\n\\t -47pt   
+[PASS] Test <length> valid value: \\r\\n\\t -47pc   
+[PASS] Test <length> valid value: \\r\\n\\t -47%   
+[PASS] Test <length> valid value: \\r\\n\\t .1   
+[PASS] Test <length> valid value: \\r\\n\\t .1em   
+[PASS] Test <length> valid value: \\r\\n\\t .1ex   
+[PASS] Test <length> valid value: \\r\\n\\t .1px   
+[PASS] Test <length> valid value: \\r\\n\\t .1in   
+[PASS] Test <length> valid value: \\r\\n\\t .1cm   
+[PASS] Test <length> valid value: \\r\\n\\t .1mm   
+[PASS] Test <length> valid value: \\r\\n\\t .1pt   
+[PASS] Test <length> valid value: \\r\\n\\t .1pc   
+[PASS] Test <length> valid value: \\r\\n\\t .1%   
+[PASS] Test <length> valid value: \\r\\n\\t 0.35   
+[PASS] Test <length> valid value: \\r\\n\\t 0.35em   
+[PASS] Test <length> valid value: \\r\\n\\t 0.35ex   
+[PASS] Test <length> valid value: \\r\\n\\t 0.35px   
+[PASS] Test <length> valid value: \\r\\n\\t 0.35in   
+[PASS] Test <length> valid value: \\r\\n\\t 0.35cm   
+[PASS] Test <length> valid value: \\r\\n\\t 0.35mm   
+[PASS] Test <length> valid value: \\r\\n\\t 0.35pt   
+[PASS] Test <length> valid value: \\r\\n\\t 0.35pc   
+[PASS] Test <length> valid value: \\r\\n\\t 0.35%   
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10   
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10em   
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10ex   
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10px   
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10in   
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10cm   
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10mm   
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10pt   
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10pc   
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10%   
+[PASS] Test <length> valid value: \\r\\n\\t +32   
+[PASS] Test <length> valid value: \\r\\n\\t +32em   
+[PASS] Test <length> valid value: \\r\\n\\t +32ex   
+[PASS] Test <length> valid value: \\r\\n\\t +32px   
+[PASS] Test <length> valid value: \\r\\n\\t +32in   
+[PASS] Test <length> valid value: \\r\\n\\t +32cm   
+[PASS] Test <length> valid value: \\r\\n\\t +32mm   
+[PASS] Test <length> valid value: \\r\\n\\t +32pt   
+[PASS] Test <length> valid value: \\r\\n\\t +32pc   
+[PASS] Test <length> valid value: \\r\\n\\t +32%   
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1   
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1em   
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1ex   
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1px   
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1in   
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1cm   
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1mm   
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1pt   
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1pc   
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1%   
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2   
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2em   
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2ex   
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2px   
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2in   
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2cm   
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2mm   
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2pt   
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2pc   
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2%   
+[PASS] Test <length> valid value: \\r\\n\\t -47\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t -47em\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t -47ex\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t -47px\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t -47in\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t -47cm\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t -47mm\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t -47pt\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t -47pc\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t -47%\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t .1\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t .1em\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t .1ex\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t .1px\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t .1in\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t .1cm\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t .1mm\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t .1pt\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t .1pc\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t .1%\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 0.35\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 0.35em\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 0.35ex\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 0.35px\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 0.35in\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 0.35cm\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 0.35mm\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 0.35pt\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 0.35pc\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 0.35%\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10em\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10ex\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10px\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10in\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10cm\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10mm\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10pt\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10pc\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10%\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t +32\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t +32em\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t +32ex\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t +32px\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t +32in\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t +32cm\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t +32mm\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t +32pt\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t +32pc\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t +32%\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1em\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1ex\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1px\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1in\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1cm\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1mm\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1pt\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1pc\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1%\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2em\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2ex\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2px\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2in\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2cm\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2mm\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2pt\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2pc\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2%\\r\\n\\t 
+[PASS] Test <length> valid value: \\r\\n\\t -47\\f
+[PASS] Test <length> valid value: \\r\\n\\t -47em\\f
+[PASS] Test <length> valid value: \\r\\n\\t -47ex\\f
+[PASS] Test <length> valid value: \\r\\n\\t -47px\\f
+[PASS] Test <length> valid value: \\r\\n\\t -47in\\f
+[PASS] Test <length> valid value: \\r\\n\\t -47cm\\f
+[PASS] Test <length> valid value: \\r\\n\\t -47mm\\f
+[PASS] Test <length> valid value: \\r\\n\\t -47pt\\f
+[PASS] Test <length> valid value: \\r\\n\\t -47pc\\f
+[PASS] Test <length> valid value: \\r\\n\\t -47%\\f
+[PASS] Test <length> valid value: \\r\\n\\t .1\\f
+[PASS] Test <length> valid value: \\r\\n\\t .1em\\f
+[PASS] Test <length> valid value: \\r\\n\\t .1ex\\f
+[PASS] Test <length> valid value: \\r\\n\\t .1px\\f
+[PASS] Test <length> valid value: \\r\\n\\t .1in\\f
+[PASS] Test <length> valid value: \\r\\n\\t .1cm\\f
+[PASS] Test <length> valid value: \\r\\n\\t .1mm\\f
+[PASS] Test <length> valid value: \\r\\n\\t .1pt\\f
+[PASS] Test <length> valid value: \\r\\n\\t .1pc\\f
+[PASS] Test <length> valid value: \\r\\n\\t .1%\\f
+[PASS] Test <length> valid value: \\r\\n\\t 0.35\\f
+[PASS] Test <length> valid value: \\r\\n\\t 0.35em\\f
+[PASS] Test <length> valid value: \\r\\n\\t 0.35ex\\f
+[PASS] Test <length> valid value: \\r\\n\\t 0.35px\\f
+[PASS] Test <length> valid value: \\r\\n\\t 0.35in\\f
+[PASS] Test <length> valid value: \\r\\n\\t 0.35cm\\f
+[PASS] Test <length> valid value: \\r\\n\\t 0.35mm\\f
+[PASS] Test <length> valid value: \\r\\n\\t 0.35pt\\f
+[PASS] Test <length> valid value: \\r\\n\\t 0.35pc\\f
+[PASS] Test <length> valid value: \\r\\n\\t 0.35%\\f
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10\\f
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10em\\f
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10ex\\f
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10px\\f
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10in\\f
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10cm\\f
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10mm\\f
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10pt\\f
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10pc\\f
+[PASS] Test <length> valid value: \\r\\n\\t 1e-10%\\f
+[PASS] Test <length> valid value: \\r\\n\\t +32\\f
+[PASS] Test <length> valid value: \\r\\n\\t +32em\\f
+[PASS] Test <length> valid value: \\r\\n\\t +32ex\\f
+[PASS] Test <length> valid value: \\r\\n\\t +32px\\f
+[PASS] Test <length> valid value: \\r\\n\\t +32in\\f
+[PASS] Test <length> valid value: \\r\\n\\t +32cm\\f
+[PASS] Test <length> valid value: \\r\\n\\t +32mm\\f
+[PASS] Test <length> valid value: \\r\\n\\t +32pt\\f
+[PASS] Test <length> valid value: \\r\\n\\t +32pc\\f
+[PASS] Test <length> valid value: \\r\\n\\t +32%\\f
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1\\f
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1em\\f
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1ex\\f
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1px\\f
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1in\\f
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1cm\\f
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1mm\\f
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1pt\\f
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1pc\\f
+[PASS] Test <length> valid value: \\r\\n\\t +17E-1%\\f
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2\\f
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2em\\f
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2ex\\f
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2px\\f
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2in\\f
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2cm\\f
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2mm\\f
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2pt\\f
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2pc\\f
+[PASS] Test <length> valid value: \\r\\n\\t 17e+2%\\f
+[PASS] Test <length> WS invalid value: -47\\r\\n\\t em
+[PASS] Test <length> WS invalid value: .1\\r\\n\\t em
+[PASS] Test <length> WS invalid value: 0.35\\r\\n\\t em
+[PASS] Test <length> WS invalid value: 1e-10\\r\\n\\t em
+[PASS] Test <length> WS invalid value: +32\\r\\n\\t em
+[PASS] Test <length> WS invalid value: +17E-1\\r\\n\\t em
+[PASS] Test <length> WS invalid value: 17e+2\\r\\n\\t em
+[PASS] Test <length> WS invalid value: -47\\r\\n\\t ex
+[PASS] Test <length> WS invalid value: .1\\r\\n\\t ex
+[PASS] Test <length> WS invalid value: 0.35\\r\\n\\t ex
+[PASS] Test <length> WS invalid value: 1e-10\\r\\n\\t ex
+[PASS] Test <length> WS invalid value: +32\\r\\n\\t ex
+[PASS] Test <length> WS invalid value: +17E-1\\r\\n\\t ex
+[PASS] Test <length> WS invalid value: 17e+2\\r\\n\\t ex
+[PASS] Test <length> WS invalid value: -47\\r\\n\\t px
+[PASS] Test <length> WS invalid value: .1\\r\\n\\t px
+[PASS] Test <length> WS invalid value: 0.35\\r\\n\\t px
+[PASS] Test <length> WS invalid value: 1e-10\\r\\n\\t px
+[PASS] Test <length> WS invalid value: +32\\r\\n\\t px
+[PASS] Test <length> WS invalid value: +17E-1\\r\\n\\t px
+[PASS] Test <length> WS invalid value: 17e+2\\r\\n\\t px
+[PASS] Test <length> WS invalid value: -47\\r\\n\\t in
+[PASS] Test <length> WS invalid value: .1\\r\\n\\t in
+[PASS] Test <length> WS invalid value: 0.35\\r\\n\\t in
+[PASS] Test <length> WS invalid value: 1e-10\\r\\n\\t in
+[PASS] Test <length> WS invalid value: +32\\r\\n\\t in
+[PASS] Test <length> WS invalid value: +17E-1\\r\\n\\t in
+[PASS] Test <length> WS invalid value: 17e+2\\r\\n\\t in
+[PASS] Test <length> WS invalid value: -47\\r\\n\\t cm
+[PASS] Test <length> WS invalid value: .1\\r\\n\\t cm
+[PASS] Test <length> WS invalid value: 0.35\\r\\n\\t cm
+[PASS] Test <length> WS invalid value: 1e-10\\r\\n\\t cm
+[PASS] Test <length> WS invalid value: +32\\r\\n\\t cm
+[PASS] Test <length> WS invalid value: +17E-1\\r\\n\\t cm
+[PASS] Test <length> WS invalid value: 17e+2\\r\\n\\t cm
+[PASS] Test <length> WS invalid value: -47\\r\\n\\t mm
+[PASS] Test <length> WS invalid value: .1\\r\\n\\t mm
+[PASS] Test <length> WS invalid value: 0.35\\r\\n\\t mm
+[PASS] Test <length> WS invalid value: 1e-10\\r\\n\\t mm
+[PASS] Test <length> WS invalid value: +32\\r\\n\\t mm
+[PASS] Test <length> WS invalid value: +17E-1\\r\\n\\t mm
+[PASS] Test <length> WS invalid value: 17e+2\\r\\n\\t mm
+[PASS] Test <length> WS invalid value: -47\\r\\n\\t pt
+[PASS] Test <length> WS invalid value: .1\\r\\n\\t pt
+[PASS] Test <length> WS invalid value: 0.35\\r\\n\\t pt
+[PASS] Test <length> WS invalid value: 1e-10\\r\\n\\t pt
+[PASS] Test <length> WS invalid value: +32\\r\\n\\t pt
+[PASS] Test <length> WS invalid value: +17E-1\\r\\n\\t pt
+[PASS] Test <length> WS invalid value: 17e+2\\r\\n\\t pt
+[PASS] Test <length> WS invalid value: -47\\r\\n\\t pc
+[PASS] Test <length> WS invalid value: .1\\r\\n\\t pc
+[PASS] Test <length> WS invalid value: 0.35\\r\\n\\t pc
+[PASS] Test <length> WS invalid value: 1e-10\\r\\n\\t pc
+[PASS] Test <length> WS invalid value: +32\\r\\n\\t pc
+[PASS] Test <length> WS invalid value: +17E-1\\r\\n\\t pc
+[PASS] Test <length> WS invalid value: 17e+2\\r\\n\\t pc
+[PASS] Test <length> WS invalid value: -47\\r\\n\\t %
+[PASS] Test <length> WS invalid value: .1\\r\\n\\t %
+[PASS] Test <length> WS invalid value: 0.35\\r\\n\\t %
+[PASS] Test <length> WS invalid value: 1e-10\\r\\n\\t %
+[PASS] Test <length> WS invalid value: +32\\r\\n\\t %
+[PASS] Test <length> WS invalid value: +17E-1\\r\\n\\t %
+[PASS] Test <length> WS invalid value: 17e+2\\r\\n\\t %
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t -47a
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t .1a
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t 0.35a
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t 1e-10a
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t +32a
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t +17E-1a
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t 17e+2a
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t -47e
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t .1e
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t 0.35e
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t 1e-10e
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t +32e
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t +17E-1e
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t 17e+2e
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t -47foo
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t .1foo
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t 0.35foo
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t 1e-10foo
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t +32foo
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t +17E-1foo
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t 17e+2foo
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t -47)90
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t .1)90
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t 0.35)90
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t 1e-10)90
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t +32)90
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t +17E-1)90
+[PASS] Test <length> trailing garbage, value: \\r\\n\\t 17e+2)90
+[PASS] Test <length> valid value: \\f-47
+[PASS] Test <length> valid value: \\f-47em
+[PASS] Test <length> valid value: \\f-47ex
+[PASS] Test <length> valid value: \\f-47px
+[PASS] Test <length> valid value: \\f-47in
+[PASS] Test <length> valid value: \\f-47cm
+[PASS] Test <length> valid value: \\f-47mm
+[PASS] Test <length> valid value: \\f-47pt
+[PASS] Test <length> valid value: \\f-47pc
+[PASS] Test <length> valid value: \\f-47%
+[PASS] Test <length> valid value: \\f.1
+[PASS] Test <length> valid value: \\f.1em
+[PASS] Test <length> valid value: \\f.1ex
+[PASS] Test <length> valid value: \\f.1px
+[PASS] Test <length> valid value: \\f.1in
+[PASS] Test <length> valid value: \\f.1cm
+[PASS] Test <length> valid value: \\f.1mm
+[PASS] Test <length> valid value: \\f.1pt
+[PASS] Test <length> valid value: \\f.1pc
+[PASS] Test <length> valid value: \\f.1%
+[PASS] Test <length> valid value: \\f0.35
+[PASS] Test <length> valid value: \\f0.35em
+[PASS] Test <length> valid value: \\f0.35ex
+[PASS] Test <length> valid value: \\f0.35px
+[PASS] Test <length> valid value: \\f0.35in
+[PASS] Test <length> valid value: \\f0.35cm
+[PASS] Test <length> valid value: \\f0.35mm
+[PASS] Test <length> valid value: \\f0.35pt
+[PASS] Test <length> valid value: \\f0.35pc
+[PASS] Test <length> valid value: \\f0.35%
+[PASS] Test <length> valid value: \\f1e-10
+[PASS] Test <length> valid value: \\f1e-10em
+[PASS] Test <length> valid value: \\f1e-10ex
+[PASS] Test <length> valid value: \\f1e-10px
+[PASS] Test <length> valid value: \\f1e-10in
+[PASS] Test <length> valid value: \\f1e-10cm
+[PASS] Test <length> valid value: \\f1e-10mm
+[PASS] Test <length> valid value: \\f1e-10pt
+[PASS] Test <length> valid value: \\f1e-10pc
+[PASS] Test <length> valid value: \\f1e-10%
+[PASS] Test <length> valid value: \\f+32
+[PASS] Test <length> valid value: \\f+32em
+[PASS] Test <length> valid value: \\f+32ex
+[PASS] Test <length> valid value: \\f+32px
+[PASS] Test <length> valid value: \\f+32in
+[PASS] Test <length> valid value: \\f+32cm
+[PASS] Test <length> valid value: \\f+32mm
+[PASS] Test <length> valid value: \\f+32pt
+[PASS] Test <length> valid value: \\f+32pc
+[PASS] Test <length> valid value: \\f+32%
+[PASS] Test <length> valid value: \\f+17E-1
+[PASS] Test <length> valid value: \\f+17E-1em
+[PASS] Test <length> valid value: \\f+17E-1ex
+[PASS] Test <length> valid value: \\f+17E-1px
+[PASS] Test <length> valid value: \\f+17E-1in
+[PASS] Test <length> valid value: \\f+17E-1cm
+[PASS] Test <length> valid value: \\f+17E-1mm
+[PASS] Test <length> valid value: \\f+17E-1pt
+[PASS] Test <length> valid value: \\f+17E-1pc
+[PASS] Test <length> valid value: \\f+17E-1%
+[PASS] Test <length> valid value: \\f17e+2
+[PASS] Test <length> valid value: \\f17e+2em
+[PASS] Test <length> valid value: \\f17e+2ex
+[PASS] Test <length> valid value: \\f17e+2px
+[PASS] Test <length> valid value: \\f17e+2in
+[PASS] Test <length> valid value: \\f17e+2cm
+[PASS] Test <length> valid value: \\f17e+2mm
+[PASS] Test <length> valid value: \\f17e+2pt
+[PASS] Test <length> valid value: \\f17e+2pc
+[PASS] Test <length> valid value: \\f17e+2%
+[PASS] Test <length> valid value: \\f-47 
+[PASS] Test <length> valid value: \\f-47em 
+[PASS] Test <length> valid value: \\f-47ex 
+[PASS] Test <length> valid value: \\f-47px 
+[PASS] Test <length> valid value: \\f-47in 
+[PASS] Test <length> valid value: \\f-47cm 
+[PASS] Test <length> valid value: \\f-47mm 
+[PASS] Test <length> valid value: \\f-47pt 
+[PASS] Test <length> valid value: \\f-47pc 
+[PASS] Test <length> valid value: \\f-47% 
+[PASS] Test <length> valid value: \\f.1 
+[PASS] Test <length> valid value: \\f.1em 
+[PASS] Test <length> valid value: \\f.1ex 
+[PASS] Test <length> valid value: \\f.1px 
+[PASS] Test <length> valid value: \\f.1in 
+[PASS] Test <length> valid value: \\f.1cm 
+[PASS] Test <length> valid value: \\f.1mm 
+[PASS] Test <length> valid value: \\f.1pt 
+[PASS] Test <length> valid value: \\f.1pc 
+[PASS] Test <length> valid value: \\f.1% 
+[PASS] Test <length> valid value: \\f0.35 
+[PASS] Test <length> valid value: \\f0.35em 
+[PASS] Test <length> valid value: \\f0.35ex 
+[PASS] Test <length> valid value: \\f0.35px 
+[PASS] Test <length> valid value: \\f0.35in 
+[PASS] Test <length> valid value: \\f0.35cm 
+[PASS] Test <length> valid value: \\f0.35mm 
+[PASS] Test <length> valid value: \\f0.35pt 
+[PASS] Test <length> valid value: \\f0.35pc 
+[PASS] Test <length> valid value: \\f0.35% 
+[PASS] Test <length> valid value: \\f1e-10 
+[PASS] Test <length> valid value: \\f1e-10em 
+[PASS] Test <length> valid value: \\f1e-10ex 
+[PASS] Test <length> valid value: \\f1e-10px 
+[PASS] Test <length> valid value: \\f1e-10in 
+[PASS] Test <length> valid value: \\f1e-10cm 
+[PASS] Test <length> valid value: \\f1e-10mm 
+[PASS] Test <length> valid value: \\f1e-10pt 
+[PASS] Test <length> valid value: \\f1e-10pc 
+[PASS] Test <length> valid value: \\f1e-10% 
+[PASS] Test <length> valid value: \\f+32 
+[PASS] Test <length> valid value: \\f+32em 
+[PASS] Test <length> valid value: \\f+32ex 
+[PASS] Test <length> valid value: \\f+32px 
+[PASS] Test <length> valid value: \\f+32in 
+[PASS] Test <length> valid value: \\f+32cm 
+[PASS] Test <length> valid value: \\f+32mm 
+[PASS] Test <length> valid value: \\f+32pt 
+[PASS] Test <length> valid value: \\f+32pc 
+[PASS] Test <length> valid value: \\f+32% 
+[PASS] Test <length> valid value: \\f+17E-1 
+[PASS] Test <length> valid value: \\f+17E-1em 
+[PASS] Test <length> valid value: \\f+17E-1ex 
+[PASS] Test <length> valid value: \\f+17E-1px 
+[PASS] Test <length> valid value: \\f+17E-1in 
+[PASS] Test <length> valid value: \\f+17E-1cm 
+[PASS] Test <length> valid value: \\f+17E-1mm 
+[PASS] Test <length> valid value: \\f+17E-1pt 
+[PASS] Test <length> valid value: \\f+17E-1pc 
+[PASS] Test <length> valid value: \\f+17E-1% 
+[PASS] Test <length> valid value: \\f17e+2 
+[PASS] Test <length> valid value: \\f17e+2em 
+[PASS] Test <length> valid value: \\f17e+2ex 
+[PASS] Test <length> valid value: \\f17e+2px 
+[PASS] Test <length> valid value: \\f17e+2in 
+[PASS] Test <length> valid value: \\f17e+2cm 
+[PASS] Test <length> valid value: \\f17e+2mm 
+[PASS] Test <length> valid value: \\f17e+2pt 
+[PASS] Test <length> valid value: \\f17e+2pc 
+[PASS] Test <length> valid value: \\f17e+2% 
+[PASS] Test <length> valid value: \\f-47   
+[PASS] Test <length> valid value: \\f-47em   
+[PASS] Test <length> valid value: \\f-47ex   
+[PASS] Test <length> valid value: \\f-47px   
+[PASS] Test <length> valid value: \\f-47in   
+[PASS] Test <length> valid value: \\f-47cm   
+[PASS] Test <length> valid value: \\f-47mm   
+[PASS] Test <length> valid value: \\f-47pt   
+[PASS] Test <length> valid value: \\f-47pc   
+[PASS] Test <length> valid value: \\f-47%   
+[PASS] Test <length> valid value: \\f.1   
+[PASS] Test <length> valid value: \\f.1em   
+[PASS] Test <length> valid value: \\f.1ex   
+[PASS] Test <length> valid value: \\f.1px   
+[PASS] Test <length> valid value: \\f.1in   
+[PASS] Test <length> valid value: \\f.1cm   
+[PASS] Test <length> valid value: \\f.1mm   
+[PASS] Test <length> valid value: \\f.1pt   
+[PASS] Test <length> valid value: \\f.1pc   
+[PASS] Test <length> valid value: \\f.1%   
+[PASS] Test <length> valid value: \\f0.35   
+[PASS] Test <length> valid value: \\f0.35em   
+[PASS] Test <length> valid value: \\f0.35ex   
+[PASS] Test <length> valid value: \\f0.35px   
+[PASS] Test <length> valid value: \\f0.35in   
+[PASS] Test <length> valid value: \\f0.35cm   
+[PASS] Test <length> valid value: \\f0.35mm   
+[PASS] Test <length> valid value: \\f0.35pt   
+[PASS] Test <length> valid value: \\f0.35pc   
+[PASS] Test <length> valid value: \\f0.35%   
+[PASS] Test <length> valid value: \\f1e-10   
+[PASS] Test <length> valid value: \\f1e-10em   
+[PASS] Test <length> valid value: \\f1e-10ex   
+[PASS] Test <length> valid value: \\f1e-10px   
+[PASS] Test <length> valid value: \\f1e-10in   
+[PASS] Test <length> valid value: \\f1e-10cm   
+[PASS] Test <length> valid value: \\f1e-10mm   
+[PASS] Test <length> valid value: \\f1e-10pt   
+[PASS] Test <length> valid value: \\f1e-10pc   
+[PASS] Test <length> valid value: \\f1e-10%   
+[PASS] Test <length> valid value: \\f+32   
+[PASS] Test <length> valid value: \\f+32em   
+[PASS] Test <length> valid value: \\f+32ex   
+[PASS] Test <length> valid value: \\f+32px   
+[PASS] Test <length> valid value: \\f+32in   
+[PASS] Test <length> valid value: \\f+32cm   
+[PASS] Test <length> valid value: \\f+32mm   
+[PASS] Test <length> valid value: \\f+32pt   
+[PASS] Test <length> valid value: \\f+32pc   
+[PASS] Test <length> valid value: \\f+32%   
+[PASS] Test <length> valid value: \\f+17E-1   
+[PASS] Test <length> valid value: \\f+17E-1em   
+[PASS] Test <length> valid value: \\f+17E-1ex   
+[PASS] Test <length> valid value: \\f+17E-1px   
+[PASS] Test <length> valid value: \\f+17E-1in   
+[PASS] Test <length> valid value: \\f+17E-1cm   
+[PASS] Test <length> valid value: \\f+17E-1mm   
+[PASS] Test <length> valid value: \\f+17E-1pt   
+[PASS] Test <length> valid value: \\f+17E-1pc   
+[PASS] Test <length> valid value: \\f+17E-1%   
+[PASS] Test <length> valid value: \\f17e+2   
+[PASS] Test <length> valid value: \\f17e+2em   
+[PASS] Test <length> valid value: \\f17e+2ex   
+[PASS] Test <length> valid value: \\f17e+2px   
+[PASS] Test <length> valid value: \\f17e+2in   
+[PASS] Test <length> valid value: \\f17e+2cm   
+[PASS] Test <length> valid value: \\f17e+2mm   
+[PASS] Test <length> valid value: \\f17e+2pt   
+[PASS] Test <length> valid value: \\f17e+2pc   
+[PASS] Test <length> valid value: \\f17e+2%   
+[PASS] Test <length> valid value: \\f-47\\r\\n\\t 
+[PASS] Test <length> valid value: \\f-47em\\r\\n\\t 
+[PASS] Test <length> valid value: \\f-47ex\\r\\n\\t 
+[PASS] Test <length> valid value: \\f-47px\\r\\n\\t 
+[PASS] Test <length> valid value: \\f-47in\\r\\n\\t 
+[PASS] Test <length> valid value: \\f-47cm\\r\\n\\t 
+[PASS] Test <length> valid value: \\f-47mm\\r\\n\\t 
+[PASS] Test <length> valid value: \\f-47pt\\r\\n\\t 
+[PASS] Test <length> valid value: \\f-47pc\\r\\n\\t 
+[PASS] Test <length> valid value: \\f-47%\\r\\n\\t 
+[PASS] Test <length> valid value: \\f.1\\r\\n\\t 
+[PASS] Test <length> valid value: \\f.1em\\r\\n\\t 
+[PASS] Test <length> valid value: \\f.1ex\\r\\n\\t 
+[PASS] Test <length> valid value: \\f.1px\\r\\n\\t 
+[PASS] Test <length> valid value: \\f.1in\\r\\n\\t 
+[PASS] Test <length> valid value: \\f.1cm\\r\\n\\t 
+[PASS] Test <length> valid value: \\f.1mm\\r\\n\\t 
+[PASS] Test <length> valid value: \\f.1pt\\r\\n\\t 
+[PASS] Test <length> valid value: \\f.1pc\\r\\n\\t 
+[PASS] Test <length> valid value: \\f.1%\\r\\n\\t 
+[PASS] Test <length> valid value: \\f0.35\\r\\n\\t 
+[PASS] Test <length> valid value: \\f0.35em\\r\\n\\t 
+[PASS] Test <length> valid value: \\f0.35ex\\r\\n\\t 
+[PASS] Test <length> valid value: \\f0.35px\\r\\n\\t 
+[PASS] Test <length> valid value: \\f0.35in\\r\\n\\t 
+[PASS] Test <length> valid value: \\f0.35cm\\r\\n\\t 
+[PASS] Test <length> valid value: \\f0.35mm\\r\\n\\t 
+[PASS] Test <length> valid value: \\f0.35pt\\r\\n\\t 
+[PASS] Test <length> valid value: \\f0.35pc\\r\\n\\t 
+[PASS] Test <length> valid value: \\f0.35%\\r\\n\\t 
+[PASS] Test <length> valid value: \\f1e-10\\r\\n\\t 
+[PASS] Test <length> valid value: \\f1e-10em\\r\\n\\t 
+[PASS] Test <length> valid value: \\f1e-10ex\\r\\n\\t 
+[PASS] Test <length> valid value: \\f1e-10px\\r\\n\\t 
+[PASS] Test <length> valid value: \\f1e-10in\\r\\n\\t 
+[PASS] Test <length> valid value: \\f1e-10cm\\r\\n\\t 
+[PASS] Test <length> valid value: \\f1e-10mm\\r\\n\\t 
+[PASS] Test <length> valid value: \\f1e-10pt\\r\\n\\t 
+[PASS] Test <length> valid value: \\f1e-10pc\\r\\n\\t 
+[PASS] Test <length> valid value: \\f1e-10%\\r\\n\\t 
+[PASS] Test <length> valid value: \\f+32\\r\\n\\t 
+[PASS] Test <length> valid value: \\f+32em\\r\\n\\t 
+[PASS] Test <length> valid value: \\f+32ex\\r\\n\\t 
+[PASS] Test <length> valid value: \\f+32px\\r\\n\\t 
+[PASS] Test <length> valid value: \\f+32in\\r\\n\\t 
+[PASS] Test <length> valid value: \\f+32cm\\r\\n\\t 
+[PASS] Test <length> valid value: \\f+32mm\\r\\n\\t 
+[PASS] Test <length> valid value: \\f+32pt\\r\\n\\t 
+[PASS] Test <length> valid value: \\f+32pc\\r\\n\\t 
+[PASS] Test <length> valid value: \\f+32%\\r\\n\\t 
+[PASS] Test <length> valid value: \\f+17E-1\\r\\n\\t 
+[PASS] Test <length> valid value: \\f+17E-1em\\r\\n\\t 
+[PASS] Test <length> valid value: \\f+17E-1ex\\r\\n\\t 
+[PASS] Test <length> valid value: \\f+17E-1px\\r\\n\\t 
+[PASS] Test <length> valid value: \\f+17E-1in\\r\\n\\t 
+[PASS] Test <length> valid value: \\f+17E-1cm\\r\\n\\t 
+[PASS] Test <length> valid value: \\f+17E-1mm\\r\\n\\t 
+[PASS] Test <length> valid value: \\f+17E-1pt\\r\\n\\t 
+[PASS] Test <length> valid value: \\f+17E-1pc\\r\\n\\t 
+[PASS] Test <length> valid value: \\f+17E-1%\\r\\n\\t 
+[PASS] Test <length> valid value: \\f17e+2\\r\\n\\t 
+[PASS] Test <length> valid value: \\f17e+2em\\r\\n\\t 
+[PASS] Test <length> valid value: \\f17e+2ex\\r\\n\\t 
+[PASS] Test <length> valid value: \\f17e+2px\\r\\n\\t 
+[PASS] Test <length> valid value: \\f17e+2in\\r\\n\\t 
+[PASS] Test <length> valid value: \\f17e+2cm\\r\\n\\t 
+[PASS] Test <length> valid value: \\f17e+2mm\\r\\n\\t 
+[PASS] Test <length> valid value: \\f17e+2pt\\r\\n\\t 
+[PASS] Test <length> valid value: \\f17e+2pc\\r\\n\\t 
+[PASS] Test <length> valid value: \\f17e+2%\\r\\n\\t 
+[PASS] Test <length> valid value: \\f-47\\f
+[PASS] Test <length> valid value: \\f-47em\\f
+[PASS] Test <length> valid value: \\f-47ex\\f
+[PASS] Test <length> valid value: \\f-47px\\f
+[PASS] Test <length> valid value: \\f-47in\\f
+[PASS] Test <length> valid value: \\f-47cm\\f
+[PASS] Test <length> valid value: \\f-47mm\\f
+[PASS] Test <length> valid value: \\f-47pt\\f
+[PASS] Test <length> valid value: \\f-47pc\\f
+[PASS] Test <length> valid value: \\f-47%\\f
+[PASS] Test <length> valid value: \\f.1\\f
+[PASS] Test <length> valid value: \\f.1em\\f
+[PASS] Test <length> valid value: \\f.1ex\\f
+[PASS] Test <length> valid value: \\f.1px\\f
+[PASS] Test <length> valid value: \\f.1in\\f
+[PASS] Test <length> valid value: \\f.1cm\\f
+[PASS] Test <length> valid value: \\f.1mm\\f
+[PASS] Test <length> valid value: \\f.1pt\\f
+[PASS] Test <length> valid value: \\f.1pc\\f
+[PASS] Test <length> valid value: \\f.1%\\f
+[PASS] Test <length> valid value: \\f0.35\\f
+[PASS] Test <length> valid value: \\f0.35em\\f
+[PASS] Test <length> valid value: \\f0.35ex\\f
+[PASS] Test <length> valid value: \\f0.35px\\f
+[PASS] Test <length> valid value: \\f0.35in\\f
+[PASS] Test <length> valid value: \\f0.35cm\\f
+[PASS] Test <length> valid value: \\f0.35mm\\f
+[PASS] Test <length> valid value: \\f0.35pt\\f
+[PASS] Test <length> valid value: \\f0.35pc\\f
+[PASS] Test <length> valid value: \\f0.35%\\f
+[PASS] Test <length> valid value: \\f1e-10\\f
+[PASS] Test <length> valid value: \\f1e-10em\\f
+[PASS] Test <length> valid value: \\f1e-10ex\\f
+[PASS] Test <length> valid value: \\f1e-10px\\f
+[PASS] Test <length> valid value: \\f1e-10in\\f
+[PASS] Test <length> valid value: \\f1e-10cm\\f
+[PASS] Test <length> valid value: \\f1e-10mm\\f
+[PASS] Test <length> valid value: \\f1e-10pt\\f
+[PASS] Test <length> valid value: \\f1e-10pc\\f
+[PASS] Test <length> valid value: \\f1e-10%\\f
+[PASS] Test <length> valid value: \\f+32\\f
+[PASS] Test <length> valid value: \\f+32em\\f
+[PASS] Test <length> valid value: \\f+32ex\\f
+[PASS] Test <length> valid value: \\f+32px\\f
+[PASS] Test <length> valid value: \\f+32in\\f
+[PASS] Test <length> valid value: \\f+32cm\\f
+[PASS] Test <length> valid value: \\f+32mm\\f
+[PASS] Test <length> valid value: \\f+32pt\\f
+[PASS] Test <length> valid value: \\f+32pc\\f
+[PASS] Test <length> valid value: \\f+32%\\f
+[PASS] Test <length> valid value: \\f+17E-1\\f
+[PASS] Test <length> valid value: \\f+17E-1em\\f
+[PASS] Test <length> valid value: \\f+17E-1ex\\f
+[PASS] Test <length> valid value: \\f+17E-1px\\f
+[PASS] Test <length> valid value: \\f+17E-1in\\f
+[PASS] Test <length> valid value: \\f+17E-1cm\\f
+[PASS] Test <length> valid value: \\f+17E-1mm\\f
+[PASS] Test <length> valid value: \\f+17E-1pt\\f
+[PASS] Test <length> valid value: \\f+17E-1pc\\f
+[PASS] Test <length> valid value: \\f+17E-1%\\f
+[PASS] Test <length> valid value: \\f17e+2\\f
+[PASS] Test <length> valid value: \\f17e+2em\\f
+[PASS] Test <length> valid value: \\f17e+2ex\\f
+[PASS] Test <length> valid value: \\f17e+2px\\f
+[PASS] Test <length> valid value: \\f17e+2in\\f
+[PASS] Test <length> valid value: \\f17e+2cm\\f
+[PASS] Test <length> valid value: \\f17e+2mm\\f
+[PASS] Test <length> valid value: \\f17e+2pt\\f
+[PASS] Test <length> valid value: \\f17e+2pc\\f
+[PASS] Test <length> valid value: \\f17e+2%\\f
+[PASS] Test <length> WS invalid value: -47\\fem
+[PASS] Test <length> WS invalid value: .1\\fem
+[PASS] Test <length> WS invalid value: 0.35\\fem
+[PASS] Test <length> WS invalid value: 1e-10\\fem
+[PASS] Test <length> WS invalid value: +32\\fem
+[PASS] Test <length> WS invalid value: +17E-1\\fem
+[PASS] Test <length> WS invalid value: 17e+2\\fem
+[PASS] Test <length> WS invalid value: -47\\fex
+[PASS] Test <length> WS invalid value: .1\\fex
+[PASS] Test <length> WS invalid value: 0.35\\fex
+[PASS] Test <length> WS invalid value: 1e-10\\fex
+[PASS] Test <length> WS invalid value: +32\\fex
+[PASS] Test <length> WS invalid value: +17E-1\\fex
+[PASS] Test <length> WS invalid value: 17e+2\\fex
+[PASS] Test <length> WS invalid value: -47\\fpx
+[PASS] Test <length> WS invalid value: .1\\fpx
+[PASS] Test <length> WS invalid value: 0.35\\fpx
+[PASS] Test <length> WS invalid value: 1e-10\\fpx
+[PASS] Test <length> WS invalid value: +32\\fpx
+[PASS] Test <length> WS invalid value: +17E-1\\fpx
+[PASS] Test <length> WS invalid value: 17e+2\\fpx
+[PASS] Test <length> WS invalid value: -47\\fin
+[PASS] Test <length> WS invalid value: .1\\fin
+[PASS] Test <length> WS invalid value: 0.35\\fin
+[PASS] Test <length> WS invalid value: 1e-10\\fin
+[PASS] Test <length> WS invalid value: +32\\fin
+[PASS] Test <length> WS invalid value: +17E-1\\fin
+[PASS] Test <length> WS invalid value: 17e+2\\fin
+[PASS] Test <length> WS invalid value: -47\\fcm
+[PASS] Test <length> WS invalid value: .1\\fcm
+[PASS] Test <length> WS invalid value: 0.35\\fcm
+[PASS] Test <length> WS invalid value: 1e-10\\fcm
+[PASS] Test <length> WS invalid value: +32\\fcm
+[PASS] Test <length> WS invalid value: +17E-1\\fcm
+[PASS] Test <length> WS invalid value: 17e+2\\fcm
+[PASS] Test <length> WS invalid value: -47\\fmm
+[PASS] Test <length> WS invalid value: .1\\fmm
+[PASS] Test <length> WS invalid value: 0.35\\fmm
+[PASS] Test <length> WS invalid value: 1e-10\\fmm
+[PASS] Test <length> WS invalid value: +32\\fmm
+[PASS] Test <length> WS invalid value: +17E-1\\fmm
+[PASS] Test <length> WS invalid value: 17e+2\\fmm
+[PASS] Test <length> WS invalid value: -47\\fpt
+[PASS] Test <length> WS invalid value: .1\\fpt
+[PASS] Test <length> WS invalid value: 0.35\\fpt
+[PASS] Test <length> WS invalid value: 1e-10\\fpt
+[PASS] Test <length> WS invalid value: +32\\fpt
+[PASS] Test <length> WS invalid value: +17E-1\\fpt
+[PASS] Test <length> WS invalid value: 17e+2\\fpt
+[PASS] Test <length> WS invalid value: -47\\fpc
+[PASS] Test <length> WS invalid value: .1\\fpc
+[PASS] Test <length> WS invalid value: 0.35\\fpc
+[PASS] Test <length> WS invalid value: 1e-10\\fpc
+[PASS] Test <length> WS invalid value: +32\\fpc
+[PASS] Test <length> WS invalid value: +17E-1\\fpc
+[PASS] Test <length> WS invalid value: 17e+2\\fpc
+[PASS] Test <length> WS invalid value: -47\\f%
+[PASS] Test <length> WS invalid value: .1\\f%
+[PASS] Test <length> WS invalid value: 0.35\\f%
+[PASS] Test <length> WS invalid value: 1e-10\\f%
+[PASS] Test <length> WS invalid value: +32\\f%
+[PASS] Test <length> WS invalid value: +17E-1\\f%
+[PASS] Test <length> WS invalid value: 17e+2\\f%
+[PASS] Test <length> trailing garbage, value: \\f-47a
+[PASS] Test <length> trailing garbage, value: \\f.1a
+[PASS] Test <length> trailing garbage, value: \\f0.35a
+[PASS] Test <length> trailing garbage, value: \\f1e-10a
+[PASS] Test <length> trailing garbage, value: \\f+32a
+[PASS] Test <length> trailing garbage, value: \\f+17E-1a
+[PASS] Test <length> trailing garbage, value: \\f17e+2a
+[PASS] Test <length> trailing garbage, value: \\f-47e
+[PASS] Test <length> trailing garbage, value: \\f.1e
+[PASS] Test <length> trailing garbage, value: \\f0.35e
+[PASS] Test <length> trailing garbage, value: \\f1e-10e
+[PASS] Test <length> trailing garbage, value: \\f+32e
+[PASS] Test <length> trailing garbage, value: \\f+17E-1e
+[PASS] Test <length> trailing garbage, value: \\f17e+2e
+[PASS] Test <length> trailing garbage, value: \\f-47foo
+[PASS] Test <length> trailing garbage, value: \\f.1foo
+[PASS] Test <length> trailing garbage, value: \\f0.35foo
+[PASS] Test <length> trailing garbage, value: \\f1e-10foo
+[PASS] Test <length> trailing garbage, value: \\f+32foo
+[PASS] Test <length> trailing garbage, value: \\f+17E-1foo
+[PASS] Test <length> trailing garbage, value: \\f17e+2foo
+[PASS] Test <length> trailing garbage, value: \\f-47)90
+[PASS] Test <length> trailing garbage, value: \\f.1)90
+[PASS] Test <length> trailing garbage, value: \\f0.35)90
+[PASS] Test <length> trailing garbage, value: \\f1e-10)90
+[PASS] Test <length> trailing garbage, value: \\f+32)90
+[PASS] Test <length> trailing garbage, value: \\f+17E-1)90
+[PASS] Test <length> trailing garbage, value: \\f17e+2)90
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/svg/parser/whitespace-length-invalid-1-expected.txt b/third_party/blink/web_tests/svg/parser/whitespace-length-invalid-1-expected.txt
index b45772d4..cbc1099a 100644
--- a/third_party/blink/web_tests/svg/parser/whitespace-length-invalid-1-expected.txt
+++ b/third_party/blink/web_tests/svg/parser/whitespace-length-invalid-1-expected.txt
@@ -1119,86 +1119,86 @@
 [PASS] Test <length> invalid value: fnordpt   
 [PASS] Test <length> invalid value: fnordpc   
 [PASS] Test <length> invalid value: fnord%   
-[PASS] Test <length> invalid value: NaN\r\n\t 
-[PASS] Test <length> invalid value: NaNem\r\n\t 
-[PASS] Test <length> invalid value: NaNex\r\n\t 
-[PASS] Test <length> invalid value: NaNpx\r\n\t 
-[PASS] Test <length> invalid value: NaNin\r\n\t 
-[PASS] Test <length> invalid value: NaNcm\r\n\t 
-[PASS] Test <length> invalid value: NaNmm\r\n\t 
-[PASS] Test <length> invalid value: NaNpt\r\n\t 
-[PASS] Test <length> invalid value: NaNpc\r\n\t 
-[PASS] Test <length> invalid value: NaN%\r\n\t 
-[PASS] Test <length> invalid value: Infinity\r\n\t 
-[PASS] Test <length> invalid value: Infinityem\r\n\t 
-[PASS] Test <length> invalid value: Infinityex\r\n\t 
-[PASS] Test <length> invalid value: Infinitypx\r\n\t 
-[PASS] Test <length> invalid value: Infinityin\r\n\t 
-[PASS] Test <length> invalid value: Infinitycm\r\n\t 
-[PASS] Test <length> invalid value: Infinitymm\r\n\t 
-[PASS] Test <length> invalid value: Infinitypt\r\n\t 
-[PASS] Test <length> invalid value: Infinitypc\r\n\t 
-[PASS] Test <length> invalid value: Infinity%\r\n\t 
-[PASS] Test <length> invalid value: -Infinity\r\n\t 
-[PASS] Test <length> invalid value: -Infinityem\r\n\t 
-[PASS] Test <length> invalid value: -Infinityex\r\n\t 
-[PASS] Test <length> invalid value: -Infinitypx\r\n\t 
-[PASS] Test <length> invalid value: -Infinityin\r\n\t 
-[PASS] Test <length> invalid value: -Infinitycm\r\n\t 
-[PASS] Test <length> invalid value: -Infinitymm\r\n\t 
-[PASS] Test <length> invalid value: -Infinitypt\r\n\t 
-[PASS] Test <length> invalid value: -Infinitypc\r\n\t 
-[PASS] Test <length> invalid value: -Infinity%\r\n\t 
-[PASS] Test <length> invalid value: fnord\r\n\t 
-[PASS] Test <length> invalid value: fnordem\r\n\t 
-[PASS] Test <length> invalid value: fnordex\r\n\t 
-[PASS] Test <length> invalid value: fnordpx\r\n\t 
-[PASS] Test <length> invalid value: fnordin\r\n\t 
-[PASS] Test <length> invalid value: fnordcm\r\n\t 
-[PASS] Test <length> invalid value: fnordmm\r\n\t 
-[PASS] Test <length> invalid value: fnordpt\r\n\t 
-[PASS] Test <length> invalid value: fnordpc\r\n\t 
-[PASS] Test <length> invalid value: fnord%\r\n\t 
-[PASS] Test <length> invalid value: NaN\f
-[PASS] Test <length> invalid value: NaNem\f
-[PASS] Test <length> invalid value: NaNex\f
-[PASS] Test <length> invalid value: NaNpx\f
-[PASS] Test <length> invalid value: NaNin\f
-[PASS] Test <length> invalid value: NaNcm\f
-[PASS] Test <length> invalid value: NaNmm\f
-[PASS] Test <length> invalid value: NaNpt\f
-[PASS] Test <length> invalid value: NaNpc\f
-[PASS] Test <length> invalid value: NaN%\f
-[PASS] Test <length> invalid value: Infinity\f
-[PASS] Test <length> invalid value: Infinityem\f
-[PASS] Test <length> invalid value: Infinityex\f
-[PASS] Test <length> invalid value: Infinitypx\f
-[PASS] Test <length> invalid value: Infinityin\f
-[PASS] Test <length> invalid value: Infinitycm\f
-[PASS] Test <length> invalid value: Infinitymm\f
-[PASS] Test <length> invalid value: Infinitypt\f
-[PASS] Test <length> invalid value: Infinitypc\f
-[PASS] Test <length> invalid value: Infinity%\f
-[PASS] Test <length> invalid value: -Infinity\f
-[PASS] Test <length> invalid value: -Infinityem\f
-[PASS] Test <length> invalid value: -Infinityex\f
-[PASS] Test <length> invalid value: -Infinitypx\f
-[PASS] Test <length> invalid value: -Infinityin\f
-[PASS] Test <length> invalid value: -Infinitycm\f
-[PASS] Test <length> invalid value: -Infinitymm\f
-[PASS] Test <length> invalid value: -Infinitypt\f
-[PASS] Test <length> invalid value: -Infinitypc\f
-[PASS] Test <length> invalid value: -Infinity%\f
-[PASS] Test <length> invalid value: fnord\f
-[PASS] Test <length> invalid value: fnordem\f
-[PASS] Test <length> invalid value: fnordex\f
-[PASS] Test <length> invalid value: fnordpx\f
-[PASS] Test <length> invalid value: fnordin\f
-[PASS] Test <length> invalid value: fnordcm\f
-[PASS] Test <length> invalid value: fnordmm\f
-[PASS] Test <length> invalid value: fnordpt\f
-[PASS] Test <length> invalid value: fnordpc\f
-[PASS] Test <length> invalid value: fnord%\f
+[PASS] Test <length> invalid value: NaN\\r\\n\\t 
+[PASS] Test <length> invalid value: NaNem\\r\\n\\t 
+[PASS] Test <length> invalid value: NaNex\\r\\n\\t 
+[PASS] Test <length> invalid value: NaNpx\\r\\n\\t 
+[PASS] Test <length> invalid value: NaNin\\r\\n\\t 
+[PASS] Test <length> invalid value: NaNcm\\r\\n\\t 
+[PASS] Test <length> invalid value: NaNmm\\r\\n\\t 
+[PASS] Test <length> invalid value: NaNpt\\r\\n\\t 
+[PASS] Test <length> invalid value: NaNpc\\r\\n\\t 
+[PASS] Test <length> invalid value: NaN%\\r\\n\\t 
+[PASS] Test <length> invalid value: Infinity\\r\\n\\t 
+[PASS] Test <length> invalid value: Infinityem\\r\\n\\t 
+[PASS] Test <length> invalid value: Infinityex\\r\\n\\t 
+[PASS] Test <length> invalid value: Infinitypx\\r\\n\\t 
+[PASS] Test <length> invalid value: Infinityin\\r\\n\\t 
+[PASS] Test <length> invalid value: Infinitycm\\r\\n\\t 
+[PASS] Test <length> invalid value: Infinitymm\\r\\n\\t 
+[PASS] Test <length> invalid value: Infinitypt\\r\\n\\t 
+[PASS] Test <length> invalid value: Infinitypc\\r\\n\\t 
+[PASS] Test <length> invalid value: Infinity%\\r\\n\\t 
+[PASS] Test <length> invalid value: -Infinity\\r\\n\\t 
+[PASS] Test <length> invalid value: -Infinityem\\r\\n\\t 
+[PASS] Test <length> invalid value: -Infinityex\\r\\n\\t 
+[PASS] Test <length> invalid value: -Infinitypx\\r\\n\\t 
+[PASS] Test <length> invalid value: -Infinityin\\r\\n\\t 
+[PASS] Test <length> invalid value: -Infinitycm\\r\\n\\t 
+[PASS] Test <length> invalid value: -Infinitymm\\r\\n\\t 
+[PASS] Test <length> invalid value: -Infinitypt\\r\\n\\t 
+[PASS] Test <length> invalid value: -Infinitypc\\r\\n\\t 
+[PASS] Test <length> invalid value: -Infinity%\\r\\n\\t 
+[PASS] Test <length> invalid value: fnord\\r\\n\\t 
+[PASS] Test <length> invalid value: fnordem\\r\\n\\t 
+[PASS] Test <length> invalid value: fnordex\\r\\n\\t 
+[PASS] Test <length> invalid value: fnordpx\\r\\n\\t 
+[PASS] Test <length> invalid value: fnordin\\r\\n\\t 
+[PASS] Test <length> invalid value: fnordcm\\r\\n\\t 
+[PASS] Test <length> invalid value: fnordmm\\r\\n\\t 
+[PASS] Test <length> invalid value: fnordpt\\r\\n\\t 
+[PASS] Test <length> invalid value: fnordpc\\r\\n\\t 
+[PASS] Test <length> invalid value: fnord%\\r\\n\\t 
+[PASS] Test <length> invalid value: NaN\\f
+[PASS] Test <length> invalid value: NaNem\\f
+[PASS] Test <length> invalid value: NaNex\\f
+[PASS] Test <length> invalid value: NaNpx\\f
+[PASS] Test <length> invalid value: NaNin\\f
+[PASS] Test <length> invalid value: NaNcm\\f
+[PASS] Test <length> invalid value: NaNmm\\f
+[PASS] Test <length> invalid value: NaNpt\\f
+[PASS] Test <length> invalid value: NaNpc\\f
+[PASS] Test <length> invalid value: NaN%\\f
+[PASS] Test <length> invalid value: Infinity\\f
+[PASS] Test <length> invalid value: Infinityem\\f
+[PASS] Test <length> invalid value: Infinityex\\f
+[PASS] Test <length> invalid value: Infinitypx\\f
+[PASS] Test <length> invalid value: Infinityin\\f
+[PASS] Test <length> invalid value: Infinitycm\\f
+[PASS] Test <length> invalid value: Infinitymm\\f
+[PASS] Test <length> invalid value: Infinitypt\\f
+[PASS] Test <length> invalid value: Infinitypc\\f
+[PASS] Test <length> invalid value: Infinity%\\f
+[PASS] Test <length> invalid value: -Infinity\\f
+[PASS] Test <length> invalid value: -Infinityem\\f
+[PASS] Test <length> invalid value: -Infinityex\\f
+[PASS] Test <length> invalid value: -Infinitypx\\f
+[PASS] Test <length> invalid value: -Infinityin\\f
+[PASS] Test <length> invalid value: -Infinitycm\\f
+[PASS] Test <length> invalid value: -Infinitymm\\f
+[PASS] Test <length> invalid value: -Infinitypt\\f
+[PASS] Test <length> invalid value: -Infinitypc\\f
+[PASS] Test <length> invalid value: -Infinity%\\f
+[PASS] Test <length> invalid value: fnord\\f
+[PASS] Test <length> invalid value: fnordem\\f
+[PASS] Test <length> invalid value: fnordex\\f
+[PASS] Test <length> invalid value: fnordpx\\f
+[PASS] Test <length> invalid value: fnordin\\f
+[PASS] Test <length> invalid value: fnordcm\\f
+[PASS] Test <length> invalid value: fnordmm\\f
+[PASS] Test <length> invalid value: fnordpt\\f
+[PASS] Test <length> invalid value: fnordpc\\f
+[PASS] Test <length> invalid value: fnord%\\f
 [PASS] Test <length> invalid value:  NaN
 [PASS] Test <length> invalid value:  NaNem
 [PASS] Test <length> invalid value:  NaNex
@@ -1319,86 +1319,86 @@
 [PASS] Test <length> invalid value:  fnordpt   
 [PASS] Test <length> invalid value:  fnordpc   
 [PASS] Test <length> invalid value:  fnord%   
-[PASS] Test <length> invalid value:  NaN\r\n\t 
-[PASS] Test <length> invalid value:  NaNem\r\n\t 
-[PASS] Test <length> invalid value:  NaNex\r\n\t 
-[PASS] Test <length> invalid value:  NaNpx\r\n\t 
-[PASS] Test <length> invalid value:  NaNin\r\n\t 
-[PASS] Test <length> invalid value:  NaNcm\r\n\t 
-[PASS] Test <length> invalid value:  NaNmm\r\n\t 
-[PASS] Test <length> invalid value:  NaNpt\r\n\t 
-[PASS] Test <length> invalid value:  NaNpc\r\n\t 
-[PASS] Test <length> invalid value:  NaN%\r\n\t 
-[PASS] Test <length> invalid value:  Infinity\r\n\t 
-[PASS] Test <length> invalid value:  Infinityem\r\n\t 
-[PASS] Test <length> invalid value:  Infinityex\r\n\t 
-[PASS] Test <length> invalid value:  Infinitypx\r\n\t 
-[PASS] Test <length> invalid value:  Infinityin\r\n\t 
-[PASS] Test <length> invalid value:  Infinitycm\r\n\t 
-[PASS] Test <length> invalid value:  Infinitymm\r\n\t 
-[PASS] Test <length> invalid value:  Infinitypt\r\n\t 
-[PASS] Test <length> invalid value:  Infinitypc\r\n\t 
-[PASS] Test <length> invalid value:  Infinity%\r\n\t 
-[PASS] Test <length> invalid value:  -Infinity\r\n\t 
-[PASS] Test <length> invalid value:  -Infinityem\r\n\t 
-[PASS] Test <length> invalid value:  -Infinityex\r\n\t 
-[PASS] Test <length> invalid value:  -Infinitypx\r\n\t 
-[PASS] Test <length> invalid value:  -Infinityin\r\n\t 
-[PASS] Test <length> invalid value:  -Infinitycm\r\n\t 
-[PASS] Test <length> invalid value:  -Infinitymm\r\n\t 
-[PASS] Test <length> invalid value:  -Infinitypt\r\n\t 
-[PASS] Test <length> invalid value:  -Infinitypc\r\n\t 
-[PASS] Test <length> invalid value:  -Infinity%\r\n\t 
-[PASS] Test <length> invalid value:  fnord\r\n\t 
-[PASS] Test <length> invalid value:  fnordem\r\n\t 
-[PASS] Test <length> invalid value:  fnordex\r\n\t 
-[PASS] Test <length> invalid value:  fnordpx\r\n\t 
-[PASS] Test <length> invalid value:  fnordin\r\n\t 
-[PASS] Test <length> invalid value:  fnordcm\r\n\t 
-[PASS] Test <length> invalid value:  fnordmm\r\n\t 
-[PASS] Test <length> invalid value:  fnordpt\r\n\t 
-[PASS] Test <length> invalid value:  fnordpc\r\n\t 
-[PASS] Test <length> invalid value:  fnord%\r\n\t 
-[PASS] Test <length> invalid value:  NaN\f
-[PASS] Test <length> invalid value:  NaNem\f
-[PASS] Test <length> invalid value:  NaNex\f
-[PASS] Test <length> invalid value:  NaNpx\f
-[PASS] Test <length> invalid value:  NaNin\f
-[PASS] Test <length> invalid value:  NaNcm\f
-[PASS] Test <length> invalid value:  NaNmm\f
-[PASS] Test <length> invalid value:  NaNpt\f
-[PASS] Test <length> invalid value:  NaNpc\f
-[PASS] Test <length> invalid value:  NaN%\f
-[PASS] Test <length> invalid value:  Infinity\f
-[PASS] Test <length> invalid value:  Infinityem\f
-[PASS] Test <length> invalid value:  Infinityex\f
-[PASS] Test <length> invalid value:  Infinitypx\f
-[PASS] Test <length> invalid value:  Infinityin\f
-[PASS] Test <length> invalid value:  Infinitycm\f
-[PASS] Test <length> invalid value:  Infinitymm\f
-[PASS] Test <length> invalid value:  Infinitypt\f
-[PASS] Test <length> invalid value:  Infinitypc\f
-[PASS] Test <length> invalid value:  Infinity%\f
-[PASS] Test <length> invalid value:  -Infinity\f
-[PASS] Test <length> invalid value:  -Infinityem\f
-[PASS] Test <length> invalid value:  -Infinityex\f
-[PASS] Test <length> invalid value:  -Infinitypx\f
-[PASS] Test <length> invalid value:  -Infinityin\f
-[PASS] Test <length> invalid value:  -Infinitycm\f
-[PASS] Test <length> invalid value:  -Infinitymm\f
-[PASS] Test <length> invalid value:  -Infinitypt\f
-[PASS] Test <length> invalid value:  -Infinitypc\f
-[PASS] Test <length> invalid value:  -Infinity%\f
-[PASS] Test <length> invalid value:  fnord\f
-[PASS] Test <length> invalid value:  fnordem\f
-[PASS] Test <length> invalid value:  fnordex\f
-[PASS] Test <length> invalid value:  fnordpx\f
-[PASS] Test <length> invalid value:  fnordin\f
-[PASS] Test <length> invalid value:  fnordcm\f
-[PASS] Test <length> invalid value:  fnordmm\f
-[PASS] Test <length> invalid value:  fnordpt\f
-[PASS] Test <length> invalid value:  fnordpc\f
-[PASS] Test <length> invalid value:  fnord%\f
+[PASS] Test <length> invalid value:  NaN\\r\\n\\t 
+[PASS] Test <length> invalid value:  NaNem\\r\\n\\t 
+[PASS] Test <length> invalid value:  NaNex\\r\\n\\t 
+[PASS] Test <length> invalid value:  NaNpx\\r\\n\\t 
+[PASS] Test <length> invalid value:  NaNin\\r\\n\\t 
+[PASS] Test <length> invalid value:  NaNcm\\r\\n\\t 
+[PASS] Test <length> invalid value:  NaNmm\\r\\n\\t 
+[PASS] Test <length> invalid value:  NaNpt\\r\\n\\t 
+[PASS] Test <length> invalid value:  NaNpc\\r\\n\\t 
+[PASS] Test <length> invalid value:  NaN%\\r\\n\\t 
+[PASS] Test <length> invalid value:  Infinity\\r\\n\\t 
+[PASS] Test <length> invalid value:  Infinityem\\r\\n\\t 
+[PASS] Test <length> invalid value:  Infinityex\\r\\n\\t 
+[PASS] Test <length> invalid value:  Infinitypx\\r\\n\\t 
+[PASS] Test <length> invalid value:  Infinityin\\r\\n\\t 
+[PASS] Test <length> invalid value:  Infinitycm\\r\\n\\t 
+[PASS] Test <length> invalid value:  Infinitymm\\r\\n\\t 
+[PASS] Test <length> invalid value:  Infinitypt\\r\\n\\t 
+[PASS] Test <length> invalid value:  Infinitypc\\r\\n\\t 
+[PASS] Test <length> invalid value:  Infinity%\\r\\n\\t 
+[PASS] Test <length> invalid value:  -Infinity\\r\\n\\t 
+[PASS] Test <length> invalid value:  -Infinityem\\r\\n\\t 
+[PASS] Test <length> invalid value:  -Infinityex\\r\\n\\t 
+[PASS] Test <length> invalid value:  -Infinitypx\\r\\n\\t 
+[PASS] Test <length> invalid value:  -Infinityin\\r\\n\\t 
+[PASS] Test <length> invalid value:  -Infinitycm\\r\\n\\t 
+[PASS] Test <length> invalid value:  -Infinitymm\\r\\n\\t 
+[PASS] Test <length> invalid value:  -Infinitypt\\r\\n\\t 
+[PASS] Test <length> invalid value:  -Infinitypc\\r\\n\\t 
+[PASS] Test <length> invalid value:  -Infinity%\\r\\n\\t 
+[PASS] Test <length> invalid value:  fnord\\r\\n\\t 
+[PASS] Test <length> invalid value:  fnordem\\r\\n\\t 
+[PASS] Test <length> invalid value:  fnordex\\r\\n\\t 
+[PASS] Test <length> invalid value:  fnordpx\\r\\n\\t 
+[PASS] Test <length> invalid value:  fnordin\\r\\n\\t 
+[PASS] Test <length> invalid value:  fnordcm\\r\\n\\t 
+[PASS] Test <length> invalid value:  fnordmm\\r\\n\\t 
+[PASS] Test <length> invalid value:  fnordpt\\r\\n\\t 
+[PASS] Test <length> invalid value:  fnordpc\\r\\n\\t 
+[PASS] Test <length> invalid value:  fnord%\\r\\n\\t 
+[PASS] Test <length> invalid value:  NaN\\f
+[PASS] Test <length> invalid value:  NaNem\\f
+[PASS] Test <length> invalid value:  NaNex\\f
+[PASS] Test <length> invalid value:  NaNpx\\f
+[PASS] Test <length> invalid value:  NaNin\\f
+[PASS] Test <length> invalid value:  NaNcm\\f
+[PASS] Test <length> invalid value:  NaNmm\\f
+[PASS] Test <length> invalid value:  NaNpt\\f
+[PASS] Test <length> invalid value:  NaNpc\\f
+[PASS] Test <length> invalid value:  NaN%\\f
+[PASS] Test <length> invalid value:  Infinity\\f
+[PASS] Test <length> invalid value:  Infinityem\\f
+[PASS] Test <length> invalid value:  Infinityex\\f
+[PASS] Test <length> invalid value:  Infinitypx\\f
+[PASS] Test <length> invalid value:  Infinityin\\f
+[PASS] Test <length> invalid value:  Infinitycm\\f
+[PASS] Test <length> invalid value:  Infinitymm\\f
+[PASS] Test <length> invalid value:  Infinitypt\\f
+[PASS] Test <length> invalid value:  Infinitypc\\f
+[PASS] Test <length> invalid value:  Infinity%\\f
+[PASS] Test <length> invalid value:  -Infinity\\f
+[PASS] Test <length> invalid value:  -Infinityem\\f
+[PASS] Test <length> invalid value:  -Infinityex\\f
+[PASS] Test <length> invalid value:  -Infinitypx\\f
+[PASS] Test <length> invalid value:  -Infinityin\\f
+[PASS] Test <length> invalid value:  -Infinitycm\\f
+[PASS] Test <length> invalid value:  -Infinitymm\\f
+[PASS] Test <length> invalid value:  -Infinitypt\\f
+[PASS] Test <length> invalid value:  -Infinitypc\\f
+[PASS] Test <length> invalid value:  -Infinity%\\f
+[PASS] Test <length> invalid value:  fnord\\f
+[PASS] Test <length> invalid value:  fnordem\\f
+[PASS] Test <length> invalid value:  fnordex\\f
+[PASS] Test <length> invalid value:  fnordpx\\f
+[PASS] Test <length> invalid value:  fnordin\\f
+[PASS] Test <length> invalid value:  fnordcm\\f
+[PASS] Test <length> invalid value:  fnordmm\\f
+[PASS] Test <length> invalid value:  fnordpt\\f
+[PASS] Test <length> invalid value:  fnordpc\\f
+[PASS] Test <length> invalid value:  fnord%\\f
 [PASS] Test <length> invalid value:    NaN
 [PASS] Test <length> invalid value:    NaNem
 [PASS] Test <length> invalid value:    NaNex
@@ -1519,485 +1519,485 @@
 [PASS] Test <length> invalid value:    fnordpt   
 [PASS] Test <length> invalid value:    fnordpc   
 [PASS] Test <length> invalid value:    fnord%   
-[PASS] Test <length> invalid value:    NaN\r\n\t 
-[PASS] Test <length> invalid value:    NaNem\r\n\t 
-[PASS] Test <length> invalid value:    NaNex\r\n\t 
-[PASS] Test <length> invalid value:    NaNpx\r\n\t 
-[PASS] Test <length> invalid value:    NaNin\r\n\t 
-[PASS] Test <length> invalid value:    NaNcm\r\n\t 
-[PASS] Test <length> invalid value:    NaNmm\r\n\t 
-[PASS] Test <length> invalid value:    NaNpt\r\n\t 
-[PASS] Test <length> invalid value:    NaNpc\r\n\t 
-[PASS] Test <length> invalid value:    NaN%\r\n\t 
-[PASS] Test <length> invalid value:    Infinity\r\n\t 
-[PASS] Test <length> invalid value:    Infinityem\r\n\t 
-[PASS] Test <length> invalid value:    Infinityex\r\n\t 
-[PASS] Test <length> invalid value:    Infinitypx\r\n\t 
-[PASS] Test <length> invalid value:    Infinityin\r\n\t 
-[PASS] Test <length> invalid value:    Infinitycm\r\n\t 
-[PASS] Test <length> invalid value:    Infinitymm\r\n\t 
-[PASS] Test <length> invalid value:    Infinitypt\r\n\t 
-[PASS] Test <length> invalid value:    Infinitypc\r\n\t 
-[PASS] Test <length> invalid value:    Infinity%\r\n\t 
-[PASS] Test <length> invalid value:    -Infinity\r\n\t 
-[PASS] Test <length> invalid value:    -Infinityem\r\n\t 
-[PASS] Test <length> invalid value:    -Infinityex\r\n\t 
-[PASS] Test <length> invalid value:    -Infinitypx\r\n\t 
-[PASS] Test <length> invalid value:    -Infinityin\r\n\t 
-[PASS] Test <length> invalid value:    -Infinitycm\r\n\t 
-[PASS] Test <length> invalid value:    -Infinitymm\r\n\t 
-[PASS] Test <length> invalid value:    -Infinitypt\r\n\t 
-[PASS] Test <length> invalid value:    -Infinitypc\r\n\t 
-[PASS] Test <length> invalid value:    -Infinity%\r\n\t 
-[PASS] Test <length> invalid value:    fnord\r\n\t 
-[PASS] Test <length> invalid value:    fnordem\r\n\t 
-[PASS] Test <length> invalid value:    fnordex\r\n\t 
-[PASS] Test <length> invalid value:    fnordpx\r\n\t 
-[PASS] Test <length> invalid value:    fnordin\r\n\t 
-[PASS] Test <length> invalid value:    fnordcm\r\n\t 
-[PASS] Test <length> invalid value:    fnordmm\r\n\t 
-[PASS] Test <length> invalid value:    fnordpt\r\n\t 
-[PASS] Test <length> invalid value:    fnordpc\r\n\t 
-[PASS] Test <length> invalid value:    fnord%\r\n\t 
-[PASS] Test <length> invalid value:    NaN\f
-[PASS] Test <length> invalid value:    NaNem\f
-[PASS] Test <length> invalid value:    NaNex\f
-[PASS] Test <length> invalid value:    NaNpx\f
-[PASS] Test <length> invalid value:    NaNin\f
-[PASS] Test <length> invalid value:    NaNcm\f
-[PASS] Test <length> invalid value:    NaNmm\f
-[PASS] Test <length> invalid value:    NaNpt\f
-[PASS] Test <length> invalid value:    NaNpc\f
-[PASS] Test <length> invalid value:    NaN%\f
-[PASS] Test <length> invalid value:    Infinity\f
-[PASS] Test <length> invalid value:    Infinityem\f
-[PASS] Test <length> invalid value:    Infinityex\f
-[PASS] Test <length> invalid value:    Infinitypx\f
-[PASS] Test <length> invalid value:    Infinityin\f
-[PASS] Test <length> invalid value:    Infinitycm\f
-[PASS] Test <length> invalid value:    Infinitymm\f
-[PASS] Test <length> invalid value:    Infinitypt\f
-[PASS] Test <length> invalid value:    Infinitypc\f
-[PASS] Test <length> invalid value:    Infinity%\f
-[PASS] Test <length> invalid value:    -Infinity\f
-[PASS] Test <length> invalid value:    -Infinityem\f
-[PASS] Test <length> invalid value:    -Infinityex\f
-[PASS] Test <length> invalid value:    -Infinitypx\f
-[PASS] Test <length> invalid value:    -Infinityin\f
-[PASS] Test <length> invalid value:    -Infinitycm\f
-[PASS] Test <length> invalid value:    -Infinitymm\f
-[PASS] Test <length> invalid value:    -Infinitypt\f
-[PASS] Test <length> invalid value:    -Infinitypc\f
-[PASS] Test <length> invalid value:    -Infinity%\f
-[PASS] Test <length> invalid value:    fnord\f
-[PASS] Test <length> invalid value:    fnordem\f
-[PASS] Test <length> invalid value:    fnordex\f
-[PASS] Test <length> invalid value:    fnordpx\f
-[PASS] Test <length> invalid value:    fnordin\f
-[PASS] Test <length> invalid value:    fnordcm\f
-[PASS] Test <length> invalid value:    fnordmm\f
-[PASS] Test <length> invalid value:    fnordpt\f
-[PASS] Test <length> invalid value:    fnordpc\f
-[PASS] Test <length> invalid value:    fnord%\f
-[PASS] Test <length> invalid value: \r\n\t NaN
-[PASS] Test <length> invalid value: \r\n\t NaNem
-[PASS] Test <length> invalid value: \r\n\t NaNex
-[PASS] Test <length> invalid value: \r\n\t NaNpx
-[PASS] Test <length> invalid value: \r\n\t NaNin
-[PASS] Test <length> invalid value: \r\n\t NaNcm
-[PASS] Test <length> invalid value: \r\n\t NaNmm
-[PASS] Test <length> invalid value: \r\n\t NaNpt
-[PASS] Test <length> invalid value: \r\n\t NaNpc
-[PASS] Test <length> invalid value: \r\n\t NaN%
-[PASS] Test <length> invalid value: \r\n\t Infinity
-[PASS] Test <length> invalid value: \r\n\t Infinityem
-[PASS] Test <length> invalid value: \r\n\t Infinityex
-[PASS] Test <length> invalid value: \r\n\t Infinitypx
-[PASS] Test <length> invalid value: \r\n\t Infinityin
-[PASS] Test <length> invalid value: \r\n\t Infinitycm
-[PASS] Test <length> invalid value: \r\n\t Infinitymm
-[PASS] Test <length> invalid value: \r\n\t Infinitypt
-[PASS] Test <length> invalid value: \r\n\t Infinitypc
-[PASS] Test <length> invalid value: \r\n\t Infinity%
-[PASS] Test <length> invalid value: \r\n\t -Infinity
-[PASS] Test <length> invalid value: \r\n\t -Infinityem
-[PASS] Test <length> invalid value: \r\n\t -Infinityex
-[PASS] Test <length> invalid value: \r\n\t -Infinitypx
-[PASS] Test <length> invalid value: \r\n\t -Infinityin
-[PASS] Test <length> invalid value: \r\n\t -Infinitycm
-[PASS] Test <length> invalid value: \r\n\t -Infinitymm
-[PASS] Test <length> invalid value: \r\n\t -Infinitypt
-[PASS] Test <length> invalid value: \r\n\t -Infinitypc
-[PASS] Test <length> invalid value: \r\n\t -Infinity%
-[PASS] Test <length> invalid value: \r\n\t fnord
-[PASS] Test <length> invalid value: \r\n\t fnordem
-[PASS] Test <length> invalid value: \r\n\t fnordex
-[PASS] Test <length> invalid value: \r\n\t fnordpx
-[PASS] Test <length> invalid value: \r\n\t fnordin
-[PASS] Test <length> invalid value: \r\n\t fnordcm
-[PASS] Test <length> invalid value: \r\n\t fnordmm
-[PASS] Test <length> invalid value: \r\n\t fnordpt
-[PASS] Test <length> invalid value: \r\n\t fnordpc
-[PASS] Test <length> invalid value: \r\n\t fnord%
-[PASS] Test <length> invalid value: \r\n\t NaN 
-[PASS] Test <length> invalid value: \r\n\t NaNem 
-[PASS] Test <length> invalid value: \r\n\t NaNex 
-[PASS] Test <length> invalid value: \r\n\t NaNpx 
-[PASS] Test <length> invalid value: \r\n\t NaNin 
-[PASS] Test <length> invalid value: \r\n\t NaNcm 
-[PASS] Test <length> invalid value: \r\n\t NaNmm 
-[PASS] Test <length> invalid value: \r\n\t NaNpt 
-[PASS] Test <length> invalid value: \r\n\t NaNpc 
-[PASS] Test <length> invalid value: \r\n\t NaN% 
-[PASS] Test <length> invalid value: \r\n\t Infinity 
-[PASS] Test <length> invalid value: \r\n\t Infinityem 
-[PASS] Test <length> invalid value: \r\n\t Infinityex 
-[PASS] Test <length> invalid value: \r\n\t Infinitypx 
-[PASS] Test <length> invalid value: \r\n\t Infinityin 
-[PASS] Test <length> invalid value: \r\n\t Infinitycm 
-[PASS] Test <length> invalid value: \r\n\t Infinitymm 
-[PASS] Test <length> invalid value: \r\n\t Infinitypt 
-[PASS] Test <length> invalid value: \r\n\t Infinitypc 
-[PASS] Test <length> invalid value: \r\n\t Infinity% 
-[PASS] Test <length> invalid value: \r\n\t -Infinity 
-[PASS] Test <length> invalid value: \r\n\t -Infinityem 
-[PASS] Test <length> invalid value: \r\n\t -Infinityex 
-[PASS] Test <length> invalid value: \r\n\t -Infinitypx 
-[PASS] Test <length> invalid value: \r\n\t -Infinityin 
-[PASS] Test <length> invalid value: \r\n\t -Infinitycm 
-[PASS] Test <length> invalid value: \r\n\t -Infinitymm 
-[PASS] Test <length> invalid value: \r\n\t -Infinitypt 
-[PASS] Test <length> invalid value: \r\n\t -Infinitypc 
-[PASS] Test <length> invalid value: \r\n\t -Infinity% 
-[PASS] Test <length> invalid value: \r\n\t fnord 
-[PASS] Test <length> invalid value: \r\n\t fnordem 
-[PASS] Test <length> invalid value: \r\n\t fnordex 
-[PASS] Test <length> invalid value: \r\n\t fnordpx 
-[PASS] Test <length> invalid value: \r\n\t fnordin 
-[PASS] Test <length> invalid value: \r\n\t fnordcm 
-[PASS] Test <length> invalid value: \r\n\t fnordmm 
-[PASS] Test <length> invalid value: \r\n\t fnordpt 
-[PASS] Test <length> invalid value: \r\n\t fnordpc 
-[PASS] Test <length> invalid value: \r\n\t fnord% 
-[PASS] Test <length> invalid value: \r\n\t NaN   
-[PASS] Test <length> invalid value: \r\n\t NaNem   
-[PASS] Test <length> invalid value: \r\n\t NaNex   
-[PASS] Test <length> invalid value: \r\n\t NaNpx   
-[PASS] Test <length> invalid value: \r\n\t NaNin   
-[PASS] Test <length> invalid value: \r\n\t NaNcm   
-[PASS] Test <length> invalid value: \r\n\t NaNmm   
-[PASS] Test <length> invalid value: \r\n\t NaNpt   
-[PASS] Test <length> invalid value: \r\n\t NaNpc   
-[PASS] Test <length> invalid value: \r\n\t NaN%   
-[PASS] Test <length> invalid value: \r\n\t Infinity   
-[PASS] Test <length> invalid value: \r\n\t Infinityem   
-[PASS] Test <length> invalid value: \r\n\t Infinityex   
-[PASS] Test <length> invalid value: \r\n\t Infinitypx   
-[PASS] Test <length> invalid value: \r\n\t Infinityin   
-[PASS] Test <length> invalid value: \r\n\t Infinitycm   
-[PASS] Test <length> invalid value: \r\n\t Infinitymm   
-[PASS] Test <length> invalid value: \r\n\t Infinitypt   
-[PASS] Test <length> invalid value: \r\n\t Infinitypc   
-[PASS] Test <length> invalid value: \r\n\t Infinity%   
-[PASS] Test <length> invalid value: \r\n\t -Infinity   
-[PASS] Test <length> invalid value: \r\n\t -Infinityem   
-[PASS] Test <length> invalid value: \r\n\t -Infinityex   
-[PASS] Test <length> invalid value: \r\n\t -Infinitypx   
-[PASS] Test <length> invalid value: \r\n\t -Infinityin   
-[PASS] Test <length> invalid value: \r\n\t -Infinitycm   
-[PASS] Test <length> invalid value: \r\n\t -Infinitymm   
-[PASS] Test <length> invalid value: \r\n\t -Infinitypt   
-[PASS] Test <length> invalid value: \r\n\t -Infinitypc   
-[PASS] Test <length> invalid value: \r\n\t -Infinity%   
-[PASS] Test <length> invalid value: \r\n\t fnord   
-[PASS] Test <length> invalid value: \r\n\t fnordem   
-[PASS] Test <length> invalid value: \r\n\t fnordex   
-[PASS] Test <length> invalid value: \r\n\t fnordpx   
-[PASS] Test <length> invalid value: \r\n\t fnordin   
-[PASS] Test <length> invalid value: \r\n\t fnordcm   
-[PASS] Test <length> invalid value: \r\n\t fnordmm   
-[PASS] Test <length> invalid value: \r\n\t fnordpt   
-[PASS] Test <length> invalid value: \r\n\t fnordpc   
-[PASS] Test <length> invalid value: \r\n\t fnord%   
-[PASS] Test <length> invalid value: \r\n\t NaN\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t NaNem\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t NaNex\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t NaNpx\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t NaNin\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t NaNcm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t NaNmm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t NaNpt\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t NaNpc\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t NaN%\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t Infinity\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t Infinityem\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t Infinityex\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t Infinitypx\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t Infinityin\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t Infinitycm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t Infinitymm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t Infinitypt\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t Infinitypc\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t Infinity%\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -Infinity\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -Infinityem\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -Infinityex\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -Infinitypx\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -Infinityin\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -Infinitycm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -Infinitymm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -Infinitypt\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -Infinitypc\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -Infinity%\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t fnord\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t fnordem\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t fnordex\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t fnordpx\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t fnordin\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t fnordcm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t fnordmm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t fnordpt\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t fnordpc\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t fnord%\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t NaN\f
-[PASS] Test <length> invalid value: \r\n\t NaNem\f
-[PASS] Test <length> invalid value: \r\n\t NaNex\f
-[PASS] Test <length> invalid value: \r\n\t NaNpx\f
-[PASS] Test <length> invalid value: \r\n\t NaNin\f
-[PASS] Test <length> invalid value: \r\n\t NaNcm\f
-[PASS] Test <length> invalid value: \r\n\t NaNmm\f
-[PASS] Test <length> invalid value: \r\n\t NaNpt\f
-[PASS] Test <length> invalid value: \r\n\t NaNpc\f
-[PASS] Test <length> invalid value: \r\n\t NaN%\f
-[PASS] Test <length> invalid value: \r\n\t Infinity\f
-[PASS] Test <length> invalid value: \r\n\t Infinityem\f
-[PASS] Test <length> invalid value: \r\n\t Infinityex\f
-[PASS] Test <length> invalid value: \r\n\t Infinitypx\f
-[PASS] Test <length> invalid value: \r\n\t Infinityin\f
-[PASS] Test <length> invalid value: \r\n\t Infinitycm\f
-[PASS] Test <length> invalid value: \r\n\t Infinitymm\f
-[PASS] Test <length> invalid value: \r\n\t Infinitypt\f
-[PASS] Test <length> invalid value: \r\n\t Infinitypc\f
-[PASS] Test <length> invalid value: \r\n\t Infinity%\f
-[PASS] Test <length> invalid value: \r\n\t -Infinity\f
-[PASS] Test <length> invalid value: \r\n\t -Infinityem\f
-[PASS] Test <length> invalid value: \r\n\t -Infinityex\f
-[PASS] Test <length> invalid value: \r\n\t -Infinitypx\f
-[PASS] Test <length> invalid value: \r\n\t -Infinityin\f
-[PASS] Test <length> invalid value: \r\n\t -Infinitycm\f
-[PASS] Test <length> invalid value: \r\n\t -Infinitymm\f
-[PASS] Test <length> invalid value: \r\n\t -Infinitypt\f
-[PASS] Test <length> invalid value: \r\n\t -Infinitypc\f
-[PASS] Test <length> invalid value: \r\n\t -Infinity%\f
-[PASS] Test <length> invalid value: \r\n\t fnord\f
-[PASS] Test <length> invalid value: \r\n\t fnordem\f
-[PASS] Test <length> invalid value: \r\n\t fnordex\f
-[PASS] Test <length> invalid value: \r\n\t fnordpx\f
-[PASS] Test <length> invalid value: \r\n\t fnordin\f
-[PASS] Test <length> invalid value: \r\n\t fnordcm\f
-[PASS] Test <length> invalid value: \r\n\t fnordmm\f
-[PASS] Test <length> invalid value: \r\n\t fnordpt\f
-[PASS] Test <length> invalid value: \r\n\t fnordpc\f
-[PASS] Test <length> invalid value: \r\n\t fnord%\f
-[PASS] Test <length> invalid value: \fNaN
-[PASS] Test <length> invalid value: \fNaNem
-[PASS] Test <length> invalid value: \fNaNex
-[PASS] Test <length> invalid value: \fNaNpx
-[PASS] Test <length> invalid value: \fNaNin
-[PASS] Test <length> invalid value: \fNaNcm
-[PASS] Test <length> invalid value: \fNaNmm
-[PASS] Test <length> invalid value: \fNaNpt
-[PASS] Test <length> invalid value: \fNaNpc
-[PASS] Test <length> invalid value: \fNaN%
-[PASS] Test <length> invalid value: \fInfinity
-[PASS] Test <length> invalid value: \fInfinityem
-[PASS] Test <length> invalid value: \fInfinityex
-[PASS] Test <length> invalid value: \fInfinitypx
-[PASS] Test <length> invalid value: \fInfinityin
-[PASS] Test <length> invalid value: \fInfinitycm
-[PASS] Test <length> invalid value: \fInfinitymm
-[PASS] Test <length> invalid value: \fInfinitypt
-[PASS] Test <length> invalid value: \fInfinitypc
-[PASS] Test <length> invalid value: \fInfinity%
-[PASS] Test <length> invalid value: \f-Infinity
-[PASS] Test <length> invalid value: \f-Infinityem
-[PASS] Test <length> invalid value: \f-Infinityex
-[PASS] Test <length> invalid value: \f-Infinitypx
-[PASS] Test <length> invalid value: \f-Infinityin
-[PASS] Test <length> invalid value: \f-Infinitycm
-[PASS] Test <length> invalid value: \f-Infinitymm
-[PASS] Test <length> invalid value: \f-Infinitypt
-[PASS] Test <length> invalid value: \f-Infinitypc
-[PASS] Test <length> invalid value: \f-Infinity%
-[PASS] Test <length> invalid value: \ffnord
-[PASS] Test <length> invalid value: \ffnordem
-[PASS] Test <length> invalid value: \ffnordex
-[PASS] Test <length> invalid value: \ffnordpx
-[PASS] Test <length> invalid value: \ffnordin
-[PASS] Test <length> invalid value: \ffnordcm
-[PASS] Test <length> invalid value: \ffnordmm
-[PASS] Test <length> invalid value: \ffnordpt
-[PASS] Test <length> invalid value: \ffnordpc
-[PASS] Test <length> invalid value: \ffnord%
-[PASS] Test <length> invalid value: \fNaN 
-[PASS] Test <length> invalid value: \fNaNem 
-[PASS] Test <length> invalid value: \fNaNex 
-[PASS] Test <length> invalid value: \fNaNpx 
-[PASS] Test <length> invalid value: \fNaNin 
-[PASS] Test <length> invalid value: \fNaNcm 
-[PASS] Test <length> invalid value: \fNaNmm 
-[PASS] Test <length> invalid value: \fNaNpt 
-[PASS] Test <length> invalid value: \fNaNpc 
-[PASS] Test <length> invalid value: \fNaN% 
-[PASS] Test <length> invalid value: \fInfinity 
-[PASS] Test <length> invalid value: \fInfinityem 
-[PASS] Test <length> invalid value: \fInfinityex 
-[PASS] Test <length> invalid value: \fInfinitypx 
-[PASS] Test <length> invalid value: \fInfinityin 
-[PASS] Test <length> invalid value: \fInfinitycm 
-[PASS] Test <length> invalid value: \fInfinitymm 
-[PASS] Test <length> invalid value: \fInfinitypt 
-[PASS] Test <length> invalid value: \fInfinitypc 
-[PASS] Test <length> invalid value: \fInfinity% 
-[PASS] Test <length> invalid value: \f-Infinity 
-[PASS] Test <length> invalid value: \f-Infinityem 
-[PASS] Test <length> invalid value: \f-Infinityex 
-[PASS] Test <length> invalid value: \f-Infinitypx 
-[PASS] Test <length> invalid value: \f-Infinityin 
-[PASS] Test <length> invalid value: \f-Infinitycm 
-[PASS] Test <length> invalid value: \f-Infinitymm 
-[PASS] Test <length> invalid value: \f-Infinitypt 
-[PASS] Test <length> invalid value: \f-Infinitypc 
-[PASS] Test <length> invalid value: \f-Infinity% 
-[PASS] Test <length> invalid value: \ffnord 
-[PASS] Test <length> invalid value: \ffnordem 
-[PASS] Test <length> invalid value: \ffnordex 
-[PASS] Test <length> invalid value: \ffnordpx 
-[PASS] Test <length> invalid value: \ffnordin 
-[PASS] Test <length> invalid value: \ffnordcm 
-[PASS] Test <length> invalid value: \ffnordmm 
-[PASS] Test <length> invalid value: \ffnordpt 
-[PASS] Test <length> invalid value: \ffnordpc 
-[PASS] Test <length> invalid value: \ffnord% 
-[PASS] Test <length> invalid value: \fNaN   
-[PASS] Test <length> invalid value: \fNaNem   
-[PASS] Test <length> invalid value: \fNaNex   
-[PASS] Test <length> invalid value: \fNaNpx   
-[PASS] Test <length> invalid value: \fNaNin   
-[PASS] Test <length> invalid value: \fNaNcm   
-[PASS] Test <length> invalid value: \fNaNmm   
-[PASS] Test <length> invalid value: \fNaNpt   
-[PASS] Test <length> invalid value: \fNaNpc   
-[PASS] Test <length> invalid value: \fNaN%   
-[PASS] Test <length> invalid value: \fInfinity   
-[PASS] Test <length> invalid value: \fInfinityem   
-[PASS] Test <length> invalid value: \fInfinityex   
-[PASS] Test <length> invalid value: \fInfinitypx   
-[PASS] Test <length> invalid value: \fInfinityin   
-[PASS] Test <length> invalid value: \fInfinitycm   
-[PASS] Test <length> invalid value: \fInfinitymm   
-[PASS] Test <length> invalid value: \fInfinitypt   
-[PASS] Test <length> invalid value: \fInfinitypc   
-[PASS] Test <length> invalid value: \fInfinity%   
-[PASS] Test <length> invalid value: \f-Infinity   
-[PASS] Test <length> invalid value: \f-Infinityem   
-[PASS] Test <length> invalid value: \f-Infinityex   
-[PASS] Test <length> invalid value: \f-Infinitypx   
-[PASS] Test <length> invalid value: \f-Infinityin   
-[PASS] Test <length> invalid value: \f-Infinitycm   
-[PASS] Test <length> invalid value: \f-Infinitymm   
-[PASS] Test <length> invalid value: \f-Infinitypt   
-[PASS] Test <length> invalid value: \f-Infinitypc   
-[PASS] Test <length> invalid value: \f-Infinity%   
-[PASS] Test <length> invalid value: \ffnord   
-[PASS] Test <length> invalid value: \ffnordem   
-[PASS] Test <length> invalid value: \ffnordex   
-[PASS] Test <length> invalid value: \ffnordpx   
-[PASS] Test <length> invalid value: \ffnordin   
-[PASS] Test <length> invalid value: \ffnordcm   
-[PASS] Test <length> invalid value: \ffnordmm   
-[PASS] Test <length> invalid value: \ffnordpt   
-[PASS] Test <length> invalid value: \ffnordpc   
-[PASS] Test <length> invalid value: \ffnord%   
-[PASS] Test <length> invalid value: \fNaN\r\n\t 
-[PASS] Test <length> invalid value: \fNaNem\r\n\t 
-[PASS] Test <length> invalid value: \fNaNex\r\n\t 
-[PASS] Test <length> invalid value: \fNaNpx\r\n\t 
-[PASS] Test <length> invalid value: \fNaNin\r\n\t 
-[PASS] Test <length> invalid value: \fNaNcm\r\n\t 
-[PASS] Test <length> invalid value: \fNaNmm\r\n\t 
-[PASS] Test <length> invalid value: \fNaNpt\r\n\t 
-[PASS] Test <length> invalid value: \fNaNpc\r\n\t 
-[PASS] Test <length> invalid value: \fNaN%\r\n\t 
-[PASS] Test <length> invalid value: \fInfinity\r\n\t 
-[PASS] Test <length> invalid value: \fInfinityem\r\n\t 
-[PASS] Test <length> invalid value: \fInfinityex\r\n\t 
-[PASS] Test <length> invalid value: \fInfinitypx\r\n\t 
-[PASS] Test <length> invalid value: \fInfinityin\r\n\t 
-[PASS] Test <length> invalid value: \fInfinitycm\r\n\t 
-[PASS] Test <length> invalid value: \fInfinitymm\r\n\t 
-[PASS] Test <length> invalid value: \fInfinitypt\r\n\t 
-[PASS] Test <length> invalid value: \fInfinitypc\r\n\t 
-[PASS] Test <length> invalid value: \fInfinity%\r\n\t 
-[PASS] Test <length> invalid value: \f-Infinity\r\n\t 
-[PASS] Test <length> invalid value: \f-Infinityem\r\n\t 
-[PASS] Test <length> invalid value: \f-Infinityex\r\n\t 
-[PASS] Test <length> invalid value: \f-Infinitypx\r\n\t 
-[PASS] Test <length> invalid value: \f-Infinityin\r\n\t 
-[PASS] Test <length> invalid value: \f-Infinitycm\r\n\t 
-[PASS] Test <length> invalid value: \f-Infinitymm\r\n\t 
-[PASS] Test <length> invalid value: \f-Infinitypt\r\n\t 
-[PASS] Test <length> invalid value: \f-Infinitypc\r\n\t 
-[PASS] Test <length> invalid value: \f-Infinity%\r\n\t 
-[PASS] Test <length> invalid value: \ffnord\r\n\t 
-[PASS] Test <length> invalid value: \ffnordem\r\n\t 
-[PASS] Test <length> invalid value: \ffnordex\r\n\t 
-[PASS] Test <length> invalid value: \ffnordpx\r\n\t 
-[PASS] Test <length> invalid value: \ffnordin\r\n\t 
-[PASS] Test <length> invalid value: \ffnordcm\r\n\t 
-[PASS] Test <length> invalid value: \ffnordmm\r\n\t 
-[PASS] Test <length> invalid value: \ffnordpt\r\n\t 
-[PASS] Test <length> invalid value: \ffnordpc\r\n\t 
-[PASS] Test <length> invalid value: \ffnord%\r\n\t 
-[PASS] Test <length> invalid value: \fNaN\f
-[PASS] Test <length> invalid value: \fNaNem\f
-[PASS] Test <length> invalid value: \fNaNex\f
-[PASS] Test <length> invalid value: \fNaNpx\f
-[PASS] Test <length> invalid value: \fNaNin\f
-[PASS] Test <length> invalid value: \fNaNcm\f
-[PASS] Test <length> invalid value: \fNaNmm\f
-[PASS] Test <length> invalid value: \fNaNpt\f
-[PASS] Test <length> invalid value: \fNaNpc\f
-[PASS] Test <length> invalid value: \fNaN%\f
-[PASS] Test <length> invalid value: \fInfinity\f
-[PASS] Test <length> invalid value: \fInfinityem\f
-[PASS] Test <length> invalid value: \fInfinityex\f
-[PASS] Test <length> invalid value: \fInfinitypx\f
-[PASS] Test <length> invalid value: \fInfinityin\f
-[PASS] Test <length> invalid value: \fInfinitycm\f
-[PASS] Test <length> invalid value: \fInfinitymm\f
-[PASS] Test <length> invalid value: \fInfinitypt\f
-[PASS] Test <length> invalid value: \fInfinitypc\f
-[PASS] Test <length> invalid value: \fInfinity%\f
-[PASS] Test <length> invalid value: \f-Infinity\f
-[PASS] Test <length> invalid value: \f-Infinityem\f
-[PASS] Test <length> invalid value: \f-Infinityex\f
-[PASS] Test <length> invalid value: \f-Infinitypx\f
-[PASS] Test <length> invalid value: \f-Infinityin\f
-[PASS] Test <length> invalid value: \f-Infinitycm\f
-[PASS] Test <length> invalid value: \f-Infinitymm\f
-[PASS] Test <length> invalid value: \f-Infinitypt\f
-[PASS] Test <length> invalid value: \f-Infinitypc\f
-[PASS] Test <length> invalid value: \f-Infinity%\f
-[PASS] Test <length> invalid value: \ffnord\f
-[PASS] Test <length> invalid value: \ffnordem\f
-[PASS] Test <length> invalid value: \ffnordex\f
-[PASS] Test <length> invalid value: \ffnordpx\f
-[PASS] Test <length> invalid value: \ffnordin\f
-[PASS] Test <length> invalid value: \ffnordcm\f
-[PASS] Test <length> invalid value: \ffnordmm\f
-[PASS] Test <length> invalid value: \ffnordpt\f
-[PASS] Test <length> invalid value: \ffnordpc\f
-[PASS] Test <length> invalid value: \ffnord%\f
+[PASS] Test <length> invalid value:    NaN\\r\\n\\t 
+[PASS] Test <length> invalid value:    NaNem\\r\\n\\t 
+[PASS] Test <length> invalid value:    NaNex\\r\\n\\t 
+[PASS] Test <length> invalid value:    NaNpx\\r\\n\\t 
+[PASS] Test <length> invalid value:    NaNin\\r\\n\\t 
+[PASS] Test <length> invalid value:    NaNcm\\r\\n\\t 
+[PASS] Test <length> invalid value:    NaNmm\\r\\n\\t 
+[PASS] Test <length> invalid value:    NaNpt\\r\\n\\t 
+[PASS] Test <length> invalid value:    NaNpc\\r\\n\\t 
+[PASS] Test <length> invalid value:    NaN%\\r\\n\\t 
+[PASS] Test <length> invalid value:    Infinity\\r\\n\\t 
+[PASS] Test <length> invalid value:    Infinityem\\r\\n\\t 
+[PASS] Test <length> invalid value:    Infinityex\\r\\n\\t 
+[PASS] Test <length> invalid value:    Infinitypx\\r\\n\\t 
+[PASS] Test <length> invalid value:    Infinityin\\r\\n\\t 
+[PASS] Test <length> invalid value:    Infinitycm\\r\\n\\t 
+[PASS] Test <length> invalid value:    Infinitymm\\r\\n\\t 
+[PASS] Test <length> invalid value:    Infinitypt\\r\\n\\t 
+[PASS] Test <length> invalid value:    Infinitypc\\r\\n\\t 
+[PASS] Test <length> invalid value:    Infinity%\\r\\n\\t 
+[PASS] Test <length> invalid value:    -Infinity\\r\\n\\t 
+[PASS] Test <length> invalid value:    -Infinityem\\r\\n\\t 
+[PASS] Test <length> invalid value:    -Infinityex\\r\\n\\t 
+[PASS] Test <length> invalid value:    -Infinitypx\\r\\n\\t 
+[PASS] Test <length> invalid value:    -Infinityin\\r\\n\\t 
+[PASS] Test <length> invalid value:    -Infinitycm\\r\\n\\t 
+[PASS] Test <length> invalid value:    -Infinitymm\\r\\n\\t 
+[PASS] Test <length> invalid value:    -Infinitypt\\r\\n\\t 
+[PASS] Test <length> invalid value:    -Infinitypc\\r\\n\\t 
+[PASS] Test <length> invalid value:    -Infinity%\\r\\n\\t 
+[PASS] Test <length> invalid value:    fnord\\r\\n\\t 
+[PASS] Test <length> invalid value:    fnordem\\r\\n\\t 
+[PASS] Test <length> invalid value:    fnordex\\r\\n\\t 
+[PASS] Test <length> invalid value:    fnordpx\\r\\n\\t 
+[PASS] Test <length> invalid value:    fnordin\\r\\n\\t 
+[PASS] Test <length> invalid value:    fnordcm\\r\\n\\t 
+[PASS] Test <length> invalid value:    fnordmm\\r\\n\\t 
+[PASS] Test <length> invalid value:    fnordpt\\r\\n\\t 
+[PASS] Test <length> invalid value:    fnordpc\\r\\n\\t 
+[PASS] Test <length> invalid value:    fnord%\\r\\n\\t 
+[PASS] Test <length> invalid value:    NaN\\f
+[PASS] Test <length> invalid value:    NaNem\\f
+[PASS] Test <length> invalid value:    NaNex\\f
+[PASS] Test <length> invalid value:    NaNpx\\f
+[PASS] Test <length> invalid value:    NaNin\\f
+[PASS] Test <length> invalid value:    NaNcm\\f
+[PASS] Test <length> invalid value:    NaNmm\\f
+[PASS] Test <length> invalid value:    NaNpt\\f
+[PASS] Test <length> invalid value:    NaNpc\\f
+[PASS] Test <length> invalid value:    NaN%\\f
+[PASS] Test <length> invalid value:    Infinity\\f
+[PASS] Test <length> invalid value:    Infinityem\\f
+[PASS] Test <length> invalid value:    Infinityex\\f
+[PASS] Test <length> invalid value:    Infinitypx\\f
+[PASS] Test <length> invalid value:    Infinityin\\f
+[PASS] Test <length> invalid value:    Infinitycm\\f
+[PASS] Test <length> invalid value:    Infinitymm\\f
+[PASS] Test <length> invalid value:    Infinitypt\\f
+[PASS] Test <length> invalid value:    Infinitypc\\f
+[PASS] Test <length> invalid value:    Infinity%\\f
+[PASS] Test <length> invalid value:    -Infinity\\f
+[PASS] Test <length> invalid value:    -Infinityem\\f
+[PASS] Test <length> invalid value:    -Infinityex\\f
+[PASS] Test <length> invalid value:    -Infinitypx\\f
+[PASS] Test <length> invalid value:    -Infinityin\\f
+[PASS] Test <length> invalid value:    -Infinitycm\\f
+[PASS] Test <length> invalid value:    -Infinitymm\\f
+[PASS] Test <length> invalid value:    -Infinitypt\\f
+[PASS] Test <length> invalid value:    -Infinitypc\\f
+[PASS] Test <length> invalid value:    -Infinity%\\f
+[PASS] Test <length> invalid value:    fnord\\f
+[PASS] Test <length> invalid value:    fnordem\\f
+[PASS] Test <length> invalid value:    fnordex\\f
+[PASS] Test <length> invalid value:    fnordpx\\f
+[PASS] Test <length> invalid value:    fnordin\\f
+[PASS] Test <length> invalid value:    fnordcm\\f
+[PASS] Test <length> invalid value:    fnordmm\\f
+[PASS] Test <length> invalid value:    fnordpt\\f
+[PASS] Test <length> invalid value:    fnordpc\\f
+[PASS] Test <length> invalid value:    fnord%\\f
+[PASS] Test <length> invalid value: \\r\\n\\t NaN
+[PASS] Test <length> invalid value: \\r\\n\\t NaNem
+[PASS] Test <length> invalid value: \\r\\n\\t NaNex
+[PASS] Test <length> invalid value: \\r\\n\\t NaNpx
+[PASS] Test <length> invalid value: \\r\\n\\t NaNin
+[PASS] Test <length> invalid value: \\r\\n\\t NaNcm
+[PASS] Test <length> invalid value: \\r\\n\\t NaNmm
+[PASS] Test <length> invalid value: \\r\\n\\t NaNpt
+[PASS] Test <length> invalid value: \\r\\n\\t NaNpc
+[PASS] Test <length> invalid value: \\r\\n\\t NaN%
+[PASS] Test <length> invalid value: \\r\\n\\t Infinity
+[PASS] Test <length> invalid value: \\r\\n\\t Infinityem
+[PASS] Test <length> invalid value: \\r\\n\\t Infinityex
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitypx
+[PASS] Test <length> invalid value: \\r\\n\\t Infinityin
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitycm
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitymm
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitypt
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitypc
+[PASS] Test <length> invalid value: \\r\\n\\t Infinity%
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinity
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinityem
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinityex
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitypx
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinityin
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitycm
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitymm
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitypt
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitypc
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinity%
+[PASS] Test <length> invalid value: \\r\\n\\t fnord
+[PASS] Test <length> invalid value: \\r\\n\\t fnordem
+[PASS] Test <length> invalid value: \\r\\n\\t fnordex
+[PASS] Test <length> invalid value: \\r\\n\\t fnordpx
+[PASS] Test <length> invalid value: \\r\\n\\t fnordin
+[PASS] Test <length> invalid value: \\r\\n\\t fnordcm
+[PASS] Test <length> invalid value: \\r\\n\\t fnordmm
+[PASS] Test <length> invalid value: \\r\\n\\t fnordpt
+[PASS] Test <length> invalid value: \\r\\n\\t fnordpc
+[PASS] Test <length> invalid value: \\r\\n\\t fnord%
+[PASS] Test <length> invalid value: \\r\\n\\t NaN 
+[PASS] Test <length> invalid value: \\r\\n\\t NaNem 
+[PASS] Test <length> invalid value: \\r\\n\\t NaNex 
+[PASS] Test <length> invalid value: \\r\\n\\t NaNpx 
+[PASS] Test <length> invalid value: \\r\\n\\t NaNin 
+[PASS] Test <length> invalid value: \\r\\n\\t NaNcm 
+[PASS] Test <length> invalid value: \\r\\n\\t NaNmm 
+[PASS] Test <length> invalid value: \\r\\n\\t NaNpt 
+[PASS] Test <length> invalid value: \\r\\n\\t NaNpc 
+[PASS] Test <length> invalid value: \\r\\n\\t NaN% 
+[PASS] Test <length> invalid value: \\r\\n\\t Infinity 
+[PASS] Test <length> invalid value: \\r\\n\\t Infinityem 
+[PASS] Test <length> invalid value: \\r\\n\\t Infinityex 
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitypx 
+[PASS] Test <length> invalid value: \\r\\n\\t Infinityin 
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitycm 
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitymm 
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitypt 
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitypc 
+[PASS] Test <length> invalid value: \\r\\n\\t Infinity% 
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinity 
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinityem 
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinityex 
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitypx 
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinityin 
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitycm 
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitymm 
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitypt 
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitypc 
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinity% 
+[PASS] Test <length> invalid value: \\r\\n\\t fnord 
+[PASS] Test <length> invalid value: \\r\\n\\t fnordem 
+[PASS] Test <length> invalid value: \\r\\n\\t fnordex 
+[PASS] Test <length> invalid value: \\r\\n\\t fnordpx 
+[PASS] Test <length> invalid value: \\r\\n\\t fnordin 
+[PASS] Test <length> invalid value: \\r\\n\\t fnordcm 
+[PASS] Test <length> invalid value: \\r\\n\\t fnordmm 
+[PASS] Test <length> invalid value: \\r\\n\\t fnordpt 
+[PASS] Test <length> invalid value: \\r\\n\\t fnordpc 
+[PASS] Test <length> invalid value: \\r\\n\\t fnord% 
+[PASS] Test <length> invalid value: \\r\\n\\t NaN   
+[PASS] Test <length> invalid value: \\r\\n\\t NaNem   
+[PASS] Test <length> invalid value: \\r\\n\\t NaNex   
+[PASS] Test <length> invalid value: \\r\\n\\t NaNpx   
+[PASS] Test <length> invalid value: \\r\\n\\t NaNin   
+[PASS] Test <length> invalid value: \\r\\n\\t NaNcm   
+[PASS] Test <length> invalid value: \\r\\n\\t NaNmm   
+[PASS] Test <length> invalid value: \\r\\n\\t NaNpt   
+[PASS] Test <length> invalid value: \\r\\n\\t NaNpc   
+[PASS] Test <length> invalid value: \\r\\n\\t NaN%   
+[PASS] Test <length> invalid value: \\r\\n\\t Infinity   
+[PASS] Test <length> invalid value: \\r\\n\\t Infinityem   
+[PASS] Test <length> invalid value: \\r\\n\\t Infinityex   
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitypx   
+[PASS] Test <length> invalid value: \\r\\n\\t Infinityin   
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitycm   
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitymm   
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitypt   
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitypc   
+[PASS] Test <length> invalid value: \\r\\n\\t Infinity%   
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinity   
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinityem   
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinityex   
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitypx   
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinityin   
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitycm   
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitymm   
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitypt   
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitypc   
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinity%   
+[PASS] Test <length> invalid value: \\r\\n\\t fnord   
+[PASS] Test <length> invalid value: \\r\\n\\t fnordem   
+[PASS] Test <length> invalid value: \\r\\n\\t fnordex   
+[PASS] Test <length> invalid value: \\r\\n\\t fnordpx   
+[PASS] Test <length> invalid value: \\r\\n\\t fnordin   
+[PASS] Test <length> invalid value: \\r\\n\\t fnordcm   
+[PASS] Test <length> invalid value: \\r\\n\\t fnordmm   
+[PASS] Test <length> invalid value: \\r\\n\\t fnordpt   
+[PASS] Test <length> invalid value: \\r\\n\\t fnordpc   
+[PASS] Test <length> invalid value: \\r\\n\\t fnord%   
+[PASS] Test <length> invalid value: \\r\\n\\t NaN\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t NaNem\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t NaNex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t NaNpx\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t NaNin\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t NaNcm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t NaNmm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t NaNpt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t NaNpc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t NaN%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t Infinity\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t Infinityem\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t Infinityex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitypx\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t Infinityin\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitycm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitymm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitypt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitypc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t Infinity%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinity\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinityem\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinityex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitypx\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinityin\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitycm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitymm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitypt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitypc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinity%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t fnord\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t fnordem\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t fnordex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t fnordpx\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t fnordin\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t fnordcm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t fnordmm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t fnordpt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t fnordpc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t fnord%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t NaN\\f
+[PASS] Test <length> invalid value: \\r\\n\\t NaNem\\f
+[PASS] Test <length> invalid value: \\r\\n\\t NaNex\\f
+[PASS] Test <length> invalid value: \\r\\n\\t NaNpx\\f
+[PASS] Test <length> invalid value: \\r\\n\\t NaNin\\f
+[PASS] Test <length> invalid value: \\r\\n\\t NaNcm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t NaNmm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t NaNpt\\f
+[PASS] Test <length> invalid value: \\r\\n\\t NaNpc\\f
+[PASS] Test <length> invalid value: \\r\\n\\t NaN%\\f
+[PASS] Test <length> invalid value: \\r\\n\\t Infinity\\f
+[PASS] Test <length> invalid value: \\r\\n\\t Infinityem\\f
+[PASS] Test <length> invalid value: \\r\\n\\t Infinityex\\f
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitypx\\f
+[PASS] Test <length> invalid value: \\r\\n\\t Infinityin\\f
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitycm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitymm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitypt\\f
+[PASS] Test <length> invalid value: \\r\\n\\t Infinitypc\\f
+[PASS] Test <length> invalid value: \\r\\n\\t Infinity%\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinity\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinityem\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinityex\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitypx\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinityin\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitycm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitymm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitypt\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinitypc\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -Infinity%\\f
+[PASS] Test <length> invalid value: \\r\\n\\t fnord\\f
+[PASS] Test <length> invalid value: \\r\\n\\t fnordem\\f
+[PASS] Test <length> invalid value: \\r\\n\\t fnordex\\f
+[PASS] Test <length> invalid value: \\r\\n\\t fnordpx\\f
+[PASS] Test <length> invalid value: \\r\\n\\t fnordin\\f
+[PASS] Test <length> invalid value: \\r\\n\\t fnordcm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t fnordmm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t fnordpt\\f
+[PASS] Test <length> invalid value: \\r\\n\\t fnordpc\\f
+[PASS] Test <length> invalid value: \\r\\n\\t fnord%\\f
+[PASS] Test <length> invalid value: \\fNaN
+[PASS] Test <length> invalid value: \\fNaNem
+[PASS] Test <length> invalid value: \\fNaNex
+[PASS] Test <length> invalid value: \\fNaNpx
+[PASS] Test <length> invalid value: \\fNaNin
+[PASS] Test <length> invalid value: \\fNaNcm
+[PASS] Test <length> invalid value: \\fNaNmm
+[PASS] Test <length> invalid value: \\fNaNpt
+[PASS] Test <length> invalid value: \\fNaNpc
+[PASS] Test <length> invalid value: \\fNaN%
+[PASS] Test <length> invalid value: \\fInfinity
+[PASS] Test <length> invalid value: \\fInfinityem
+[PASS] Test <length> invalid value: \\fInfinityex
+[PASS] Test <length> invalid value: \\fInfinitypx
+[PASS] Test <length> invalid value: \\fInfinityin
+[PASS] Test <length> invalid value: \\fInfinitycm
+[PASS] Test <length> invalid value: \\fInfinitymm
+[PASS] Test <length> invalid value: \\fInfinitypt
+[PASS] Test <length> invalid value: \\fInfinitypc
+[PASS] Test <length> invalid value: \\fInfinity%
+[PASS] Test <length> invalid value: \\f-Infinity
+[PASS] Test <length> invalid value: \\f-Infinityem
+[PASS] Test <length> invalid value: \\f-Infinityex
+[PASS] Test <length> invalid value: \\f-Infinitypx
+[PASS] Test <length> invalid value: \\f-Infinityin
+[PASS] Test <length> invalid value: \\f-Infinitycm
+[PASS] Test <length> invalid value: \\f-Infinitymm
+[PASS] Test <length> invalid value: \\f-Infinitypt
+[PASS] Test <length> invalid value: \\f-Infinitypc
+[PASS] Test <length> invalid value: \\f-Infinity%
+[PASS] Test <length> invalid value: \\ffnord
+[PASS] Test <length> invalid value: \\ffnordem
+[PASS] Test <length> invalid value: \\ffnordex
+[PASS] Test <length> invalid value: \\ffnordpx
+[PASS] Test <length> invalid value: \\ffnordin
+[PASS] Test <length> invalid value: \\ffnordcm
+[PASS] Test <length> invalid value: \\ffnordmm
+[PASS] Test <length> invalid value: \\ffnordpt
+[PASS] Test <length> invalid value: \\ffnordpc
+[PASS] Test <length> invalid value: \\ffnord%
+[PASS] Test <length> invalid value: \\fNaN 
+[PASS] Test <length> invalid value: \\fNaNem 
+[PASS] Test <length> invalid value: \\fNaNex 
+[PASS] Test <length> invalid value: \\fNaNpx 
+[PASS] Test <length> invalid value: \\fNaNin 
+[PASS] Test <length> invalid value: \\fNaNcm 
+[PASS] Test <length> invalid value: \\fNaNmm 
+[PASS] Test <length> invalid value: \\fNaNpt 
+[PASS] Test <length> invalid value: \\fNaNpc 
+[PASS] Test <length> invalid value: \\fNaN% 
+[PASS] Test <length> invalid value: \\fInfinity 
+[PASS] Test <length> invalid value: \\fInfinityem 
+[PASS] Test <length> invalid value: \\fInfinityex 
+[PASS] Test <length> invalid value: \\fInfinitypx 
+[PASS] Test <length> invalid value: \\fInfinityin 
+[PASS] Test <length> invalid value: \\fInfinitycm 
+[PASS] Test <length> invalid value: \\fInfinitymm 
+[PASS] Test <length> invalid value: \\fInfinitypt 
+[PASS] Test <length> invalid value: \\fInfinitypc 
+[PASS] Test <length> invalid value: \\fInfinity% 
+[PASS] Test <length> invalid value: \\f-Infinity 
+[PASS] Test <length> invalid value: \\f-Infinityem 
+[PASS] Test <length> invalid value: \\f-Infinityex 
+[PASS] Test <length> invalid value: \\f-Infinitypx 
+[PASS] Test <length> invalid value: \\f-Infinityin 
+[PASS] Test <length> invalid value: \\f-Infinitycm 
+[PASS] Test <length> invalid value: \\f-Infinitymm 
+[PASS] Test <length> invalid value: \\f-Infinitypt 
+[PASS] Test <length> invalid value: \\f-Infinitypc 
+[PASS] Test <length> invalid value: \\f-Infinity% 
+[PASS] Test <length> invalid value: \\ffnord 
+[PASS] Test <length> invalid value: \\ffnordem 
+[PASS] Test <length> invalid value: \\ffnordex 
+[PASS] Test <length> invalid value: \\ffnordpx 
+[PASS] Test <length> invalid value: \\ffnordin 
+[PASS] Test <length> invalid value: \\ffnordcm 
+[PASS] Test <length> invalid value: \\ffnordmm 
+[PASS] Test <length> invalid value: \\ffnordpt 
+[PASS] Test <length> invalid value: \\ffnordpc 
+[PASS] Test <length> invalid value: \\ffnord% 
+[PASS] Test <length> invalid value: \\fNaN   
+[PASS] Test <length> invalid value: \\fNaNem   
+[PASS] Test <length> invalid value: \\fNaNex   
+[PASS] Test <length> invalid value: \\fNaNpx   
+[PASS] Test <length> invalid value: \\fNaNin   
+[PASS] Test <length> invalid value: \\fNaNcm   
+[PASS] Test <length> invalid value: \\fNaNmm   
+[PASS] Test <length> invalid value: \\fNaNpt   
+[PASS] Test <length> invalid value: \\fNaNpc   
+[PASS] Test <length> invalid value: \\fNaN%   
+[PASS] Test <length> invalid value: \\fInfinity   
+[PASS] Test <length> invalid value: \\fInfinityem   
+[PASS] Test <length> invalid value: \\fInfinityex   
+[PASS] Test <length> invalid value: \\fInfinitypx   
+[PASS] Test <length> invalid value: \\fInfinityin   
+[PASS] Test <length> invalid value: \\fInfinitycm   
+[PASS] Test <length> invalid value: \\fInfinitymm   
+[PASS] Test <length> invalid value: \\fInfinitypt   
+[PASS] Test <length> invalid value: \\fInfinitypc   
+[PASS] Test <length> invalid value: \\fInfinity%   
+[PASS] Test <length> invalid value: \\f-Infinity   
+[PASS] Test <length> invalid value: \\f-Infinityem   
+[PASS] Test <length> invalid value: \\f-Infinityex   
+[PASS] Test <length> invalid value: \\f-Infinitypx   
+[PASS] Test <length> invalid value: \\f-Infinityin   
+[PASS] Test <length> invalid value: \\f-Infinitycm   
+[PASS] Test <length> invalid value: \\f-Infinitymm   
+[PASS] Test <length> invalid value: \\f-Infinitypt   
+[PASS] Test <length> invalid value: \\f-Infinitypc   
+[PASS] Test <length> invalid value: \\f-Infinity%   
+[PASS] Test <length> invalid value: \\ffnord   
+[PASS] Test <length> invalid value: \\ffnordem   
+[PASS] Test <length> invalid value: \\ffnordex   
+[PASS] Test <length> invalid value: \\ffnordpx   
+[PASS] Test <length> invalid value: \\ffnordin   
+[PASS] Test <length> invalid value: \\ffnordcm   
+[PASS] Test <length> invalid value: \\ffnordmm   
+[PASS] Test <length> invalid value: \\ffnordpt   
+[PASS] Test <length> invalid value: \\ffnordpc   
+[PASS] Test <length> invalid value: \\ffnord%   
+[PASS] Test <length> invalid value: \\fNaN\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fNaNem\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fNaNex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fNaNpx\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fNaNin\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fNaNcm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fNaNmm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fNaNpt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fNaNpc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fNaN%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fInfinity\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fInfinityem\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fInfinityex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fInfinitypx\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fInfinityin\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fInfinitycm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fInfinitymm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fInfinitypt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fInfinitypc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fInfinity%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-Infinity\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-Infinityem\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-Infinityex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-Infinitypx\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-Infinityin\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-Infinitycm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-Infinitymm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-Infinitypt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-Infinitypc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-Infinity%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\ffnord\\r\\n\\t 
+[PASS] Test <length> invalid value: \\ffnordem\\r\\n\\t 
+[PASS] Test <length> invalid value: \\ffnordex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\ffnordpx\\r\\n\\t 
+[PASS] Test <length> invalid value: \\ffnordin\\r\\n\\t 
+[PASS] Test <length> invalid value: \\ffnordcm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\ffnordmm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\ffnordpt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\ffnordpc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\ffnord%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fNaN\\f
+[PASS] Test <length> invalid value: \\fNaNem\\f
+[PASS] Test <length> invalid value: \\fNaNex\\f
+[PASS] Test <length> invalid value: \\fNaNpx\\f
+[PASS] Test <length> invalid value: \\fNaNin\\f
+[PASS] Test <length> invalid value: \\fNaNcm\\f
+[PASS] Test <length> invalid value: \\fNaNmm\\f
+[PASS] Test <length> invalid value: \\fNaNpt\\f
+[PASS] Test <length> invalid value: \\fNaNpc\\f
+[PASS] Test <length> invalid value: \\fNaN%\\f
+[PASS] Test <length> invalid value: \\fInfinity\\f
+[PASS] Test <length> invalid value: \\fInfinityem\\f
+[PASS] Test <length> invalid value: \\fInfinityex\\f
+[PASS] Test <length> invalid value: \\fInfinitypx\\f
+[PASS] Test <length> invalid value: \\fInfinityin\\f
+[PASS] Test <length> invalid value: \\fInfinitycm\\f
+[PASS] Test <length> invalid value: \\fInfinitymm\\f
+[PASS] Test <length> invalid value: \\fInfinitypt\\f
+[PASS] Test <length> invalid value: \\fInfinitypc\\f
+[PASS] Test <length> invalid value: \\fInfinity%\\f
+[PASS] Test <length> invalid value: \\f-Infinity\\f
+[PASS] Test <length> invalid value: \\f-Infinityem\\f
+[PASS] Test <length> invalid value: \\f-Infinityex\\f
+[PASS] Test <length> invalid value: \\f-Infinitypx\\f
+[PASS] Test <length> invalid value: \\f-Infinityin\\f
+[PASS] Test <length> invalid value: \\f-Infinitycm\\f
+[PASS] Test <length> invalid value: \\f-Infinitymm\\f
+[PASS] Test <length> invalid value: \\f-Infinitypt\\f
+[PASS] Test <length> invalid value: \\f-Infinitypc\\f
+[PASS] Test <length> invalid value: \\f-Infinity%\\f
+[PASS] Test <length> invalid value: \\ffnord\\f
+[PASS] Test <length> invalid value: \\ffnordem\\f
+[PASS] Test <length> invalid value: \\ffnordex\\f
+[PASS] Test <length> invalid value: \\ffnordpx\\f
+[PASS] Test <length> invalid value: \\ffnordin\\f
+[PASS] Test <length> invalid value: \\ffnordcm\\f
+[PASS] Test <length> invalid value: \\ffnordmm\\f
+[PASS] Test <length> invalid value: \\ffnordpt\\f
+[PASS] Test <length> invalid value: \\ffnordpc\\f
+[PASS] Test <length> invalid value: \\ffnord%\\f
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/svg/parser/whitespace-length-invalid-2-expected.txt b/third_party/blink/web_tests/svg/parser/whitespace-length-invalid-2-expected.txt
index 376a8d0..0aec4940 100644
--- a/third_party/blink/web_tests/svg/parser/whitespace-length-invalid-2-expected.txt
+++ b/third_party/blink/web_tests/svg/parser/whitespace-length-invalid-2-expected.txt
@@ -1119,86 +1119,86 @@
 [PASS] Test <length> invalid value: E-pt   
 [PASS] Test <length> invalid value: E-pc   
 [PASS] Test <length> invalid value: E-%   
-[PASS] Test <length> invalid value: E\r\n\t 
-[PASS] Test <length> invalid value: Eem\r\n\t 
-[PASS] Test <length> invalid value: Eex\r\n\t 
-[PASS] Test <length> invalid value: Epx\r\n\t 
-[PASS] Test <length> invalid value: Ein\r\n\t 
-[PASS] Test <length> invalid value: Ecm\r\n\t 
-[PASS] Test <length> invalid value: Emm\r\n\t 
-[PASS] Test <length> invalid value: Ept\r\n\t 
-[PASS] Test <length> invalid value: Epc\r\n\t 
-[PASS] Test <length> invalid value: E%\r\n\t 
-[PASS] Test <length> invalid value: e\r\n\t 
-[PASS] Test <length> invalid value: eem\r\n\t 
-[PASS] Test <length> invalid value: eex\r\n\t 
-[PASS] Test <length> invalid value: epx\r\n\t 
-[PASS] Test <length> invalid value: ein\r\n\t 
-[PASS] Test <length> invalid value: ecm\r\n\t 
-[PASS] Test <length> invalid value: emm\r\n\t 
-[PASS] Test <length> invalid value: ept\r\n\t 
-[PASS] Test <length> invalid value: epc\r\n\t 
-[PASS] Test <length> invalid value: e%\r\n\t 
-[PASS] Test <length> invalid value: e+\r\n\t 
-[PASS] Test <length> invalid value: e+em\r\n\t 
-[PASS] Test <length> invalid value: e+ex\r\n\t 
-[PASS] Test <length> invalid value: e+px\r\n\t 
-[PASS] Test <length> invalid value: e+in\r\n\t 
-[PASS] Test <length> invalid value: e+cm\r\n\t 
-[PASS] Test <length> invalid value: e+mm\r\n\t 
-[PASS] Test <length> invalid value: e+pt\r\n\t 
-[PASS] Test <length> invalid value: e+pc\r\n\t 
-[PASS] Test <length> invalid value: e+%\r\n\t 
-[PASS] Test <length> invalid value: E-\r\n\t 
-[PASS] Test <length> invalid value: E-em\r\n\t 
-[PASS] Test <length> invalid value: E-ex\r\n\t 
-[PASS] Test <length> invalid value: E-px\r\n\t 
-[PASS] Test <length> invalid value: E-in\r\n\t 
-[PASS] Test <length> invalid value: E-cm\r\n\t 
-[PASS] Test <length> invalid value: E-mm\r\n\t 
-[PASS] Test <length> invalid value: E-pt\r\n\t 
-[PASS] Test <length> invalid value: E-pc\r\n\t 
-[PASS] Test <length> invalid value: E-%\r\n\t 
-[PASS] Test <length> invalid value: E\f
-[PASS] Test <length> invalid value: Eem\f
-[PASS] Test <length> invalid value: Eex\f
-[PASS] Test <length> invalid value: Epx\f
-[PASS] Test <length> invalid value: Ein\f
-[PASS] Test <length> invalid value: Ecm\f
-[PASS] Test <length> invalid value: Emm\f
-[PASS] Test <length> invalid value: Ept\f
-[PASS] Test <length> invalid value: Epc\f
-[PASS] Test <length> invalid value: E%\f
-[PASS] Test <length> invalid value: e\f
-[PASS] Test <length> invalid value: eem\f
-[PASS] Test <length> invalid value: eex\f
-[PASS] Test <length> invalid value: epx\f
-[PASS] Test <length> invalid value: ein\f
-[PASS] Test <length> invalid value: ecm\f
-[PASS] Test <length> invalid value: emm\f
-[PASS] Test <length> invalid value: ept\f
-[PASS] Test <length> invalid value: epc\f
-[PASS] Test <length> invalid value: e%\f
-[PASS] Test <length> invalid value: e+\f
-[PASS] Test <length> invalid value: e+em\f
-[PASS] Test <length> invalid value: e+ex\f
-[PASS] Test <length> invalid value: e+px\f
-[PASS] Test <length> invalid value: e+in\f
-[PASS] Test <length> invalid value: e+cm\f
-[PASS] Test <length> invalid value: e+mm\f
-[PASS] Test <length> invalid value: e+pt\f
-[PASS] Test <length> invalid value: e+pc\f
-[PASS] Test <length> invalid value: e+%\f
-[PASS] Test <length> invalid value: E-\f
-[PASS] Test <length> invalid value: E-em\f
-[PASS] Test <length> invalid value: E-ex\f
-[PASS] Test <length> invalid value: E-px\f
-[PASS] Test <length> invalid value: E-in\f
-[PASS] Test <length> invalid value: E-cm\f
-[PASS] Test <length> invalid value: E-mm\f
-[PASS] Test <length> invalid value: E-pt\f
-[PASS] Test <length> invalid value: E-pc\f
-[PASS] Test <length> invalid value: E-%\f
+[PASS] Test <length> invalid value: E\\r\\n\\t 
+[PASS] Test <length> invalid value: Eem\\r\\n\\t 
+[PASS] Test <length> invalid value: Eex\\r\\n\\t 
+[PASS] Test <length> invalid value: Epx\\r\\n\\t 
+[PASS] Test <length> invalid value: Ein\\r\\n\\t 
+[PASS] Test <length> invalid value: Ecm\\r\\n\\t 
+[PASS] Test <length> invalid value: Emm\\r\\n\\t 
+[PASS] Test <length> invalid value: Ept\\r\\n\\t 
+[PASS] Test <length> invalid value: Epc\\r\\n\\t 
+[PASS] Test <length> invalid value: E%\\r\\n\\t 
+[PASS] Test <length> invalid value: e\\r\\n\\t 
+[PASS] Test <length> invalid value: eem\\r\\n\\t 
+[PASS] Test <length> invalid value: eex\\r\\n\\t 
+[PASS] Test <length> invalid value: epx\\r\\n\\t 
+[PASS] Test <length> invalid value: ein\\r\\n\\t 
+[PASS] Test <length> invalid value: ecm\\r\\n\\t 
+[PASS] Test <length> invalid value: emm\\r\\n\\t 
+[PASS] Test <length> invalid value: ept\\r\\n\\t 
+[PASS] Test <length> invalid value: epc\\r\\n\\t 
+[PASS] Test <length> invalid value: e%\\r\\n\\t 
+[PASS] Test <length> invalid value: e+\\r\\n\\t 
+[PASS] Test <length> invalid value: e+em\\r\\n\\t 
+[PASS] Test <length> invalid value: e+ex\\r\\n\\t 
+[PASS] Test <length> invalid value: e+px\\r\\n\\t 
+[PASS] Test <length> invalid value: e+in\\r\\n\\t 
+[PASS] Test <length> invalid value: e+cm\\r\\n\\t 
+[PASS] Test <length> invalid value: e+mm\\r\\n\\t 
+[PASS] Test <length> invalid value: e+pt\\r\\n\\t 
+[PASS] Test <length> invalid value: e+pc\\r\\n\\t 
+[PASS] Test <length> invalid value: e+%\\r\\n\\t 
+[PASS] Test <length> invalid value: E-\\r\\n\\t 
+[PASS] Test <length> invalid value: E-em\\r\\n\\t 
+[PASS] Test <length> invalid value: E-ex\\r\\n\\t 
+[PASS] Test <length> invalid value: E-px\\r\\n\\t 
+[PASS] Test <length> invalid value: E-in\\r\\n\\t 
+[PASS] Test <length> invalid value: E-cm\\r\\n\\t 
+[PASS] Test <length> invalid value: E-mm\\r\\n\\t 
+[PASS] Test <length> invalid value: E-pt\\r\\n\\t 
+[PASS] Test <length> invalid value: E-pc\\r\\n\\t 
+[PASS] Test <length> invalid value: E-%\\r\\n\\t 
+[PASS] Test <length> invalid value: E\\f
+[PASS] Test <length> invalid value: Eem\\f
+[PASS] Test <length> invalid value: Eex\\f
+[PASS] Test <length> invalid value: Epx\\f
+[PASS] Test <length> invalid value: Ein\\f
+[PASS] Test <length> invalid value: Ecm\\f
+[PASS] Test <length> invalid value: Emm\\f
+[PASS] Test <length> invalid value: Ept\\f
+[PASS] Test <length> invalid value: Epc\\f
+[PASS] Test <length> invalid value: E%\\f
+[PASS] Test <length> invalid value: e\\f
+[PASS] Test <length> invalid value: eem\\f
+[PASS] Test <length> invalid value: eex\\f
+[PASS] Test <length> invalid value: epx\\f
+[PASS] Test <length> invalid value: ein\\f
+[PASS] Test <length> invalid value: ecm\\f
+[PASS] Test <length> invalid value: emm\\f
+[PASS] Test <length> invalid value: ept\\f
+[PASS] Test <length> invalid value: epc\\f
+[PASS] Test <length> invalid value: e%\\f
+[PASS] Test <length> invalid value: e+\\f
+[PASS] Test <length> invalid value: e+em\\f
+[PASS] Test <length> invalid value: e+ex\\f
+[PASS] Test <length> invalid value: e+px\\f
+[PASS] Test <length> invalid value: e+in\\f
+[PASS] Test <length> invalid value: e+cm\\f
+[PASS] Test <length> invalid value: e+mm\\f
+[PASS] Test <length> invalid value: e+pt\\f
+[PASS] Test <length> invalid value: e+pc\\f
+[PASS] Test <length> invalid value: e+%\\f
+[PASS] Test <length> invalid value: E-\\f
+[PASS] Test <length> invalid value: E-em\\f
+[PASS] Test <length> invalid value: E-ex\\f
+[PASS] Test <length> invalid value: E-px\\f
+[PASS] Test <length> invalid value: E-in\\f
+[PASS] Test <length> invalid value: E-cm\\f
+[PASS] Test <length> invalid value: E-mm\\f
+[PASS] Test <length> invalid value: E-pt\\f
+[PASS] Test <length> invalid value: E-pc\\f
+[PASS] Test <length> invalid value: E-%\\f
 [PASS] Test <length> invalid value:  E
 [PASS] Test <length> invalid value:  Eem
 [PASS] Test <length> invalid value:  Eex
@@ -1319,86 +1319,86 @@
 [PASS] Test <length> invalid value:  E-pt   
 [PASS] Test <length> invalid value:  E-pc   
 [PASS] Test <length> invalid value:  E-%   
-[PASS] Test <length> invalid value:  E\r\n\t 
-[PASS] Test <length> invalid value:  Eem\r\n\t 
-[PASS] Test <length> invalid value:  Eex\r\n\t 
-[PASS] Test <length> invalid value:  Epx\r\n\t 
-[PASS] Test <length> invalid value:  Ein\r\n\t 
-[PASS] Test <length> invalid value:  Ecm\r\n\t 
-[PASS] Test <length> invalid value:  Emm\r\n\t 
-[PASS] Test <length> invalid value:  Ept\r\n\t 
-[PASS] Test <length> invalid value:  Epc\r\n\t 
-[PASS] Test <length> invalid value:  E%\r\n\t 
-[PASS] Test <length> invalid value:  e\r\n\t 
-[PASS] Test <length> invalid value:  eem\r\n\t 
-[PASS] Test <length> invalid value:  eex\r\n\t 
-[PASS] Test <length> invalid value:  epx\r\n\t 
-[PASS] Test <length> invalid value:  ein\r\n\t 
-[PASS] Test <length> invalid value:  ecm\r\n\t 
-[PASS] Test <length> invalid value:  emm\r\n\t 
-[PASS] Test <length> invalid value:  ept\r\n\t 
-[PASS] Test <length> invalid value:  epc\r\n\t 
-[PASS] Test <length> invalid value:  e%\r\n\t 
-[PASS] Test <length> invalid value:  e+\r\n\t 
-[PASS] Test <length> invalid value:  e+em\r\n\t 
-[PASS] Test <length> invalid value:  e+ex\r\n\t 
-[PASS] Test <length> invalid value:  e+px\r\n\t 
-[PASS] Test <length> invalid value:  e+in\r\n\t 
-[PASS] Test <length> invalid value:  e+cm\r\n\t 
-[PASS] Test <length> invalid value:  e+mm\r\n\t 
-[PASS] Test <length> invalid value:  e+pt\r\n\t 
-[PASS] Test <length> invalid value:  e+pc\r\n\t 
-[PASS] Test <length> invalid value:  e+%\r\n\t 
-[PASS] Test <length> invalid value:  E-\r\n\t 
-[PASS] Test <length> invalid value:  E-em\r\n\t 
-[PASS] Test <length> invalid value:  E-ex\r\n\t 
-[PASS] Test <length> invalid value:  E-px\r\n\t 
-[PASS] Test <length> invalid value:  E-in\r\n\t 
-[PASS] Test <length> invalid value:  E-cm\r\n\t 
-[PASS] Test <length> invalid value:  E-mm\r\n\t 
-[PASS] Test <length> invalid value:  E-pt\r\n\t 
-[PASS] Test <length> invalid value:  E-pc\r\n\t 
-[PASS] Test <length> invalid value:  E-%\r\n\t 
-[PASS] Test <length> invalid value:  E\f
-[PASS] Test <length> invalid value:  Eem\f
-[PASS] Test <length> invalid value:  Eex\f
-[PASS] Test <length> invalid value:  Epx\f
-[PASS] Test <length> invalid value:  Ein\f
-[PASS] Test <length> invalid value:  Ecm\f
-[PASS] Test <length> invalid value:  Emm\f
-[PASS] Test <length> invalid value:  Ept\f
-[PASS] Test <length> invalid value:  Epc\f
-[PASS] Test <length> invalid value:  E%\f
-[PASS] Test <length> invalid value:  e\f
-[PASS] Test <length> invalid value:  eem\f
-[PASS] Test <length> invalid value:  eex\f
-[PASS] Test <length> invalid value:  epx\f
-[PASS] Test <length> invalid value:  ein\f
-[PASS] Test <length> invalid value:  ecm\f
-[PASS] Test <length> invalid value:  emm\f
-[PASS] Test <length> invalid value:  ept\f
-[PASS] Test <length> invalid value:  epc\f
-[PASS] Test <length> invalid value:  e%\f
-[PASS] Test <length> invalid value:  e+\f
-[PASS] Test <length> invalid value:  e+em\f
-[PASS] Test <length> invalid value:  e+ex\f
-[PASS] Test <length> invalid value:  e+px\f
-[PASS] Test <length> invalid value:  e+in\f
-[PASS] Test <length> invalid value:  e+cm\f
-[PASS] Test <length> invalid value:  e+mm\f
-[PASS] Test <length> invalid value:  e+pt\f
-[PASS] Test <length> invalid value:  e+pc\f
-[PASS] Test <length> invalid value:  e+%\f
-[PASS] Test <length> invalid value:  E-\f
-[PASS] Test <length> invalid value:  E-em\f
-[PASS] Test <length> invalid value:  E-ex\f
-[PASS] Test <length> invalid value:  E-px\f
-[PASS] Test <length> invalid value:  E-in\f
-[PASS] Test <length> invalid value:  E-cm\f
-[PASS] Test <length> invalid value:  E-mm\f
-[PASS] Test <length> invalid value:  E-pt\f
-[PASS] Test <length> invalid value:  E-pc\f
-[PASS] Test <length> invalid value:  E-%\f
+[PASS] Test <length> invalid value:  E\\r\\n\\t 
+[PASS] Test <length> invalid value:  Eem\\r\\n\\t 
+[PASS] Test <length> invalid value:  Eex\\r\\n\\t 
+[PASS] Test <length> invalid value:  Epx\\r\\n\\t 
+[PASS] Test <length> invalid value:  Ein\\r\\n\\t 
+[PASS] Test <length> invalid value:  Ecm\\r\\n\\t 
+[PASS] Test <length> invalid value:  Emm\\r\\n\\t 
+[PASS] Test <length> invalid value:  Ept\\r\\n\\t 
+[PASS] Test <length> invalid value:  Epc\\r\\n\\t 
+[PASS] Test <length> invalid value:  E%\\r\\n\\t 
+[PASS] Test <length> invalid value:  e\\r\\n\\t 
+[PASS] Test <length> invalid value:  eem\\r\\n\\t 
+[PASS] Test <length> invalid value:  eex\\r\\n\\t 
+[PASS] Test <length> invalid value:  epx\\r\\n\\t 
+[PASS] Test <length> invalid value:  ein\\r\\n\\t 
+[PASS] Test <length> invalid value:  ecm\\r\\n\\t 
+[PASS] Test <length> invalid value:  emm\\r\\n\\t 
+[PASS] Test <length> invalid value:  ept\\r\\n\\t 
+[PASS] Test <length> invalid value:  epc\\r\\n\\t 
+[PASS] Test <length> invalid value:  e%\\r\\n\\t 
+[PASS] Test <length> invalid value:  e+\\r\\n\\t 
+[PASS] Test <length> invalid value:  e+em\\r\\n\\t 
+[PASS] Test <length> invalid value:  e+ex\\r\\n\\t 
+[PASS] Test <length> invalid value:  e+px\\r\\n\\t 
+[PASS] Test <length> invalid value:  e+in\\r\\n\\t 
+[PASS] Test <length> invalid value:  e+cm\\r\\n\\t 
+[PASS] Test <length> invalid value:  e+mm\\r\\n\\t 
+[PASS] Test <length> invalid value:  e+pt\\r\\n\\t 
+[PASS] Test <length> invalid value:  e+pc\\r\\n\\t 
+[PASS] Test <length> invalid value:  e+%\\r\\n\\t 
+[PASS] Test <length> invalid value:  E-\\r\\n\\t 
+[PASS] Test <length> invalid value:  E-em\\r\\n\\t 
+[PASS] Test <length> invalid value:  E-ex\\r\\n\\t 
+[PASS] Test <length> invalid value:  E-px\\r\\n\\t 
+[PASS] Test <length> invalid value:  E-in\\r\\n\\t 
+[PASS] Test <length> invalid value:  E-cm\\r\\n\\t 
+[PASS] Test <length> invalid value:  E-mm\\r\\n\\t 
+[PASS] Test <length> invalid value:  E-pt\\r\\n\\t 
+[PASS] Test <length> invalid value:  E-pc\\r\\n\\t 
+[PASS] Test <length> invalid value:  E-%\\r\\n\\t 
+[PASS] Test <length> invalid value:  E\\f
+[PASS] Test <length> invalid value:  Eem\\f
+[PASS] Test <length> invalid value:  Eex\\f
+[PASS] Test <length> invalid value:  Epx\\f
+[PASS] Test <length> invalid value:  Ein\\f
+[PASS] Test <length> invalid value:  Ecm\\f
+[PASS] Test <length> invalid value:  Emm\\f
+[PASS] Test <length> invalid value:  Ept\\f
+[PASS] Test <length> invalid value:  Epc\\f
+[PASS] Test <length> invalid value:  E%\\f
+[PASS] Test <length> invalid value:  e\\f
+[PASS] Test <length> invalid value:  eem\\f
+[PASS] Test <length> invalid value:  eex\\f
+[PASS] Test <length> invalid value:  epx\\f
+[PASS] Test <length> invalid value:  ein\\f
+[PASS] Test <length> invalid value:  ecm\\f
+[PASS] Test <length> invalid value:  emm\\f
+[PASS] Test <length> invalid value:  ept\\f
+[PASS] Test <length> invalid value:  epc\\f
+[PASS] Test <length> invalid value:  e%\\f
+[PASS] Test <length> invalid value:  e+\\f
+[PASS] Test <length> invalid value:  e+em\\f
+[PASS] Test <length> invalid value:  e+ex\\f
+[PASS] Test <length> invalid value:  e+px\\f
+[PASS] Test <length> invalid value:  e+in\\f
+[PASS] Test <length> invalid value:  e+cm\\f
+[PASS] Test <length> invalid value:  e+mm\\f
+[PASS] Test <length> invalid value:  e+pt\\f
+[PASS] Test <length> invalid value:  e+pc\\f
+[PASS] Test <length> invalid value:  e+%\\f
+[PASS] Test <length> invalid value:  E-\\f
+[PASS] Test <length> invalid value:  E-em\\f
+[PASS] Test <length> invalid value:  E-ex\\f
+[PASS] Test <length> invalid value:  E-px\\f
+[PASS] Test <length> invalid value:  E-in\\f
+[PASS] Test <length> invalid value:  E-cm\\f
+[PASS] Test <length> invalid value:  E-mm\\f
+[PASS] Test <length> invalid value:  E-pt\\f
+[PASS] Test <length> invalid value:  E-pc\\f
+[PASS] Test <length> invalid value:  E-%\\f
 [PASS] Test <length> invalid value:    E
 [PASS] Test <length> invalid value:    Eem
 [PASS] Test <length> invalid value:    Eex
@@ -1519,485 +1519,485 @@
 [PASS] Test <length> invalid value:    E-pt   
 [PASS] Test <length> invalid value:    E-pc   
 [PASS] Test <length> invalid value:    E-%   
-[PASS] Test <length> invalid value:    E\r\n\t 
-[PASS] Test <length> invalid value:    Eem\r\n\t 
-[PASS] Test <length> invalid value:    Eex\r\n\t 
-[PASS] Test <length> invalid value:    Epx\r\n\t 
-[PASS] Test <length> invalid value:    Ein\r\n\t 
-[PASS] Test <length> invalid value:    Ecm\r\n\t 
-[PASS] Test <length> invalid value:    Emm\r\n\t 
-[PASS] Test <length> invalid value:    Ept\r\n\t 
-[PASS] Test <length> invalid value:    Epc\r\n\t 
-[PASS] Test <length> invalid value:    E%\r\n\t 
-[PASS] Test <length> invalid value:    e\r\n\t 
-[PASS] Test <length> invalid value:    eem\r\n\t 
-[PASS] Test <length> invalid value:    eex\r\n\t 
-[PASS] Test <length> invalid value:    epx\r\n\t 
-[PASS] Test <length> invalid value:    ein\r\n\t 
-[PASS] Test <length> invalid value:    ecm\r\n\t 
-[PASS] Test <length> invalid value:    emm\r\n\t 
-[PASS] Test <length> invalid value:    ept\r\n\t 
-[PASS] Test <length> invalid value:    epc\r\n\t 
-[PASS] Test <length> invalid value:    e%\r\n\t 
-[PASS] Test <length> invalid value:    e+\r\n\t 
-[PASS] Test <length> invalid value:    e+em\r\n\t 
-[PASS] Test <length> invalid value:    e+ex\r\n\t 
-[PASS] Test <length> invalid value:    e+px\r\n\t 
-[PASS] Test <length> invalid value:    e+in\r\n\t 
-[PASS] Test <length> invalid value:    e+cm\r\n\t 
-[PASS] Test <length> invalid value:    e+mm\r\n\t 
-[PASS] Test <length> invalid value:    e+pt\r\n\t 
-[PASS] Test <length> invalid value:    e+pc\r\n\t 
-[PASS] Test <length> invalid value:    e+%\r\n\t 
-[PASS] Test <length> invalid value:    E-\r\n\t 
-[PASS] Test <length> invalid value:    E-em\r\n\t 
-[PASS] Test <length> invalid value:    E-ex\r\n\t 
-[PASS] Test <length> invalid value:    E-px\r\n\t 
-[PASS] Test <length> invalid value:    E-in\r\n\t 
-[PASS] Test <length> invalid value:    E-cm\r\n\t 
-[PASS] Test <length> invalid value:    E-mm\r\n\t 
-[PASS] Test <length> invalid value:    E-pt\r\n\t 
-[PASS] Test <length> invalid value:    E-pc\r\n\t 
-[PASS] Test <length> invalid value:    E-%\r\n\t 
-[PASS] Test <length> invalid value:    E\f
-[PASS] Test <length> invalid value:    Eem\f
-[PASS] Test <length> invalid value:    Eex\f
-[PASS] Test <length> invalid value:    Epx\f
-[PASS] Test <length> invalid value:    Ein\f
-[PASS] Test <length> invalid value:    Ecm\f
-[PASS] Test <length> invalid value:    Emm\f
-[PASS] Test <length> invalid value:    Ept\f
-[PASS] Test <length> invalid value:    Epc\f
-[PASS] Test <length> invalid value:    E%\f
-[PASS] Test <length> invalid value:    e\f
-[PASS] Test <length> invalid value:    eem\f
-[PASS] Test <length> invalid value:    eex\f
-[PASS] Test <length> invalid value:    epx\f
-[PASS] Test <length> invalid value:    ein\f
-[PASS] Test <length> invalid value:    ecm\f
-[PASS] Test <length> invalid value:    emm\f
-[PASS] Test <length> invalid value:    ept\f
-[PASS] Test <length> invalid value:    epc\f
-[PASS] Test <length> invalid value:    e%\f
-[PASS] Test <length> invalid value:    e+\f
-[PASS] Test <length> invalid value:    e+em\f
-[PASS] Test <length> invalid value:    e+ex\f
-[PASS] Test <length> invalid value:    e+px\f
-[PASS] Test <length> invalid value:    e+in\f
-[PASS] Test <length> invalid value:    e+cm\f
-[PASS] Test <length> invalid value:    e+mm\f
-[PASS] Test <length> invalid value:    e+pt\f
-[PASS] Test <length> invalid value:    e+pc\f
-[PASS] Test <length> invalid value:    e+%\f
-[PASS] Test <length> invalid value:    E-\f
-[PASS] Test <length> invalid value:    E-em\f
-[PASS] Test <length> invalid value:    E-ex\f
-[PASS] Test <length> invalid value:    E-px\f
-[PASS] Test <length> invalid value:    E-in\f
-[PASS] Test <length> invalid value:    E-cm\f
-[PASS] Test <length> invalid value:    E-mm\f
-[PASS] Test <length> invalid value:    E-pt\f
-[PASS] Test <length> invalid value:    E-pc\f
-[PASS] Test <length> invalid value:    E-%\f
-[PASS] Test <length> invalid value: \r\n\t E
-[PASS] Test <length> invalid value: \r\n\t Eem
-[PASS] Test <length> invalid value: \r\n\t Eex
-[PASS] Test <length> invalid value: \r\n\t Epx
-[PASS] Test <length> invalid value: \r\n\t Ein
-[PASS] Test <length> invalid value: \r\n\t Ecm
-[PASS] Test <length> invalid value: \r\n\t Emm
-[PASS] Test <length> invalid value: \r\n\t Ept
-[PASS] Test <length> invalid value: \r\n\t Epc
-[PASS] Test <length> invalid value: \r\n\t E%
-[PASS] Test <length> invalid value: \r\n\t e
-[PASS] Test <length> invalid value: \r\n\t eem
-[PASS] Test <length> invalid value: \r\n\t eex
-[PASS] Test <length> invalid value: \r\n\t epx
-[PASS] Test <length> invalid value: \r\n\t ein
-[PASS] Test <length> invalid value: \r\n\t ecm
-[PASS] Test <length> invalid value: \r\n\t emm
-[PASS] Test <length> invalid value: \r\n\t ept
-[PASS] Test <length> invalid value: \r\n\t epc
-[PASS] Test <length> invalid value: \r\n\t e%
-[PASS] Test <length> invalid value: \r\n\t e+
-[PASS] Test <length> invalid value: \r\n\t e+em
-[PASS] Test <length> invalid value: \r\n\t e+ex
-[PASS] Test <length> invalid value: \r\n\t e+px
-[PASS] Test <length> invalid value: \r\n\t e+in
-[PASS] Test <length> invalid value: \r\n\t e+cm
-[PASS] Test <length> invalid value: \r\n\t e+mm
-[PASS] Test <length> invalid value: \r\n\t e+pt
-[PASS] Test <length> invalid value: \r\n\t e+pc
-[PASS] Test <length> invalid value: \r\n\t e+%
-[PASS] Test <length> invalid value: \r\n\t E-
-[PASS] Test <length> invalid value: \r\n\t E-em
-[PASS] Test <length> invalid value: \r\n\t E-ex
-[PASS] Test <length> invalid value: \r\n\t E-px
-[PASS] Test <length> invalid value: \r\n\t E-in
-[PASS] Test <length> invalid value: \r\n\t E-cm
-[PASS] Test <length> invalid value: \r\n\t E-mm
-[PASS] Test <length> invalid value: \r\n\t E-pt
-[PASS] Test <length> invalid value: \r\n\t E-pc
-[PASS] Test <length> invalid value: \r\n\t E-%
-[PASS] Test <length> invalid value: \r\n\t E 
-[PASS] Test <length> invalid value: \r\n\t Eem 
-[PASS] Test <length> invalid value: \r\n\t Eex 
-[PASS] Test <length> invalid value: \r\n\t Epx 
-[PASS] Test <length> invalid value: \r\n\t Ein 
-[PASS] Test <length> invalid value: \r\n\t Ecm 
-[PASS] Test <length> invalid value: \r\n\t Emm 
-[PASS] Test <length> invalid value: \r\n\t Ept 
-[PASS] Test <length> invalid value: \r\n\t Epc 
-[PASS] Test <length> invalid value: \r\n\t E% 
-[PASS] Test <length> invalid value: \r\n\t e 
-[PASS] Test <length> invalid value: \r\n\t eem 
-[PASS] Test <length> invalid value: \r\n\t eex 
-[PASS] Test <length> invalid value: \r\n\t epx 
-[PASS] Test <length> invalid value: \r\n\t ein 
-[PASS] Test <length> invalid value: \r\n\t ecm 
-[PASS] Test <length> invalid value: \r\n\t emm 
-[PASS] Test <length> invalid value: \r\n\t ept 
-[PASS] Test <length> invalid value: \r\n\t epc 
-[PASS] Test <length> invalid value: \r\n\t e% 
-[PASS] Test <length> invalid value: \r\n\t e+ 
-[PASS] Test <length> invalid value: \r\n\t e+em 
-[PASS] Test <length> invalid value: \r\n\t e+ex 
-[PASS] Test <length> invalid value: \r\n\t e+px 
-[PASS] Test <length> invalid value: \r\n\t e+in 
-[PASS] Test <length> invalid value: \r\n\t e+cm 
-[PASS] Test <length> invalid value: \r\n\t e+mm 
-[PASS] Test <length> invalid value: \r\n\t e+pt 
-[PASS] Test <length> invalid value: \r\n\t e+pc 
-[PASS] Test <length> invalid value: \r\n\t e+% 
-[PASS] Test <length> invalid value: \r\n\t E- 
-[PASS] Test <length> invalid value: \r\n\t E-em 
-[PASS] Test <length> invalid value: \r\n\t E-ex 
-[PASS] Test <length> invalid value: \r\n\t E-px 
-[PASS] Test <length> invalid value: \r\n\t E-in 
-[PASS] Test <length> invalid value: \r\n\t E-cm 
-[PASS] Test <length> invalid value: \r\n\t E-mm 
-[PASS] Test <length> invalid value: \r\n\t E-pt 
-[PASS] Test <length> invalid value: \r\n\t E-pc 
-[PASS] Test <length> invalid value: \r\n\t E-% 
-[PASS] Test <length> invalid value: \r\n\t E   
-[PASS] Test <length> invalid value: \r\n\t Eem   
-[PASS] Test <length> invalid value: \r\n\t Eex   
-[PASS] Test <length> invalid value: \r\n\t Epx   
-[PASS] Test <length> invalid value: \r\n\t Ein   
-[PASS] Test <length> invalid value: \r\n\t Ecm   
-[PASS] Test <length> invalid value: \r\n\t Emm   
-[PASS] Test <length> invalid value: \r\n\t Ept   
-[PASS] Test <length> invalid value: \r\n\t Epc   
-[PASS] Test <length> invalid value: \r\n\t E%   
-[PASS] Test <length> invalid value: \r\n\t e   
-[PASS] Test <length> invalid value: \r\n\t eem   
-[PASS] Test <length> invalid value: \r\n\t eex   
-[PASS] Test <length> invalid value: \r\n\t epx   
-[PASS] Test <length> invalid value: \r\n\t ein   
-[PASS] Test <length> invalid value: \r\n\t ecm   
-[PASS] Test <length> invalid value: \r\n\t emm   
-[PASS] Test <length> invalid value: \r\n\t ept   
-[PASS] Test <length> invalid value: \r\n\t epc   
-[PASS] Test <length> invalid value: \r\n\t e%   
-[PASS] Test <length> invalid value: \r\n\t e+   
-[PASS] Test <length> invalid value: \r\n\t e+em   
-[PASS] Test <length> invalid value: \r\n\t e+ex   
-[PASS] Test <length> invalid value: \r\n\t e+px   
-[PASS] Test <length> invalid value: \r\n\t e+in   
-[PASS] Test <length> invalid value: \r\n\t e+cm   
-[PASS] Test <length> invalid value: \r\n\t e+mm   
-[PASS] Test <length> invalid value: \r\n\t e+pt   
-[PASS] Test <length> invalid value: \r\n\t e+pc   
-[PASS] Test <length> invalid value: \r\n\t e+%   
-[PASS] Test <length> invalid value: \r\n\t E-   
-[PASS] Test <length> invalid value: \r\n\t E-em   
-[PASS] Test <length> invalid value: \r\n\t E-ex   
-[PASS] Test <length> invalid value: \r\n\t E-px   
-[PASS] Test <length> invalid value: \r\n\t E-in   
-[PASS] Test <length> invalid value: \r\n\t E-cm   
-[PASS] Test <length> invalid value: \r\n\t E-mm   
-[PASS] Test <length> invalid value: \r\n\t E-pt   
-[PASS] Test <length> invalid value: \r\n\t E-pc   
-[PASS] Test <length> invalid value: \r\n\t E-%   
-[PASS] Test <length> invalid value: \r\n\t E\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t Eem\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t Eex\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t Epx\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t Ein\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t Ecm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t Emm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t Ept\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t Epc\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t E%\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t e\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t eem\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t eex\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t epx\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t ein\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t ecm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t emm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t ept\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t epc\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t e%\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t e+\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t e+em\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t e+ex\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t e+px\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t e+in\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t e+cm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t e+mm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t e+pt\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t e+pc\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t e+%\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t E-\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t E-em\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t E-ex\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t E-px\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t E-in\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t E-cm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t E-mm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t E-pt\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t E-pc\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t E-%\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t E\f
-[PASS] Test <length> invalid value: \r\n\t Eem\f
-[PASS] Test <length> invalid value: \r\n\t Eex\f
-[PASS] Test <length> invalid value: \r\n\t Epx\f
-[PASS] Test <length> invalid value: \r\n\t Ein\f
-[PASS] Test <length> invalid value: \r\n\t Ecm\f
-[PASS] Test <length> invalid value: \r\n\t Emm\f
-[PASS] Test <length> invalid value: \r\n\t Ept\f
-[PASS] Test <length> invalid value: \r\n\t Epc\f
-[PASS] Test <length> invalid value: \r\n\t E%\f
-[PASS] Test <length> invalid value: \r\n\t e\f
-[PASS] Test <length> invalid value: \r\n\t eem\f
-[PASS] Test <length> invalid value: \r\n\t eex\f
-[PASS] Test <length> invalid value: \r\n\t epx\f
-[PASS] Test <length> invalid value: \r\n\t ein\f
-[PASS] Test <length> invalid value: \r\n\t ecm\f
-[PASS] Test <length> invalid value: \r\n\t emm\f
-[PASS] Test <length> invalid value: \r\n\t ept\f
-[PASS] Test <length> invalid value: \r\n\t epc\f
-[PASS] Test <length> invalid value: \r\n\t e%\f
-[PASS] Test <length> invalid value: \r\n\t e+\f
-[PASS] Test <length> invalid value: \r\n\t e+em\f
-[PASS] Test <length> invalid value: \r\n\t e+ex\f
-[PASS] Test <length> invalid value: \r\n\t e+px\f
-[PASS] Test <length> invalid value: \r\n\t e+in\f
-[PASS] Test <length> invalid value: \r\n\t e+cm\f
-[PASS] Test <length> invalid value: \r\n\t e+mm\f
-[PASS] Test <length> invalid value: \r\n\t e+pt\f
-[PASS] Test <length> invalid value: \r\n\t e+pc\f
-[PASS] Test <length> invalid value: \r\n\t e+%\f
-[PASS] Test <length> invalid value: \r\n\t E-\f
-[PASS] Test <length> invalid value: \r\n\t E-em\f
-[PASS] Test <length> invalid value: \r\n\t E-ex\f
-[PASS] Test <length> invalid value: \r\n\t E-px\f
-[PASS] Test <length> invalid value: \r\n\t E-in\f
-[PASS] Test <length> invalid value: \r\n\t E-cm\f
-[PASS] Test <length> invalid value: \r\n\t E-mm\f
-[PASS] Test <length> invalid value: \r\n\t E-pt\f
-[PASS] Test <length> invalid value: \r\n\t E-pc\f
-[PASS] Test <length> invalid value: \r\n\t E-%\f
-[PASS] Test <length> invalid value: \fE
-[PASS] Test <length> invalid value: \fEem
-[PASS] Test <length> invalid value: \fEex
-[PASS] Test <length> invalid value: \fEpx
-[PASS] Test <length> invalid value: \fEin
-[PASS] Test <length> invalid value: \fEcm
-[PASS] Test <length> invalid value: \fEmm
-[PASS] Test <length> invalid value: \fEpt
-[PASS] Test <length> invalid value: \fEpc
-[PASS] Test <length> invalid value: \fE%
-[PASS] Test <length> invalid value: \fe
-[PASS] Test <length> invalid value: \feem
-[PASS] Test <length> invalid value: \feex
-[PASS] Test <length> invalid value: \fepx
-[PASS] Test <length> invalid value: \fein
-[PASS] Test <length> invalid value: \fecm
-[PASS] Test <length> invalid value: \femm
-[PASS] Test <length> invalid value: \fept
-[PASS] Test <length> invalid value: \fepc
-[PASS] Test <length> invalid value: \fe%
-[PASS] Test <length> invalid value: \fe+
-[PASS] Test <length> invalid value: \fe+em
-[PASS] Test <length> invalid value: \fe+ex
-[PASS] Test <length> invalid value: \fe+px
-[PASS] Test <length> invalid value: \fe+in
-[PASS] Test <length> invalid value: \fe+cm
-[PASS] Test <length> invalid value: \fe+mm
-[PASS] Test <length> invalid value: \fe+pt
-[PASS] Test <length> invalid value: \fe+pc
-[PASS] Test <length> invalid value: \fe+%
-[PASS] Test <length> invalid value: \fE-
-[PASS] Test <length> invalid value: \fE-em
-[PASS] Test <length> invalid value: \fE-ex
-[PASS] Test <length> invalid value: \fE-px
-[PASS] Test <length> invalid value: \fE-in
-[PASS] Test <length> invalid value: \fE-cm
-[PASS] Test <length> invalid value: \fE-mm
-[PASS] Test <length> invalid value: \fE-pt
-[PASS] Test <length> invalid value: \fE-pc
-[PASS] Test <length> invalid value: \fE-%
-[PASS] Test <length> invalid value: \fE 
-[PASS] Test <length> invalid value: \fEem 
-[PASS] Test <length> invalid value: \fEex 
-[PASS] Test <length> invalid value: \fEpx 
-[PASS] Test <length> invalid value: \fEin 
-[PASS] Test <length> invalid value: \fEcm 
-[PASS] Test <length> invalid value: \fEmm 
-[PASS] Test <length> invalid value: \fEpt 
-[PASS] Test <length> invalid value: \fEpc 
-[PASS] Test <length> invalid value: \fE% 
-[PASS] Test <length> invalid value: \fe 
-[PASS] Test <length> invalid value: \feem 
-[PASS] Test <length> invalid value: \feex 
-[PASS] Test <length> invalid value: \fepx 
-[PASS] Test <length> invalid value: \fein 
-[PASS] Test <length> invalid value: \fecm 
-[PASS] Test <length> invalid value: \femm 
-[PASS] Test <length> invalid value: \fept 
-[PASS] Test <length> invalid value: \fepc 
-[PASS] Test <length> invalid value: \fe% 
-[PASS] Test <length> invalid value: \fe+ 
-[PASS] Test <length> invalid value: \fe+em 
-[PASS] Test <length> invalid value: \fe+ex 
-[PASS] Test <length> invalid value: \fe+px 
-[PASS] Test <length> invalid value: \fe+in 
-[PASS] Test <length> invalid value: \fe+cm 
-[PASS] Test <length> invalid value: \fe+mm 
-[PASS] Test <length> invalid value: \fe+pt 
-[PASS] Test <length> invalid value: \fe+pc 
-[PASS] Test <length> invalid value: \fe+% 
-[PASS] Test <length> invalid value: \fE- 
-[PASS] Test <length> invalid value: \fE-em 
-[PASS] Test <length> invalid value: \fE-ex 
-[PASS] Test <length> invalid value: \fE-px 
-[PASS] Test <length> invalid value: \fE-in 
-[PASS] Test <length> invalid value: \fE-cm 
-[PASS] Test <length> invalid value: \fE-mm 
-[PASS] Test <length> invalid value: \fE-pt 
-[PASS] Test <length> invalid value: \fE-pc 
-[PASS] Test <length> invalid value: \fE-% 
-[PASS] Test <length> invalid value: \fE   
-[PASS] Test <length> invalid value: \fEem   
-[PASS] Test <length> invalid value: \fEex   
-[PASS] Test <length> invalid value: \fEpx   
-[PASS] Test <length> invalid value: \fEin   
-[PASS] Test <length> invalid value: \fEcm   
-[PASS] Test <length> invalid value: \fEmm   
-[PASS] Test <length> invalid value: \fEpt   
-[PASS] Test <length> invalid value: \fEpc   
-[PASS] Test <length> invalid value: \fE%   
-[PASS] Test <length> invalid value: \fe   
-[PASS] Test <length> invalid value: \feem   
-[PASS] Test <length> invalid value: \feex   
-[PASS] Test <length> invalid value: \fepx   
-[PASS] Test <length> invalid value: \fein   
-[PASS] Test <length> invalid value: \fecm   
-[PASS] Test <length> invalid value: \femm   
-[PASS] Test <length> invalid value: \fept   
-[PASS] Test <length> invalid value: \fepc   
-[PASS] Test <length> invalid value: \fe%   
-[PASS] Test <length> invalid value: \fe+   
-[PASS] Test <length> invalid value: \fe+em   
-[PASS] Test <length> invalid value: \fe+ex   
-[PASS] Test <length> invalid value: \fe+px   
-[PASS] Test <length> invalid value: \fe+in   
-[PASS] Test <length> invalid value: \fe+cm   
-[PASS] Test <length> invalid value: \fe+mm   
-[PASS] Test <length> invalid value: \fe+pt   
-[PASS] Test <length> invalid value: \fe+pc   
-[PASS] Test <length> invalid value: \fe+%   
-[PASS] Test <length> invalid value: \fE-   
-[PASS] Test <length> invalid value: \fE-em   
-[PASS] Test <length> invalid value: \fE-ex   
-[PASS] Test <length> invalid value: \fE-px   
-[PASS] Test <length> invalid value: \fE-in   
-[PASS] Test <length> invalid value: \fE-cm   
-[PASS] Test <length> invalid value: \fE-mm   
-[PASS] Test <length> invalid value: \fE-pt   
-[PASS] Test <length> invalid value: \fE-pc   
-[PASS] Test <length> invalid value: \fE-%   
-[PASS] Test <length> invalid value: \fE\r\n\t 
-[PASS] Test <length> invalid value: \fEem\r\n\t 
-[PASS] Test <length> invalid value: \fEex\r\n\t 
-[PASS] Test <length> invalid value: \fEpx\r\n\t 
-[PASS] Test <length> invalid value: \fEin\r\n\t 
-[PASS] Test <length> invalid value: \fEcm\r\n\t 
-[PASS] Test <length> invalid value: \fEmm\r\n\t 
-[PASS] Test <length> invalid value: \fEpt\r\n\t 
-[PASS] Test <length> invalid value: \fEpc\r\n\t 
-[PASS] Test <length> invalid value: \fE%\r\n\t 
-[PASS] Test <length> invalid value: \fe\r\n\t 
-[PASS] Test <length> invalid value: \feem\r\n\t 
-[PASS] Test <length> invalid value: \feex\r\n\t 
-[PASS] Test <length> invalid value: \fepx\r\n\t 
-[PASS] Test <length> invalid value: \fein\r\n\t 
-[PASS] Test <length> invalid value: \fecm\r\n\t 
-[PASS] Test <length> invalid value: \femm\r\n\t 
-[PASS] Test <length> invalid value: \fept\r\n\t 
-[PASS] Test <length> invalid value: \fepc\r\n\t 
-[PASS] Test <length> invalid value: \fe%\r\n\t 
-[PASS] Test <length> invalid value: \fe+\r\n\t 
-[PASS] Test <length> invalid value: \fe+em\r\n\t 
-[PASS] Test <length> invalid value: \fe+ex\r\n\t 
-[PASS] Test <length> invalid value: \fe+px\r\n\t 
-[PASS] Test <length> invalid value: \fe+in\r\n\t 
-[PASS] Test <length> invalid value: \fe+cm\r\n\t 
-[PASS] Test <length> invalid value: \fe+mm\r\n\t 
-[PASS] Test <length> invalid value: \fe+pt\r\n\t 
-[PASS] Test <length> invalid value: \fe+pc\r\n\t 
-[PASS] Test <length> invalid value: \fe+%\r\n\t 
-[PASS] Test <length> invalid value: \fE-\r\n\t 
-[PASS] Test <length> invalid value: \fE-em\r\n\t 
-[PASS] Test <length> invalid value: \fE-ex\r\n\t 
-[PASS] Test <length> invalid value: \fE-px\r\n\t 
-[PASS] Test <length> invalid value: \fE-in\r\n\t 
-[PASS] Test <length> invalid value: \fE-cm\r\n\t 
-[PASS] Test <length> invalid value: \fE-mm\r\n\t 
-[PASS] Test <length> invalid value: \fE-pt\r\n\t 
-[PASS] Test <length> invalid value: \fE-pc\r\n\t 
-[PASS] Test <length> invalid value: \fE-%\r\n\t 
-[PASS] Test <length> invalid value: \fE\f
-[PASS] Test <length> invalid value: \fEem\f
-[PASS] Test <length> invalid value: \fEex\f
-[PASS] Test <length> invalid value: \fEpx\f
-[PASS] Test <length> invalid value: \fEin\f
-[PASS] Test <length> invalid value: \fEcm\f
-[PASS] Test <length> invalid value: \fEmm\f
-[PASS] Test <length> invalid value: \fEpt\f
-[PASS] Test <length> invalid value: \fEpc\f
-[PASS] Test <length> invalid value: \fE%\f
-[PASS] Test <length> invalid value: \fe\f
-[PASS] Test <length> invalid value: \feem\f
-[PASS] Test <length> invalid value: \feex\f
-[PASS] Test <length> invalid value: \fepx\f
-[PASS] Test <length> invalid value: \fein\f
-[PASS] Test <length> invalid value: \fecm\f
-[PASS] Test <length> invalid value: \femm\f
-[PASS] Test <length> invalid value: \fept\f
-[PASS] Test <length> invalid value: \fepc\f
-[PASS] Test <length> invalid value: \fe%\f
-[PASS] Test <length> invalid value: \fe+\f
-[PASS] Test <length> invalid value: \fe+em\f
-[PASS] Test <length> invalid value: \fe+ex\f
-[PASS] Test <length> invalid value: \fe+px\f
-[PASS] Test <length> invalid value: \fe+in\f
-[PASS] Test <length> invalid value: \fe+cm\f
-[PASS] Test <length> invalid value: \fe+mm\f
-[PASS] Test <length> invalid value: \fe+pt\f
-[PASS] Test <length> invalid value: \fe+pc\f
-[PASS] Test <length> invalid value: \fe+%\f
-[PASS] Test <length> invalid value: \fE-\f
-[PASS] Test <length> invalid value: \fE-em\f
-[PASS] Test <length> invalid value: \fE-ex\f
-[PASS] Test <length> invalid value: \fE-px\f
-[PASS] Test <length> invalid value: \fE-in\f
-[PASS] Test <length> invalid value: \fE-cm\f
-[PASS] Test <length> invalid value: \fE-mm\f
-[PASS] Test <length> invalid value: \fE-pt\f
-[PASS] Test <length> invalid value: \fE-pc\f
-[PASS] Test <length> invalid value: \fE-%\f
+[PASS] Test <length> invalid value:    E\\r\\n\\t 
+[PASS] Test <length> invalid value:    Eem\\r\\n\\t 
+[PASS] Test <length> invalid value:    Eex\\r\\n\\t 
+[PASS] Test <length> invalid value:    Epx\\r\\n\\t 
+[PASS] Test <length> invalid value:    Ein\\r\\n\\t 
+[PASS] Test <length> invalid value:    Ecm\\r\\n\\t 
+[PASS] Test <length> invalid value:    Emm\\r\\n\\t 
+[PASS] Test <length> invalid value:    Ept\\r\\n\\t 
+[PASS] Test <length> invalid value:    Epc\\r\\n\\t 
+[PASS] Test <length> invalid value:    E%\\r\\n\\t 
+[PASS] Test <length> invalid value:    e\\r\\n\\t 
+[PASS] Test <length> invalid value:    eem\\r\\n\\t 
+[PASS] Test <length> invalid value:    eex\\r\\n\\t 
+[PASS] Test <length> invalid value:    epx\\r\\n\\t 
+[PASS] Test <length> invalid value:    ein\\r\\n\\t 
+[PASS] Test <length> invalid value:    ecm\\r\\n\\t 
+[PASS] Test <length> invalid value:    emm\\r\\n\\t 
+[PASS] Test <length> invalid value:    ept\\r\\n\\t 
+[PASS] Test <length> invalid value:    epc\\r\\n\\t 
+[PASS] Test <length> invalid value:    e%\\r\\n\\t 
+[PASS] Test <length> invalid value:    e+\\r\\n\\t 
+[PASS] Test <length> invalid value:    e+em\\r\\n\\t 
+[PASS] Test <length> invalid value:    e+ex\\r\\n\\t 
+[PASS] Test <length> invalid value:    e+px\\r\\n\\t 
+[PASS] Test <length> invalid value:    e+in\\r\\n\\t 
+[PASS] Test <length> invalid value:    e+cm\\r\\n\\t 
+[PASS] Test <length> invalid value:    e+mm\\r\\n\\t 
+[PASS] Test <length> invalid value:    e+pt\\r\\n\\t 
+[PASS] Test <length> invalid value:    e+pc\\r\\n\\t 
+[PASS] Test <length> invalid value:    e+%\\r\\n\\t 
+[PASS] Test <length> invalid value:    E-\\r\\n\\t 
+[PASS] Test <length> invalid value:    E-em\\r\\n\\t 
+[PASS] Test <length> invalid value:    E-ex\\r\\n\\t 
+[PASS] Test <length> invalid value:    E-px\\r\\n\\t 
+[PASS] Test <length> invalid value:    E-in\\r\\n\\t 
+[PASS] Test <length> invalid value:    E-cm\\r\\n\\t 
+[PASS] Test <length> invalid value:    E-mm\\r\\n\\t 
+[PASS] Test <length> invalid value:    E-pt\\r\\n\\t 
+[PASS] Test <length> invalid value:    E-pc\\r\\n\\t 
+[PASS] Test <length> invalid value:    E-%\\r\\n\\t 
+[PASS] Test <length> invalid value:    E\\f
+[PASS] Test <length> invalid value:    Eem\\f
+[PASS] Test <length> invalid value:    Eex\\f
+[PASS] Test <length> invalid value:    Epx\\f
+[PASS] Test <length> invalid value:    Ein\\f
+[PASS] Test <length> invalid value:    Ecm\\f
+[PASS] Test <length> invalid value:    Emm\\f
+[PASS] Test <length> invalid value:    Ept\\f
+[PASS] Test <length> invalid value:    Epc\\f
+[PASS] Test <length> invalid value:    E%\\f
+[PASS] Test <length> invalid value:    e\\f
+[PASS] Test <length> invalid value:    eem\\f
+[PASS] Test <length> invalid value:    eex\\f
+[PASS] Test <length> invalid value:    epx\\f
+[PASS] Test <length> invalid value:    ein\\f
+[PASS] Test <length> invalid value:    ecm\\f
+[PASS] Test <length> invalid value:    emm\\f
+[PASS] Test <length> invalid value:    ept\\f
+[PASS] Test <length> invalid value:    epc\\f
+[PASS] Test <length> invalid value:    e%\\f
+[PASS] Test <length> invalid value:    e+\\f
+[PASS] Test <length> invalid value:    e+em\\f
+[PASS] Test <length> invalid value:    e+ex\\f
+[PASS] Test <length> invalid value:    e+px\\f
+[PASS] Test <length> invalid value:    e+in\\f
+[PASS] Test <length> invalid value:    e+cm\\f
+[PASS] Test <length> invalid value:    e+mm\\f
+[PASS] Test <length> invalid value:    e+pt\\f
+[PASS] Test <length> invalid value:    e+pc\\f
+[PASS] Test <length> invalid value:    e+%\\f
+[PASS] Test <length> invalid value:    E-\\f
+[PASS] Test <length> invalid value:    E-em\\f
+[PASS] Test <length> invalid value:    E-ex\\f
+[PASS] Test <length> invalid value:    E-px\\f
+[PASS] Test <length> invalid value:    E-in\\f
+[PASS] Test <length> invalid value:    E-cm\\f
+[PASS] Test <length> invalid value:    E-mm\\f
+[PASS] Test <length> invalid value:    E-pt\\f
+[PASS] Test <length> invalid value:    E-pc\\f
+[PASS] Test <length> invalid value:    E-%\\f
+[PASS] Test <length> invalid value: \\r\\n\\t E
+[PASS] Test <length> invalid value: \\r\\n\\t Eem
+[PASS] Test <length> invalid value: \\r\\n\\t Eex
+[PASS] Test <length> invalid value: \\r\\n\\t Epx
+[PASS] Test <length> invalid value: \\r\\n\\t Ein
+[PASS] Test <length> invalid value: \\r\\n\\t Ecm
+[PASS] Test <length> invalid value: \\r\\n\\t Emm
+[PASS] Test <length> invalid value: \\r\\n\\t Ept
+[PASS] Test <length> invalid value: \\r\\n\\t Epc
+[PASS] Test <length> invalid value: \\r\\n\\t E%
+[PASS] Test <length> invalid value: \\r\\n\\t e
+[PASS] Test <length> invalid value: \\r\\n\\t eem
+[PASS] Test <length> invalid value: \\r\\n\\t eex
+[PASS] Test <length> invalid value: \\r\\n\\t epx
+[PASS] Test <length> invalid value: \\r\\n\\t ein
+[PASS] Test <length> invalid value: \\r\\n\\t ecm
+[PASS] Test <length> invalid value: \\r\\n\\t emm
+[PASS] Test <length> invalid value: \\r\\n\\t ept
+[PASS] Test <length> invalid value: \\r\\n\\t epc
+[PASS] Test <length> invalid value: \\r\\n\\t e%
+[PASS] Test <length> invalid value: \\r\\n\\t e+
+[PASS] Test <length> invalid value: \\r\\n\\t e+em
+[PASS] Test <length> invalid value: \\r\\n\\t e+ex
+[PASS] Test <length> invalid value: \\r\\n\\t e+px
+[PASS] Test <length> invalid value: \\r\\n\\t e+in
+[PASS] Test <length> invalid value: \\r\\n\\t e+cm
+[PASS] Test <length> invalid value: \\r\\n\\t e+mm
+[PASS] Test <length> invalid value: \\r\\n\\t e+pt
+[PASS] Test <length> invalid value: \\r\\n\\t e+pc
+[PASS] Test <length> invalid value: \\r\\n\\t e+%
+[PASS] Test <length> invalid value: \\r\\n\\t E-
+[PASS] Test <length> invalid value: \\r\\n\\t E-em
+[PASS] Test <length> invalid value: \\r\\n\\t E-ex
+[PASS] Test <length> invalid value: \\r\\n\\t E-px
+[PASS] Test <length> invalid value: \\r\\n\\t E-in
+[PASS] Test <length> invalid value: \\r\\n\\t E-cm
+[PASS] Test <length> invalid value: \\r\\n\\t E-mm
+[PASS] Test <length> invalid value: \\r\\n\\t E-pt
+[PASS] Test <length> invalid value: \\r\\n\\t E-pc
+[PASS] Test <length> invalid value: \\r\\n\\t E-%
+[PASS] Test <length> invalid value: \\r\\n\\t E 
+[PASS] Test <length> invalid value: \\r\\n\\t Eem 
+[PASS] Test <length> invalid value: \\r\\n\\t Eex 
+[PASS] Test <length> invalid value: \\r\\n\\t Epx 
+[PASS] Test <length> invalid value: \\r\\n\\t Ein 
+[PASS] Test <length> invalid value: \\r\\n\\t Ecm 
+[PASS] Test <length> invalid value: \\r\\n\\t Emm 
+[PASS] Test <length> invalid value: \\r\\n\\t Ept 
+[PASS] Test <length> invalid value: \\r\\n\\t Epc 
+[PASS] Test <length> invalid value: \\r\\n\\t E% 
+[PASS] Test <length> invalid value: \\r\\n\\t e 
+[PASS] Test <length> invalid value: \\r\\n\\t eem 
+[PASS] Test <length> invalid value: \\r\\n\\t eex 
+[PASS] Test <length> invalid value: \\r\\n\\t epx 
+[PASS] Test <length> invalid value: \\r\\n\\t ein 
+[PASS] Test <length> invalid value: \\r\\n\\t ecm 
+[PASS] Test <length> invalid value: \\r\\n\\t emm 
+[PASS] Test <length> invalid value: \\r\\n\\t ept 
+[PASS] Test <length> invalid value: \\r\\n\\t epc 
+[PASS] Test <length> invalid value: \\r\\n\\t e% 
+[PASS] Test <length> invalid value: \\r\\n\\t e+ 
+[PASS] Test <length> invalid value: \\r\\n\\t e+em 
+[PASS] Test <length> invalid value: \\r\\n\\t e+ex 
+[PASS] Test <length> invalid value: \\r\\n\\t e+px 
+[PASS] Test <length> invalid value: \\r\\n\\t e+in 
+[PASS] Test <length> invalid value: \\r\\n\\t e+cm 
+[PASS] Test <length> invalid value: \\r\\n\\t e+mm 
+[PASS] Test <length> invalid value: \\r\\n\\t e+pt 
+[PASS] Test <length> invalid value: \\r\\n\\t e+pc 
+[PASS] Test <length> invalid value: \\r\\n\\t e+% 
+[PASS] Test <length> invalid value: \\r\\n\\t E- 
+[PASS] Test <length> invalid value: \\r\\n\\t E-em 
+[PASS] Test <length> invalid value: \\r\\n\\t E-ex 
+[PASS] Test <length> invalid value: \\r\\n\\t E-px 
+[PASS] Test <length> invalid value: \\r\\n\\t E-in 
+[PASS] Test <length> invalid value: \\r\\n\\t E-cm 
+[PASS] Test <length> invalid value: \\r\\n\\t E-mm 
+[PASS] Test <length> invalid value: \\r\\n\\t E-pt 
+[PASS] Test <length> invalid value: \\r\\n\\t E-pc 
+[PASS] Test <length> invalid value: \\r\\n\\t E-% 
+[PASS] Test <length> invalid value: \\r\\n\\t E   
+[PASS] Test <length> invalid value: \\r\\n\\t Eem   
+[PASS] Test <length> invalid value: \\r\\n\\t Eex   
+[PASS] Test <length> invalid value: \\r\\n\\t Epx   
+[PASS] Test <length> invalid value: \\r\\n\\t Ein   
+[PASS] Test <length> invalid value: \\r\\n\\t Ecm   
+[PASS] Test <length> invalid value: \\r\\n\\t Emm   
+[PASS] Test <length> invalid value: \\r\\n\\t Ept   
+[PASS] Test <length> invalid value: \\r\\n\\t Epc   
+[PASS] Test <length> invalid value: \\r\\n\\t E%   
+[PASS] Test <length> invalid value: \\r\\n\\t e   
+[PASS] Test <length> invalid value: \\r\\n\\t eem   
+[PASS] Test <length> invalid value: \\r\\n\\t eex   
+[PASS] Test <length> invalid value: \\r\\n\\t epx   
+[PASS] Test <length> invalid value: \\r\\n\\t ein   
+[PASS] Test <length> invalid value: \\r\\n\\t ecm   
+[PASS] Test <length> invalid value: \\r\\n\\t emm   
+[PASS] Test <length> invalid value: \\r\\n\\t ept   
+[PASS] Test <length> invalid value: \\r\\n\\t epc   
+[PASS] Test <length> invalid value: \\r\\n\\t e%   
+[PASS] Test <length> invalid value: \\r\\n\\t e+   
+[PASS] Test <length> invalid value: \\r\\n\\t e+em   
+[PASS] Test <length> invalid value: \\r\\n\\t e+ex   
+[PASS] Test <length> invalid value: \\r\\n\\t e+px   
+[PASS] Test <length> invalid value: \\r\\n\\t e+in   
+[PASS] Test <length> invalid value: \\r\\n\\t e+cm   
+[PASS] Test <length> invalid value: \\r\\n\\t e+mm   
+[PASS] Test <length> invalid value: \\r\\n\\t e+pt   
+[PASS] Test <length> invalid value: \\r\\n\\t e+pc   
+[PASS] Test <length> invalid value: \\r\\n\\t e+%   
+[PASS] Test <length> invalid value: \\r\\n\\t E-   
+[PASS] Test <length> invalid value: \\r\\n\\t E-em   
+[PASS] Test <length> invalid value: \\r\\n\\t E-ex   
+[PASS] Test <length> invalid value: \\r\\n\\t E-px   
+[PASS] Test <length> invalid value: \\r\\n\\t E-in   
+[PASS] Test <length> invalid value: \\r\\n\\t E-cm   
+[PASS] Test <length> invalid value: \\r\\n\\t E-mm   
+[PASS] Test <length> invalid value: \\r\\n\\t E-pt   
+[PASS] Test <length> invalid value: \\r\\n\\t E-pc   
+[PASS] Test <length> invalid value: \\r\\n\\t E-%   
+[PASS] Test <length> invalid value: \\r\\n\\t E\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t Eem\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t Eex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t Epx\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t Ein\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t Ecm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t Emm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t Ept\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t Epc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t E%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t e\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t eem\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t eex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t epx\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t ein\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t ecm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t emm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t ept\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t epc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t e%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t e+\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t e+em\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t e+ex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t e+px\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t e+in\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t e+cm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t e+mm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t e+pt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t e+pc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t e+%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t E-\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t E-em\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t E-ex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t E-px\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t E-in\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t E-cm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t E-mm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t E-pt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t E-pc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t E-%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t E\\f
+[PASS] Test <length> invalid value: \\r\\n\\t Eem\\f
+[PASS] Test <length> invalid value: \\r\\n\\t Eex\\f
+[PASS] Test <length> invalid value: \\r\\n\\t Epx\\f
+[PASS] Test <length> invalid value: \\r\\n\\t Ein\\f
+[PASS] Test <length> invalid value: \\r\\n\\t Ecm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t Emm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t Ept\\f
+[PASS] Test <length> invalid value: \\r\\n\\t Epc\\f
+[PASS] Test <length> invalid value: \\r\\n\\t E%\\f
+[PASS] Test <length> invalid value: \\r\\n\\t e\\f
+[PASS] Test <length> invalid value: \\r\\n\\t eem\\f
+[PASS] Test <length> invalid value: \\r\\n\\t eex\\f
+[PASS] Test <length> invalid value: \\r\\n\\t epx\\f
+[PASS] Test <length> invalid value: \\r\\n\\t ein\\f
+[PASS] Test <length> invalid value: \\r\\n\\t ecm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t emm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t ept\\f
+[PASS] Test <length> invalid value: \\r\\n\\t epc\\f
+[PASS] Test <length> invalid value: \\r\\n\\t e%\\f
+[PASS] Test <length> invalid value: \\r\\n\\t e+\\f
+[PASS] Test <length> invalid value: \\r\\n\\t e+em\\f
+[PASS] Test <length> invalid value: \\r\\n\\t e+ex\\f
+[PASS] Test <length> invalid value: \\r\\n\\t e+px\\f
+[PASS] Test <length> invalid value: \\r\\n\\t e+in\\f
+[PASS] Test <length> invalid value: \\r\\n\\t e+cm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t e+mm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t e+pt\\f
+[PASS] Test <length> invalid value: \\r\\n\\t e+pc\\f
+[PASS] Test <length> invalid value: \\r\\n\\t e+%\\f
+[PASS] Test <length> invalid value: \\r\\n\\t E-\\f
+[PASS] Test <length> invalid value: \\r\\n\\t E-em\\f
+[PASS] Test <length> invalid value: \\r\\n\\t E-ex\\f
+[PASS] Test <length> invalid value: \\r\\n\\t E-px\\f
+[PASS] Test <length> invalid value: \\r\\n\\t E-in\\f
+[PASS] Test <length> invalid value: \\r\\n\\t E-cm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t E-mm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t E-pt\\f
+[PASS] Test <length> invalid value: \\r\\n\\t E-pc\\f
+[PASS] Test <length> invalid value: \\r\\n\\t E-%\\f
+[PASS] Test <length> invalid value: \\fE
+[PASS] Test <length> invalid value: \\fEem
+[PASS] Test <length> invalid value: \\fEex
+[PASS] Test <length> invalid value: \\fEpx
+[PASS] Test <length> invalid value: \\fEin
+[PASS] Test <length> invalid value: \\fEcm
+[PASS] Test <length> invalid value: \\fEmm
+[PASS] Test <length> invalid value: \\fEpt
+[PASS] Test <length> invalid value: \\fEpc
+[PASS] Test <length> invalid value: \\fE%
+[PASS] Test <length> invalid value: \\fe
+[PASS] Test <length> invalid value: \\feem
+[PASS] Test <length> invalid value: \\feex
+[PASS] Test <length> invalid value: \\fepx
+[PASS] Test <length> invalid value: \\fein
+[PASS] Test <length> invalid value: \\fecm
+[PASS] Test <length> invalid value: \\femm
+[PASS] Test <length> invalid value: \\fept
+[PASS] Test <length> invalid value: \\fepc
+[PASS] Test <length> invalid value: \\fe%
+[PASS] Test <length> invalid value: \\fe+
+[PASS] Test <length> invalid value: \\fe+em
+[PASS] Test <length> invalid value: \\fe+ex
+[PASS] Test <length> invalid value: \\fe+px
+[PASS] Test <length> invalid value: \\fe+in
+[PASS] Test <length> invalid value: \\fe+cm
+[PASS] Test <length> invalid value: \\fe+mm
+[PASS] Test <length> invalid value: \\fe+pt
+[PASS] Test <length> invalid value: \\fe+pc
+[PASS] Test <length> invalid value: \\fe+%
+[PASS] Test <length> invalid value: \\fE-
+[PASS] Test <length> invalid value: \\fE-em
+[PASS] Test <length> invalid value: \\fE-ex
+[PASS] Test <length> invalid value: \\fE-px
+[PASS] Test <length> invalid value: \\fE-in
+[PASS] Test <length> invalid value: \\fE-cm
+[PASS] Test <length> invalid value: \\fE-mm
+[PASS] Test <length> invalid value: \\fE-pt
+[PASS] Test <length> invalid value: \\fE-pc
+[PASS] Test <length> invalid value: \\fE-%
+[PASS] Test <length> invalid value: \\fE 
+[PASS] Test <length> invalid value: \\fEem 
+[PASS] Test <length> invalid value: \\fEex 
+[PASS] Test <length> invalid value: \\fEpx 
+[PASS] Test <length> invalid value: \\fEin 
+[PASS] Test <length> invalid value: \\fEcm 
+[PASS] Test <length> invalid value: \\fEmm 
+[PASS] Test <length> invalid value: \\fEpt 
+[PASS] Test <length> invalid value: \\fEpc 
+[PASS] Test <length> invalid value: \\fE% 
+[PASS] Test <length> invalid value: \\fe 
+[PASS] Test <length> invalid value: \\feem 
+[PASS] Test <length> invalid value: \\feex 
+[PASS] Test <length> invalid value: \\fepx 
+[PASS] Test <length> invalid value: \\fein 
+[PASS] Test <length> invalid value: \\fecm 
+[PASS] Test <length> invalid value: \\femm 
+[PASS] Test <length> invalid value: \\fept 
+[PASS] Test <length> invalid value: \\fepc 
+[PASS] Test <length> invalid value: \\fe% 
+[PASS] Test <length> invalid value: \\fe+ 
+[PASS] Test <length> invalid value: \\fe+em 
+[PASS] Test <length> invalid value: \\fe+ex 
+[PASS] Test <length> invalid value: \\fe+px 
+[PASS] Test <length> invalid value: \\fe+in 
+[PASS] Test <length> invalid value: \\fe+cm 
+[PASS] Test <length> invalid value: \\fe+mm 
+[PASS] Test <length> invalid value: \\fe+pt 
+[PASS] Test <length> invalid value: \\fe+pc 
+[PASS] Test <length> invalid value: \\fe+% 
+[PASS] Test <length> invalid value: \\fE- 
+[PASS] Test <length> invalid value: \\fE-em 
+[PASS] Test <length> invalid value: \\fE-ex 
+[PASS] Test <length> invalid value: \\fE-px 
+[PASS] Test <length> invalid value: \\fE-in 
+[PASS] Test <length> invalid value: \\fE-cm 
+[PASS] Test <length> invalid value: \\fE-mm 
+[PASS] Test <length> invalid value: \\fE-pt 
+[PASS] Test <length> invalid value: \\fE-pc 
+[PASS] Test <length> invalid value: \\fE-% 
+[PASS] Test <length> invalid value: \\fE   
+[PASS] Test <length> invalid value: \\fEem   
+[PASS] Test <length> invalid value: \\fEex   
+[PASS] Test <length> invalid value: \\fEpx   
+[PASS] Test <length> invalid value: \\fEin   
+[PASS] Test <length> invalid value: \\fEcm   
+[PASS] Test <length> invalid value: \\fEmm   
+[PASS] Test <length> invalid value: \\fEpt   
+[PASS] Test <length> invalid value: \\fEpc   
+[PASS] Test <length> invalid value: \\fE%   
+[PASS] Test <length> invalid value: \\fe   
+[PASS] Test <length> invalid value: \\feem   
+[PASS] Test <length> invalid value: \\feex   
+[PASS] Test <length> invalid value: \\fepx   
+[PASS] Test <length> invalid value: \\fein   
+[PASS] Test <length> invalid value: \\fecm   
+[PASS] Test <length> invalid value: \\femm   
+[PASS] Test <length> invalid value: \\fept   
+[PASS] Test <length> invalid value: \\fepc   
+[PASS] Test <length> invalid value: \\fe%   
+[PASS] Test <length> invalid value: \\fe+   
+[PASS] Test <length> invalid value: \\fe+em   
+[PASS] Test <length> invalid value: \\fe+ex   
+[PASS] Test <length> invalid value: \\fe+px   
+[PASS] Test <length> invalid value: \\fe+in   
+[PASS] Test <length> invalid value: \\fe+cm   
+[PASS] Test <length> invalid value: \\fe+mm   
+[PASS] Test <length> invalid value: \\fe+pt   
+[PASS] Test <length> invalid value: \\fe+pc   
+[PASS] Test <length> invalid value: \\fe+%   
+[PASS] Test <length> invalid value: \\fE-   
+[PASS] Test <length> invalid value: \\fE-em   
+[PASS] Test <length> invalid value: \\fE-ex   
+[PASS] Test <length> invalid value: \\fE-px   
+[PASS] Test <length> invalid value: \\fE-in   
+[PASS] Test <length> invalid value: \\fE-cm   
+[PASS] Test <length> invalid value: \\fE-mm   
+[PASS] Test <length> invalid value: \\fE-pt   
+[PASS] Test <length> invalid value: \\fE-pc   
+[PASS] Test <length> invalid value: \\fE-%   
+[PASS] Test <length> invalid value: \\fE\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fEem\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fEex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fEpx\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fEin\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fEcm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fEmm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fEpt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fEpc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fE%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fe\\r\\n\\t 
+[PASS] Test <length> invalid value: \\feem\\r\\n\\t 
+[PASS] Test <length> invalid value: \\feex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fepx\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fein\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fecm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\femm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fept\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fepc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fe%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fe+\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fe+em\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fe+ex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fe+px\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fe+in\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fe+cm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fe+mm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fe+pt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fe+pc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fe+%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fE-\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fE-em\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fE-ex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fE-px\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fE-in\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fE-cm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fE-mm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fE-pt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fE-pc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fE-%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fE\\f
+[PASS] Test <length> invalid value: \\fEem\\f
+[PASS] Test <length> invalid value: \\fEex\\f
+[PASS] Test <length> invalid value: \\fEpx\\f
+[PASS] Test <length> invalid value: \\fEin\\f
+[PASS] Test <length> invalid value: \\fEcm\\f
+[PASS] Test <length> invalid value: \\fEmm\\f
+[PASS] Test <length> invalid value: \\fEpt\\f
+[PASS] Test <length> invalid value: \\fEpc\\f
+[PASS] Test <length> invalid value: \\fE%\\f
+[PASS] Test <length> invalid value: \\fe\\f
+[PASS] Test <length> invalid value: \\feem\\f
+[PASS] Test <length> invalid value: \\feex\\f
+[PASS] Test <length> invalid value: \\fepx\\f
+[PASS] Test <length> invalid value: \\fein\\f
+[PASS] Test <length> invalid value: \\fecm\\f
+[PASS] Test <length> invalid value: \\femm\\f
+[PASS] Test <length> invalid value: \\fept\\f
+[PASS] Test <length> invalid value: \\fepc\\f
+[PASS] Test <length> invalid value: \\fe%\\f
+[PASS] Test <length> invalid value: \\fe+\\f
+[PASS] Test <length> invalid value: \\fe+em\\f
+[PASS] Test <length> invalid value: \\fe+ex\\f
+[PASS] Test <length> invalid value: \\fe+px\\f
+[PASS] Test <length> invalid value: \\fe+in\\f
+[PASS] Test <length> invalid value: \\fe+cm\\f
+[PASS] Test <length> invalid value: \\fe+mm\\f
+[PASS] Test <length> invalid value: \\fe+pt\\f
+[PASS] Test <length> invalid value: \\fe+pc\\f
+[PASS] Test <length> invalid value: \\fe+%\\f
+[PASS] Test <length> invalid value: \\fE-\\f
+[PASS] Test <length> invalid value: \\fE-em\\f
+[PASS] Test <length> invalid value: \\fE-ex\\f
+[PASS] Test <length> invalid value: \\fE-px\\f
+[PASS] Test <length> invalid value: \\fE-in\\f
+[PASS] Test <length> invalid value: \\fE-cm\\f
+[PASS] Test <length> invalid value: \\fE-mm\\f
+[PASS] Test <length> invalid value: \\fE-pt\\f
+[PASS] Test <length> invalid value: \\fE-pc\\f
+[PASS] Test <length> invalid value: \\fE-%\\f
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/svg/parser/whitespace-length-invalid-3-expected.txt b/third_party/blink/web_tests/svg/parser/whitespace-length-invalid-3-expected.txt
index f824d40..ed1392a 100644
--- a/third_party/blink/web_tests/svg/parser/whitespace-length-invalid-3-expected.txt
+++ b/third_party/blink/web_tests/svg/parser/whitespace-length-invalid-3-expected.txt
@@ -1119,86 +1119,86 @@
 [PASS] Test <length> invalid value: .-pt   
 [PASS] Test <length> invalid value: .-pc   
 [PASS] Test <length> invalid value: .-%   
-[PASS] Test <length> invalid value: -\r\n\t 
-[PASS] Test <length> invalid value: -em\r\n\t 
-[PASS] Test <length> invalid value: -ex\r\n\t 
-[PASS] Test <length> invalid value: -px\r\n\t 
-[PASS] Test <length> invalid value: -in\r\n\t 
-[PASS] Test <length> invalid value: -cm\r\n\t 
-[PASS] Test <length> invalid value: -mm\r\n\t 
-[PASS] Test <length> invalid value: -pt\r\n\t 
-[PASS] Test <length> invalid value: -pc\r\n\t 
-[PASS] Test <length> invalid value: -%\r\n\t 
-[PASS] Test <length> invalid value: +\r\n\t 
-[PASS] Test <length> invalid value: +em\r\n\t 
-[PASS] Test <length> invalid value: +ex\r\n\t 
-[PASS] Test <length> invalid value: +px\r\n\t 
-[PASS] Test <length> invalid value: +in\r\n\t 
-[PASS] Test <length> invalid value: +cm\r\n\t 
-[PASS] Test <length> invalid value: +mm\r\n\t 
-[PASS] Test <length> invalid value: +pt\r\n\t 
-[PASS] Test <length> invalid value: +pc\r\n\t 
-[PASS] Test <length> invalid value: +%\r\n\t 
-[PASS] Test <length> invalid value: -.\r\n\t 
-[PASS] Test <length> invalid value: -.em\r\n\t 
-[PASS] Test <length> invalid value: -.ex\r\n\t 
-[PASS] Test <length> invalid value: -.px\r\n\t 
-[PASS] Test <length> invalid value: -.in\r\n\t 
-[PASS] Test <length> invalid value: -.cm\r\n\t 
-[PASS] Test <length> invalid value: -.mm\r\n\t 
-[PASS] Test <length> invalid value: -.pt\r\n\t 
-[PASS] Test <length> invalid value: -.pc\r\n\t 
-[PASS] Test <length> invalid value: -.%\r\n\t 
-[PASS] Test <length> invalid value: .-\r\n\t 
-[PASS] Test <length> invalid value: .-em\r\n\t 
-[PASS] Test <length> invalid value: .-ex\r\n\t 
-[PASS] Test <length> invalid value: .-px\r\n\t 
-[PASS] Test <length> invalid value: .-in\r\n\t 
-[PASS] Test <length> invalid value: .-cm\r\n\t 
-[PASS] Test <length> invalid value: .-mm\r\n\t 
-[PASS] Test <length> invalid value: .-pt\r\n\t 
-[PASS] Test <length> invalid value: .-pc\r\n\t 
-[PASS] Test <length> invalid value: .-%\r\n\t 
-[PASS] Test <length> invalid value: -\f
-[PASS] Test <length> invalid value: -em\f
-[PASS] Test <length> invalid value: -ex\f
-[PASS] Test <length> invalid value: -px\f
-[PASS] Test <length> invalid value: -in\f
-[PASS] Test <length> invalid value: -cm\f
-[PASS] Test <length> invalid value: -mm\f
-[PASS] Test <length> invalid value: -pt\f
-[PASS] Test <length> invalid value: -pc\f
-[PASS] Test <length> invalid value: -%\f
-[PASS] Test <length> invalid value: +\f
-[PASS] Test <length> invalid value: +em\f
-[PASS] Test <length> invalid value: +ex\f
-[PASS] Test <length> invalid value: +px\f
-[PASS] Test <length> invalid value: +in\f
-[PASS] Test <length> invalid value: +cm\f
-[PASS] Test <length> invalid value: +mm\f
-[PASS] Test <length> invalid value: +pt\f
-[PASS] Test <length> invalid value: +pc\f
-[PASS] Test <length> invalid value: +%\f
-[PASS] Test <length> invalid value: -.\f
-[PASS] Test <length> invalid value: -.em\f
-[PASS] Test <length> invalid value: -.ex\f
-[PASS] Test <length> invalid value: -.px\f
-[PASS] Test <length> invalid value: -.in\f
-[PASS] Test <length> invalid value: -.cm\f
-[PASS] Test <length> invalid value: -.mm\f
-[PASS] Test <length> invalid value: -.pt\f
-[PASS] Test <length> invalid value: -.pc\f
-[PASS] Test <length> invalid value: -.%\f
-[PASS] Test <length> invalid value: .-\f
-[PASS] Test <length> invalid value: .-em\f
-[PASS] Test <length> invalid value: .-ex\f
-[PASS] Test <length> invalid value: .-px\f
-[PASS] Test <length> invalid value: .-in\f
-[PASS] Test <length> invalid value: .-cm\f
-[PASS] Test <length> invalid value: .-mm\f
-[PASS] Test <length> invalid value: .-pt\f
-[PASS] Test <length> invalid value: .-pc\f
-[PASS] Test <length> invalid value: .-%\f
+[PASS] Test <length> invalid value: -\\r\\n\\t 
+[PASS] Test <length> invalid value: -em\\r\\n\\t 
+[PASS] Test <length> invalid value: -ex\\r\\n\\t 
+[PASS] Test <length> invalid value: -px\\r\\n\\t 
+[PASS] Test <length> invalid value: -in\\r\\n\\t 
+[PASS] Test <length> invalid value: -cm\\r\\n\\t 
+[PASS] Test <length> invalid value: -mm\\r\\n\\t 
+[PASS] Test <length> invalid value: -pt\\r\\n\\t 
+[PASS] Test <length> invalid value: -pc\\r\\n\\t 
+[PASS] Test <length> invalid value: -%\\r\\n\\t 
+[PASS] Test <length> invalid value: +\\r\\n\\t 
+[PASS] Test <length> invalid value: +em\\r\\n\\t 
+[PASS] Test <length> invalid value: +ex\\r\\n\\t 
+[PASS] Test <length> invalid value: +px\\r\\n\\t 
+[PASS] Test <length> invalid value: +in\\r\\n\\t 
+[PASS] Test <length> invalid value: +cm\\r\\n\\t 
+[PASS] Test <length> invalid value: +mm\\r\\n\\t 
+[PASS] Test <length> invalid value: +pt\\r\\n\\t 
+[PASS] Test <length> invalid value: +pc\\r\\n\\t 
+[PASS] Test <length> invalid value: +%\\r\\n\\t 
+[PASS] Test <length> invalid value: -.\\r\\n\\t 
+[PASS] Test <length> invalid value: -.em\\r\\n\\t 
+[PASS] Test <length> invalid value: -.ex\\r\\n\\t 
+[PASS] Test <length> invalid value: -.px\\r\\n\\t 
+[PASS] Test <length> invalid value: -.in\\r\\n\\t 
+[PASS] Test <length> invalid value: -.cm\\r\\n\\t 
+[PASS] Test <length> invalid value: -.mm\\r\\n\\t 
+[PASS] Test <length> invalid value: -.pt\\r\\n\\t 
+[PASS] Test <length> invalid value: -.pc\\r\\n\\t 
+[PASS] Test <length> invalid value: -.%\\r\\n\\t 
+[PASS] Test <length> invalid value: .-\\r\\n\\t 
+[PASS] Test <length> invalid value: .-em\\r\\n\\t 
+[PASS] Test <length> invalid value: .-ex\\r\\n\\t 
+[PASS] Test <length> invalid value: .-px\\r\\n\\t 
+[PASS] Test <length> invalid value: .-in\\r\\n\\t 
+[PASS] Test <length> invalid value: .-cm\\r\\n\\t 
+[PASS] Test <length> invalid value: .-mm\\r\\n\\t 
+[PASS] Test <length> invalid value: .-pt\\r\\n\\t 
+[PASS] Test <length> invalid value: .-pc\\r\\n\\t 
+[PASS] Test <length> invalid value: .-%\\r\\n\\t 
+[PASS] Test <length> invalid value: -\\f
+[PASS] Test <length> invalid value: -em\\f
+[PASS] Test <length> invalid value: -ex\\f
+[PASS] Test <length> invalid value: -px\\f
+[PASS] Test <length> invalid value: -in\\f
+[PASS] Test <length> invalid value: -cm\\f
+[PASS] Test <length> invalid value: -mm\\f
+[PASS] Test <length> invalid value: -pt\\f
+[PASS] Test <length> invalid value: -pc\\f
+[PASS] Test <length> invalid value: -%\\f
+[PASS] Test <length> invalid value: +\\f
+[PASS] Test <length> invalid value: +em\\f
+[PASS] Test <length> invalid value: +ex\\f
+[PASS] Test <length> invalid value: +px\\f
+[PASS] Test <length> invalid value: +in\\f
+[PASS] Test <length> invalid value: +cm\\f
+[PASS] Test <length> invalid value: +mm\\f
+[PASS] Test <length> invalid value: +pt\\f
+[PASS] Test <length> invalid value: +pc\\f
+[PASS] Test <length> invalid value: +%\\f
+[PASS] Test <length> invalid value: -.\\f
+[PASS] Test <length> invalid value: -.em\\f
+[PASS] Test <length> invalid value: -.ex\\f
+[PASS] Test <length> invalid value: -.px\\f
+[PASS] Test <length> invalid value: -.in\\f
+[PASS] Test <length> invalid value: -.cm\\f
+[PASS] Test <length> invalid value: -.mm\\f
+[PASS] Test <length> invalid value: -.pt\\f
+[PASS] Test <length> invalid value: -.pc\\f
+[PASS] Test <length> invalid value: -.%\\f
+[PASS] Test <length> invalid value: .-\\f
+[PASS] Test <length> invalid value: .-em\\f
+[PASS] Test <length> invalid value: .-ex\\f
+[PASS] Test <length> invalid value: .-px\\f
+[PASS] Test <length> invalid value: .-in\\f
+[PASS] Test <length> invalid value: .-cm\\f
+[PASS] Test <length> invalid value: .-mm\\f
+[PASS] Test <length> invalid value: .-pt\\f
+[PASS] Test <length> invalid value: .-pc\\f
+[PASS] Test <length> invalid value: .-%\\f
 [PASS] Test <length> invalid value:  -
 [PASS] Test <length> invalid value:  -em
 [PASS] Test <length> invalid value:  -ex
@@ -1319,86 +1319,86 @@
 [PASS] Test <length> invalid value:  .-pt   
 [PASS] Test <length> invalid value:  .-pc   
 [PASS] Test <length> invalid value:  .-%   
-[PASS] Test <length> invalid value:  -\r\n\t 
-[PASS] Test <length> invalid value:  -em\r\n\t 
-[PASS] Test <length> invalid value:  -ex\r\n\t 
-[PASS] Test <length> invalid value:  -px\r\n\t 
-[PASS] Test <length> invalid value:  -in\r\n\t 
-[PASS] Test <length> invalid value:  -cm\r\n\t 
-[PASS] Test <length> invalid value:  -mm\r\n\t 
-[PASS] Test <length> invalid value:  -pt\r\n\t 
-[PASS] Test <length> invalid value:  -pc\r\n\t 
-[PASS] Test <length> invalid value:  -%\r\n\t 
-[PASS] Test <length> invalid value:  +\r\n\t 
-[PASS] Test <length> invalid value:  +em\r\n\t 
-[PASS] Test <length> invalid value:  +ex\r\n\t 
-[PASS] Test <length> invalid value:  +px\r\n\t 
-[PASS] Test <length> invalid value:  +in\r\n\t 
-[PASS] Test <length> invalid value:  +cm\r\n\t 
-[PASS] Test <length> invalid value:  +mm\r\n\t 
-[PASS] Test <length> invalid value:  +pt\r\n\t 
-[PASS] Test <length> invalid value:  +pc\r\n\t 
-[PASS] Test <length> invalid value:  +%\r\n\t 
-[PASS] Test <length> invalid value:  -.\r\n\t 
-[PASS] Test <length> invalid value:  -.em\r\n\t 
-[PASS] Test <length> invalid value:  -.ex\r\n\t 
-[PASS] Test <length> invalid value:  -.px\r\n\t 
-[PASS] Test <length> invalid value:  -.in\r\n\t 
-[PASS] Test <length> invalid value:  -.cm\r\n\t 
-[PASS] Test <length> invalid value:  -.mm\r\n\t 
-[PASS] Test <length> invalid value:  -.pt\r\n\t 
-[PASS] Test <length> invalid value:  -.pc\r\n\t 
-[PASS] Test <length> invalid value:  -.%\r\n\t 
-[PASS] Test <length> invalid value:  .-\r\n\t 
-[PASS] Test <length> invalid value:  .-em\r\n\t 
-[PASS] Test <length> invalid value:  .-ex\r\n\t 
-[PASS] Test <length> invalid value:  .-px\r\n\t 
-[PASS] Test <length> invalid value:  .-in\r\n\t 
-[PASS] Test <length> invalid value:  .-cm\r\n\t 
-[PASS] Test <length> invalid value:  .-mm\r\n\t 
-[PASS] Test <length> invalid value:  .-pt\r\n\t 
-[PASS] Test <length> invalid value:  .-pc\r\n\t 
-[PASS] Test <length> invalid value:  .-%\r\n\t 
-[PASS] Test <length> invalid value:  -\f
-[PASS] Test <length> invalid value:  -em\f
-[PASS] Test <length> invalid value:  -ex\f
-[PASS] Test <length> invalid value:  -px\f
-[PASS] Test <length> invalid value:  -in\f
-[PASS] Test <length> invalid value:  -cm\f
-[PASS] Test <length> invalid value:  -mm\f
-[PASS] Test <length> invalid value:  -pt\f
-[PASS] Test <length> invalid value:  -pc\f
-[PASS] Test <length> invalid value:  -%\f
-[PASS] Test <length> invalid value:  +\f
-[PASS] Test <length> invalid value:  +em\f
-[PASS] Test <length> invalid value:  +ex\f
-[PASS] Test <length> invalid value:  +px\f
-[PASS] Test <length> invalid value:  +in\f
-[PASS] Test <length> invalid value:  +cm\f
-[PASS] Test <length> invalid value:  +mm\f
-[PASS] Test <length> invalid value:  +pt\f
-[PASS] Test <length> invalid value:  +pc\f
-[PASS] Test <length> invalid value:  +%\f
-[PASS] Test <length> invalid value:  -.\f
-[PASS] Test <length> invalid value:  -.em\f
-[PASS] Test <length> invalid value:  -.ex\f
-[PASS] Test <length> invalid value:  -.px\f
-[PASS] Test <length> invalid value:  -.in\f
-[PASS] Test <length> invalid value:  -.cm\f
-[PASS] Test <length> invalid value:  -.mm\f
-[PASS] Test <length> invalid value:  -.pt\f
-[PASS] Test <length> invalid value:  -.pc\f
-[PASS] Test <length> invalid value:  -.%\f
-[PASS] Test <length> invalid value:  .-\f
-[PASS] Test <length> invalid value:  .-em\f
-[PASS] Test <length> invalid value:  .-ex\f
-[PASS] Test <length> invalid value:  .-px\f
-[PASS] Test <length> invalid value:  .-in\f
-[PASS] Test <length> invalid value:  .-cm\f
-[PASS] Test <length> invalid value:  .-mm\f
-[PASS] Test <length> invalid value:  .-pt\f
-[PASS] Test <length> invalid value:  .-pc\f
-[PASS] Test <length> invalid value:  .-%\f
+[PASS] Test <length> invalid value:  -\\r\\n\\t 
+[PASS] Test <length> invalid value:  -em\\r\\n\\t 
+[PASS] Test <length> invalid value:  -ex\\r\\n\\t 
+[PASS] Test <length> invalid value:  -px\\r\\n\\t 
+[PASS] Test <length> invalid value:  -in\\r\\n\\t 
+[PASS] Test <length> invalid value:  -cm\\r\\n\\t 
+[PASS] Test <length> invalid value:  -mm\\r\\n\\t 
+[PASS] Test <length> invalid value:  -pt\\r\\n\\t 
+[PASS] Test <length> invalid value:  -pc\\r\\n\\t 
+[PASS] Test <length> invalid value:  -%\\r\\n\\t 
+[PASS] Test <length> invalid value:  +\\r\\n\\t 
+[PASS] Test <length> invalid value:  +em\\r\\n\\t 
+[PASS] Test <length> invalid value:  +ex\\r\\n\\t 
+[PASS] Test <length> invalid value:  +px\\r\\n\\t 
+[PASS] Test <length> invalid value:  +in\\r\\n\\t 
+[PASS] Test <length> invalid value:  +cm\\r\\n\\t 
+[PASS] Test <length> invalid value:  +mm\\r\\n\\t 
+[PASS] Test <length> invalid value:  +pt\\r\\n\\t 
+[PASS] Test <length> invalid value:  +pc\\r\\n\\t 
+[PASS] Test <length> invalid value:  +%\\r\\n\\t 
+[PASS] Test <length> invalid value:  -.\\r\\n\\t 
+[PASS] Test <length> invalid value:  -.em\\r\\n\\t 
+[PASS] Test <length> invalid value:  -.ex\\r\\n\\t 
+[PASS] Test <length> invalid value:  -.px\\r\\n\\t 
+[PASS] Test <length> invalid value:  -.in\\r\\n\\t 
+[PASS] Test <length> invalid value:  -.cm\\r\\n\\t 
+[PASS] Test <length> invalid value:  -.mm\\r\\n\\t 
+[PASS] Test <length> invalid value:  -.pt\\r\\n\\t 
+[PASS] Test <length> invalid value:  -.pc\\r\\n\\t 
+[PASS] Test <length> invalid value:  -.%\\r\\n\\t 
+[PASS] Test <length> invalid value:  .-\\r\\n\\t 
+[PASS] Test <length> invalid value:  .-em\\r\\n\\t 
+[PASS] Test <length> invalid value:  .-ex\\r\\n\\t 
+[PASS] Test <length> invalid value:  .-px\\r\\n\\t 
+[PASS] Test <length> invalid value:  .-in\\r\\n\\t 
+[PASS] Test <length> invalid value:  .-cm\\r\\n\\t 
+[PASS] Test <length> invalid value:  .-mm\\r\\n\\t 
+[PASS] Test <length> invalid value:  .-pt\\r\\n\\t 
+[PASS] Test <length> invalid value:  .-pc\\r\\n\\t 
+[PASS] Test <length> invalid value:  .-%\\r\\n\\t 
+[PASS] Test <length> invalid value:  -\\f
+[PASS] Test <length> invalid value:  -em\\f
+[PASS] Test <length> invalid value:  -ex\\f
+[PASS] Test <length> invalid value:  -px\\f
+[PASS] Test <length> invalid value:  -in\\f
+[PASS] Test <length> invalid value:  -cm\\f
+[PASS] Test <length> invalid value:  -mm\\f
+[PASS] Test <length> invalid value:  -pt\\f
+[PASS] Test <length> invalid value:  -pc\\f
+[PASS] Test <length> invalid value:  -%\\f
+[PASS] Test <length> invalid value:  +\\f
+[PASS] Test <length> invalid value:  +em\\f
+[PASS] Test <length> invalid value:  +ex\\f
+[PASS] Test <length> invalid value:  +px\\f
+[PASS] Test <length> invalid value:  +in\\f
+[PASS] Test <length> invalid value:  +cm\\f
+[PASS] Test <length> invalid value:  +mm\\f
+[PASS] Test <length> invalid value:  +pt\\f
+[PASS] Test <length> invalid value:  +pc\\f
+[PASS] Test <length> invalid value:  +%\\f
+[PASS] Test <length> invalid value:  -.\\f
+[PASS] Test <length> invalid value:  -.em\\f
+[PASS] Test <length> invalid value:  -.ex\\f
+[PASS] Test <length> invalid value:  -.px\\f
+[PASS] Test <length> invalid value:  -.in\\f
+[PASS] Test <length> invalid value:  -.cm\\f
+[PASS] Test <length> invalid value:  -.mm\\f
+[PASS] Test <length> invalid value:  -.pt\\f
+[PASS] Test <length> invalid value:  -.pc\\f
+[PASS] Test <length> invalid value:  -.%\\f
+[PASS] Test <length> invalid value:  .-\\f
+[PASS] Test <length> invalid value:  .-em\\f
+[PASS] Test <length> invalid value:  .-ex\\f
+[PASS] Test <length> invalid value:  .-px\\f
+[PASS] Test <length> invalid value:  .-in\\f
+[PASS] Test <length> invalid value:  .-cm\\f
+[PASS] Test <length> invalid value:  .-mm\\f
+[PASS] Test <length> invalid value:  .-pt\\f
+[PASS] Test <length> invalid value:  .-pc\\f
+[PASS] Test <length> invalid value:  .-%\\f
 [PASS] Test <length> invalid value:    -
 [PASS] Test <length> invalid value:    -em
 [PASS] Test <length> invalid value:    -ex
@@ -1519,485 +1519,485 @@
 [PASS] Test <length> invalid value:    .-pt   
 [PASS] Test <length> invalid value:    .-pc   
 [PASS] Test <length> invalid value:    .-%   
-[PASS] Test <length> invalid value:    -\r\n\t 
-[PASS] Test <length> invalid value:    -em\r\n\t 
-[PASS] Test <length> invalid value:    -ex\r\n\t 
-[PASS] Test <length> invalid value:    -px\r\n\t 
-[PASS] Test <length> invalid value:    -in\r\n\t 
-[PASS] Test <length> invalid value:    -cm\r\n\t 
-[PASS] Test <length> invalid value:    -mm\r\n\t 
-[PASS] Test <length> invalid value:    -pt\r\n\t 
-[PASS] Test <length> invalid value:    -pc\r\n\t 
-[PASS] Test <length> invalid value:    -%\r\n\t 
-[PASS] Test <length> invalid value:    +\r\n\t 
-[PASS] Test <length> invalid value:    +em\r\n\t 
-[PASS] Test <length> invalid value:    +ex\r\n\t 
-[PASS] Test <length> invalid value:    +px\r\n\t 
-[PASS] Test <length> invalid value:    +in\r\n\t 
-[PASS] Test <length> invalid value:    +cm\r\n\t 
-[PASS] Test <length> invalid value:    +mm\r\n\t 
-[PASS] Test <length> invalid value:    +pt\r\n\t 
-[PASS] Test <length> invalid value:    +pc\r\n\t 
-[PASS] Test <length> invalid value:    +%\r\n\t 
-[PASS] Test <length> invalid value:    -.\r\n\t 
-[PASS] Test <length> invalid value:    -.em\r\n\t 
-[PASS] Test <length> invalid value:    -.ex\r\n\t 
-[PASS] Test <length> invalid value:    -.px\r\n\t 
-[PASS] Test <length> invalid value:    -.in\r\n\t 
-[PASS] Test <length> invalid value:    -.cm\r\n\t 
-[PASS] Test <length> invalid value:    -.mm\r\n\t 
-[PASS] Test <length> invalid value:    -.pt\r\n\t 
-[PASS] Test <length> invalid value:    -.pc\r\n\t 
-[PASS] Test <length> invalid value:    -.%\r\n\t 
-[PASS] Test <length> invalid value:    .-\r\n\t 
-[PASS] Test <length> invalid value:    .-em\r\n\t 
-[PASS] Test <length> invalid value:    .-ex\r\n\t 
-[PASS] Test <length> invalid value:    .-px\r\n\t 
-[PASS] Test <length> invalid value:    .-in\r\n\t 
-[PASS] Test <length> invalid value:    .-cm\r\n\t 
-[PASS] Test <length> invalid value:    .-mm\r\n\t 
-[PASS] Test <length> invalid value:    .-pt\r\n\t 
-[PASS] Test <length> invalid value:    .-pc\r\n\t 
-[PASS] Test <length> invalid value:    .-%\r\n\t 
-[PASS] Test <length> invalid value:    -\f
-[PASS] Test <length> invalid value:    -em\f
-[PASS] Test <length> invalid value:    -ex\f
-[PASS] Test <length> invalid value:    -px\f
-[PASS] Test <length> invalid value:    -in\f
-[PASS] Test <length> invalid value:    -cm\f
-[PASS] Test <length> invalid value:    -mm\f
-[PASS] Test <length> invalid value:    -pt\f
-[PASS] Test <length> invalid value:    -pc\f
-[PASS] Test <length> invalid value:    -%\f
-[PASS] Test <length> invalid value:    +\f
-[PASS] Test <length> invalid value:    +em\f
-[PASS] Test <length> invalid value:    +ex\f
-[PASS] Test <length> invalid value:    +px\f
-[PASS] Test <length> invalid value:    +in\f
-[PASS] Test <length> invalid value:    +cm\f
-[PASS] Test <length> invalid value:    +mm\f
-[PASS] Test <length> invalid value:    +pt\f
-[PASS] Test <length> invalid value:    +pc\f
-[PASS] Test <length> invalid value:    +%\f
-[PASS] Test <length> invalid value:    -.\f
-[PASS] Test <length> invalid value:    -.em\f
-[PASS] Test <length> invalid value:    -.ex\f
-[PASS] Test <length> invalid value:    -.px\f
-[PASS] Test <length> invalid value:    -.in\f
-[PASS] Test <length> invalid value:    -.cm\f
-[PASS] Test <length> invalid value:    -.mm\f
-[PASS] Test <length> invalid value:    -.pt\f
-[PASS] Test <length> invalid value:    -.pc\f
-[PASS] Test <length> invalid value:    -.%\f
-[PASS] Test <length> invalid value:    .-\f
-[PASS] Test <length> invalid value:    .-em\f
-[PASS] Test <length> invalid value:    .-ex\f
-[PASS] Test <length> invalid value:    .-px\f
-[PASS] Test <length> invalid value:    .-in\f
-[PASS] Test <length> invalid value:    .-cm\f
-[PASS] Test <length> invalid value:    .-mm\f
-[PASS] Test <length> invalid value:    .-pt\f
-[PASS] Test <length> invalid value:    .-pc\f
-[PASS] Test <length> invalid value:    .-%\f
-[PASS] Test <length> invalid value: \r\n\t -
-[PASS] Test <length> invalid value: \r\n\t -em
-[PASS] Test <length> invalid value: \r\n\t -ex
-[PASS] Test <length> invalid value: \r\n\t -px
-[PASS] Test <length> invalid value: \r\n\t -in
-[PASS] Test <length> invalid value: \r\n\t -cm
-[PASS] Test <length> invalid value: \r\n\t -mm
-[PASS] Test <length> invalid value: \r\n\t -pt
-[PASS] Test <length> invalid value: \r\n\t -pc
-[PASS] Test <length> invalid value: \r\n\t -%
-[PASS] Test <length> invalid value: \r\n\t +
-[PASS] Test <length> invalid value: \r\n\t +em
-[PASS] Test <length> invalid value: \r\n\t +ex
-[PASS] Test <length> invalid value: \r\n\t +px
-[PASS] Test <length> invalid value: \r\n\t +in
-[PASS] Test <length> invalid value: \r\n\t +cm
-[PASS] Test <length> invalid value: \r\n\t +mm
-[PASS] Test <length> invalid value: \r\n\t +pt
-[PASS] Test <length> invalid value: \r\n\t +pc
-[PASS] Test <length> invalid value: \r\n\t +%
-[PASS] Test <length> invalid value: \r\n\t -.
-[PASS] Test <length> invalid value: \r\n\t -.em
-[PASS] Test <length> invalid value: \r\n\t -.ex
-[PASS] Test <length> invalid value: \r\n\t -.px
-[PASS] Test <length> invalid value: \r\n\t -.in
-[PASS] Test <length> invalid value: \r\n\t -.cm
-[PASS] Test <length> invalid value: \r\n\t -.mm
-[PASS] Test <length> invalid value: \r\n\t -.pt
-[PASS] Test <length> invalid value: \r\n\t -.pc
-[PASS] Test <length> invalid value: \r\n\t -.%
-[PASS] Test <length> invalid value: \r\n\t .-
-[PASS] Test <length> invalid value: \r\n\t .-em
-[PASS] Test <length> invalid value: \r\n\t .-ex
-[PASS] Test <length> invalid value: \r\n\t .-px
-[PASS] Test <length> invalid value: \r\n\t .-in
-[PASS] Test <length> invalid value: \r\n\t .-cm
-[PASS] Test <length> invalid value: \r\n\t .-mm
-[PASS] Test <length> invalid value: \r\n\t .-pt
-[PASS] Test <length> invalid value: \r\n\t .-pc
-[PASS] Test <length> invalid value: \r\n\t .-%
-[PASS] Test <length> invalid value: \r\n\t - 
-[PASS] Test <length> invalid value: \r\n\t -em 
-[PASS] Test <length> invalid value: \r\n\t -ex 
-[PASS] Test <length> invalid value: \r\n\t -px 
-[PASS] Test <length> invalid value: \r\n\t -in 
-[PASS] Test <length> invalid value: \r\n\t -cm 
-[PASS] Test <length> invalid value: \r\n\t -mm 
-[PASS] Test <length> invalid value: \r\n\t -pt 
-[PASS] Test <length> invalid value: \r\n\t -pc 
-[PASS] Test <length> invalid value: \r\n\t -% 
-[PASS] Test <length> invalid value: \r\n\t + 
-[PASS] Test <length> invalid value: \r\n\t +em 
-[PASS] Test <length> invalid value: \r\n\t +ex 
-[PASS] Test <length> invalid value: \r\n\t +px 
-[PASS] Test <length> invalid value: \r\n\t +in 
-[PASS] Test <length> invalid value: \r\n\t +cm 
-[PASS] Test <length> invalid value: \r\n\t +mm 
-[PASS] Test <length> invalid value: \r\n\t +pt 
-[PASS] Test <length> invalid value: \r\n\t +pc 
-[PASS] Test <length> invalid value: \r\n\t +% 
-[PASS] Test <length> invalid value: \r\n\t -. 
-[PASS] Test <length> invalid value: \r\n\t -.em 
-[PASS] Test <length> invalid value: \r\n\t -.ex 
-[PASS] Test <length> invalid value: \r\n\t -.px 
-[PASS] Test <length> invalid value: \r\n\t -.in 
-[PASS] Test <length> invalid value: \r\n\t -.cm 
-[PASS] Test <length> invalid value: \r\n\t -.mm 
-[PASS] Test <length> invalid value: \r\n\t -.pt 
-[PASS] Test <length> invalid value: \r\n\t -.pc 
-[PASS] Test <length> invalid value: \r\n\t -.% 
-[PASS] Test <length> invalid value: \r\n\t .- 
-[PASS] Test <length> invalid value: \r\n\t .-em 
-[PASS] Test <length> invalid value: \r\n\t .-ex 
-[PASS] Test <length> invalid value: \r\n\t .-px 
-[PASS] Test <length> invalid value: \r\n\t .-in 
-[PASS] Test <length> invalid value: \r\n\t .-cm 
-[PASS] Test <length> invalid value: \r\n\t .-mm 
-[PASS] Test <length> invalid value: \r\n\t .-pt 
-[PASS] Test <length> invalid value: \r\n\t .-pc 
-[PASS] Test <length> invalid value: \r\n\t .-% 
-[PASS] Test <length> invalid value: \r\n\t -   
-[PASS] Test <length> invalid value: \r\n\t -em   
-[PASS] Test <length> invalid value: \r\n\t -ex   
-[PASS] Test <length> invalid value: \r\n\t -px   
-[PASS] Test <length> invalid value: \r\n\t -in   
-[PASS] Test <length> invalid value: \r\n\t -cm   
-[PASS] Test <length> invalid value: \r\n\t -mm   
-[PASS] Test <length> invalid value: \r\n\t -pt   
-[PASS] Test <length> invalid value: \r\n\t -pc   
-[PASS] Test <length> invalid value: \r\n\t -%   
-[PASS] Test <length> invalid value: \r\n\t +   
-[PASS] Test <length> invalid value: \r\n\t +em   
-[PASS] Test <length> invalid value: \r\n\t +ex   
-[PASS] Test <length> invalid value: \r\n\t +px   
-[PASS] Test <length> invalid value: \r\n\t +in   
-[PASS] Test <length> invalid value: \r\n\t +cm   
-[PASS] Test <length> invalid value: \r\n\t +mm   
-[PASS] Test <length> invalid value: \r\n\t +pt   
-[PASS] Test <length> invalid value: \r\n\t +pc   
-[PASS] Test <length> invalid value: \r\n\t +%   
-[PASS] Test <length> invalid value: \r\n\t -.   
-[PASS] Test <length> invalid value: \r\n\t -.em   
-[PASS] Test <length> invalid value: \r\n\t -.ex   
-[PASS] Test <length> invalid value: \r\n\t -.px   
-[PASS] Test <length> invalid value: \r\n\t -.in   
-[PASS] Test <length> invalid value: \r\n\t -.cm   
-[PASS] Test <length> invalid value: \r\n\t -.mm   
-[PASS] Test <length> invalid value: \r\n\t -.pt   
-[PASS] Test <length> invalid value: \r\n\t -.pc   
-[PASS] Test <length> invalid value: \r\n\t -.%   
-[PASS] Test <length> invalid value: \r\n\t .-   
-[PASS] Test <length> invalid value: \r\n\t .-em   
-[PASS] Test <length> invalid value: \r\n\t .-ex   
-[PASS] Test <length> invalid value: \r\n\t .-px   
-[PASS] Test <length> invalid value: \r\n\t .-in   
-[PASS] Test <length> invalid value: \r\n\t .-cm   
-[PASS] Test <length> invalid value: \r\n\t .-mm   
-[PASS] Test <length> invalid value: \r\n\t .-pt   
-[PASS] Test <length> invalid value: \r\n\t .-pc   
-[PASS] Test <length> invalid value: \r\n\t .-%   
-[PASS] Test <length> invalid value: \r\n\t -\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -em\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -ex\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -px\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -in\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -cm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -mm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -pt\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -pc\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -%\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t +\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t +em\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t +ex\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t +px\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t +in\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t +cm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t +mm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t +pt\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t +pc\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t +%\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -.\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -.em\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -.ex\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -.px\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -.in\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -.cm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -.mm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -.pt\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -.pc\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -.%\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .-\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .-em\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .-ex\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .-px\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .-in\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .-cm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .-mm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .-pt\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .-pc\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .-%\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t -\f
-[PASS] Test <length> invalid value: \r\n\t -em\f
-[PASS] Test <length> invalid value: \r\n\t -ex\f
-[PASS] Test <length> invalid value: \r\n\t -px\f
-[PASS] Test <length> invalid value: \r\n\t -in\f
-[PASS] Test <length> invalid value: \r\n\t -cm\f
-[PASS] Test <length> invalid value: \r\n\t -mm\f
-[PASS] Test <length> invalid value: \r\n\t -pt\f
-[PASS] Test <length> invalid value: \r\n\t -pc\f
-[PASS] Test <length> invalid value: \r\n\t -%\f
-[PASS] Test <length> invalid value: \r\n\t +\f
-[PASS] Test <length> invalid value: \r\n\t +em\f
-[PASS] Test <length> invalid value: \r\n\t +ex\f
-[PASS] Test <length> invalid value: \r\n\t +px\f
-[PASS] Test <length> invalid value: \r\n\t +in\f
-[PASS] Test <length> invalid value: \r\n\t +cm\f
-[PASS] Test <length> invalid value: \r\n\t +mm\f
-[PASS] Test <length> invalid value: \r\n\t +pt\f
-[PASS] Test <length> invalid value: \r\n\t +pc\f
-[PASS] Test <length> invalid value: \r\n\t +%\f
-[PASS] Test <length> invalid value: \r\n\t -.\f
-[PASS] Test <length> invalid value: \r\n\t -.em\f
-[PASS] Test <length> invalid value: \r\n\t -.ex\f
-[PASS] Test <length> invalid value: \r\n\t -.px\f
-[PASS] Test <length> invalid value: \r\n\t -.in\f
-[PASS] Test <length> invalid value: \r\n\t -.cm\f
-[PASS] Test <length> invalid value: \r\n\t -.mm\f
-[PASS] Test <length> invalid value: \r\n\t -.pt\f
-[PASS] Test <length> invalid value: \r\n\t -.pc\f
-[PASS] Test <length> invalid value: \r\n\t -.%\f
-[PASS] Test <length> invalid value: \r\n\t .-\f
-[PASS] Test <length> invalid value: \r\n\t .-em\f
-[PASS] Test <length> invalid value: \r\n\t .-ex\f
-[PASS] Test <length> invalid value: \r\n\t .-px\f
-[PASS] Test <length> invalid value: \r\n\t .-in\f
-[PASS] Test <length> invalid value: \r\n\t .-cm\f
-[PASS] Test <length> invalid value: \r\n\t .-mm\f
-[PASS] Test <length> invalid value: \r\n\t .-pt\f
-[PASS] Test <length> invalid value: \r\n\t .-pc\f
-[PASS] Test <length> invalid value: \r\n\t .-%\f
-[PASS] Test <length> invalid value: \f-
-[PASS] Test <length> invalid value: \f-em
-[PASS] Test <length> invalid value: \f-ex
-[PASS] Test <length> invalid value: \f-px
-[PASS] Test <length> invalid value: \f-in
-[PASS] Test <length> invalid value: \f-cm
-[PASS] Test <length> invalid value: \f-mm
-[PASS] Test <length> invalid value: \f-pt
-[PASS] Test <length> invalid value: \f-pc
-[PASS] Test <length> invalid value: \f-%
-[PASS] Test <length> invalid value: \f+
-[PASS] Test <length> invalid value: \f+em
-[PASS] Test <length> invalid value: \f+ex
-[PASS] Test <length> invalid value: \f+px
-[PASS] Test <length> invalid value: \f+in
-[PASS] Test <length> invalid value: \f+cm
-[PASS] Test <length> invalid value: \f+mm
-[PASS] Test <length> invalid value: \f+pt
-[PASS] Test <length> invalid value: \f+pc
-[PASS] Test <length> invalid value: \f+%
-[PASS] Test <length> invalid value: \f-.
-[PASS] Test <length> invalid value: \f-.em
-[PASS] Test <length> invalid value: \f-.ex
-[PASS] Test <length> invalid value: \f-.px
-[PASS] Test <length> invalid value: \f-.in
-[PASS] Test <length> invalid value: \f-.cm
-[PASS] Test <length> invalid value: \f-.mm
-[PASS] Test <length> invalid value: \f-.pt
-[PASS] Test <length> invalid value: \f-.pc
-[PASS] Test <length> invalid value: \f-.%
-[PASS] Test <length> invalid value: \f.-
-[PASS] Test <length> invalid value: \f.-em
-[PASS] Test <length> invalid value: \f.-ex
-[PASS] Test <length> invalid value: \f.-px
-[PASS] Test <length> invalid value: \f.-in
-[PASS] Test <length> invalid value: \f.-cm
-[PASS] Test <length> invalid value: \f.-mm
-[PASS] Test <length> invalid value: \f.-pt
-[PASS] Test <length> invalid value: \f.-pc
-[PASS] Test <length> invalid value: \f.-%
-[PASS] Test <length> invalid value: \f- 
-[PASS] Test <length> invalid value: \f-em 
-[PASS] Test <length> invalid value: \f-ex 
-[PASS] Test <length> invalid value: \f-px 
-[PASS] Test <length> invalid value: \f-in 
-[PASS] Test <length> invalid value: \f-cm 
-[PASS] Test <length> invalid value: \f-mm 
-[PASS] Test <length> invalid value: \f-pt 
-[PASS] Test <length> invalid value: \f-pc 
-[PASS] Test <length> invalid value: \f-% 
-[PASS] Test <length> invalid value: \f+ 
-[PASS] Test <length> invalid value: \f+em 
-[PASS] Test <length> invalid value: \f+ex 
-[PASS] Test <length> invalid value: \f+px 
-[PASS] Test <length> invalid value: \f+in 
-[PASS] Test <length> invalid value: \f+cm 
-[PASS] Test <length> invalid value: \f+mm 
-[PASS] Test <length> invalid value: \f+pt 
-[PASS] Test <length> invalid value: \f+pc 
-[PASS] Test <length> invalid value: \f+% 
-[PASS] Test <length> invalid value: \f-. 
-[PASS] Test <length> invalid value: \f-.em 
-[PASS] Test <length> invalid value: \f-.ex 
-[PASS] Test <length> invalid value: \f-.px 
-[PASS] Test <length> invalid value: \f-.in 
-[PASS] Test <length> invalid value: \f-.cm 
-[PASS] Test <length> invalid value: \f-.mm 
-[PASS] Test <length> invalid value: \f-.pt 
-[PASS] Test <length> invalid value: \f-.pc 
-[PASS] Test <length> invalid value: \f-.% 
-[PASS] Test <length> invalid value: \f.- 
-[PASS] Test <length> invalid value: \f.-em 
-[PASS] Test <length> invalid value: \f.-ex 
-[PASS] Test <length> invalid value: \f.-px 
-[PASS] Test <length> invalid value: \f.-in 
-[PASS] Test <length> invalid value: \f.-cm 
-[PASS] Test <length> invalid value: \f.-mm 
-[PASS] Test <length> invalid value: \f.-pt 
-[PASS] Test <length> invalid value: \f.-pc 
-[PASS] Test <length> invalid value: \f.-% 
-[PASS] Test <length> invalid value: \f-   
-[PASS] Test <length> invalid value: \f-em   
-[PASS] Test <length> invalid value: \f-ex   
-[PASS] Test <length> invalid value: \f-px   
-[PASS] Test <length> invalid value: \f-in   
-[PASS] Test <length> invalid value: \f-cm   
-[PASS] Test <length> invalid value: \f-mm   
-[PASS] Test <length> invalid value: \f-pt   
-[PASS] Test <length> invalid value: \f-pc   
-[PASS] Test <length> invalid value: \f-%   
-[PASS] Test <length> invalid value: \f+   
-[PASS] Test <length> invalid value: \f+em   
-[PASS] Test <length> invalid value: \f+ex   
-[PASS] Test <length> invalid value: \f+px   
-[PASS] Test <length> invalid value: \f+in   
-[PASS] Test <length> invalid value: \f+cm   
-[PASS] Test <length> invalid value: \f+mm   
-[PASS] Test <length> invalid value: \f+pt   
-[PASS] Test <length> invalid value: \f+pc   
-[PASS] Test <length> invalid value: \f+%   
-[PASS] Test <length> invalid value: \f-.   
-[PASS] Test <length> invalid value: \f-.em   
-[PASS] Test <length> invalid value: \f-.ex   
-[PASS] Test <length> invalid value: \f-.px   
-[PASS] Test <length> invalid value: \f-.in   
-[PASS] Test <length> invalid value: \f-.cm   
-[PASS] Test <length> invalid value: \f-.mm   
-[PASS] Test <length> invalid value: \f-.pt   
-[PASS] Test <length> invalid value: \f-.pc   
-[PASS] Test <length> invalid value: \f-.%   
-[PASS] Test <length> invalid value: \f.-   
-[PASS] Test <length> invalid value: \f.-em   
-[PASS] Test <length> invalid value: \f.-ex   
-[PASS] Test <length> invalid value: \f.-px   
-[PASS] Test <length> invalid value: \f.-in   
-[PASS] Test <length> invalid value: \f.-cm   
-[PASS] Test <length> invalid value: \f.-mm   
-[PASS] Test <length> invalid value: \f.-pt   
-[PASS] Test <length> invalid value: \f.-pc   
-[PASS] Test <length> invalid value: \f.-%   
-[PASS] Test <length> invalid value: \f-\r\n\t 
-[PASS] Test <length> invalid value: \f-em\r\n\t 
-[PASS] Test <length> invalid value: \f-ex\r\n\t 
-[PASS] Test <length> invalid value: \f-px\r\n\t 
-[PASS] Test <length> invalid value: \f-in\r\n\t 
-[PASS] Test <length> invalid value: \f-cm\r\n\t 
-[PASS] Test <length> invalid value: \f-mm\r\n\t 
-[PASS] Test <length> invalid value: \f-pt\r\n\t 
-[PASS] Test <length> invalid value: \f-pc\r\n\t 
-[PASS] Test <length> invalid value: \f-%\r\n\t 
-[PASS] Test <length> invalid value: \f+\r\n\t 
-[PASS] Test <length> invalid value: \f+em\r\n\t 
-[PASS] Test <length> invalid value: \f+ex\r\n\t 
-[PASS] Test <length> invalid value: \f+px\r\n\t 
-[PASS] Test <length> invalid value: \f+in\r\n\t 
-[PASS] Test <length> invalid value: \f+cm\r\n\t 
-[PASS] Test <length> invalid value: \f+mm\r\n\t 
-[PASS] Test <length> invalid value: \f+pt\r\n\t 
-[PASS] Test <length> invalid value: \f+pc\r\n\t 
-[PASS] Test <length> invalid value: \f+%\r\n\t 
-[PASS] Test <length> invalid value: \f-.\r\n\t 
-[PASS] Test <length> invalid value: \f-.em\r\n\t 
-[PASS] Test <length> invalid value: \f-.ex\r\n\t 
-[PASS] Test <length> invalid value: \f-.px\r\n\t 
-[PASS] Test <length> invalid value: \f-.in\r\n\t 
-[PASS] Test <length> invalid value: \f-.cm\r\n\t 
-[PASS] Test <length> invalid value: \f-.mm\r\n\t 
-[PASS] Test <length> invalid value: \f-.pt\r\n\t 
-[PASS] Test <length> invalid value: \f-.pc\r\n\t 
-[PASS] Test <length> invalid value: \f-.%\r\n\t 
-[PASS] Test <length> invalid value: \f.-\r\n\t 
-[PASS] Test <length> invalid value: \f.-em\r\n\t 
-[PASS] Test <length> invalid value: \f.-ex\r\n\t 
-[PASS] Test <length> invalid value: \f.-px\r\n\t 
-[PASS] Test <length> invalid value: \f.-in\r\n\t 
-[PASS] Test <length> invalid value: \f.-cm\r\n\t 
-[PASS] Test <length> invalid value: \f.-mm\r\n\t 
-[PASS] Test <length> invalid value: \f.-pt\r\n\t 
-[PASS] Test <length> invalid value: \f.-pc\r\n\t 
-[PASS] Test <length> invalid value: \f.-%\r\n\t 
-[PASS] Test <length> invalid value: \f-\f
-[PASS] Test <length> invalid value: \f-em\f
-[PASS] Test <length> invalid value: \f-ex\f
-[PASS] Test <length> invalid value: \f-px\f
-[PASS] Test <length> invalid value: \f-in\f
-[PASS] Test <length> invalid value: \f-cm\f
-[PASS] Test <length> invalid value: \f-mm\f
-[PASS] Test <length> invalid value: \f-pt\f
-[PASS] Test <length> invalid value: \f-pc\f
-[PASS] Test <length> invalid value: \f-%\f
-[PASS] Test <length> invalid value: \f+\f
-[PASS] Test <length> invalid value: \f+em\f
-[PASS] Test <length> invalid value: \f+ex\f
-[PASS] Test <length> invalid value: \f+px\f
-[PASS] Test <length> invalid value: \f+in\f
-[PASS] Test <length> invalid value: \f+cm\f
-[PASS] Test <length> invalid value: \f+mm\f
-[PASS] Test <length> invalid value: \f+pt\f
-[PASS] Test <length> invalid value: \f+pc\f
-[PASS] Test <length> invalid value: \f+%\f
-[PASS] Test <length> invalid value: \f-.\f
-[PASS] Test <length> invalid value: \f-.em\f
-[PASS] Test <length> invalid value: \f-.ex\f
-[PASS] Test <length> invalid value: \f-.px\f
-[PASS] Test <length> invalid value: \f-.in\f
-[PASS] Test <length> invalid value: \f-.cm\f
-[PASS] Test <length> invalid value: \f-.mm\f
-[PASS] Test <length> invalid value: \f-.pt\f
-[PASS] Test <length> invalid value: \f-.pc\f
-[PASS] Test <length> invalid value: \f-.%\f
-[PASS] Test <length> invalid value: \f.-\f
-[PASS] Test <length> invalid value: \f.-em\f
-[PASS] Test <length> invalid value: \f.-ex\f
-[PASS] Test <length> invalid value: \f.-px\f
-[PASS] Test <length> invalid value: \f.-in\f
-[PASS] Test <length> invalid value: \f.-cm\f
-[PASS] Test <length> invalid value: \f.-mm\f
-[PASS] Test <length> invalid value: \f.-pt\f
-[PASS] Test <length> invalid value: \f.-pc\f
-[PASS] Test <length> invalid value: \f.-%\f
+[PASS] Test <length> invalid value:    -\\r\\n\\t 
+[PASS] Test <length> invalid value:    -em\\r\\n\\t 
+[PASS] Test <length> invalid value:    -ex\\r\\n\\t 
+[PASS] Test <length> invalid value:    -px\\r\\n\\t 
+[PASS] Test <length> invalid value:    -in\\r\\n\\t 
+[PASS] Test <length> invalid value:    -cm\\r\\n\\t 
+[PASS] Test <length> invalid value:    -mm\\r\\n\\t 
+[PASS] Test <length> invalid value:    -pt\\r\\n\\t 
+[PASS] Test <length> invalid value:    -pc\\r\\n\\t 
+[PASS] Test <length> invalid value:    -%\\r\\n\\t 
+[PASS] Test <length> invalid value:    +\\r\\n\\t 
+[PASS] Test <length> invalid value:    +em\\r\\n\\t 
+[PASS] Test <length> invalid value:    +ex\\r\\n\\t 
+[PASS] Test <length> invalid value:    +px\\r\\n\\t 
+[PASS] Test <length> invalid value:    +in\\r\\n\\t 
+[PASS] Test <length> invalid value:    +cm\\r\\n\\t 
+[PASS] Test <length> invalid value:    +mm\\r\\n\\t 
+[PASS] Test <length> invalid value:    +pt\\r\\n\\t 
+[PASS] Test <length> invalid value:    +pc\\r\\n\\t 
+[PASS] Test <length> invalid value:    +%\\r\\n\\t 
+[PASS] Test <length> invalid value:    -.\\r\\n\\t 
+[PASS] Test <length> invalid value:    -.em\\r\\n\\t 
+[PASS] Test <length> invalid value:    -.ex\\r\\n\\t 
+[PASS] Test <length> invalid value:    -.px\\r\\n\\t 
+[PASS] Test <length> invalid value:    -.in\\r\\n\\t 
+[PASS] Test <length> invalid value:    -.cm\\r\\n\\t 
+[PASS] Test <length> invalid value:    -.mm\\r\\n\\t 
+[PASS] Test <length> invalid value:    -.pt\\r\\n\\t 
+[PASS] Test <length> invalid value:    -.pc\\r\\n\\t 
+[PASS] Test <length> invalid value:    -.%\\r\\n\\t 
+[PASS] Test <length> invalid value:    .-\\r\\n\\t 
+[PASS] Test <length> invalid value:    .-em\\r\\n\\t 
+[PASS] Test <length> invalid value:    .-ex\\r\\n\\t 
+[PASS] Test <length> invalid value:    .-px\\r\\n\\t 
+[PASS] Test <length> invalid value:    .-in\\r\\n\\t 
+[PASS] Test <length> invalid value:    .-cm\\r\\n\\t 
+[PASS] Test <length> invalid value:    .-mm\\r\\n\\t 
+[PASS] Test <length> invalid value:    .-pt\\r\\n\\t 
+[PASS] Test <length> invalid value:    .-pc\\r\\n\\t 
+[PASS] Test <length> invalid value:    .-%\\r\\n\\t 
+[PASS] Test <length> invalid value:    -\\f
+[PASS] Test <length> invalid value:    -em\\f
+[PASS] Test <length> invalid value:    -ex\\f
+[PASS] Test <length> invalid value:    -px\\f
+[PASS] Test <length> invalid value:    -in\\f
+[PASS] Test <length> invalid value:    -cm\\f
+[PASS] Test <length> invalid value:    -mm\\f
+[PASS] Test <length> invalid value:    -pt\\f
+[PASS] Test <length> invalid value:    -pc\\f
+[PASS] Test <length> invalid value:    -%\\f
+[PASS] Test <length> invalid value:    +\\f
+[PASS] Test <length> invalid value:    +em\\f
+[PASS] Test <length> invalid value:    +ex\\f
+[PASS] Test <length> invalid value:    +px\\f
+[PASS] Test <length> invalid value:    +in\\f
+[PASS] Test <length> invalid value:    +cm\\f
+[PASS] Test <length> invalid value:    +mm\\f
+[PASS] Test <length> invalid value:    +pt\\f
+[PASS] Test <length> invalid value:    +pc\\f
+[PASS] Test <length> invalid value:    +%\\f
+[PASS] Test <length> invalid value:    -.\\f
+[PASS] Test <length> invalid value:    -.em\\f
+[PASS] Test <length> invalid value:    -.ex\\f
+[PASS] Test <length> invalid value:    -.px\\f
+[PASS] Test <length> invalid value:    -.in\\f
+[PASS] Test <length> invalid value:    -.cm\\f
+[PASS] Test <length> invalid value:    -.mm\\f
+[PASS] Test <length> invalid value:    -.pt\\f
+[PASS] Test <length> invalid value:    -.pc\\f
+[PASS] Test <length> invalid value:    -.%\\f
+[PASS] Test <length> invalid value:    .-\\f
+[PASS] Test <length> invalid value:    .-em\\f
+[PASS] Test <length> invalid value:    .-ex\\f
+[PASS] Test <length> invalid value:    .-px\\f
+[PASS] Test <length> invalid value:    .-in\\f
+[PASS] Test <length> invalid value:    .-cm\\f
+[PASS] Test <length> invalid value:    .-mm\\f
+[PASS] Test <length> invalid value:    .-pt\\f
+[PASS] Test <length> invalid value:    .-pc\\f
+[PASS] Test <length> invalid value:    .-%\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -
+[PASS] Test <length> invalid value: \\r\\n\\t -em
+[PASS] Test <length> invalid value: \\r\\n\\t -ex
+[PASS] Test <length> invalid value: \\r\\n\\t -px
+[PASS] Test <length> invalid value: \\r\\n\\t -in
+[PASS] Test <length> invalid value: \\r\\n\\t -cm
+[PASS] Test <length> invalid value: \\r\\n\\t -mm
+[PASS] Test <length> invalid value: \\r\\n\\t -pt
+[PASS] Test <length> invalid value: \\r\\n\\t -pc
+[PASS] Test <length> invalid value: \\r\\n\\t -%
+[PASS] Test <length> invalid value: \\r\\n\\t +
+[PASS] Test <length> invalid value: \\r\\n\\t +em
+[PASS] Test <length> invalid value: \\r\\n\\t +ex
+[PASS] Test <length> invalid value: \\r\\n\\t +px
+[PASS] Test <length> invalid value: \\r\\n\\t +in
+[PASS] Test <length> invalid value: \\r\\n\\t +cm
+[PASS] Test <length> invalid value: \\r\\n\\t +mm
+[PASS] Test <length> invalid value: \\r\\n\\t +pt
+[PASS] Test <length> invalid value: \\r\\n\\t +pc
+[PASS] Test <length> invalid value: \\r\\n\\t +%
+[PASS] Test <length> invalid value: \\r\\n\\t -.
+[PASS] Test <length> invalid value: \\r\\n\\t -.em
+[PASS] Test <length> invalid value: \\r\\n\\t -.ex
+[PASS] Test <length> invalid value: \\r\\n\\t -.px
+[PASS] Test <length> invalid value: \\r\\n\\t -.in
+[PASS] Test <length> invalid value: \\r\\n\\t -.cm
+[PASS] Test <length> invalid value: \\r\\n\\t -.mm
+[PASS] Test <length> invalid value: \\r\\n\\t -.pt
+[PASS] Test <length> invalid value: \\r\\n\\t -.pc
+[PASS] Test <length> invalid value: \\r\\n\\t -.%
+[PASS] Test <length> invalid value: \\r\\n\\t .-
+[PASS] Test <length> invalid value: \\r\\n\\t .-em
+[PASS] Test <length> invalid value: \\r\\n\\t .-ex
+[PASS] Test <length> invalid value: \\r\\n\\t .-px
+[PASS] Test <length> invalid value: \\r\\n\\t .-in
+[PASS] Test <length> invalid value: \\r\\n\\t .-cm
+[PASS] Test <length> invalid value: \\r\\n\\t .-mm
+[PASS] Test <length> invalid value: \\r\\n\\t .-pt
+[PASS] Test <length> invalid value: \\r\\n\\t .-pc
+[PASS] Test <length> invalid value: \\r\\n\\t .-%
+[PASS] Test <length> invalid value: \\r\\n\\t - 
+[PASS] Test <length> invalid value: \\r\\n\\t -em 
+[PASS] Test <length> invalid value: \\r\\n\\t -ex 
+[PASS] Test <length> invalid value: \\r\\n\\t -px 
+[PASS] Test <length> invalid value: \\r\\n\\t -in 
+[PASS] Test <length> invalid value: \\r\\n\\t -cm 
+[PASS] Test <length> invalid value: \\r\\n\\t -mm 
+[PASS] Test <length> invalid value: \\r\\n\\t -pt 
+[PASS] Test <length> invalid value: \\r\\n\\t -pc 
+[PASS] Test <length> invalid value: \\r\\n\\t -% 
+[PASS] Test <length> invalid value: \\r\\n\\t + 
+[PASS] Test <length> invalid value: \\r\\n\\t +em 
+[PASS] Test <length> invalid value: \\r\\n\\t +ex 
+[PASS] Test <length> invalid value: \\r\\n\\t +px 
+[PASS] Test <length> invalid value: \\r\\n\\t +in 
+[PASS] Test <length> invalid value: \\r\\n\\t +cm 
+[PASS] Test <length> invalid value: \\r\\n\\t +mm 
+[PASS] Test <length> invalid value: \\r\\n\\t +pt 
+[PASS] Test <length> invalid value: \\r\\n\\t +pc 
+[PASS] Test <length> invalid value: \\r\\n\\t +% 
+[PASS] Test <length> invalid value: \\r\\n\\t -. 
+[PASS] Test <length> invalid value: \\r\\n\\t -.em 
+[PASS] Test <length> invalid value: \\r\\n\\t -.ex 
+[PASS] Test <length> invalid value: \\r\\n\\t -.px 
+[PASS] Test <length> invalid value: \\r\\n\\t -.in 
+[PASS] Test <length> invalid value: \\r\\n\\t -.cm 
+[PASS] Test <length> invalid value: \\r\\n\\t -.mm 
+[PASS] Test <length> invalid value: \\r\\n\\t -.pt 
+[PASS] Test <length> invalid value: \\r\\n\\t -.pc 
+[PASS] Test <length> invalid value: \\r\\n\\t -.% 
+[PASS] Test <length> invalid value: \\r\\n\\t .- 
+[PASS] Test <length> invalid value: \\r\\n\\t .-em 
+[PASS] Test <length> invalid value: \\r\\n\\t .-ex 
+[PASS] Test <length> invalid value: \\r\\n\\t .-px 
+[PASS] Test <length> invalid value: \\r\\n\\t .-in 
+[PASS] Test <length> invalid value: \\r\\n\\t .-cm 
+[PASS] Test <length> invalid value: \\r\\n\\t .-mm 
+[PASS] Test <length> invalid value: \\r\\n\\t .-pt 
+[PASS] Test <length> invalid value: \\r\\n\\t .-pc 
+[PASS] Test <length> invalid value: \\r\\n\\t .-% 
+[PASS] Test <length> invalid value: \\r\\n\\t -   
+[PASS] Test <length> invalid value: \\r\\n\\t -em   
+[PASS] Test <length> invalid value: \\r\\n\\t -ex   
+[PASS] Test <length> invalid value: \\r\\n\\t -px   
+[PASS] Test <length> invalid value: \\r\\n\\t -in   
+[PASS] Test <length> invalid value: \\r\\n\\t -cm   
+[PASS] Test <length> invalid value: \\r\\n\\t -mm   
+[PASS] Test <length> invalid value: \\r\\n\\t -pt   
+[PASS] Test <length> invalid value: \\r\\n\\t -pc   
+[PASS] Test <length> invalid value: \\r\\n\\t -%   
+[PASS] Test <length> invalid value: \\r\\n\\t +   
+[PASS] Test <length> invalid value: \\r\\n\\t +em   
+[PASS] Test <length> invalid value: \\r\\n\\t +ex   
+[PASS] Test <length> invalid value: \\r\\n\\t +px   
+[PASS] Test <length> invalid value: \\r\\n\\t +in   
+[PASS] Test <length> invalid value: \\r\\n\\t +cm   
+[PASS] Test <length> invalid value: \\r\\n\\t +mm   
+[PASS] Test <length> invalid value: \\r\\n\\t +pt   
+[PASS] Test <length> invalid value: \\r\\n\\t +pc   
+[PASS] Test <length> invalid value: \\r\\n\\t +%   
+[PASS] Test <length> invalid value: \\r\\n\\t -.   
+[PASS] Test <length> invalid value: \\r\\n\\t -.em   
+[PASS] Test <length> invalid value: \\r\\n\\t -.ex   
+[PASS] Test <length> invalid value: \\r\\n\\t -.px   
+[PASS] Test <length> invalid value: \\r\\n\\t -.in   
+[PASS] Test <length> invalid value: \\r\\n\\t -.cm   
+[PASS] Test <length> invalid value: \\r\\n\\t -.mm   
+[PASS] Test <length> invalid value: \\r\\n\\t -.pt   
+[PASS] Test <length> invalid value: \\r\\n\\t -.pc   
+[PASS] Test <length> invalid value: \\r\\n\\t -.%   
+[PASS] Test <length> invalid value: \\r\\n\\t .-   
+[PASS] Test <length> invalid value: \\r\\n\\t .-em   
+[PASS] Test <length> invalid value: \\r\\n\\t .-ex   
+[PASS] Test <length> invalid value: \\r\\n\\t .-px   
+[PASS] Test <length> invalid value: \\r\\n\\t .-in   
+[PASS] Test <length> invalid value: \\r\\n\\t .-cm   
+[PASS] Test <length> invalid value: \\r\\n\\t .-mm   
+[PASS] Test <length> invalid value: \\r\\n\\t .-pt   
+[PASS] Test <length> invalid value: \\r\\n\\t .-pc   
+[PASS] Test <length> invalid value: \\r\\n\\t .-%   
+[PASS] Test <length> invalid value: \\r\\n\\t -\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -em\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -ex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -px\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -in\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -cm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -mm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -pt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -pc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t +\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t +em\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t +ex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t +px\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t +in\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t +cm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t +mm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t +pt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t +pc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t +%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -.\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -.em\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -.ex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -.px\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -.in\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -.cm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -.mm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -.pt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -.pc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -.%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .-\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .-em\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .-ex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .-px\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .-in\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .-cm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .-mm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .-pt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .-pc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .-%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t -\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -em\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -ex\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -px\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -in\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -cm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -mm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -pt\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -pc\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -%\\f
+[PASS] Test <length> invalid value: \\r\\n\\t +\\f
+[PASS] Test <length> invalid value: \\r\\n\\t +em\\f
+[PASS] Test <length> invalid value: \\r\\n\\t +ex\\f
+[PASS] Test <length> invalid value: \\r\\n\\t +px\\f
+[PASS] Test <length> invalid value: \\r\\n\\t +in\\f
+[PASS] Test <length> invalid value: \\r\\n\\t +cm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t +mm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t +pt\\f
+[PASS] Test <length> invalid value: \\r\\n\\t +pc\\f
+[PASS] Test <length> invalid value: \\r\\n\\t +%\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -.\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -.em\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -.ex\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -.px\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -.in\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -.cm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -.mm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -.pt\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -.pc\\f
+[PASS] Test <length> invalid value: \\r\\n\\t -.%\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .-\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .-em\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .-ex\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .-px\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .-in\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .-cm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .-mm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .-pt\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .-pc\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .-%\\f
+[PASS] Test <length> invalid value: \\f-
+[PASS] Test <length> invalid value: \\f-em
+[PASS] Test <length> invalid value: \\f-ex
+[PASS] Test <length> invalid value: \\f-px
+[PASS] Test <length> invalid value: \\f-in
+[PASS] Test <length> invalid value: \\f-cm
+[PASS] Test <length> invalid value: \\f-mm
+[PASS] Test <length> invalid value: \\f-pt
+[PASS] Test <length> invalid value: \\f-pc
+[PASS] Test <length> invalid value: \\f-%
+[PASS] Test <length> invalid value: \\f+
+[PASS] Test <length> invalid value: \\f+em
+[PASS] Test <length> invalid value: \\f+ex
+[PASS] Test <length> invalid value: \\f+px
+[PASS] Test <length> invalid value: \\f+in
+[PASS] Test <length> invalid value: \\f+cm
+[PASS] Test <length> invalid value: \\f+mm
+[PASS] Test <length> invalid value: \\f+pt
+[PASS] Test <length> invalid value: \\f+pc
+[PASS] Test <length> invalid value: \\f+%
+[PASS] Test <length> invalid value: \\f-.
+[PASS] Test <length> invalid value: \\f-.em
+[PASS] Test <length> invalid value: \\f-.ex
+[PASS] Test <length> invalid value: \\f-.px
+[PASS] Test <length> invalid value: \\f-.in
+[PASS] Test <length> invalid value: \\f-.cm
+[PASS] Test <length> invalid value: \\f-.mm
+[PASS] Test <length> invalid value: \\f-.pt
+[PASS] Test <length> invalid value: \\f-.pc
+[PASS] Test <length> invalid value: \\f-.%
+[PASS] Test <length> invalid value: \\f.-
+[PASS] Test <length> invalid value: \\f.-em
+[PASS] Test <length> invalid value: \\f.-ex
+[PASS] Test <length> invalid value: \\f.-px
+[PASS] Test <length> invalid value: \\f.-in
+[PASS] Test <length> invalid value: \\f.-cm
+[PASS] Test <length> invalid value: \\f.-mm
+[PASS] Test <length> invalid value: \\f.-pt
+[PASS] Test <length> invalid value: \\f.-pc
+[PASS] Test <length> invalid value: \\f.-%
+[PASS] Test <length> invalid value: \\f- 
+[PASS] Test <length> invalid value: \\f-em 
+[PASS] Test <length> invalid value: \\f-ex 
+[PASS] Test <length> invalid value: \\f-px 
+[PASS] Test <length> invalid value: \\f-in 
+[PASS] Test <length> invalid value: \\f-cm 
+[PASS] Test <length> invalid value: \\f-mm 
+[PASS] Test <length> invalid value: \\f-pt 
+[PASS] Test <length> invalid value: \\f-pc 
+[PASS] Test <length> invalid value: \\f-% 
+[PASS] Test <length> invalid value: \\f+ 
+[PASS] Test <length> invalid value: \\f+em 
+[PASS] Test <length> invalid value: \\f+ex 
+[PASS] Test <length> invalid value: \\f+px 
+[PASS] Test <length> invalid value: \\f+in 
+[PASS] Test <length> invalid value: \\f+cm 
+[PASS] Test <length> invalid value: \\f+mm 
+[PASS] Test <length> invalid value: \\f+pt 
+[PASS] Test <length> invalid value: \\f+pc 
+[PASS] Test <length> invalid value: \\f+% 
+[PASS] Test <length> invalid value: \\f-. 
+[PASS] Test <length> invalid value: \\f-.em 
+[PASS] Test <length> invalid value: \\f-.ex 
+[PASS] Test <length> invalid value: \\f-.px 
+[PASS] Test <length> invalid value: \\f-.in 
+[PASS] Test <length> invalid value: \\f-.cm 
+[PASS] Test <length> invalid value: \\f-.mm 
+[PASS] Test <length> invalid value: \\f-.pt 
+[PASS] Test <length> invalid value: \\f-.pc 
+[PASS] Test <length> invalid value: \\f-.% 
+[PASS] Test <length> invalid value: \\f.- 
+[PASS] Test <length> invalid value: \\f.-em 
+[PASS] Test <length> invalid value: \\f.-ex 
+[PASS] Test <length> invalid value: \\f.-px 
+[PASS] Test <length> invalid value: \\f.-in 
+[PASS] Test <length> invalid value: \\f.-cm 
+[PASS] Test <length> invalid value: \\f.-mm 
+[PASS] Test <length> invalid value: \\f.-pt 
+[PASS] Test <length> invalid value: \\f.-pc 
+[PASS] Test <length> invalid value: \\f.-% 
+[PASS] Test <length> invalid value: \\f-   
+[PASS] Test <length> invalid value: \\f-em   
+[PASS] Test <length> invalid value: \\f-ex   
+[PASS] Test <length> invalid value: \\f-px   
+[PASS] Test <length> invalid value: \\f-in   
+[PASS] Test <length> invalid value: \\f-cm   
+[PASS] Test <length> invalid value: \\f-mm   
+[PASS] Test <length> invalid value: \\f-pt   
+[PASS] Test <length> invalid value: \\f-pc   
+[PASS] Test <length> invalid value: \\f-%   
+[PASS] Test <length> invalid value: \\f+   
+[PASS] Test <length> invalid value: \\f+em   
+[PASS] Test <length> invalid value: \\f+ex   
+[PASS] Test <length> invalid value: \\f+px   
+[PASS] Test <length> invalid value: \\f+in   
+[PASS] Test <length> invalid value: \\f+cm   
+[PASS] Test <length> invalid value: \\f+mm   
+[PASS] Test <length> invalid value: \\f+pt   
+[PASS] Test <length> invalid value: \\f+pc   
+[PASS] Test <length> invalid value: \\f+%   
+[PASS] Test <length> invalid value: \\f-.   
+[PASS] Test <length> invalid value: \\f-.em   
+[PASS] Test <length> invalid value: \\f-.ex   
+[PASS] Test <length> invalid value: \\f-.px   
+[PASS] Test <length> invalid value: \\f-.in   
+[PASS] Test <length> invalid value: \\f-.cm   
+[PASS] Test <length> invalid value: \\f-.mm   
+[PASS] Test <length> invalid value: \\f-.pt   
+[PASS] Test <length> invalid value: \\f-.pc   
+[PASS] Test <length> invalid value: \\f-.%   
+[PASS] Test <length> invalid value: \\f.-   
+[PASS] Test <length> invalid value: \\f.-em   
+[PASS] Test <length> invalid value: \\f.-ex   
+[PASS] Test <length> invalid value: \\f.-px   
+[PASS] Test <length> invalid value: \\f.-in   
+[PASS] Test <length> invalid value: \\f.-cm   
+[PASS] Test <length> invalid value: \\f.-mm   
+[PASS] Test <length> invalid value: \\f.-pt   
+[PASS] Test <length> invalid value: \\f.-pc   
+[PASS] Test <length> invalid value: \\f.-%   
+[PASS] Test <length> invalid value: \\f-\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-em\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-ex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-px\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-in\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-cm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-mm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-pt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-pc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f+\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f+em\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f+ex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f+px\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f+in\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f+cm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f+mm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f+pt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f+pc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f+%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-.\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-.em\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-.ex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-.px\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-.in\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-.cm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-.mm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-.pt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-.pc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-.%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.-\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.-em\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.-ex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.-px\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.-in\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.-cm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.-mm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.-pt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.-pc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.-%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f-\\f
+[PASS] Test <length> invalid value: \\f-em\\f
+[PASS] Test <length> invalid value: \\f-ex\\f
+[PASS] Test <length> invalid value: \\f-px\\f
+[PASS] Test <length> invalid value: \\f-in\\f
+[PASS] Test <length> invalid value: \\f-cm\\f
+[PASS] Test <length> invalid value: \\f-mm\\f
+[PASS] Test <length> invalid value: \\f-pt\\f
+[PASS] Test <length> invalid value: \\f-pc\\f
+[PASS] Test <length> invalid value: \\f-%\\f
+[PASS] Test <length> invalid value: \\f+\\f
+[PASS] Test <length> invalid value: \\f+em\\f
+[PASS] Test <length> invalid value: \\f+ex\\f
+[PASS] Test <length> invalid value: \\f+px\\f
+[PASS] Test <length> invalid value: \\f+in\\f
+[PASS] Test <length> invalid value: \\f+cm\\f
+[PASS] Test <length> invalid value: \\f+mm\\f
+[PASS] Test <length> invalid value: \\f+pt\\f
+[PASS] Test <length> invalid value: \\f+pc\\f
+[PASS] Test <length> invalid value: \\f+%\\f
+[PASS] Test <length> invalid value: \\f-.\\f
+[PASS] Test <length> invalid value: \\f-.em\\f
+[PASS] Test <length> invalid value: \\f-.ex\\f
+[PASS] Test <length> invalid value: \\f-.px\\f
+[PASS] Test <length> invalid value: \\f-.in\\f
+[PASS] Test <length> invalid value: \\f-.cm\\f
+[PASS] Test <length> invalid value: \\f-.mm\\f
+[PASS] Test <length> invalid value: \\f-.pt\\f
+[PASS] Test <length> invalid value: \\f-.pc\\f
+[PASS] Test <length> invalid value: \\f-.%\\f
+[PASS] Test <length> invalid value: \\f.-\\f
+[PASS] Test <length> invalid value: \\f.-em\\f
+[PASS] Test <length> invalid value: \\f.-ex\\f
+[PASS] Test <length> invalid value: \\f.-px\\f
+[PASS] Test <length> invalid value: \\f.-in\\f
+[PASS] Test <length> invalid value: \\f.-cm\\f
+[PASS] Test <length> invalid value: \\f.-mm\\f
+[PASS] Test <length> invalid value: \\f.-pt\\f
+[PASS] Test <length> invalid value: \\f.-pc\\f
+[PASS] Test <length> invalid value: \\f.-%\\f
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/svg/parser/whitespace-length-invalid-4-expected.txt b/third_party/blink/web_tests/svg/parser/whitespace-length-invalid-4-expected.txt
index 6500bfe..ce71d28 100644
--- a/third_party/blink/web_tests/svg/parser/whitespace-length-invalid-4-expected.txt
+++ b/third_party/blink/web_tests/svg/parser/whitespace-length-invalid-4-expected.txt
@@ -1119,86 +1119,86 @@
 [PASS] Test <length> invalid value: e1pt   
 [PASS] Test <length> invalid value: e1pc   
 [PASS] Test <length> invalid value: e1%   
-[PASS] Test <length> invalid value: .\r\n\t 
-[PASS] Test <length> invalid value: .em\r\n\t 
-[PASS] Test <length> invalid value: .ex\r\n\t 
-[PASS] Test <length> invalid value: .px\r\n\t 
-[PASS] Test <length> invalid value: .in\r\n\t 
-[PASS] Test <length> invalid value: .cm\r\n\t 
-[PASS] Test <length> invalid value: .mm\r\n\t 
-[PASS] Test <length> invalid value: .pt\r\n\t 
-[PASS] Test <length> invalid value: .pc\r\n\t 
-[PASS] Test <length> invalid value: .%\r\n\t 
-[PASS] Test <length> invalid value: +.\r\n\t 
-[PASS] Test <length> invalid value: +.em\r\n\t 
-[PASS] Test <length> invalid value: +.ex\r\n\t 
-[PASS] Test <length> invalid value: +.px\r\n\t 
-[PASS] Test <length> invalid value: +.in\r\n\t 
-[PASS] Test <length> invalid value: +.cm\r\n\t 
-[PASS] Test <length> invalid value: +.mm\r\n\t 
-[PASS] Test <length> invalid value: +.pt\r\n\t 
-[PASS] Test <length> invalid value: +.pc\r\n\t 
-[PASS] Test <length> invalid value: +.%\r\n\t 
-[PASS] Test <length> invalid value: .E0\r\n\t 
-[PASS] Test <length> invalid value: .E0em\r\n\t 
-[PASS] Test <length> invalid value: .E0ex\r\n\t 
-[PASS] Test <length> invalid value: .E0px\r\n\t 
-[PASS] Test <length> invalid value: .E0in\r\n\t 
-[PASS] Test <length> invalid value: .E0cm\r\n\t 
-[PASS] Test <length> invalid value: .E0mm\r\n\t 
-[PASS] Test <length> invalid value: .E0pt\r\n\t 
-[PASS] Test <length> invalid value: .E0pc\r\n\t 
-[PASS] Test <length> invalid value: .E0%\r\n\t 
-[PASS] Test <length> invalid value: e1\r\n\t 
-[PASS] Test <length> invalid value: e1em\r\n\t 
-[PASS] Test <length> invalid value: e1ex\r\n\t 
-[PASS] Test <length> invalid value: e1px\r\n\t 
-[PASS] Test <length> invalid value: e1in\r\n\t 
-[PASS] Test <length> invalid value: e1cm\r\n\t 
-[PASS] Test <length> invalid value: e1mm\r\n\t 
-[PASS] Test <length> invalid value: e1pt\r\n\t 
-[PASS] Test <length> invalid value: e1pc\r\n\t 
-[PASS] Test <length> invalid value: e1%\r\n\t 
-[PASS] Test <length> invalid value: .\f
-[PASS] Test <length> invalid value: .em\f
-[PASS] Test <length> invalid value: .ex\f
-[PASS] Test <length> invalid value: .px\f
-[PASS] Test <length> invalid value: .in\f
-[PASS] Test <length> invalid value: .cm\f
-[PASS] Test <length> invalid value: .mm\f
-[PASS] Test <length> invalid value: .pt\f
-[PASS] Test <length> invalid value: .pc\f
-[PASS] Test <length> invalid value: .%\f
-[PASS] Test <length> invalid value: +.\f
-[PASS] Test <length> invalid value: +.em\f
-[PASS] Test <length> invalid value: +.ex\f
-[PASS] Test <length> invalid value: +.px\f
-[PASS] Test <length> invalid value: +.in\f
-[PASS] Test <length> invalid value: +.cm\f
-[PASS] Test <length> invalid value: +.mm\f
-[PASS] Test <length> invalid value: +.pt\f
-[PASS] Test <length> invalid value: +.pc\f
-[PASS] Test <length> invalid value: +.%\f
-[PASS] Test <length> invalid value: .E0\f
-[PASS] Test <length> invalid value: .E0em\f
-[PASS] Test <length> invalid value: .E0ex\f
-[PASS] Test <length> invalid value: .E0px\f
-[PASS] Test <length> invalid value: .E0in\f
-[PASS] Test <length> invalid value: .E0cm\f
-[PASS] Test <length> invalid value: .E0mm\f
-[PASS] Test <length> invalid value: .E0pt\f
-[PASS] Test <length> invalid value: .E0pc\f
-[PASS] Test <length> invalid value: .E0%\f
-[PASS] Test <length> invalid value: e1\f
-[PASS] Test <length> invalid value: e1em\f
-[PASS] Test <length> invalid value: e1ex\f
-[PASS] Test <length> invalid value: e1px\f
-[PASS] Test <length> invalid value: e1in\f
-[PASS] Test <length> invalid value: e1cm\f
-[PASS] Test <length> invalid value: e1mm\f
-[PASS] Test <length> invalid value: e1pt\f
-[PASS] Test <length> invalid value: e1pc\f
-[PASS] Test <length> invalid value: e1%\f
+[PASS] Test <length> invalid value: .\\r\\n\\t 
+[PASS] Test <length> invalid value: .em\\r\\n\\t 
+[PASS] Test <length> invalid value: .ex\\r\\n\\t 
+[PASS] Test <length> invalid value: .px\\r\\n\\t 
+[PASS] Test <length> invalid value: .in\\r\\n\\t 
+[PASS] Test <length> invalid value: .cm\\r\\n\\t 
+[PASS] Test <length> invalid value: .mm\\r\\n\\t 
+[PASS] Test <length> invalid value: .pt\\r\\n\\t 
+[PASS] Test <length> invalid value: .pc\\r\\n\\t 
+[PASS] Test <length> invalid value: .%\\r\\n\\t 
+[PASS] Test <length> invalid value: +.\\r\\n\\t 
+[PASS] Test <length> invalid value: +.em\\r\\n\\t 
+[PASS] Test <length> invalid value: +.ex\\r\\n\\t 
+[PASS] Test <length> invalid value: +.px\\r\\n\\t 
+[PASS] Test <length> invalid value: +.in\\r\\n\\t 
+[PASS] Test <length> invalid value: +.cm\\r\\n\\t 
+[PASS] Test <length> invalid value: +.mm\\r\\n\\t 
+[PASS] Test <length> invalid value: +.pt\\r\\n\\t 
+[PASS] Test <length> invalid value: +.pc\\r\\n\\t 
+[PASS] Test <length> invalid value: +.%\\r\\n\\t 
+[PASS] Test <length> invalid value: .E0\\r\\n\\t 
+[PASS] Test <length> invalid value: .E0em\\r\\n\\t 
+[PASS] Test <length> invalid value: .E0ex\\r\\n\\t 
+[PASS] Test <length> invalid value: .E0px\\r\\n\\t 
+[PASS] Test <length> invalid value: .E0in\\r\\n\\t 
+[PASS] Test <length> invalid value: .E0cm\\r\\n\\t 
+[PASS] Test <length> invalid value: .E0mm\\r\\n\\t 
+[PASS] Test <length> invalid value: .E0pt\\r\\n\\t 
+[PASS] Test <length> invalid value: .E0pc\\r\\n\\t 
+[PASS] Test <length> invalid value: .E0%\\r\\n\\t 
+[PASS] Test <length> invalid value: e1\\r\\n\\t 
+[PASS] Test <length> invalid value: e1em\\r\\n\\t 
+[PASS] Test <length> invalid value: e1ex\\r\\n\\t 
+[PASS] Test <length> invalid value: e1px\\r\\n\\t 
+[PASS] Test <length> invalid value: e1in\\r\\n\\t 
+[PASS] Test <length> invalid value: e1cm\\r\\n\\t 
+[PASS] Test <length> invalid value: e1mm\\r\\n\\t 
+[PASS] Test <length> invalid value: e1pt\\r\\n\\t 
+[PASS] Test <length> invalid value: e1pc\\r\\n\\t 
+[PASS] Test <length> invalid value: e1%\\r\\n\\t 
+[PASS] Test <length> invalid value: .\\f
+[PASS] Test <length> invalid value: .em\\f
+[PASS] Test <length> invalid value: .ex\\f
+[PASS] Test <length> invalid value: .px\\f
+[PASS] Test <length> invalid value: .in\\f
+[PASS] Test <length> invalid value: .cm\\f
+[PASS] Test <length> invalid value: .mm\\f
+[PASS] Test <length> invalid value: .pt\\f
+[PASS] Test <length> invalid value: .pc\\f
+[PASS] Test <length> invalid value: .%\\f
+[PASS] Test <length> invalid value: +.\\f
+[PASS] Test <length> invalid value: +.em\\f
+[PASS] Test <length> invalid value: +.ex\\f
+[PASS] Test <length> invalid value: +.px\\f
+[PASS] Test <length> invalid value: +.in\\f
+[PASS] Test <length> invalid value: +.cm\\f
+[PASS] Test <length> invalid value: +.mm\\f
+[PASS] Test <length> invalid value: +.pt\\f
+[PASS] Test <length> invalid value: +.pc\\f
+[PASS] Test <length> invalid value: +.%\\f
+[PASS] Test <length> invalid value: .E0\\f
+[PASS] Test <length> invalid value: .E0em\\f
+[PASS] Test <length> invalid value: .E0ex\\f
+[PASS] Test <length> invalid value: .E0px\\f
+[PASS] Test <length> invalid value: .E0in\\f
+[PASS] Test <length> invalid value: .E0cm\\f
+[PASS] Test <length> invalid value: .E0mm\\f
+[PASS] Test <length> invalid value: .E0pt\\f
+[PASS] Test <length> invalid value: .E0pc\\f
+[PASS] Test <length> invalid value: .E0%\\f
+[PASS] Test <length> invalid value: e1\\f
+[PASS] Test <length> invalid value: e1em\\f
+[PASS] Test <length> invalid value: e1ex\\f
+[PASS] Test <length> invalid value: e1px\\f
+[PASS] Test <length> invalid value: e1in\\f
+[PASS] Test <length> invalid value: e1cm\\f
+[PASS] Test <length> invalid value: e1mm\\f
+[PASS] Test <length> invalid value: e1pt\\f
+[PASS] Test <length> invalid value: e1pc\\f
+[PASS] Test <length> invalid value: e1%\\f
 [PASS] Test <length> invalid value:  .
 [PASS] Test <length> invalid value:  .em
 [PASS] Test <length> invalid value:  .ex
@@ -1319,86 +1319,86 @@
 [PASS] Test <length> invalid value:  e1pt   
 [PASS] Test <length> invalid value:  e1pc   
 [PASS] Test <length> invalid value:  e1%   
-[PASS] Test <length> invalid value:  .\r\n\t 
-[PASS] Test <length> invalid value:  .em\r\n\t 
-[PASS] Test <length> invalid value:  .ex\r\n\t 
-[PASS] Test <length> invalid value:  .px\r\n\t 
-[PASS] Test <length> invalid value:  .in\r\n\t 
-[PASS] Test <length> invalid value:  .cm\r\n\t 
-[PASS] Test <length> invalid value:  .mm\r\n\t 
-[PASS] Test <length> invalid value:  .pt\r\n\t 
-[PASS] Test <length> invalid value:  .pc\r\n\t 
-[PASS] Test <length> invalid value:  .%\r\n\t 
-[PASS] Test <length> invalid value:  +.\r\n\t 
-[PASS] Test <length> invalid value:  +.em\r\n\t 
-[PASS] Test <length> invalid value:  +.ex\r\n\t 
-[PASS] Test <length> invalid value:  +.px\r\n\t 
-[PASS] Test <length> invalid value:  +.in\r\n\t 
-[PASS] Test <length> invalid value:  +.cm\r\n\t 
-[PASS] Test <length> invalid value:  +.mm\r\n\t 
-[PASS] Test <length> invalid value:  +.pt\r\n\t 
-[PASS] Test <length> invalid value:  +.pc\r\n\t 
-[PASS] Test <length> invalid value:  +.%\r\n\t 
-[PASS] Test <length> invalid value:  .E0\r\n\t 
-[PASS] Test <length> invalid value:  .E0em\r\n\t 
-[PASS] Test <length> invalid value:  .E0ex\r\n\t 
-[PASS] Test <length> invalid value:  .E0px\r\n\t 
-[PASS] Test <length> invalid value:  .E0in\r\n\t 
-[PASS] Test <length> invalid value:  .E0cm\r\n\t 
-[PASS] Test <length> invalid value:  .E0mm\r\n\t 
-[PASS] Test <length> invalid value:  .E0pt\r\n\t 
-[PASS] Test <length> invalid value:  .E0pc\r\n\t 
-[PASS] Test <length> invalid value:  .E0%\r\n\t 
-[PASS] Test <length> invalid value:  e1\r\n\t 
-[PASS] Test <length> invalid value:  e1em\r\n\t 
-[PASS] Test <length> invalid value:  e1ex\r\n\t 
-[PASS] Test <length> invalid value:  e1px\r\n\t 
-[PASS] Test <length> invalid value:  e1in\r\n\t 
-[PASS] Test <length> invalid value:  e1cm\r\n\t 
-[PASS] Test <length> invalid value:  e1mm\r\n\t 
-[PASS] Test <length> invalid value:  e1pt\r\n\t 
-[PASS] Test <length> invalid value:  e1pc\r\n\t 
-[PASS] Test <length> invalid value:  e1%\r\n\t 
-[PASS] Test <length> invalid value:  .\f
-[PASS] Test <length> invalid value:  .em\f
-[PASS] Test <length> invalid value:  .ex\f
-[PASS] Test <length> invalid value:  .px\f
-[PASS] Test <length> invalid value:  .in\f
-[PASS] Test <length> invalid value:  .cm\f
-[PASS] Test <length> invalid value:  .mm\f
-[PASS] Test <length> invalid value:  .pt\f
-[PASS] Test <length> invalid value:  .pc\f
-[PASS] Test <length> invalid value:  .%\f
-[PASS] Test <length> invalid value:  +.\f
-[PASS] Test <length> invalid value:  +.em\f
-[PASS] Test <length> invalid value:  +.ex\f
-[PASS] Test <length> invalid value:  +.px\f
-[PASS] Test <length> invalid value:  +.in\f
-[PASS] Test <length> invalid value:  +.cm\f
-[PASS] Test <length> invalid value:  +.mm\f
-[PASS] Test <length> invalid value:  +.pt\f
-[PASS] Test <length> invalid value:  +.pc\f
-[PASS] Test <length> invalid value:  +.%\f
-[PASS] Test <length> invalid value:  .E0\f
-[PASS] Test <length> invalid value:  .E0em\f
-[PASS] Test <length> invalid value:  .E0ex\f
-[PASS] Test <length> invalid value:  .E0px\f
-[PASS] Test <length> invalid value:  .E0in\f
-[PASS] Test <length> invalid value:  .E0cm\f
-[PASS] Test <length> invalid value:  .E0mm\f
-[PASS] Test <length> invalid value:  .E0pt\f
-[PASS] Test <length> invalid value:  .E0pc\f
-[PASS] Test <length> invalid value:  .E0%\f
-[PASS] Test <length> invalid value:  e1\f
-[PASS] Test <length> invalid value:  e1em\f
-[PASS] Test <length> invalid value:  e1ex\f
-[PASS] Test <length> invalid value:  e1px\f
-[PASS] Test <length> invalid value:  e1in\f
-[PASS] Test <length> invalid value:  e1cm\f
-[PASS] Test <length> invalid value:  e1mm\f
-[PASS] Test <length> invalid value:  e1pt\f
-[PASS] Test <length> invalid value:  e1pc\f
-[PASS] Test <length> invalid value:  e1%\f
+[PASS] Test <length> invalid value:  .\\r\\n\\t 
+[PASS] Test <length> invalid value:  .em\\r\\n\\t 
+[PASS] Test <length> invalid value:  .ex\\r\\n\\t 
+[PASS] Test <length> invalid value:  .px\\r\\n\\t 
+[PASS] Test <length> invalid value:  .in\\r\\n\\t 
+[PASS] Test <length> invalid value:  .cm\\r\\n\\t 
+[PASS] Test <length> invalid value:  .mm\\r\\n\\t 
+[PASS] Test <length> invalid value:  .pt\\r\\n\\t 
+[PASS] Test <length> invalid value:  .pc\\r\\n\\t 
+[PASS] Test <length> invalid value:  .%\\r\\n\\t 
+[PASS] Test <length> invalid value:  +.\\r\\n\\t 
+[PASS] Test <length> invalid value:  +.em\\r\\n\\t 
+[PASS] Test <length> invalid value:  +.ex\\r\\n\\t 
+[PASS] Test <length> invalid value:  +.px\\r\\n\\t 
+[PASS] Test <length> invalid value:  +.in\\r\\n\\t 
+[PASS] Test <length> invalid value:  +.cm\\r\\n\\t 
+[PASS] Test <length> invalid value:  +.mm\\r\\n\\t 
+[PASS] Test <length> invalid value:  +.pt\\r\\n\\t 
+[PASS] Test <length> invalid value:  +.pc\\r\\n\\t 
+[PASS] Test <length> invalid value:  +.%\\r\\n\\t 
+[PASS] Test <length> invalid value:  .E0\\r\\n\\t 
+[PASS] Test <length> invalid value:  .E0em\\r\\n\\t 
+[PASS] Test <length> invalid value:  .E0ex\\r\\n\\t 
+[PASS] Test <length> invalid value:  .E0px\\r\\n\\t 
+[PASS] Test <length> invalid value:  .E0in\\r\\n\\t 
+[PASS] Test <length> invalid value:  .E0cm\\r\\n\\t 
+[PASS] Test <length> invalid value:  .E0mm\\r\\n\\t 
+[PASS] Test <length> invalid value:  .E0pt\\r\\n\\t 
+[PASS] Test <length> invalid value:  .E0pc\\r\\n\\t 
+[PASS] Test <length> invalid value:  .E0%\\r\\n\\t 
+[PASS] Test <length> invalid value:  e1\\r\\n\\t 
+[PASS] Test <length> invalid value:  e1em\\r\\n\\t 
+[PASS] Test <length> invalid value:  e1ex\\r\\n\\t 
+[PASS] Test <length> invalid value:  e1px\\r\\n\\t 
+[PASS] Test <length> invalid value:  e1in\\r\\n\\t 
+[PASS] Test <length> invalid value:  e1cm\\r\\n\\t 
+[PASS] Test <length> invalid value:  e1mm\\r\\n\\t 
+[PASS] Test <length> invalid value:  e1pt\\r\\n\\t 
+[PASS] Test <length> invalid value:  e1pc\\r\\n\\t 
+[PASS] Test <length> invalid value:  e1%\\r\\n\\t 
+[PASS] Test <length> invalid value:  .\\f
+[PASS] Test <length> invalid value:  .em\\f
+[PASS] Test <length> invalid value:  .ex\\f
+[PASS] Test <length> invalid value:  .px\\f
+[PASS] Test <length> invalid value:  .in\\f
+[PASS] Test <length> invalid value:  .cm\\f
+[PASS] Test <length> invalid value:  .mm\\f
+[PASS] Test <length> invalid value:  .pt\\f
+[PASS] Test <length> invalid value:  .pc\\f
+[PASS] Test <length> invalid value:  .%\\f
+[PASS] Test <length> invalid value:  +.\\f
+[PASS] Test <length> invalid value:  +.em\\f
+[PASS] Test <length> invalid value:  +.ex\\f
+[PASS] Test <length> invalid value:  +.px\\f
+[PASS] Test <length> invalid value:  +.in\\f
+[PASS] Test <length> invalid value:  +.cm\\f
+[PASS] Test <length> invalid value:  +.mm\\f
+[PASS] Test <length> invalid value:  +.pt\\f
+[PASS] Test <length> invalid value:  +.pc\\f
+[PASS] Test <length> invalid value:  +.%\\f
+[PASS] Test <length> invalid value:  .E0\\f
+[PASS] Test <length> invalid value:  .E0em\\f
+[PASS] Test <length> invalid value:  .E0ex\\f
+[PASS] Test <length> invalid value:  .E0px\\f
+[PASS] Test <length> invalid value:  .E0in\\f
+[PASS] Test <length> invalid value:  .E0cm\\f
+[PASS] Test <length> invalid value:  .E0mm\\f
+[PASS] Test <length> invalid value:  .E0pt\\f
+[PASS] Test <length> invalid value:  .E0pc\\f
+[PASS] Test <length> invalid value:  .E0%\\f
+[PASS] Test <length> invalid value:  e1\\f
+[PASS] Test <length> invalid value:  e1em\\f
+[PASS] Test <length> invalid value:  e1ex\\f
+[PASS] Test <length> invalid value:  e1px\\f
+[PASS] Test <length> invalid value:  e1in\\f
+[PASS] Test <length> invalid value:  e1cm\\f
+[PASS] Test <length> invalid value:  e1mm\\f
+[PASS] Test <length> invalid value:  e1pt\\f
+[PASS] Test <length> invalid value:  e1pc\\f
+[PASS] Test <length> invalid value:  e1%\\f
 [PASS] Test <length> invalid value:    .
 [PASS] Test <length> invalid value:    .em
 [PASS] Test <length> invalid value:    .ex
@@ -1519,485 +1519,485 @@
 [PASS] Test <length> invalid value:    e1pt   
 [PASS] Test <length> invalid value:    e1pc   
 [PASS] Test <length> invalid value:    e1%   
-[PASS] Test <length> invalid value:    .\r\n\t 
-[PASS] Test <length> invalid value:    .em\r\n\t 
-[PASS] Test <length> invalid value:    .ex\r\n\t 
-[PASS] Test <length> invalid value:    .px\r\n\t 
-[PASS] Test <length> invalid value:    .in\r\n\t 
-[PASS] Test <length> invalid value:    .cm\r\n\t 
-[PASS] Test <length> invalid value:    .mm\r\n\t 
-[PASS] Test <length> invalid value:    .pt\r\n\t 
-[PASS] Test <length> invalid value:    .pc\r\n\t 
-[PASS] Test <length> invalid value:    .%\r\n\t 
-[PASS] Test <length> invalid value:    +.\r\n\t 
-[PASS] Test <length> invalid value:    +.em\r\n\t 
-[PASS] Test <length> invalid value:    +.ex\r\n\t 
-[PASS] Test <length> invalid value:    +.px\r\n\t 
-[PASS] Test <length> invalid value:    +.in\r\n\t 
-[PASS] Test <length> invalid value:    +.cm\r\n\t 
-[PASS] Test <length> invalid value:    +.mm\r\n\t 
-[PASS] Test <length> invalid value:    +.pt\r\n\t 
-[PASS] Test <length> invalid value:    +.pc\r\n\t 
-[PASS] Test <length> invalid value:    +.%\r\n\t 
-[PASS] Test <length> invalid value:    .E0\r\n\t 
-[PASS] Test <length> invalid value:    .E0em\r\n\t 
-[PASS] Test <length> invalid value:    .E0ex\r\n\t 
-[PASS] Test <length> invalid value:    .E0px\r\n\t 
-[PASS] Test <length> invalid value:    .E0in\r\n\t 
-[PASS] Test <length> invalid value:    .E0cm\r\n\t 
-[PASS] Test <length> invalid value:    .E0mm\r\n\t 
-[PASS] Test <length> invalid value:    .E0pt\r\n\t 
-[PASS] Test <length> invalid value:    .E0pc\r\n\t 
-[PASS] Test <length> invalid value:    .E0%\r\n\t 
-[PASS] Test <length> invalid value:    e1\r\n\t 
-[PASS] Test <length> invalid value:    e1em\r\n\t 
-[PASS] Test <length> invalid value:    e1ex\r\n\t 
-[PASS] Test <length> invalid value:    e1px\r\n\t 
-[PASS] Test <length> invalid value:    e1in\r\n\t 
-[PASS] Test <length> invalid value:    e1cm\r\n\t 
-[PASS] Test <length> invalid value:    e1mm\r\n\t 
-[PASS] Test <length> invalid value:    e1pt\r\n\t 
-[PASS] Test <length> invalid value:    e1pc\r\n\t 
-[PASS] Test <length> invalid value:    e1%\r\n\t 
-[PASS] Test <length> invalid value:    .\f
-[PASS] Test <length> invalid value:    .em\f
-[PASS] Test <length> invalid value:    .ex\f
-[PASS] Test <length> invalid value:    .px\f
-[PASS] Test <length> invalid value:    .in\f
-[PASS] Test <length> invalid value:    .cm\f
-[PASS] Test <length> invalid value:    .mm\f
-[PASS] Test <length> invalid value:    .pt\f
-[PASS] Test <length> invalid value:    .pc\f
-[PASS] Test <length> invalid value:    .%\f
-[PASS] Test <length> invalid value:    +.\f
-[PASS] Test <length> invalid value:    +.em\f
-[PASS] Test <length> invalid value:    +.ex\f
-[PASS] Test <length> invalid value:    +.px\f
-[PASS] Test <length> invalid value:    +.in\f
-[PASS] Test <length> invalid value:    +.cm\f
-[PASS] Test <length> invalid value:    +.mm\f
-[PASS] Test <length> invalid value:    +.pt\f
-[PASS] Test <length> invalid value:    +.pc\f
-[PASS] Test <length> invalid value:    +.%\f
-[PASS] Test <length> invalid value:    .E0\f
-[PASS] Test <length> invalid value:    .E0em\f
-[PASS] Test <length> invalid value:    .E0ex\f
-[PASS] Test <length> invalid value:    .E0px\f
-[PASS] Test <length> invalid value:    .E0in\f
-[PASS] Test <length> invalid value:    .E0cm\f
-[PASS] Test <length> invalid value:    .E0mm\f
-[PASS] Test <length> invalid value:    .E0pt\f
-[PASS] Test <length> invalid value:    .E0pc\f
-[PASS] Test <length> invalid value:    .E0%\f
-[PASS] Test <length> invalid value:    e1\f
-[PASS] Test <length> invalid value:    e1em\f
-[PASS] Test <length> invalid value:    e1ex\f
-[PASS] Test <length> invalid value:    e1px\f
-[PASS] Test <length> invalid value:    e1in\f
-[PASS] Test <length> invalid value:    e1cm\f
-[PASS] Test <length> invalid value:    e1mm\f
-[PASS] Test <length> invalid value:    e1pt\f
-[PASS] Test <length> invalid value:    e1pc\f
-[PASS] Test <length> invalid value:    e1%\f
-[PASS] Test <length> invalid value: \r\n\t .
-[PASS] Test <length> invalid value: \r\n\t .em
-[PASS] Test <length> invalid value: \r\n\t .ex
-[PASS] Test <length> invalid value: \r\n\t .px
-[PASS] Test <length> invalid value: \r\n\t .in
-[PASS] Test <length> invalid value: \r\n\t .cm
-[PASS] Test <length> invalid value: \r\n\t .mm
-[PASS] Test <length> invalid value: \r\n\t .pt
-[PASS] Test <length> invalid value: \r\n\t .pc
-[PASS] Test <length> invalid value: \r\n\t .%
-[PASS] Test <length> invalid value: \r\n\t +.
-[PASS] Test <length> invalid value: \r\n\t +.em
-[PASS] Test <length> invalid value: \r\n\t +.ex
-[PASS] Test <length> invalid value: \r\n\t +.px
-[PASS] Test <length> invalid value: \r\n\t +.in
-[PASS] Test <length> invalid value: \r\n\t +.cm
-[PASS] Test <length> invalid value: \r\n\t +.mm
-[PASS] Test <length> invalid value: \r\n\t +.pt
-[PASS] Test <length> invalid value: \r\n\t +.pc
-[PASS] Test <length> invalid value: \r\n\t +.%
-[PASS] Test <length> invalid value: \r\n\t .E0
-[PASS] Test <length> invalid value: \r\n\t .E0em
-[PASS] Test <length> invalid value: \r\n\t .E0ex
-[PASS] Test <length> invalid value: \r\n\t .E0px
-[PASS] Test <length> invalid value: \r\n\t .E0in
-[PASS] Test <length> invalid value: \r\n\t .E0cm
-[PASS] Test <length> invalid value: \r\n\t .E0mm
-[PASS] Test <length> invalid value: \r\n\t .E0pt
-[PASS] Test <length> invalid value: \r\n\t .E0pc
-[PASS] Test <length> invalid value: \r\n\t .E0%
-[PASS] Test <length> invalid value: \r\n\t e1
-[PASS] Test <length> invalid value: \r\n\t e1em
-[PASS] Test <length> invalid value: \r\n\t e1ex
-[PASS] Test <length> invalid value: \r\n\t e1px
-[PASS] Test <length> invalid value: \r\n\t e1in
-[PASS] Test <length> invalid value: \r\n\t e1cm
-[PASS] Test <length> invalid value: \r\n\t e1mm
-[PASS] Test <length> invalid value: \r\n\t e1pt
-[PASS] Test <length> invalid value: \r\n\t e1pc
-[PASS] Test <length> invalid value: \r\n\t e1%
-[PASS] Test <length> invalid value: \r\n\t . 
-[PASS] Test <length> invalid value: \r\n\t .em 
-[PASS] Test <length> invalid value: \r\n\t .ex 
-[PASS] Test <length> invalid value: \r\n\t .px 
-[PASS] Test <length> invalid value: \r\n\t .in 
-[PASS] Test <length> invalid value: \r\n\t .cm 
-[PASS] Test <length> invalid value: \r\n\t .mm 
-[PASS] Test <length> invalid value: \r\n\t .pt 
-[PASS] Test <length> invalid value: \r\n\t .pc 
-[PASS] Test <length> invalid value: \r\n\t .% 
-[PASS] Test <length> invalid value: \r\n\t +. 
-[PASS] Test <length> invalid value: \r\n\t +.em 
-[PASS] Test <length> invalid value: \r\n\t +.ex 
-[PASS] Test <length> invalid value: \r\n\t +.px 
-[PASS] Test <length> invalid value: \r\n\t +.in 
-[PASS] Test <length> invalid value: \r\n\t +.cm 
-[PASS] Test <length> invalid value: \r\n\t +.mm 
-[PASS] Test <length> invalid value: \r\n\t +.pt 
-[PASS] Test <length> invalid value: \r\n\t +.pc 
-[PASS] Test <length> invalid value: \r\n\t +.% 
-[PASS] Test <length> invalid value: \r\n\t .E0 
-[PASS] Test <length> invalid value: \r\n\t .E0em 
-[PASS] Test <length> invalid value: \r\n\t .E0ex 
-[PASS] Test <length> invalid value: \r\n\t .E0px 
-[PASS] Test <length> invalid value: \r\n\t .E0in 
-[PASS] Test <length> invalid value: \r\n\t .E0cm 
-[PASS] Test <length> invalid value: \r\n\t .E0mm 
-[PASS] Test <length> invalid value: \r\n\t .E0pt 
-[PASS] Test <length> invalid value: \r\n\t .E0pc 
-[PASS] Test <length> invalid value: \r\n\t .E0% 
-[PASS] Test <length> invalid value: \r\n\t e1 
-[PASS] Test <length> invalid value: \r\n\t e1em 
-[PASS] Test <length> invalid value: \r\n\t e1ex 
-[PASS] Test <length> invalid value: \r\n\t e1px 
-[PASS] Test <length> invalid value: \r\n\t e1in 
-[PASS] Test <length> invalid value: \r\n\t e1cm 
-[PASS] Test <length> invalid value: \r\n\t e1mm 
-[PASS] Test <length> invalid value: \r\n\t e1pt 
-[PASS] Test <length> invalid value: \r\n\t e1pc 
-[PASS] Test <length> invalid value: \r\n\t e1% 
-[PASS] Test <length> invalid value: \r\n\t .   
-[PASS] Test <length> invalid value: \r\n\t .em   
-[PASS] Test <length> invalid value: \r\n\t .ex   
-[PASS] Test <length> invalid value: \r\n\t .px   
-[PASS] Test <length> invalid value: \r\n\t .in   
-[PASS] Test <length> invalid value: \r\n\t .cm   
-[PASS] Test <length> invalid value: \r\n\t .mm   
-[PASS] Test <length> invalid value: \r\n\t .pt   
-[PASS] Test <length> invalid value: \r\n\t .pc   
-[PASS] Test <length> invalid value: \r\n\t .%   
-[PASS] Test <length> invalid value: \r\n\t +.   
-[PASS] Test <length> invalid value: \r\n\t +.em   
-[PASS] Test <length> invalid value: \r\n\t +.ex   
-[PASS] Test <length> invalid value: \r\n\t +.px   
-[PASS] Test <length> invalid value: \r\n\t +.in   
-[PASS] Test <length> invalid value: \r\n\t +.cm   
-[PASS] Test <length> invalid value: \r\n\t +.mm   
-[PASS] Test <length> invalid value: \r\n\t +.pt   
-[PASS] Test <length> invalid value: \r\n\t +.pc   
-[PASS] Test <length> invalid value: \r\n\t +.%   
-[PASS] Test <length> invalid value: \r\n\t .E0   
-[PASS] Test <length> invalid value: \r\n\t .E0em   
-[PASS] Test <length> invalid value: \r\n\t .E0ex   
-[PASS] Test <length> invalid value: \r\n\t .E0px   
-[PASS] Test <length> invalid value: \r\n\t .E0in   
-[PASS] Test <length> invalid value: \r\n\t .E0cm   
-[PASS] Test <length> invalid value: \r\n\t .E0mm   
-[PASS] Test <length> invalid value: \r\n\t .E0pt   
-[PASS] Test <length> invalid value: \r\n\t .E0pc   
-[PASS] Test <length> invalid value: \r\n\t .E0%   
-[PASS] Test <length> invalid value: \r\n\t e1   
-[PASS] Test <length> invalid value: \r\n\t e1em   
-[PASS] Test <length> invalid value: \r\n\t e1ex   
-[PASS] Test <length> invalid value: \r\n\t e1px   
-[PASS] Test <length> invalid value: \r\n\t e1in   
-[PASS] Test <length> invalid value: \r\n\t e1cm   
-[PASS] Test <length> invalid value: \r\n\t e1mm   
-[PASS] Test <length> invalid value: \r\n\t e1pt   
-[PASS] Test <length> invalid value: \r\n\t e1pc   
-[PASS] Test <length> invalid value: \r\n\t e1%   
-[PASS] Test <length> invalid value: \r\n\t .\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .em\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .ex\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .px\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .in\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .cm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .mm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .pt\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .pc\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .%\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t +.\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t +.em\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t +.ex\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t +.px\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t +.in\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t +.cm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t +.mm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t +.pt\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t +.pc\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t +.%\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .E0\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .E0em\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .E0ex\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .E0px\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .E0in\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .E0cm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .E0mm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .E0pt\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .E0pc\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .E0%\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t e1\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t e1em\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t e1ex\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t e1px\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t e1in\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t e1cm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t e1mm\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t e1pt\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t e1pc\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t e1%\r\n\t 
-[PASS] Test <length> invalid value: \r\n\t .\f
-[PASS] Test <length> invalid value: \r\n\t .em\f
-[PASS] Test <length> invalid value: \r\n\t .ex\f
-[PASS] Test <length> invalid value: \r\n\t .px\f
-[PASS] Test <length> invalid value: \r\n\t .in\f
-[PASS] Test <length> invalid value: \r\n\t .cm\f
-[PASS] Test <length> invalid value: \r\n\t .mm\f
-[PASS] Test <length> invalid value: \r\n\t .pt\f
-[PASS] Test <length> invalid value: \r\n\t .pc\f
-[PASS] Test <length> invalid value: \r\n\t .%\f
-[PASS] Test <length> invalid value: \r\n\t +.\f
-[PASS] Test <length> invalid value: \r\n\t +.em\f
-[PASS] Test <length> invalid value: \r\n\t +.ex\f
-[PASS] Test <length> invalid value: \r\n\t +.px\f
-[PASS] Test <length> invalid value: \r\n\t +.in\f
-[PASS] Test <length> invalid value: \r\n\t +.cm\f
-[PASS] Test <length> invalid value: \r\n\t +.mm\f
-[PASS] Test <length> invalid value: \r\n\t +.pt\f
-[PASS] Test <length> invalid value: \r\n\t +.pc\f
-[PASS] Test <length> invalid value: \r\n\t +.%\f
-[PASS] Test <length> invalid value: \r\n\t .E0\f
-[PASS] Test <length> invalid value: \r\n\t .E0em\f
-[PASS] Test <length> invalid value: \r\n\t .E0ex\f
-[PASS] Test <length> invalid value: \r\n\t .E0px\f
-[PASS] Test <length> invalid value: \r\n\t .E0in\f
-[PASS] Test <length> invalid value: \r\n\t .E0cm\f
-[PASS] Test <length> invalid value: \r\n\t .E0mm\f
-[PASS] Test <length> invalid value: \r\n\t .E0pt\f
-[PASS] Test <length> invalid value: \r\n\t .E0pc\f
-[PASS] Test <length> invalid value: \r\n\t .E0%\f
-[PASS] Test <length> invalid value: \r\n\t e1\f
-[PASS] Test <length> invalid value: \r\n\t e1em\f
-[PASS] Test <length> invalid value: \r\n\t e1ex\f
-[PASS] Test <length> invalid value: \r\n\t e1px\f
-[PASS] Test <length> invalid value: \r\n\t e1in\f
-[PASS] Test <length> invalid value: \r\n\t e1cm\f
-[PASS] Test <length> invalid value: \r\n\t e1mm\f
-[PASS] Test <length> invalid value: \r\n\t e1pt\f
-[PASS] Test <length> invalid value: \r\n\t e1pc\f
-[PASS] Test <length> invalid value: \r\n\t e1%\f
-[PASS] Test <length> invalid value: \f.
-[PASS] Test <length> invalid value: \f.em
-[PASS] Test <length> invalid value: \f.ex
-[PASS] Test <length> invalid value: \f.px
-[PASS] Test <length> invalid value: \f.in
-[PASS] Test <length> invalid value: \f.cm
-[PASS] Test <length> invalid value: \f.mm
-[PASS] Test <length> invalid value: \f.pt
-[PASS] Test <length> invalid value: \f.pc
-[PASS] Test <length> invalid value: \f.%
-[PASS] Test <length> invalid value: \f+.
-[PASS] Test <length> invalid value: \f+.em
-[PASS] Test <length> invalid value: \f+.ex
-[PASS] Test <length> invalid value: \f+.px
-[PASS] Test <length> invalid value: \f+.in
-[PASS] Test <length> invalid value: \f+.cm
-[PASS] Test <length> invalid value: \f+.mm
-[PASS] Test <length> invalid value: \f+.pt
-[PASS] Test <length> invalid value: \f+.pc
-[PASS] Test <length> invalid value: \f+.%
-[PASS] Test <length> invalid value: \f.E0
-[PASS] Test <length> invalid value: \f.E0em
-[PASS] Test <length> invalid value: \f.E0ex
-[PASS] Test <length> invalid value: \f.E0px
-[PASS] Test <length> invalid value: \f.E0in
-[PASS] Test <length> invalid value: \f.E0cm
-[PASS] Test <length> invalid value: \f.E0mm
-[PASS] Test <length> invalid value: \f.E0pt
-[PASS] Test <length> invalid value: \f.E0pc
-[PASS] Test <length> invalid value: \f.E0%
-[PASS] Test <length> invalid value: \fe1
-[PASS] Test <length> invalid value: \fe1em
-[PASS] Test <length> invalid value: \fe1ex
-[PASS] Test <length> invalid value: \fe1px
-[PASS] Test <length> invalid value: \fe1in
-[PASS] Test <length> invalid value: \fe1cm
-[PASS] Test <length> invalid value: \fe1mm
-[PASS] Test <length> invalid value: \fe1pt
-[PASS] Test <length> invalid value: \fe1pc
-[PASS] Test <length> invalid value: \fe1%
-[PASS] Test <length> invalid value: \f. 
-[PASS] Test <length> invalid value: \f.em 
-[PASS] Test <length> invalid value: \f.ex 
-[PASS] Test <length> invalid value: \f.px 
-[PASS] Test <length> invalid value: \f.in 
-[PASS] Test <length> invalid value: \f.cm 
-[PASS] Test <length> invalid value: \f.mm 
-[PASS] Test <length> invalid value: \f.pt 
-[PASS] Test <length> invalid value: \f.pc 
-[PASS] Test <length> invalid value: \f.% 
-[PASS] Test <length> invalid value: \f+. 
-[PASS] Test <length> invalid value: \f+.em 
-[PASS] Test <length> invalid value: \f+.ex 
-[PASS] Test <length> invalid value: \f+.px 
-[PASS] Test <length> invalid value: \f+.in 
-[PASS] Test <length> invalid value: \f+.cm 
-[PASS] Test <length> invalid value: \f+.mm 
-[PASS] Test <length> invalid value: \f+.pt 
-[PASS] Test <length> invalid value: \f+.pc 
-[PASS] Test <length> invalid value: \f+.% 
-[PASS] Test <length> invalid value: \f.E0 
-[PASS] Test <length> invalid value: \f.E0em 
-[PASS] Test <length> invalid value: \f.E0ex 
-[PASS] Test <length> invalid value: \f.E0px 
-[PASS] Test <length> invalid value: \f.E0in 
-[PASS] Test <length> invalid value: \f.E0cm 
-[PASS] Test <length> invalid value: \f.E0mm 
-[PASS] Test <length> invalid value: \f.E0pt 
-[PASS] Test <length> invalid value: \f.E0pc 
-[PASS] Test <length> invalid value: \f.E0% 
-[PASS] Test <length> invalid value: \fe1 
-[PASS] Test <length> invalid value: \fe1em 
-[PASS] Test <length> invalid value: \fe1ex 
-[PASS] Test <length> invalid value: \fe1px 
-[PASS] Test <length> invalid value: \fe1in 
-[PASS] Test <length> invalid value: \fe1cm 
-[PASS] Test <length> invalid value: \fe1mm 
-[PASS] Test <length> invalid value: \fe1pt 
-[PASS] Test <length> invalid value: \fe1pc 
-[PASS] Test <length> invalid value: \fe1% 
-[PASS] Test <length> invalid value: \f.   
-[PASS] Test <length> invalid value: \f.em   
-[PASS] Test <length> invalid value: \f.ex   
-[PASS] Test <length> invalid value: \f.px   
-[PASS] Test <length> invalid value: \f.in   
-[PASS] Test <length> invalid value: \f.cm   
-[PASS] Test <length> invalid value: \f.mm   
-[PASS] Test <length> invalid value: \f.pt   
-[PASS] Test <length> invalid value: \f.pc   
-[PASS] Test <length> invalid value: \f.%   
-[PASS] Test <length> invalid value: \f+.   
-[PASS] Test <length> invalid value: \f+.em   
-[PASS] Test <length> invalid value: \f+.ex   
-[PASS] Test <length> invalid value: \f+.px   
-[PASS] Test <length> invalid value: \f+.in   
-[PASS] Test <length> invalid value: \f+.cm   
-[PASS] Test <length> invalid value: \f+.mm   
-[PASS] Test <length> invalid value: \f+.pt   
-[PASS] Test <length> invalid value: \f+.pc   
-[PASS] Test <length> invalid value: \f+.%   
-[PASS] Test <length> invalid value: \f.E0   
-[PASS] Test <length> invalid value: \f.E0em   
-[PASS] Test <length> invalid value: \f.E0ex   
-[PASS] Test <length> invalid value: \f.E0px   
-[PASS] Test <length> invalid value: \f.E0in   
-[PASS] Test <length> invalid value: \f.E0cm   
-[PASS] Test <length> invalid value: \f.E0mm   
-[PASS] Test <length> invalid value: \f.E0pt   
-[PASS] Test <length> invalid value: \f.E0pc   
-[PASS] Test <length> invalid value: \f.E0%   
-[PASS] Test <length> invalid value: \fe1   
-[PASS] Test <length> invalid value: \fe1em   
-[PASS] Test <length> invalid value: \fe1ex   
-[PASS] Test <length> invalid value: \fe1px   
-[PASS] Test <length> invalid value: \fe1in   
-[PASS] Test <length> invalid value: \fe1cm   
-[PASS] Test <length> invalid value: \fe1mm   
-[PASS] Test <length> invalid value: \fe1pt   
-[PASS] Test <length> invalid value: \fe1pc   
-[PASS] Test <length> invalid value: \fe1%   
-[PASS] Test <length> invalid value: \f.\r\n\t 
-[PASS] Test <length> invalid value: \f.em\r\n\t 
-[PASS] Test <length> invalid value: \f.ex\r\n\t 
-[PASS] Test <length> invalid value: \f.px\r\n\t 
-[PASS] Test <length> invalid value: \f.in\r\n\t 
-[PASS] Test <length> invalid value: \f.cm\r\n\t 
-[PASS] Test <length> invalid value: \f.mm\r\n\t 
-[PASS] Test <length> invalid value: \f.pt\r\n\t 
-[PASS] Test <length> invalid value: \f.pc\r\n\t 
-[PASS] Test <length> invalid value: \f.%\r\n\t 
-[PASS] Test <length> invalid value: \f+.\r\n\t 
-[PASS] Test <length> invalid value: \f+.em\r\n\t 
-[PASS] Test <length> invalid value: \f+.ex\r\n\t 
-[PASS] Test <length> invalid value: \f+.px\r\n\t 
-[PASS] Test <length> invalid value: \f+.in\r\n\t 
-[PASS] Test <length> invalid value: \f+.cm\r\n\t 
-[PASS] Test <length> invalid value: \f+.mm\r\n\t 
-[PASS] Test <length> invalid value: \f+.pt\r\n\t 
-[PASS] Test <length> invalid value: \f+.pc\r\n\t 
-[PASS] Test <length> invalid value: \f+.%\r\n\t 
-[PASS] Test <length> invalid value: \f.E0\r\n\t 
-[PASS] Test <length> invalid value: \f.E0em\r\n\t 
-[PASS] Test <length> invalid value: \f.E0ex\r\n\t 
-[PASS] Test <length> invalid value: \f.E0px\r\n\t 
-[PASS] Test <length> invalid value: \f.E0in\r\n\t 
-[PASS] Test <length> invalid value: \f.E0cm\r\n\t 
-[PASS] Test <length> invalid value: \f.E0mm\r\n\t 
-[PASS] Test <length> invalid value: \f.E0pt\r\n\t 
-[PASS] Test <length> invalid value: \f.E0pc\r\n\t 
-[PASS] Test <length> invalid value: \f.E0%\r\n\t 
-[PASS] Test <length> invalid value: \fe1\r\n\t 
-[PASS] Test <length> invalid value: \fe1em\r\n\t 
-[PASS] Test <length> invalid value: \fe1ex\r\n\t 
-[PASS] Test <length> invalid value: \fe1px\r\n\t 
-[PASS] Test <length> invalid value: \fe1in\r\n\t 
-[PASS] Test <length> invalid value: \fe1cm\r\n\t 
-[PASS] Test <length> invalid value: \fe1mm\r\n\t 
-[PASS] Test <length> invalid value: \fe1pt\r\n\t 
-[PASS] Test <length> invalid value: \fe1pc\r\n\t 
-[PASS] Test <length> invalid value: \fe1%\r\n\t 
-[PASS] Test <length> invalid value: \f.\f
-[PASS] Test <length> invalid value: \f.em\f
-[PASS] Test <length> invalid value: \f.ex\f
-[PASS] Test <length> invalid value: \f.px\f
-[PASS] Test <length> invalid value: \f.in\f
-[PASS] Test <length> invalid value: \f.cm\f
-[PASS] Test <length> invalid value: \f.mm\f
-[PASS] Test <length> invalid value: \f.pt\f
-[PASS] Test <length> invalid value: \f.pc\f
-[PASS] Test <length> invalid value: \f.%\f
-[PASS] Test <length> invalid value: \f+.\f
-[PASS] Test <length> invalid value: \f+.em\f
-[PASS] Test <length> invalid value: \f+.ex\f
-[PASS] Test <length> invalid value: \f+.px\f
-[PASS] Test <length> invalid value: \f+.in\f
-[PASS] Test <length> invalid value: \f+.cm\f
-[PASS] Test <length> invalid value: \f+.mm\f
-[PASS] Test <length> invalid value: \f+.pt\f
-[PASS] Test <length> invalid value: \f+.pc\f
-[PASS] Test <length> invalid value: \f+.%\f
-[PASS] Test <length> invalid value: \f.E0\f
-[PASS] Test <length> invalid value: \f.E0em\f
-[PASS] Test <length> invalid value: \f.E0ex\f
-[PASS] Test <length> invalid value: \f.E0px\f
-[PASS] Test <length> invalid value: \f.E0in\f
-[PASS] Test <length> invalid value: \f.E0cm\f
-[PASS] Test <length> invalid value: \f.E0mm\f
-[PASS] Test <length> invalid value: \f.E0pt\f
-[PASS] Test <length> invalid value: \f.E0pc\f
-[PASS] Test <length> invalid value: \f.E0%\f
-[PASS] Test <length> invalid value: \fe1\f
-[PASS] Test <length> invalid value: \fe1em\f
-[PASS] Test <length> invalid value: \fe1ex\f
-[PASS] Test <length> invalid value: \fe1px\f
-[PASS] Test <length> invalid value: \fe1in\f
-[PASS] Test <length> invalid value: \fe1cm\f
-[PASS] Test <length> invalid value: \fe1mm\f
-[PASS] Test <length> invalid value: \fe1pt\f
-[PASS] Test <length> invalid value: \fe1pc\f
-[PASS] Test <length> invalid value: \fe1%\f
+[PASS] Test <length> invalid value:    .\\r\\n\\t 
+[PASS] Test <length> invalid value:    .em\\r\\n\\t 
+[PASS] Test <length> invalid value:    .ex\\r\\n\\t 
+[PASS] Test <length> invalid value:    .px\\r\\n\\t 
+[PASS] Test <length> invalid value:    .in\\r\\n\\t 
+[PASS] Test <length> invalid value:    .cm\\r\\n\\t 
+[PASS] Test <length> invalid value:    .mm\\r\\n\\t 
+[PASS] Test <length> invalid value:    .pt\\r\\n\\t 
+[PASS] Test <length> invalid value:    .pc\\r\\n\\t 
+[PASS] Test <length> invalid value:    .%\\r\\n\\t 
+[PASS] Test <length> invalid value:    +.\\r\\n\\t 
+[PASS] Test <length> invalid value:    +.em\\r\\n\\t 
+[PASS] Test <length> invalid value:    +.ex\\r\\n\\t 
+[PASS] Test <length> invalid value:    +.px\\r\\n\\t 
+[PASS] Test <length> invalid value:    +.in\\r\\n\\t 
+[PASS] Test <length> invalid value:    +.cm\\r\\n\\t 
+[PASS] Test <length> invalid value:    +.mm\\r\\n\\t 
+[PASS] Test <length> invalid value:    +.pt\\r\\n\\t 
+[PASS] Test <length> invalid value:    +.pc\\r\\n\\t 
+[PASS] Test <length> invalid value:    +.%\\r\\n\\t 
+[PASS] Test <length> invalid value:    .E0\\r\\n\\t 
+[PASS] Test <length> invalid value:    .E0em\\r\\n\\t 
+[PASS] Test <length> invalid value:    .E0ex\\r\\n\\t 
+[PASS] Test <length> invalid value:    .E0px\\r\\n\\t 
+[PASS] Test <length> invalid value:    .E0in\\r\\n\\t 
+[PASS] Test <length> invalid value:    .E0cm\\r\\n\\t 
+[PASS] Test <length> invalid value:    .E0mm\\r\\n\\t 
+[PASS] Test <length> invalid value:    .E0pt\\r\\n\\t 
+[PASS] Test <length> invalid value:    .E0pc\\r\\n\\t 
+[PASS] Test <length> invalid value:    .E0%\\r\\n\\t 
+[PASS] Test <length> invalid value:    e1\\r\\n\\t 
+[PASS] Test <length> invalid value:    e1em\\r\\n\\t 
+[PASS] Test <length> invalid value:    e1ex\\r\\n\\t 
+[PASS] Test <length> invalid value:    e1px\\r\\n\\t 
+[PASS] Test <length> invalid value:    e1in\\r\\n\\t 
+[PASS] Test <length> invalid value:    e1cm\\r\\n\\t 
+[PASS] Test <length> invalid value:    e1mm\\r\\n\\t 
+[PASS] Test <length> invalid value:    e1pt\\r\\n\\t 
+[PASS] Test <length> invalid value:    e1pc\\r\\n\\t 
+[PASS] Test <length> invalid value:    e1%\\r\\n\\t 
+[PASS] Test <length> invalid value:    .\\f
+[PASS] Test <length> invalid value:    .em\\f
+[PASS] Test <length> invalid value:    .ex\\f
+[PASS] Test <length> invalid value:    .px\\f
+[PASS] Test <length> invalid value:    .in\\f
+[PASS] Test <length> invalid value:    .cm\\f
+[PASS] Test <length> invalid value:    .mm\\f
+[PASS] Test <length> invalid value:    .pt\\f
+[PASS] Test <length> invalid value:    .pc\\f
+[PASS] Test <length> invalid value:    .%\\f
+[PASS] Test <length> invalid value:    +.\\f
+[PASS] Test <length> invalid value:    +.em\\f
+[PASS] Test <length> invalid value:    +.ex\\f
+[PASS] Test <length> invalid value:    +.px\\f
+[PASS] Test <length> invalid value:    +.in\\f
+[PASS] Test <length> invalid value:    +.cm\\f
+[PASS] Test <length> invalid value:    +.mm\\f
+[PASS] Test <length> invalid value:    +.pt\\f
+[PASS] Test <length> invalid value:    +.pc\\f
+[PASS] Test <length> invalid value:    +.%\\f
+[PASS] Test <length> invalid value:    .E0\\f
+[PASS] Test <length> invalid value:    .E0em\\f
+[PASS] Test <length> invalid value:    .E0ex\\f
+[PASS] Test <length> invalid value:    .E0px\\f
+[PASS] Test <length> invalid value:    .E0in\\f
+[PASS] Test <length> invalid value:    .E0cm\\f
+[PASS] Test <length> invalid value:    .E0mm\\f
+[PASS] Test <length> invalid value:    .E0pt\\f
+[PASS] Test <length> invalid value:    .E0pc\\f
+[PASS] Test <length> invalid value:    .E0%\\f
+[PASS] Test <length> invalid value:    e1\\f
+[PASS] Test <length> invalid value:    e1em\\f
+[PASS] Test <length> invalid value:    e1ex\\f
+[PASS] Test <length> invalid value:    e1px\\f
+[PASS] Test <length> invalid value:    e1in\\f
+[PASS] Test <length> invalid value:    e1cm\\f
+[PASS] Test <length> invalid value:    e1mm\\f
+[PASS] Test <length> invalid value:    e1pt\\f
+[PASS] Test <length> invalid value:    e1pc\\f
+[PASS] Test <length> invalid value:    e1%\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .
+[PASS] Test <length> invalid value: \\r\\n\\t .em
+[PASS] Test <length> invalid value: \\r\\n\\t .ex
+[PASS] Test <length> invalid value: \\r\\n\\t .px
+[PASS] Test <length> invalid value: \\r\\n\\t .in
+[PASS] Test <length> invalid value: \\r\\n\\t .cm
+[PASS] Test <length> invalid value: \\r\\n\\t .mm
+[PASS] Test <length> invalid value: \\r\\n\\t .pt
+[PASS] Test <length> invalid value: \\r\\n\\t .pc
+[PASS] Test <length> invalid value: \\r\\n\\t .%
+[PASS] Test <length> invalid value: \\r\\n\\t +.
+[PASS] Test <length> invalid value: \\r\\n\\t +.em
+[PASS] Test <length> invalid value: \\r\\n\\t +.ex
+[PASS] Test <length> invalid value: \\r\\n\\t +.px
+[PASS] Test <length> invalid value: \\r\\n\\t +.in
+[PASS] Test <length> invalid value: \\r\\n\\t +.cm
+[PASS] Test <length> invalid value: \\r\\n\\t +.mm
+[PASS] Test <length> invalid value: \\r\\n\\t +.pt
+[PASS] Test <length> invalid value: \\r\\n\\t +.pc
+[PASS] Test <length> invalid value: \\r\\n\\t +.%
+[PASS] Test <length> invalid value: \\r\\n\\t .E0
+[PASS] Test <length> invalid value: \\r\\n\\t .E0em
+[PASS] Test <length> invalid value: \\r\\n\\t .E0ex
+[PASS] Test <length> invalid value: \\r\\n\\t .E0px
+[PASS] Test <length> invalid value: \\r\\n\\t .E0in
+[PASS] Test <length> invalid value: \\r\\n\\t .E0cm
+[PASS] Test <length> invalid value: \\r\\n\\t .E0mm
+[PASS] Test <length> invalid value: \\r\\n\\t .E0pt
+[PASS] Test <length> invalid value: \\r\\n\\t .E0pc
+[PASS] Test <length> invalid value: \\r\\n\\t .E0%
+[PASS] Test <length> invalid value: \\r\\n\\t e1
+[PASS] Test <length> invalid value: \\r\\n\\t e1em
+[PASS] Test <length> invalid value: \\r\\n\\t e1ex
+[PASS] Test <length> invalid value: \\r\\n\\t e1px
+[PASS] Test <length> invalid value: \\r\\n\\t e1in
+[PASS] Test <length> invalid value: \\r\\n\\t e1cm
+[PASS] Test <length> invalid value: \\r\\n\\t e1mm
+[PASS] Test <length> invalid value: \\r\\n\\t e1pt
+[PASS] Test <length> invalid value: \\r\\n\\t e1pc
+[PASS] Test <length> invalid value: \\r\\n\\t e1%
+[PASS] Test <length> invalid value: \\r\\n\\t . 
+[PASS] Test <length> invalid value: \\r\\n\\t .em 
+[PASS] Test <length> invalid value: \\r\\n\\t .ex 
+[PASS] Test <length> invalid value: \\r\\n\\t .px 
+[PASS] Test <length> invalid value: \\r\\n\\t .in 
+[PASS] Test <length> invalid value: \\r\\n\\t .cm 
+[PASS] Test <length> invalid value: \\r\\n\\t .mm 
+[PASS] Test <length> invalid value: \\r\\n\\t .pt 
+[PASS] Test <length> invalid value: \\r\\n\\t .pc 
+[PASS] Test <length> invalid value: \\r\\n\\t .% 
+[PASS] Test <length> invalid value: \\r\\n\\t +. 
+[PASS] Test <length> invalid value: \\r\\n\\t +.em 
+[PASS] Test <length> invalid value: \\r\\n\\t +.ex 
+[PASS] Test <length> invalid value: \\r\\n\\t +.px 
+[PASS] Test <length> invalid value: \\r\\n\\t +.in 
+[PASS] Test <length> invalid value: \\r\\n\\t +.cm 
+[PASS] Test <length> invalid value: \\r\\n\\t +.mm 
+[PASS] Test <length> invalid value: \\r\\n\\t +.pt 
+[PASS] Test <length> invalid value: \\r\\n\\t +.pc 
+[PASS] Test <length> invalid value: \\r\\n\\t +.% 
+[PASS] Test <length> invalid value: \\r\\n\\t .E0 
+[PASS] Test <length> invalid value: \\r\\n\\t .E0em 
+[PASS] Test <length> invalid value: \\r\\n\\t .E0ex 
+[PASS] Test <length> invalid value: \\r\\n\\t .E0px 
+[PASS] Test <length> invalid value: \\r\\n\\t .E0in 
+[PASS] Test <length> invalid value: \\r\\n\\t .E0cm 
+[PASS] Test <length> invalid value: \\r\\n\\t .E0mm 
+[PASS] Test <length> invalid value: \\r\\n\\t .E0pt 
+[PASS] Test <length> invalid value: \\r\\n\\t .E0pc 
+[PASS] Test <length> invalid value: \\r\\n\\t .E0% 
+[PASS] Test <length> invalid value: \\r\\n\\t e1 
+[PASS] Test <length> invalid value: \\r\\n\\t e1em 
+[PASS] Test <length> invalid value: \\r\\n\\t e1ex 
+[PASS] Test <length> invalid value: \\r\\n\\t e1px 
+[PASS] Test <length> invalid value: \\r\\n\\t e1in 
+[PASS] Test <length> invalid value: \\r\\n\\t e1cm 
+[PASS] Test <length> invalid value: \\r\\n\\t e1mm 
+[PASS] Test <length> invalid value: \\r\\n\\t e1pt 
+[PASS] Test <length> invalid value: \\r\\n\\t e1pc 
+[PASS] Test <length> invalid value: \\r\\n\\t e1% 
+[PASS] Test <length> invalid value: \\r\\n\\t .   
+[PASS] Test <length> invalid value: \\r\\n\\t .em   
+[PASS] Test <length> invalid value: \\r\\n\\t .ex   
+[PASS] Test <length> invalid value: \\r\\n\\t .px   
+[PASS] Test <length> invalid value: \\r\\n\\t .in   
+[PASS] Test <length> invalid value: \\r\\n\\t .cm   
+[PASS] Test <length> invalid value: \\r\\n\\t .mm   
+[PASS] Test <length> invalid value: \\r\\n\\t .pt   
+[PASS] Test <length> invalid value: \\r\\n\\t .pc   
+[PASS] Test <length> invalid value: \\r\\n\\t .%   
+[PASS] Test <length> invalid value: \\r\\n\\t +.   
+[PASS] Test <length> invalid value: \\r\\n\\t +.em   
+[PASS] Test <length> invalid value: \\r\\n\\t +.ex   
+[PASS] Test <length> invalid value: \\r\\n\\t +.px   
+[PASS] Test <length> invalid value: \\r\\n\\t +.in   
+[PASS] Test <length> invalid value: \\r\\n\\t +.cm   
+[PASS] Test <length> invalid value: \\r\\n\\t +.mm   
+[PASS] Test <length> invalid value: \\r\\n\\t +.pt   
+[PASS] Test <length> invalid value: \\r\\n\\t +.pc   
+[PASS] Test <length> invalid value: \\r\\n\\t +.%   
+[PASS] Test <length> invalid value: \\r\\n\\t .E0   
+[PASS] Test <length> invalid value: \\r\\n\\t .E0em   
+[PASS] Test <length> invalid value: \\r\\n\\t .E0ex   
+[PASS] Test <length> invalid value: \\r\\n\\t .E0px   
+[PASS] Test <length> invalid value: \\r\\n\\t .E0in   
+[PASS] Test <length> invalid value: \\r\\n\\t .E0cm   
+[PASS] Test <length> invalid value: \\r\\n\\t .E0mm   
+[PASS] Test <length> invalid value: \\r\\n\\t .E0pt   
+[PASS] Test <length> invalid value: \\r\\n\\t .E0pc   
+[PASS] Test <length> invalid value: \\r\\n\\t .E0%   
+[PASS] Test <length> invalid value: \\r\\n\\t e1   
+[PASS] Test <length> invalid value: \\r\\n\\t e1em   
+[PASS] Test <length> invalid value: \\r\\n\\t e1ex   
+[PASS] Test <length> invalid value: \\r\\n\\t e1px   
+[PASS] Test <length> invalid value: \\r\\n\\t e1in   
+[PASS] Test <length> invalid value: \\r\\n\\t e1cm   
+[PASS] Test <length> invalid value: \\r\\n\\t e1mm   
+[PASS] Test <length> invalid value: \\r\\n\\t e1pt   
+[PASS] Test <length> invalid value: \\r\\n\\t e1pc   
+[PASS] Test <length> invalid value: \\r\\n\\t e1%   
+[PASS] Test <length> invalid value: \\r\\n\\t .\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .em\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .ex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .px\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .in\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .cm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .mm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .pt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .pc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t +.\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t +.em\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t +.ex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t +.px\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t +.in\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t +.cm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t +.mm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t +.pt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t +.pc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t +.%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .E0\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .E0em\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .E0ex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .E0px\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .E0in\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .E0cm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .E0mm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .E0pt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .E0pc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .E0%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t e1\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t e1em\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t e1ex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t e1px\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t e1in\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t e1cm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t e1mm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t e1pt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t e1pc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t e1%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\r\\n\\t .\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .em\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .ex\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .px\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .in\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .cm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .mm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .pt\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .pc\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .%\\f
+[PASS] Test <length> invalid value: \\r\\n\\t +.\\f
+[PASS] Test <length> invalid value: \\r\\n\\t +.em\\f
+[PASS] Test <length> invalid value: \\r\\n\\t +.ex\\f
+[PASS] Test <length> invalid value: \\r\\n\\t +.px\\f
+[PASS] Test <length> invalid value: \\r\\n\\t +.in\\f
+[PASS] Test <length> invalid value: \\r\\n\\t +.cm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t +.mm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t +.pt\\f
+[PASS] Test <length> invalid value: \\r\\n\\t +.pc\\f
+[PASS] Test <length> invalid value: \\r\\n\\t +.%\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .E0\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .E0em\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .E0ex\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .E0px\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .E0in\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .E0cm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .E0mm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .E0pt\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .E0pc\\f
+[PASS] Test <length> invalid value: \\r\\n\\t .E0%\\f
+[PASS] Test <length> invalid value: \\r\\n\\t e1\\f
+[PASS] Test <length> invalid value: \\r\\n\\t e1em\\f
+[PASS] Test <length> invalid value: \\r\\n\\t e1ex\\f
+[PASS] Test <length> invalid value: \\r\\n\\t e1px\\f
+[PASS] Test <length> invalid value: \\r\\n\\t e1in\\f
+[PASS] Test <length> invalid value: \\r\\n\\t e1cm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t e1mm\\f
+[PASS] Test <length> invalid value: \\r\\n\\t e1pt\\f
+[PASS] Test <length> invalid value: \\r\\n\\t e1pc\\f
+[PASS] Test <length> invalid value: \\r\\n\\t e1%\\f
+[PASS] Test <length> invalid value: \\f.
+[PASS] Test <length> invalid value: \\f.em
+[PASS] Test <length> invalid value: \\f.ex
+[PASS] Test <length> invalid value: \\f.px
+[PASS] Test <length> invalid value: \\f.in
+[PASS] Test <length> invalid value: \\f.cm
+[PASS] Test <length> invalid value: \\f.mm
+[PASS] Test <length> invalid value: \\f.pt
+[PASS] Test <length> invalid value: \\f.pc
+[PASS] Test <length> invalid value: \\f.%
+[PASS] Test <length> invalid value: \\f+.
+[PASS] Test <length> invalid value: \\f+.em
+[PASS] Test <length> invalid value: \\f+.ex
+[PASS] Test <length> invalid value: \\f+.px
+[PASS] Test <length> invalid value: \\f+.in
+[PASS] Test <length> invalid value: \\f+.cm
+[PASS] Test <length> invalid value: \\f+.mm
+[PASS] Test <length> invalid value: \\f+.pt
+[PASS] Test <length> invalid value: \\f+.pc
+[PASS] Test <length> invalid value: \\f+.%
+[PASS] Test <length> invalid value: \\f.E0
+[PASS] Test <length> invalid value: \\f.E0em
+[PASS] Test <length> invalid value: \\f.E0ex
+[PASS] Test <length> invalid value: \\f.E0px
+[PASS] Test <length> invalid value: \\f.E0in
+[PASS] Test <length> invalid value: \\f.E0cm
+[PASS] Test <length> invalid value: \\f.E0mm
+[PASS] Test <length> invalid value: \\f.E0pt
+[PASS] Test <length> invalid value: \\f.E0pc
+[PASS] Test <length> invalid value: \\f.E0%
+[PASS] Test <length> invalid value: \\fe1
+[PASS] Test <length> invalid value: \\fe1em
+[PASS] Test <length> invalid value: \\fe1ex
+[PASS] Test <length> invalid value: \\fe1px
+[PASS] Test <length> invalid value: \\fe1in
+[PASS] Test <length> invalid value: \\fe1cm
+[PASS] Test <length> invalid value: \\fe1mm
+[PASS] Test <length> invalid value: \\fe1pt
+[PASS] Test <length> invalid value: \\fe1pc
+[PASS] Test <length> invalid value: \\fe1%
+[PASS] Test <length> invalid value: \\f. 
+[PASS] Test <length> invalid value: \\f.em 
+[PASS] Test <length> invalid value: \\f.ex 
+[PASS] Test <length> invalid value: \\f.px 
+[PASS] Test <length> invalid value: \\f.in 
+[PASS] Test <length> invalid value: \\f.cm 
+[PASS] Test <length> invalid value: \\f.mm 
+[PASS] Test <length> invalid value: \\f.pt 
+[PASS] Test <length> invalid value: \\f.pc 
+[PASS] Test <length> invalid value: \\f.% 
+[PASS] Test <length> invalid value: \\f+. 
+[PASS] Test <length> invalid value: \\f+.em 
+[PASS] Test <length> invalid value: \\f+.ex 
+[PASS] Test <length> invalid value: \\f+.px 
+[PASS] Test <length> invalid value: \\f+.in 
+[PASS] Test <length> invalid value: \\f+.cm 
+[PASS] Test <length> invalid value: \\f+.mm 
+[PASS] Test <length> invalid value: \\f+.pt 
+[PASS] Test <length> invalid value: \\f+.pc 
+[PASS] Test <length> invalid value: \\f+.% 
+[PASS] Test <length> invalid value: \\f.E0 
+[PASS] Test <length> invalid value: \\f.E0em 
+[PASS] Test <length> invalid value: \\f.E0ex 
+[PASS] Test <length> invalid value: \\f.E0px 
+[PASS] Test <length> invalid value: \\f.E0in 
+[PASS] Test <length> invalid value: \\f.E0cm 
+[PASS] Test <length> invalid value: \\f.E0mm 
+[PASS] Test <length> invalid value: \\f.E0pt 
+[PASS] Test <length> invalid value: \\f.E0pc 
+[PASS] Test <length> invalid value: \\f.E0% 
+[PASS] Test <length> invalid value: \\fe1 
+[PASS] Test <length> invalid value: \\fe1em 
+[PASS] Test <length> invalid value: \\fe1ex 
+[PASS] Test <length> invalid value: \\fe1px 
+[PASS] Test <length> invalid value: \\fe1in 
+[PASS] Test <length> invalid value: \\fe1cm 
+[PASS] Test <length> invalid value: \\fe1mm 
+[PASS] Test <length> invalid value: \\fe1pt 
+[PASS] Test <length> invalid value: \\fe1pc 
+[PASS] Test <length> invalid value: \\fe1% 
+[PASS] Test <length> invalid value: \\f.   
+[PASS] Test <length> invalid value: \\f.em   
+[PASS] Test <length> invalid value: \\f.ex   
+[PASS] Test <length> invalid value: \\f.px   
+[PASS] Test <length> invalid value: \\f.in   
+[PASS] Test <length> invalid value: \\f.cm   
+[PASS] Test <length> invalid value: \\f.mm   
+[PASS] Test <length> invalid value: \\f.pt   
+[PASS] Test <length> invalid value: \\f.pc   
+[PASS] Test <length> invalid value: \\f.%   
+[PASS] Test <length> invalid value: \\f+.   
+[PASS] Test <length> invalid value: \\f+.em   
+[PASS] Test <length> invalid value: \\f+.ex   
+[PASS] Test <length> invalid value: \\f+.px   
+[PASS] Test <length> invalid value: \\f+.in   
+[PASS] Test <length> invalid value: \\f+.cm   
+[PASS] Test <length> invalid value: \\f+.mm   
+[PASS] Test <length> invalid value: \\f+.pt   
+[PASS] Test <length> invalid value: \\f+.pc   
+[PASS] Test <length> invalid value: \\f+.%   
+[PASS] Test <length> invalid value: \\f.E0   
+[PASS] Test <length> invalid value: \\f.E0em   
+[PASS] Test <length> invalid value: \\f.E0ex   
+[PASS] Test <length> invalid value: \\f.E0px   
+[PASS] Test <length> invalid value: \\f.E0in   
+[PASS] Test <length> invalid value: \\f.E0cm   
+[PASS] Test <length> invalid value: \\f.E0mm   
+[PASS] Test <length> invalid value: \\f.E0pt   
+[PASS] Test <length> invalid value: \\f.E0pc   
+[PASS] Test <length> invalid value: \\f.E0%   
+[PASS] Test <length> invalid value: \\fe1   
+[PASS] Test <length> invalid value: \\fe1em   
+[PASS] Test <length> invalid value: \\fe1ex   
+[PASS] Test <length> invalid value: \\fe1px   
+[PASS] Test <length> invalid value: \\fe1in   
+[PASS] Test <length> invalid value: \\fe1cm   
+[PASS] Test <length> invalid value: \\fe1mm   
+[PASS] Test <length> invalid value: \\fe1pt   
+[PASS] Test <length> invalid value: \\fe1pc   
+[PASS] Test <length> invalid value: \\fe1%   
+[PASS] Test <length> invalid value: \\f.\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.em\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.ex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.px\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.in\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.cm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.mm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.pt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.pc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f+.\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f+.em\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f+.ex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f+.px\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f+.in\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f+.cm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f+.mm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f+.pt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f+.pc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f+.%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.E0\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.E0em\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.E0ex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.E0px\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.E0in\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.E0cm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.E0mm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.E0pt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.E0pc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.E0%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fe1\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fe1em\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fe1ex\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fe1px\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fe1in\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fe1cm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fe1mm\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fe1pt\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fe1pc\\r\\n\\t 
+[PASS] Test <length> invalid value: \\fe1%\\r\\n\\t 
+[PASS] Test <length> invalid value: \\f.\\f
+[PASS] Test <length> invalid value: \\f.em\\f
+[PASS] Test <length> invalid value: \\f.ex\\f
+[PASS] Test <length> invalid value: \\f.px\\f
+[PASS] Test <length> invalid value: \\f.in\\f
+[PASS] Test <length> invalid value: \\f.cm\\f
+[PASS] Test <length> invalid value: \\f.mm\\f
+[PASS] Test <length> invalid value: \\f.pt\\f
+[PASS] Test <length> invalid value: \\f.pc\\f
+[PASS] Test <length> invalid value: \\f.%\\f
+[PASS] Test <length> invalid value: \\f+.\\f
+[PASS] Test <length> invalid value: \\f+.em\\f
+[PASS] Test <length> invalid value: \\f+.ex\\f
+[PASS] Test <length> invalid value: \\f+.px\\f
+[PASS] Test <length> invalid value: \\f+.in\\f
+[PASS] Test <length> invalid value: \\f+.cm\\f
+[PASS] Test <length> invalid value: \\f+.mm\\f
+[PASS] Test <length> invalid value: \\f+.pt\\f
+[PASS] Test <length> invalid value: \\f+.pc\\f
+[PASS] Test <length> invalid value: \\f+.%\\f
+[PASS] Test <length> invalid value: \\f.E0\\f
+[PASS] Test <length> invalid value: \\f.E0em\\f
+[PASS] Test <length> invalid value: \\f.E0ex\\f
+[PASS] Test <length> invalid value: \\f.E0px\\f
+[PASS] Test <length> invalid value: \\f.E0in\\f
+[PASS] Test <length> invalid value: \\f.E0cm\\f
+[PASS] Test <length> invalid value: \\f.E0mm\\f
+[PASS] Test <length> invalid value: \\f.E0pt\\f
+[PASS] Test <length> invalid value: \\f.E0pc\\f
+[PASS] Test <length> invalid value: \\f.E0%\\f
+[PASS] Test <length> invalid value: \\fe1\\f
+[PASS] Test <length> invalid value: \\fe1em\\f
+[PASS] Test <length> invalid value: \\fe1ex\\f
+[PASS] Test <length> invalid value: \\fe1px\\f
+[PASS] Test <length> invalid value: \\fe1in\\f
+[PASS] Test <length> invalid value: \\fe1cm\\f
+[PASS] Test <length> invalid value: \\fe1mm\\f
+[PASS] Test <length> invalid value: \\fe1pt\\f
+[PASS] Test <length> invalid value: \\fe1pc\\f
+[PASS] Test <length> invalid value: \\fe1%\\f
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/svg/parser/whitespace-number-expected.txt b/third_party/blink/web_tests/svg/parser/whitespace-number-expected.txt
index 8ec4e3e..c9f576e8 100644
--- a/third_party/blink/web_tests/svg/parser/whitespace-number-expected.txt
+++ b/third_party/blink/web_tests/svg/parser/whitespace-number-expected.txt
@@ -1128,20 +1128,20 @@
 [PASS] Test <number> valid value: +32   
 [PASS] Test <number> valid value: +17E-1   
 [PASS] Test <number> valid value: 17e+2   
-[PASS] Test <number> valid value: -47\r\n\t 
-[PASS] Test <number> valid value: .1\r\n\t 
-[PASS] Test <number> valid value: 0.35\r\n\t 
-[PASS] Test <number> valid value: 1e-10\r\n\t 
-[PASS] Test <number> valid value: +32\r\n\t 
-[PASS] Test <number> valid value: +17E-1\r\n\t 
-[PASS] Test <number> valid value: 17e+2\r\n\t 
-[PASS] Test <number> valid value: -47\f
-[PASS] Test <number> valid value: .1\f
-[PASS] Test <number> valid value: 0.35\f
-[PASS] Test <number> valid value: 1e-10\f
-[PASS] Test <number> valid value: +32\f
-[PASS] Test <number> valid value: +17E-1\f
-[PASS] Test <number> valid value: 17e+2\f
+[PASS] Test <number> valid value: -47\\r\\n\\t 
+[PASS] Test <number> valid value: .1\\r\\n\\t 
+[PASS] Test <number> valid value: 0.35\\r\\n\\t 
+[PASS] Test <number> valid value: 1e-10\\r\\n\\t 
+[PASS] Test <number> valid value: +32\\r\\n\\t 
+[PASS] Test <number> valid value: +17E-1\\r\\n\\t 
+[PASS] Test <number> valid value: 17e+2\\r\\n\\t 
+[PASS] Test <number> valid value: -47\\f
+[PASS] Test <number> valid value: .1\\f
+[PASS] Test <number> valid value: 0.35\\f
+[PASS] Test <number> valid value: 1e-10\\f
+[PASS] Test <number> valid value: +32\\f
+[PASS] Test <number> valid value: +17E-1\\f
+[PASS] Test <number> valid value: 17e+2\\f
 [PASS] Test <number> trailing garbage, value: -47a
 [PASS] Test <number> trailing garbage, value: .1a
 [PASS] Test <number> trailing garbage, value: 0.35a
@@ -1191,20 +1191,20 @@
 [PASS] Test <number> valid value:  +32   
 [PASS] Test <number> valid value:  +17E-1   
 [PASS] Test <number> valid value:  17e+2   
-[PASS] Test <number> valid value:  -47\r\n\t 
-[PASS] Test <number> valid value:  .1\r\n\t 
-[PASS] Test <number> valid value:  0.35\r\n\t 
-[PASS] Test <number> valid value:  1e-10\r\n\t 
-[PASS] Test <number> valid value:  +32\r\n\t 
-[PASS] Test <number> valid value:  +17E-1\r\n\t 
-[PASS] Test <number> valid value:  17e+2\r\n\t 
-[PASS] Test <number> valid value:  -47\f
-[PASS] Test <number> valid value:  .1\f
-[PASS] Test <number> valid value:  0.35\f
-[PASS] Test <number> valid value:  1e-10\f
-[PASS] Test <number> valid value:  +32\f
-[PASS] Test <number> valid value:  +17E-1\f
-[PASS] Test <number> valid value:  17e+2\f
+[PASS] Test <number> valid value:  -47\\r\\n\\t 
+[PASS] Test <number> valid value:  .1\\r\\n\\t 
+[PASS] Test <number> valid value:  0.35\\r\\n\\t 
+[PASS] Test <number> valid value:  1e-10\\r\\n\\t 
+[PASS] Test <number> valid value:  +32\\r\\n\\t 
+[PASS] Test <number> valid value:  +17E-1\\r\\n\\t 
+[PASS] Test <number> valid value:  17e+2\\r\\n\\t 
+[PASS] Test <number> valid value:  -47\\f
+[PASS] Test <number> valid value:  .1\\f
+[PASS] Test <number> valid value:  0.35\\f
+[PASS] Test <number> valid value:  1e-10\\f
+[PASS] Test <number> valid value:  +32\\f
+[PASS] Test <number> valid value:  +17E-1\\f
+[PASS] Test <number> valid value:  17e+2\\f
 [PASS] Test <number> trailing garbage, value:  -47a
 [PASS] Test <number> trailing garbage, value:  .1a
 [PASS] Test <number> trailing garbage, value:  0.35a
@@ -1254,20 +1254,20 @@
 [PASS] Test <number> valid value:    +32   
 [PASS] Test <number> valid value:    +17E-1   
 [PASS] Test <number> valid value:    17e+2   
-[PASS] Test <number> valid value:    -47\r\n\t 
-[PASS] Test <number> valid value:    .1\r\n\t 
-[PASS] Test <number> valid value:    0.35\r\n\t 
-[PASS] Test <number> valid value:    1e-10\r\n\t 
-[PASS] Test <number> valid value:    +32\r\n\t 
-[PASS] Test <number> valid value:    +17E-1\r\n\t 
-[PASS] Test <number> valid value:    17e+2\r\n\t 
-[PASS] Test <number> valid value:    -47\f
-[PASS] Test <number> valid value:    .1\f
-[PASS] Test <number> valid value:    0.35\f
-[PASS] Test <number> valid value:    1e-10\f
-[PASS] Test <number> valid value:    +32\f
-[PASS] Test <number> valid value:    +17E-1\f
-[PASS] Test <number> valid value:    17e+2\f
+[PASS] Test <number> valid value:    -47\\r\\n\\t 
+[PASS] Test <number> valid value:    .1\\r\\n\\t 
+[PASS] Test <number> valid value:    0.35\\r\\n\\t 
+[PASS] Test <number> valid value:    1e-10\\r\\n\\t 
+[PASS] Test <number> valid value:    +32\\r\\n\\t 
+[PASS] Test <number> valid value:    +17E-1\\r\\n\\t 
+[PASS] Test <number> valid value:    17e+2\\r\\n\\t 
+[PASS] Test <number> valid value:    -47\\f
+[PASS] Test <number> valid value:    .1\\f
+[PASS] Test <number> valid value:    0.35\\f
+[PASS] Test <number> valid value:    1e-10\\f
+[PASS] Test <number> valid value:    +32\\f
+[PASS] Test <number> valid value:    +17E-1\\f
+[PASS] Test <number> valid value:    17e+2\\f
 [PASS] Test <number> trailing garbage, value:    -47a
 [PASS] Test <number> trailing garbage, value:    .1a
 [PASS] Test <number> trailing garbage, value:    0.35a
@@ -1296,132 +1296,132 @@
 [PASS] Test <number> trailing garbage, value:    +32)90
 [PASS] Test <number> trailing garbage, value:    +17E-1)90
 [PASS] Test <number> trailing garbage, value:    17e+2)90
-[PASS] Test <number> valid value: \r\n\t -47
-[PASS] Test <number> valid value: \r\n\t .1
-[PASS] Test <number> valid value: \r\n\t 0.35
-[PASS] Test <number> valid value: \r\n\t 1e-10
-[PASS] Test <number> valid value: \r\n\t +32
-[PASS] Test <number> valid value: \r\n\t +17E-1
-[PASS] Test <number> valid value: \r\n\t 17e+2
-[PASS] Test <number> valid value: \r\n\t -47 
-[PASS] Test <number> valid value: \r\n\t .1 
-[PASS] Test <number> valid value: \r\n\t 0.35 
-[PASS] Test <number> valid value: \r\n\t 1e-10 
-[PASS] Test <number> valid value: \r\n\t +32 
-[PASS] Test <number> valid value: \r\n\t +17E-1 
-[PASS] Test <number> valid value: \r\n\t 17e+2 
-[PASS] Test <number> valid value: \r\n\t -47   
-[PASS] Test <number> valid value: \r\n\t .1   
-[PASS] Test <number> valid value: \r\n\t 0.35   
-[PASS] Test <number> valid value: \r\n\t 1e-10   
-[PASS] Test <number> valid value: \r\n\t +32   
-[PASS] Test <number> valid value: \r\n\t +17E-1   
-[PASS] Test <number> valid value: \r\n\t 17e+2   
-[PASS] Test <number> valid value: \r\n\t -47\r\n\t 
-[PASS] Test <number> valid value: \r\n\t .1\r\n\t 
-[PASS] Test <number> valid value: \r\n\t 0.35\r\n\t 
-[PASS] Test <number> valid value: \r\n\t 1e-10\r\n\t 
-[PASS] Test <number> valid value: \r\n\t +32\r\n\t 
-[PASS] Test <number> valid value: \r\n\t +17E-1\r\n\t 
-[PASS] Test <number> valid value: \r\n\t 17e+2\r\n\t 
-[PASS] Test <number> valid value: \r\n\t -47\f
-[PASS] Test <number> valid value: \r\n\t .1\f
-[PASS] Test <number> valid value: \r\n\t 0.35\f
-[PASS] Test <number> valid value: \r\n\t 1e-10\f
-[PASS] Test <number> valid value: \r\n\t +32\f
-[PASS] Test <number> valid value: \r\n\t +17E-1\f
-[PASS] Test <number> valid value: \r\n\t 17e+2\f
-[PASS] Test <number> trailing garbage, value: \r\n\t -47a
-[PASS] Test <number> trailing garbage, value: \r\n\t .1a
-[PASS] Test <number> trailing garbage, value: \r\n\t 0.35a
-[PASS] Test <number> trailing garbage, value: \r\n\t 1e-10a
-[PASS] Test <number> trailing garbage, value: \r\n\t +32a
-[PASS] Test <number> trailing garbage, value: \r\n\t +17E-1a
-[PASS] Test <number> trailing garbage, value: \r\n\t 17e+2a
-[PASS] Test <number> trailing garbage, value: \r\n\t -47e
-[PASS] Test <number> trailing garbage, value: \r\n\t .1e
-[PASS] Test <number> trailing garbage, value: \r\n\t 0.35e
-[PASS] Test <number> trailing garbage, value: \r\n\t 1e-10e
-[PASS] Test <number> trailing garbage, value: \r\n\t +32e
-[PASS] Test <number> trailing garbage, value: \r\n\t +17E-1e
-[PASS] Test <number> trailing garbage, value: \r\n\t 17e+2e
-[PASS] Test <number> trailing garbage, value: \r\n\t -47foo
-[PASS] Test <number> trailing garbage, value: \r\n\t .1foo
-[PASS] Test <number> trailing garbage, value: \r\n\t 0.35foo
-[PASS] Test <number> trailing garbage, value: \r\n\t 1e-10foo
-[PASS] Test <number> trailing garbage, value: \r\n\t +32foo
-[PASS] Test <number> trailing garbage, value: \r\n\t +17E-1foo
-[PASS] Test <number> trailing garbage, value: \r\n\t 17e+2foo
-[PASS] Test <number> trailing garbage, value: \r\n\t -47)90
-[PASS] Test <number> trailing garbage, value: \r\n\t .1)90
-[PASS] Test <number> trailing garbage, value: \r\n\t 0.35)90
-[PASS] Test <number> trailing garbage, value: \r\n\t 1e-10)90
-[PASS] Test <number> trailing garbage, value: \r\n\t +32)90
-[PASS] Test <number> trailing garbage, value: \r\n\t +17E-1)90
-[PASS] Test <number> trailing garbage, value: \r\n\t 17e+2)90
-[PASS] Test <number> valid value: \f-47
-[PASS] Test <number> valid value: \f.1
-[PASS] Test <number> valid value: \f0.35
-[PASS] Test <number> valid value: \f1e-10
-[PASS] Test <number> valid value: \f+32
-[PASS] Test <number> valid value: \f+17E-1
-[PASS] Test <number> valid value: \f17e+2
-[PASS] Test <number> valid value: \f-47 
-[PASS] Test <number> valid value: \f.1 
-[PASS] Test <number> valid value: \f0.35 
-[PASS] Test <number> valid value: \f1e-10 
-[PASS] Test <number> valid value: \f+32 
-[PASS] Test <number> valid value: \f+17E-1 
-[PASS] Test <number> valid value: \f17e+2 
-[PASS] Test <number> valid value: \f-47   
-[PASS] Test <number> valid value: \f.1   
-[PASS] Test <number> valid value: \f0.35   
-[PASS] Test <number> valid value: \f1e-10   
-[PASS] Test <number> valid value: \f+32   
-[PASS] Test <number> valid value: \f+17E-1   
-[PASS] Test <number> valid value: \f17e+2   
-[PASS] Test <number> valid value: \f-47\r\n\t 
-[PASS] Test <number> valid value: \f.1\r\n\t 
-[PASS] Test <number> valid value: \f0.35\r\n\t 
-[PASS] Test <number> valid value: \f1e-10\r\n\t 
-[PASS] Test <number> valid value: \f+32\r\n\t 
-[PASS] Test <number> valid value: \f+17E-1\r\n\t 
-[PASS] Test <number> valid value: \f17e+2\r\n\t 
-[PASS] Test <number> valid value: \f-47\f
-[PASS] Test <number> valid value: \f.1\f
-[PASS] Test <number> valid value: \f0.35\f
-[PASS] Test <number> valid value: \f1e-10\f
-[PASS] Test <number> valid value: \f+32\f
-[PASS] Test <number> valid value: \f+17E-1\f
-[PASS] Test <number> valid value: \f17e+2\f
-[PASS] Test <number> trailing garbage, value: \f-47a
-[PASS] Test <number> trailing garbage, value: \f.1a
-[PASS] Test <number> trailing garbage, value: \f0.35a
-[PASS] Test <number> trailing garbage, value: \f1e-10a
-[PASS] Test <number> trailing garbage, value: \f+32a
-[PASS] Test <number> trailing garbage, value: \f+17E-1a
-[PASS] Test <number> trailing garbage, value: \f17e+2a
-[PASS] Test <number> trailing garbage, value: \f-47e
-[PASS] Test <number> trailing garbage, value: \f.1e
-[PASS] Test <number> trailing garbage, value: \f0.35e
-[PASS] Test <number> trailing garbage, value: \f1e-10e
-[PASS] Test <number> trailing garbage, value: \f+32e
-[PASS] Test <number> trailing garbage, value: \f+17E-1e
-[PASS] Test <number> trailing garbage, value: \f17e+2e
-[PASS] Test <number> trailing garbage, value: \f-47foo
-[PASS] Test <number> trailing garbage, value: \f.1foo
-[PASS] Test <number> trailing garbage, value: \f0.35foo
-[PASS] Test <number> trailing garbage, value: \f1e-10foo
-[PASS] Test <number> trailing garbage, value: \f+32foo
-[PASS] Test <number> trailing garbage, value: \f+17E-1foo
-[PASS] Test <number> trailing garbage, value: \f17e+2foo
-[PASS] Test <number> trailing garbage, value: \f-47)90
-[PASS] Test <number> trailing garbage, value: \f.1)90
-[PASS] Test <number> trailing garbage, value: \f0.35)90
-[PASS] Test <number> trailing garbage, value: \f1e-10)90
-[PASS] Test <number> trailing garbage, value: \f+32)90
-[PASS] Test <number> trailing garbage, value: \f+17E-1)90
-[PASS] Test <number> trailing garbage, value: \f17e+2)90
+[PASS] Test <number> valid value: \\r\\n\\t -47
+[PASS] Test <number> valid value: \\r\\n\\t .1
+[PASS] Test <number> valid value: \\r\\n\\t 0.35
+[PASS] Test <number> valid value: \\r\\n\\t 1e-10
+[PASS] Test <number> valid value: \\r\\n\\t +32
+[PASS] Test <number> valid value: \\r\\n\\t +17E-1
+[PASS] Test <number> valid value: \\r\\n\\t 17e+2
+[PASS] Test <number> valid value: \\r\\n\\t -47 
+[PASS] Test <number> valid value: \\r\\n\\t .1 
+[PASS] Test <number> valid value: \\r\\n\\t 0.35 
+[PASS] Test <number> valid value: \\r\\n\\t 1e-10 
+[PASS] Test <number> valid value: \\r\\n\\t +32 
+[PASS] Test <number> valid value: \\r\\n\\t +17E-1 
+[PASS] Test <number> valid value: \\r\\n\\t 17e+2 
+[PASS] Test <number> valid value: \\r\\n\\t -47   
+[PASS] Test <number> valid value: \\r\\n\\t .1   
+[PASS] Test <number> valid value: \\r\\n\\t 0.35   
+[PASS] Test <number> valid value: \\r\\n\\t 1e-10   
+[PASS] Test <number> valid value: \\r\\n\\t +32   
+[PASS] Test <number> valid value: \\r\\n\\t +17E-1   
+[PASS] Test <number> valid value: \\r\\n\\t 17e+2   
+[PASS] Test <number> valid value: \\r\\n\\t -47\\r\\n\\t 
+[PASS] Test <number> valid value: \\r\\n\\t .1\\r\\n\\t 
+[PASS] Test <number> valid value: \\r\\n\\t 0.35\\r\\n\\t 
+[PASS] Test <number> valid value: \\r\\n\\t 1e-10\\r\\n\\t 
+[PASS] Test <number> valid value: \\r\\n\\t +32\\r\\n\\t 
+[PASS] Test <number> valid value: \\r\\n\\t +17E-1\\r\\n\\t 
+[PASS] Test <number> valid value: \\r\\n\\t 17e+2\\r\\n\\t 
+[PASS] Test <number> valid value: \\r\\n\\t -47\\f
+[PASS] Test <number> valid value: \\r\\n\\t .1\\f
+[PASS] Test <number> valid value: \\r\\n\\t 0.35\\f
+[PASS] Test <number> valid value: \\r\\n\\t 1e-10\\f
+[PASS] Test <number> valid value: \\r\\n\\t +32\\f
+[PASS] Test <number> valid value: \\r\\n\\t +17E-1\\f
+[PASS] Test <number> valid value: \\r\\n\\t 17e+2\\f
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t -47a
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t .1a
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t 0.35a
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t 1e-10a
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t +32a
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t +17E-1a
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t 17e+2a
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t -47e
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t .1e
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t 0.35e
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t 1e-10e
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t +32e
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t +17E-1e
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t 17e+2e
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t -47foo
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t .1foo
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t 0.35foo
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t 1e-10foo
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t +32foo
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t +17E-1foo
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t 17e+2foo
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t -47)90
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t .1)90
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t 0.35)90
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t 1e-10)90
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t +32)90
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t +17E-1)90
+[PASS] Test <number> trailing garbage, value: \\r\\n\\t 17e+2)90
+[PASS] Test <number> valid value: \\f-47
+[PASS] Test <number> valid value: \\f.1
+[PASS] Test <number> valid value: \\f0.35
+[PASS] Test <number> valid value: \\f1e-10
+[PASS] Test <number> valid value: \\f+32
+[PASS] Test <number> valid value: \\f+17E-1
+[PASS] Test <number> valid value: \\f17e+2
+[PASS] Test <number> valid value: \\f-47 
+[PASS] Test <number> valid value: \\f.1 
+[PASS] Test <number> valid value: \\f0.35 
+[PASS] Test <number> valid value: \\f1e-10 
+[PASS] Test <number> valid value: \\f+32 
+[PASS] Test <number> valid value: \\f+17E-1 
+[PASS] Test <number> valid value: \\f17e+2 
+[PASS] Test <number> valid value: \\f-47   
+[PASS] Test <number> valid value: \\f.1   
+[PASS] Test <number> valid value: \\f0.35   
+[PASS] Test <number> valid value: \\f1e-10   
+[PASS] Test <number> valid value: \\f+32   
+[PASS] Test <number> valid value: \\f+17E-1   
+[PASS] Test <number> valid value: \\f17e+2   
+[PASS] Test <number> valid value: \\f-47\\r\\n\\t 
+[PASS] Test <number> valid value: \\f.1\\r\\n\\t 
+[PASS] Test <number> valid value: \\f0.35\\r\\n\\t 
+[PASS] Test <number> valid value: \\f1e-10\\r\\n\\t 
+[PASS] Test <number> valid value: \\f+32\\r\\n\\t 
+[PASS] Test <number> valid value: \\f+17E-1\\r\\n\\t 
+[PASS] Test <number> valid value: \\f17e+2\\r\\n\\t 
+[PASS] Test <number> valid value: \\f-47\\f
+[PASS] Test <number> valid value: \\f.1\\f
+[PASS] Test <number> valid value: \\f0.35\\f
+[PASS] Test <number> valid value: \\f1e-10\\f
+[PASS] Test <number> valid value: \\f+32\\f
+[PASS] Test <number> valid value: \\f+17E-1\\f
+[PASS] Test <number> valid value: \\f17e+2\\f
+[PASS] Test <number> trailing garbage, value: \\f-47a
+[PASS] Test <number> trailing garbage, value: \\f.1a
+[PASS] Test <number> trailing garbage, value: \\f0.35a
+[PASS] Test <number> trailing garbage, value: \\f1e-10a
+[PASS] Test <number> trailing garbage, value: \\f+32a
+[PASS] Test <number> trailing garbage, value: \\f+17E-1a
+[PASS] Test <number> trailing garbage, value: \\f17e+2a
+[PASS] Test <number> trailing garbage, value: \\f-47e
+[PASS] Test <number> trailing garbage, value: \\f.1e
+[PASS] Test <number> trailing garbage, value: \\f0.35e
+[PASS] Test <number> trailing garbage, value: \\f1e-10e
+[PASS] Test <number> trailing garbage, value: \\f+32e
+[PASS] Test <number> trailing garbage, value: \\f+17E-1e
+[PASS] Test <number> trailing garbage, value: \\f17e+2e
+[PASS] Test <number> trailing garbage, value: \\f-47foo
+[PASS] Test <number> trailing garbage, value: \\f.1foo
+[PASS] Test <number> trailing garbage, value: \\f0.35foo
+[PASS] Test <number> trailing garbage, value: \\f1e-10foo
+[PASS] Test <number> trailing garbage, value: \\f+32foo
+[PASS] Test <number> trailing garbage, value: \\f+17E-1foo
+[PASS] Test <number> trailing garbage, value: \\f17e+2foo
+[PASS] Test <number> trailing garbage, value: \\f-47)90
+[PASS] Test <number> trailing garbage, value: \\f.1)90
+[PASS] Test <number> trailing garbage, value: \\f0.35)90
+[PASS] Test <number> trailing garbage, value: \\f1e-10)90
+[PASS] Test <number> trailing garbage, value: \\f+32)90
+[PASS] Test <number> trailing garbage, value: \\f+17E-1)90
+[PASS] Test <number> trailing garbage, value: \\f17e+2)90
 [PASS] Test <percentage> valid value: -47%
 [PASS] Test <percentage> valid value: .1%
 [PASS] Test <percentage> valid value: 0.35%
@@ -1443,20 +1443,20 @@
 [PASS] Test <percentage> valid value: +32%   
 [PASS] Test <percentage> valid value: +17E-1%   
 [PASS] Test <percentage> valid value: 17e+2%   
-[PASS] Test <percentage> valid value: -47%\r\n\t 
-[PASS] Test <percentage> valid value: .1%\r\n\t 
-[PASS] Test <percentage> valid value: 0.35%\r\n\t 
-[PASS] Test <percentage> valid value: 1e-10%\r\n\t 
-[PASS] Test <percentage> valid value: +32%\r\n\t 
-[PASS] Test <percentage> valid value: +17E-1%\r\n\t 
-[PASS] Test <percentage> valid value: 17e+2%\r\n\t 
-[PASS] Test <percentage> valid value: -47%\f
-[PASS] Test <percentage> valid value: .1%\f
-[PASS] Test <percentage> valid value: 0.35%\f
-[PASS] Test <percentage> valid value: 1e-10%\f
-[PASS] Test <percentage> valid value: +32%\f
-[PASS] Test <percentage> valid value: +17E-1%\f
-[PASS] Test <percentage> valid value: 17e+2%\f
+[PASS] Test <percentage> valid value: -47%\\r\\n\\t 
+[PASS] Test <percentage> valid value: .1%\\r\\n\\t 
+[PASS] Test <percentage> valid value: 0.35%\\r\\n\\t 
+[PASS] Test <percentage> valid value: 1e-10%\\r\\n\\t 
+[PASS] Test <percentage> valid value: +32%\\r\\n\\t 
+[PASS] Test <percentage> valid value: +17E-1%\\r\\n\\t 
+[PASS] Test <percentage> valid value: 17e+2%\\r\\n\\t 
+[PASS] Test <percentage> valid value: -47%\\f
+[PASS] Test <percentage> valid value: .1%\\f
+[PASS] Test <percentage> valid value: 0.35%\\f
+[PASS] Test <percentage> valid value: 1e-10%\\f
+[PASS] Test <percentage> valid value: +32%\\f
+[PASS] Test <percentage> valid value: +17E-1%\\f
+[PASS] Test <percentage> valid value: 17e+2%\\f
 [PASS] Test <percentage> trailing garbage, value: -47a
 [PASS] Test <percentage> trailing garbage, value: .1a
 [PASS] Test <percentage> trailing garbage, value: 0.35a
@@ -1506,20 +1506,20 @@
 [PASS] Test <percentage> valid value:  +32%   
 [PASS] Test <percentage> valid value:  +17E-1%   
 [PASS] Test <percentage> valid value:  17e+2%   
-[PASS] Test <percentage> valid value:  -47%\r\n\t 
-[PASS] Test <percentage> valid value:  .1%\r\n\t 
-[PASS] Test <percentage> valid value:  0.35%\r\n\t 
-[PASS] Test <percentage> valid value:  1e-10%\r\n\t 
-[PASS] Test <percentage> valid value:  +32%\r\n\t 
-[PASS] Test <percentage> valid value:  +17E-1%\r\n\t 
-[PASS] Test <percentage> valid value:  17e+2%\r\n\t 
-[PASS] Test <percentage> valid value:  -47%\f
-[PASS] Test <percentage> valid value:  .1%\f
-[PASS] Test <percentage> valid value:  0.35%\f
-[PASS] Test <percentage> valid value:  1e-10%\f
-[PASS] Test <percentage> valid value:  +32%\f
-[PASS] Test <percentage> valid value:  +17E-1%\f
-[PASS] Test <percentage> valid value:  17e+2%\f
+[PASS] Test <percentage> valid value:  -47%\\r\\n\\t 
+[PASS] Test <percentage> valid value:  .1%\\r\\n\\t 
+[PASS] Test <percentage> valid value:  0.35%\\r\\n\\t 
+[PASS] Test <percentage> valid value:  1e-10%\\r\\n\\t 
+[PASS] Test <percentage> valid value:  +32%\\r\\n\\t 
+[PASS] Test <percentage> valid value:  +17E-1%\\r\\n\\t 
+[PASS] Test <percentage> valid value:  17e+2%\\r\\n\\t 
+[PASS] Test <percentage> valid value:  -47%\\f
+[PASS] Test <percentage> valid value:  .1%\\f
+[PASS] Test <percentage> valid value:  0.35%\\f
+[PASS] Test <percentage> valid value:  1e-10%\\f
+[PASS] Test <percentage> valid value:  +32%\\f
+[PASS] Test <percentage> valid value:  +17E-1%\\f
+[PASS] Test <percentage> valid value:  17e+2%\\f
 [PASS] Test <percentage> WS invalid value: -47 %
 [PASS] Test <percentage> WS invalid value: .1 %
 [PASS] Test <percentage> WS invalid value: 0.35 %
@@ -1576,20 +1576,20 @@
 [PASS] Test <percentage> valid value:    +32%   
 [PASS] Test <percentage> valid value:    +17E-1%   
 [PASS] Test <percentage> valid value:    17e+2%   
-[PASS] Test <percentage> valid value:    -47%\r\n\t 
-[PASS] Test <percentage> valid value:    .1%\r\n\t 
-[PASS] Test <percentage> valid value:    0.35%\r\n\t 
-[PASS] Test <percentage> valid value:    1e-10%\r\n\t 
-[PASS] Test <percentage> valid value:    +32%\r\n\t 
-[PASS] Test <percentage> valid value:    +17E-1%\r\n\t 
-[PASS] Test <percentage> valid value:    17e+2%\r\n\t 
-[PASS] Test <percentage> valid value:    -47%\f
-[PASS] Test <percentage> valid value:    .1%\f
-[PASS] Test <percentage> valid value:    0.35%\f
-[PASS] Test <percentage> valid value:    1e-10%\f
-[PASS] Test <percentage> valid value:    +32%\f
-[PASS] Test <percentage> valid value:    +17E-1%\f
-[PASS] Test <percentage> valid value:    17e+2%\f
+[PASS] Test <percentage> valid value:    -47%\\r\\n\\t 
+[PASS] Test <percentage> valid value:    .1%\\r\\n\\t 
+[PASS] Test <percentage> valid value:    0.35%\\r\\n\\t 
+[PASS] Test <percentage> valid value:    1e-10%\\r\\n\\t 
+[PASS] Test <percentage> valid value:    +32%\\r\\n\\t 
+[PASS] Test <percentage> valid value:    +17E-1%\\r\\n\\t 
+[PASS] Test <percentage> valid value:    17e+2%\\r\\n\\t 
+[PASS] Test <percentage> valid value:    -47%\\f
+[PASS] Test <percentage> valid value:    .1%\\f
+[PASS] Test <percentage> valid value:    0.35%\\f
+[PASS] Test <percentage> valid value:    1e-10%\\f
+[PASS] Test <percentage> valid value:    +32%\\f
+[PASS] Test <percentage> valid value:    +17E-1%\\f
+[PASS] Test <percentage> valid value:    17e+2%\\f
 [PASS] Test <percentage> WS invalid value: -47   %
 [PASS] Test <percentage> WS invalid value: .1   %
 [PASS] Test <percentage> WS invalid value: 0.35   %
@@ -1625,146 +1625,146 @@
 [PASS] Test <percentage> trailing garbage, value:    +32)90
 [PASS] Test <percentage> trailing garbage, value:    +17E-1)90
 [PASS] Test <percentage> trailing garbage, value:    17e+2)90
-[PASS] Test <percentage> valid value: \r\n\t -47%
-[PASS] Test <percentage> valid value: \r\n\t .1%
-[PASS] Test <percentage> valid value: \r\n\t 0.35%
-[PASS] Test <percentage> valid value: \r\n\t 1e-10%
-[PASS] Test <percentage> valid value: \r\n\t +32%
-[PASS] Test <percentage> valid value: \r\n\t +17E-1%
-[PASS] Test <percentage> valid value: \r\n\t 17e+2%
-[PASS] Test <percentage> valid value: \r\n\t -47% 
-[PASS] Test <percentage> valid value: \r\n\t .1% 
-[PASS] Test <percentage> valid value: \r\n\t 0.35% 
-[PASS] Test <percentage> valid value: \r\n\t 1e-10% 
-[PASS] Test <percentage> valid value: \r\n\t +32% 
-[PASS] Test <percentage> valid value: \r\n\t +17E-1% 
-[PASS] Test <percentage> valid value: \r\n\t 17e+2% 
-[PASS] Test <percentage> valid value: \r\n\t -47%   
-[PASS] Test <percentage> valid value: \r\n\t .1%   
-[PASS] Test <percentage> valid value: \r\n\t 0.35%   
-[PASS] Test <percentage> valid value: \r\n\t 1e-10%   
-[PASS] Test <percentage> valid value: \r\n\t +32%   
-[PASS] Test <percentage> valid value: \r\n\t +17E-1%   
-[PASS] Test <percentage> valid value: \r\n\t 17e+2%   
-[PASS] Test <percentage> valid value: \r\n\t -47%\r\n\t 
-[PASS] Test <percentage> valid value: \r\n\t .1%\r\n\t 
-[PASS] Test <percentage> valid value: \r\n\t 0.35%\r\n\t 
-[PASS] Test <percentage> valid value: \r\n\t 1e-10%\r\n\t 
-[PASS] Test <percentage> valid value: \r\n\t +32%\r\n\t 
-[PASS] Test <percentage> valid value: \r\n\t +17E-1%\r\n\t 
-[PASS] Test <percentage> valid value: \r\n\t 17e+2%\r\n\t 
-[PASS] Test <percentage> valid value: \r\n\t -47%\f
-[PASS] Test <percentage> valid value: \r\n\t .1%\f
-[PASS] Test <percentage> valid value: \r\n\t 0.35%\f
-[PASS] Test <percentage> valid value: \r\n\t 1e-10%\f
-[PASS] Test <percentage> valid value: \r\n\t +32%\f
-[PASS] Test <percentage> valid value: \r\n\t +17E-1%\f
-[PASS] Test <percentage> valid value: \r\n\t 17e+2%\f
-[PASS] Test <percentage> WS invalid value: -47\r\n\t %
-[PASS] Test <percentage> WS invalid value: .1\r\n\t %
-[PASS] Test <percentage> WS invalid value: 0.35\r\n\t %
-[PASS] Test <percentage> WS invalid value: 1e-10\r\n\t %
-[PASS] Test <percentage> WS invalid value: +32\r\n\t %
-[PASS] Test <percentage> WS invalid value: +17E-1\r\n\t %
-[PASS] Test <percentage> WS invalid value: 17e+2\r\n\t %
-[PASS] Test <percentage> trailing garbage, value: \r\n\t -47a
-[PASS] Test <percentage> trailing garbage, value: \r\n\t .1a
-[PASS] Test <percentage> trailing garbage, value: \r\n\t 0.35a
-[PASS] Test <percentage> trailing garbage, value: \r\n\t 1e-10a
-[PASS] Test <percentage> trailing garbage, value: \r\n\t +32a
-[PASS] Test <percentage> trailing garbage, value: \r\n\t +17E-1a
-[PASS] Test <percentage> trailing garbage, value: \r\n\t 17e+2a
-[PASS] Test <percentage> trailing garbage, value: \r\n\t -47e
-[PASS] Test <percentage> trailing garbage, value: \r\n\t .1e
-[PASS] Test <percentage> trailing garbage, value: \r\n\t 0.35e
-[PASS] Test <percentage> trailing garbage, value: \r\n\t 1e-10e
-[PASS] Test <percentage> trailing garbage, value: \r\n\t +32e
-[PASS] Test <percentage> trailing garbage, value: \r\n\t +17E-1e
-[PASS] Test <percentage> trailing garbage, value: \r\n\t 17e+2e
-[PASS] Test <percentage> trailing garbage, value: \r\n\t -47foo
-[PASS] Test <percentage> trailing garbage, value: \r\n\t .1foo
-[PASS] Test <percentage> trailing garbage, value: \r\n\t 0.35foo
-[PASS] Test <percentage> trailing garbage, value: \r\n\t 1e-10foo
-[PASS] Test <percentage> trailing garbage, value: \r\n\t +32foo
-[PASS] Test <percentage> trailing garbage, value: \r\n\t +17E-1foo
-[PASS] Test <percentage> trailing garbage, value: \r\n\t 17e+2foo
-[PASS] Test <percentage> trailing garbage, value: \r\n\t -47)90
-[PASS] Test <percentage> trailing garbage, value: \r\n\t .1)90
-[PASS] Test <percentage> trailing garbage, value: \r\n\t 0.35)90
-[PASS] Test <percentage> trailing garbage, value: \r\n\t 1e-10)90
-[PASS] Test <percentage> trailing garbage, value: \r\n\t +32)90
-[PASS] Test <percentage> trailing garbage, value: \r\n\t +17E-1)90
-[PASS] Test <percentage> trailing garbage, value: \r\n\t 17e+2)90
-[PASS] Test <percentage> valid value: \f-47%
-[PASS] Test <percentage> valid value: \f.1%
-[PASS] Test <percentage> valid value: \f0.35%
-[PASS] Test <percentage> valid value: \f1e-10%
-[PASS] Test <percentage> valid value: \f+32%
-[PASS] Test <percentage> valid value: \f+17E-1%
-[PASS] Test <percentage> valid value: \f17e+2%
-[PASS] Test <percentage> valid value: \f-47% 
-[PASS] Test <percentage> valid value: \f.1% 
-[PASS] Test <percentage> valid value: \f0.35% 
-[PASS] Test <percentage> valid value: \f1e-10% 
-[PASS] Test <percentage> valid value: \f+32% 
-[PASS] Test <percentage> valid value: \f+17E-1% 
-[PASS] Test <percentage> valid value: \f17e+2% 
-[PASS] Test <percentage> valid value: \f-47%   
-[PASS] Test <percentage> valid value: \f.1%   
-[PASS] Test <percentage> valid value: \f0.35%   
-[PASS] Test <percentage> valid value: \f1e-10%   
-[PASS] Test <percentage> valid value: \f+32%   
-[PASS] Test <percentage> valid value: \f+17E-1%   
-[PASS] Test <percentage> valid value: \f17e+2%   
-[PASS] Test <percentage> valid value: \f-47%\r\n\t 
-[PASS] Test <percentage> valid value: \f.1%\r\n\t 
-[PASS] Test <percentage> valid value: \f0.35%\r\n\t 
-[PASS] Test <percentage> valid value: \f1e-10%\r\n\t 
-[PASS] Test <percentage> valid value: \f+32%\r\n\t 
-[PASS] Test <percentage> valid value: \f+17E-1%\r\n\t 
-[PASS] Test <percentage> valid value: \f17e+2%\r\n\t 
-[PASS] Test <percentage> valid value: \f-47%\f
-[PASS] Test <percentage> valid value: \f.1%\f
-[PASS] Test <percentage> valid value: \f0.35%\f
-[PASS] Test <percentage> valid value: \f1e-10%\f
-[PASS] Test <percentage> valid value: \f+32%\f
-[PASS] Test <percentage> valid value: \f+17E-1%\f
-[PASS] Test <percentage> valid value: \f17e+2%\f
-[PASS] Test <percentage> WS invalid value: -47\f%
-[PASS] Test <percentage> WS invalid value: .1\f%
-[PASS] Test <percentage> WS invalid value: 0.35\f%
-[PASS] Test <percentage> WS invalid value: 1e-10\f%
-[PASS] Test <percentage> WS invalid value: +32\f%
-[PASS] Test <percentage> WS invalid value: +17E-1\f%
-[PASS] Test <percentage> WS invalid value: 17e+2\f%
-[PASS] Test <percentage> trailing garbage, value: \f-47a
-[PASS] Test <percentage> trailing garbage, value: \f.1a
-[PASS] Test <percentage> trailing garbage, value: \f0.35a
-[PASS] Test <percentage> trailing garbage, value: \f1e-10a
-[PASS] Test <percentage> trailing garbage, value: \f+32a
-[PASS] Test <percentage> trailing garbage, value: \f+17E-1a
-[PASS] Test <percentage> trailing garbage, value: \f17e+2a
-[PASS] Test <percentage> trailing garbage, value: \f-47e
-[PASS] Test <percentage> trailing garbage, value: \f.1e
-[PASS] Test <percentage> trailing garbage, value: \f0.35e
-[PASS] Test <percentage> trailing garbage, value: \f1e-10e
-[PASS] Test <percentage> trailing garbage, value: \f+32e
-[PASS] Test <percentage> trailing garbage, value: \f+17E-1e
-[PASS] Test <percentage> trailing garbage, value: \f17e+2e
-[PASS] Test <percentage> trailing garbage, value: \f-47foo
-[PASS] Test <percentage> trailing garbage, value: \f.1foo
-[PASS] Test <percentage> trailing garbage, value: \f0.35foo
-[PASS] Test <percentage> trailing garbage, value: \f1e-10foo
-[PASS] Test <percentage> trailing garbage, value: \f+32foo
-[PASS] Test <percentage> trailing garbage, value: \f+17E-1foo
-[PASS] Test <percentage> trailing garbage, value: \f17e+2foo
-[PASS] Test <percentage> trailing garbage, value: \f-47)90
-[PASS] Test <percentage> trailing garbage, value: \f.1)90
-[PASS] Test <percentage> trailing garbage, value: \f0.35)90
-[PASS] Test <percentage> trailing garbage, value: \f1e-10)90
-[PASS] Test <percentage> trailing garbage, value: \f+32)90
-[PASS] Test <percentage> trailing garbage, value: \f+17E-1)90
-[PASS] Test <percentage> trailing garbage, value: \f17e+2)90
+[PASS] Test <percentage> valid value: \\r\\n\\t -47%
+[PASS] Test <percentage> valid value: \\r\\n\\t .1%
+[PASS] Test <percentage> valid value: \\r\\n\\t 0.35%
+[PASS] Test <percentage> valid value: \\r\\n\\t 1e-10%
+[PASS] Test <percentage> valid value: \\r\\n\\t +32%
+[PASS] Test <percentage> valid value: \\r\\n\\t +17E-1%
+[PASS] Test <percentage> valid value: \\r\\n\\t 17e+2%
+[PASS] Test <percentage> valid value: \\r\\n\\t -47% 
+[PASS] Test <percentage> valid value: \\r\\n\\t .1% 
+[PASS] Test <percentage> valid value: \\r\\n\\t 0.35% 
+[PASS] Test <percentage> valid value: \\r\\n\\t 1e-10% 
+[PASS] Test <percentage> valid value: \\r\\n\\t +32% 
+[PASS] Test <percentage> valid value: \\r\\n\\t +17E-1% 
+[PASS] Test <percentage> valid value: \\r\\n\\t 17e+2% 
+[PASS] Test <percentage> valid value: \\r\\n\\t -47%   
+[PASS] Test <percentage> valid value: \\r\\n\\t .1%   
+[PASS] Test <percentage> valid value: \\r\\n\\t 0.35%   
+[PASS] Test <percentage> valid value: \\r\\n\\t 1e-10%   
+[PASS] Test <percentage> valid value: \\r\\n\\t +32%   
+[PASS] Test <percentage> valid value: \\r\\n\\t +17E-1%   
+[PASS] Test <percentage> valid value: \\r\\n\\t 17e+2%   
+[PASS] Test <percentage> valid value: \\r\\n\\t -47%\\r\\n\\t 
+[PASS] Test <percentage> valid value: \\r\\n\\t .1%\\r\\n\\t 
+[PASS] Test <percentage> valid value: \\r\\n\\t 0.35%\\r\\n\\t 
+[PASS] Test <percentage> valid value: \\r\\n\\t 1e-10%\\r\\n\\t 
+[PASS] Test <percentage> valid value: \\r\\n\\t +32%\\r\\n\\t 
+[PASS] Test <percentage> valid value: \\r\\n\\t +17E-1%\\r\\n\\t 
+[PASS] Test <percentage> valid value: \\r\\n\\t 17e+2%\\r\\n\\t 
+[PASS] Test <percentage> valid value: \\r\\n\\t -47%\\f
+[PASS] Test <percentage> valid value: \\r\\n\\t .1%\\f
+[PASS] Test <percentage> valid value: \\r\\n\\t 0.35%\\f
+[PASS] Test <percentage> valid value: \\r\\n\\t 1e-10%\\f
+[PASS] Test <percentage> valid value: \\r\\n\\t +32%\\f
+[PASS] Test <percentage> valid value: \\r\\n\\t +17E-1%\\f
+[PASS] Test <percentage> valid value: \\r\\n\\t 17e+2%\\f
+[PASS] Test <percentage> WS invalid value: -47\\r\\n\\t %
+[PASS] Test <percentage> WS invalid value: .1\\r\\n\\t %
+[PASS] Test <percentage> WS invalid value: 0.35\\r\\n\\t %
+[PASS] Test <percentage> WS invalid value: 1e-10\\r\\n\\t %
+[PASS] Test <percentage> WS invalid value: +32\\r\\n\\t %
+[PASS] Test <percentage> WS invalid value: +17E-1\\r\\n\\t %
+[PASS] Test <percentage> WS invalid value: 17e+2\\r\\n\\t %
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t -47a
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t .1a
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t 0.35a
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t 1e-10a
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t +32a
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t +17E-1a
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t 17e+2a
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t -47e
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t .1e
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t 0.35e
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t 1e-10e
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t +32e
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t +17E-1e
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t 17e+2e
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t -47foo
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t .1foo
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t 0.35foo
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t 1e-10foo
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t +32foo
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t +17E-1foo
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t 17e+2foo
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t -47)90
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t .1)90
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t 0.35)90
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t 1e-10)90
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t +32)90
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t +17E-1)90
+[PASS] Test <percentage> trailing garbage, value: \\r\\n\\t 17e+2)90
+[PASS] Test <percentage> valid value: \\f-47%
+[PASS] Test <percentage> valid value: \\f.1%
+[PASS] Test <percentage> valid value: \\f0.35%
+[PASS] Test <percentage> valid value: \\f1e-10%
+[PASS] Test <percentage> valid value: \\f+32%
+[PASS] Test <percentage> valid value: \\f+17E-1%
+[PASS] Test <percentage> valid value: \\f17e+2%
+[PASS] Test <percentage> valid value: \\f-47% 
+[PASS] Test <percentage> valid value: \\f.1% 
+[PASS] Test <percentage> valid value: \\f0.35% 
+[PASS] Test <percentage> valid value: \\f1e-10% 
+[PASS] Test <percentage> valid value: \\f+32% 
+[PASS] Test <percentage> valid value: \\f+17E-1% 
+[PASS] Test <percentage> valid value: \\f17e+2% 
+[PASS] Test <percentage> valid value: \\f-47%   
+[PASS] Test <percentage> valid value: \\f.1%   
+[PASS] Test <percentage> valid value: \\f0.35%   
+[PASS] Test <percentage> valid value: \\f1e-10%   
+[PASS] Test <percentage> valid value: \\f+32%   
+[PASS] Test <percentage> valid value: \\f+17E-1%   
+[PASS] Test <percentage> valid value: \\f17e+2%   
+[PASS] Test <percentage> valid value: \\f-47%\\r\\n\\t 
+[PASS] Test <percentage> valid value: \\f.1%\\r\\n\\t 
+[PASS] Test <percentage> valid value: \\f0.35%\\r\\n\\t 
+[PASS] Test <percentage> valid value: \\f1e-10%\\r\\n\\t 
+[PASS] Test <percentage> valid value: \\f+32%\\r\\n\\t 
+[PASS] Test <percentage> valid value: \\f+17E-1%\\r\\n\\t 
+[PASS] Test <percentage> valid value: \\f17e+2%\\r\\n\\t 
+[PASS] Test <percentage> valid value: \\f-47%\\f
+[PASS] Test <percentage> valid value: \\f.1%\\f
+[PASS] Test <percentage> valid value: \\f0.35%\\f
+[PASS] Test <percentage> valid value: \\f1e-10%\\f
+[PASS] Test <percentage> valid value: \\f+32%\\f
+[PASS] Test <percentage> valid value: \\f+17E-1%\\f
+[PASS] Test <percentage> valid value: \\f17e+2%\\f
+[PASS] Test <percentage> WS invalid value: -47\\f%
+[PASS] Test <percentage> WS invalid value: .1\\f%
+[PASS] Test <percentage> WS invalid value: 0.35\\f%
+[PASS] Test <percentage> WS invalid value: 1e-10\\f%
+[PASS] Test <percentage> WS invalid value: +32\\f%
+[PASS] Test <percentage> WS invalid value: +17E-1\\f%
+[PASS] Test <percentage> WS invalid value: 17e+2\\f%
+[PASS] Test <percentage> trailing garbage, value: \\f-47a
+[PASS] Test <percentage> trailing garbage, value: \\f.1a
+[PASS] Test <percentage> trailing garbage, value: \\f0.35a
+[PASS] Test <percentage> trailing garbage, value: \\f1e-10a
+[PASS] Test <percentage> trailing garbage, value: \\f+32a
+[PASS] Test <percentage> trailing garbage, value: \\f+17E-1a
+[PASS] Test <percentage> trailing garbage, value: \\f17e+2a
+[PASS] Test <percentage> trailing garbage, value: \\f-47e
+[PASS] Test <percentage> trailing garbage, value: \\f.1e
+[PASS] Test <percentage> trailing garbage, value: \\f0.35e
+[PASS] Test <percentage> trailing garbage, value: \\f1e-10e
+[PASS] Test <percentage> trailing garbage, value: \\f+32e
+[PASS] Test <percentage> trailing garbage, value: \\f+17E-1e
+[PASS] Test <percentage> trailing garbage, value: \\f17e+2e
+[PASS] Test <percentage> trailing garbage, value: \\f-47foo
+[PASS] Test <percentage> trailing garbage, value: \\f.1foo
+[PASS] Test <percentage> trailing garbage, value: \\f0.35foo
+[PASS] Test <percentage> trailing garbage, value: \\f1e-10foo
+[PASS] Test <percentage> trailing garbage, value: \\f+32foo
+[PASS] Test <percentage> trailing garbage, value: \\f+17E-1foo
+[PASS] Test <percentage> trailing garbage, value: \\f17e+2foo
+[PASS] Test <percentage> trailing garbage, value: \\f-47)90
+[PASS] Test <percentage> trailing garbage, value: \\f.1)90
+[PASS] Test <percentage> trailing garbage, value: \\f0.35)90
+[PASS] Test <percentage> trailing garbage, value: \\f1e-10)90
+[PASS] Test <percentage> trailing garbage, value: \\f+32)90
+[PASS] Test <percentage> trailing garbage, value: \\f+17E-1)90
+[PASS] Test <percentage> trailing garbage, value: \\f17e+2)90
 [PASS] Test <number> invalid value: NaN
 [PASS] Test <number> invalid value: Infinity
 [PASS] Test <number> invalid value: -Infinity
@@ -1813,38 +1813,38 @@
 [PASS] Test <number> invalid value: +.   
 [PASS] Test <number> invalid value: .E0   
 [PASS] Test <number> invalid value: e1   
-[PASS] Test <number> invalid value: NaN\r\n\t 
-[PASS] Test <number> invalid value: Infinity\r\n\t 
-[PASS] Test <number> invalid value: -Infinity\r\n\t 
-[PASS] Test <number> invalid value: fnord\r\n\t 
-[PASS] Test <number> invalid value: E\r\n\t 
-[PASS] Test <number> invalid value: e\r\n\t 
-[PASS] Test <number> invalid value: e+\r\n\t 
-[PASS] Test <number> invalid value: E-\r\n\t 
-[PASS] Test <number> invalid value: -\r\n\t 
-[PASS] Test <number> invalid value: +\r\n\t 
-[PASS] Test <number> invalid value: -.\r\n\t 
-[PASS] Test <number> invalid value: .-\r\n\t 
-[PASS] Test <number> invalid value: .\r\n\t 
-[PASS] Test <number> invalid value: +.\r\n\t 
-[PASS] Test <number> invalid value: .E0\r\n\t 
-[PASS] Test <number> invalid value: e1\r\n\t 
-[PASS] Test <number> invalid value: NaN\f
-[PASS] Test <number> invalid value: Infinity\f
-[PASS] Test <number> invalid value: -Infinity\f
-[PASS] Test <number> invalid value: fnord\f
-[PASS] Test <number> invalid value: E\f
-[PASS] Test <number> invalid value: e\f
-[PASS] Test <number> invalid value: e+\f
-[PASS] Test <number> invalid value: E-\f
-[PASS] Test <number> invalid value: -\f
-[PASS] Test <number> invalid value: +\f
-[PASS] Test <number> invalid value: -.\f
-[PASS] Test <number> invalid value: .-\f
-[PASS] Test <number> invalid value: .\f
-[PASS] Test <number> invalid value: +.\f
-[PASS] Test <number> invalid value: .E0\f
-[PASS] Test <number> invalid value: e1\f
+[PASS] Test <number> invalid value: NaN\\r\\n\\t 
+[PASS] Test <number> invalid value: Infinity\\r\\n\\t 
+[PASS] Test <number> invalid value: -Infinity\\r\\n\\t 
+[PASS] Test <number> invalid value: fnord\\r\\n\\t 
+[PASS] Test <number> invalid value: E\\r\\n\\t 
+[PASS] Test <number> invalid value: e\\r\\n\\t 
+[PASS] Test <number> invalid value: e+\\r\\n\\t 
+[PASS] Test <number> invalid value: E-\\r\\n\\t 
+[PASS] Test <number> invalid value: -\\r\\n\\t 
+[PASS] Test <number> invalid value: +\\r\\n\\t 
+[PASS] Test <number> invalid value: -.\\r\\n\\t 
+[PASS] Test <number> invalid value: .-\\r\\n\\t 
+[PASS] Test <number> invalid value: .\\r\\n\\t 
+[PASS] Test <number> invalid value: +.\\r\\n\\t 
+[PASS] Test <number> invalid value: .E0\\r\\n\\t 
+[PASS] Test <number> invalid value: e1\\r\\n\\t 
+[PASS] Test <number> invalid value: NaN\\f
+[PASS] Test <number> invalid value: Infinity\\f
+[PASS] Test <number> invalid value: -Infinity\\f
+[PASS] Test <number> invalid value: fnord\\f
+[PASS] Test <number> invalid value: E\\f
+[PASS] Test <number> invalid value: e\\f
+[PASS] Test <number> invalid value: e+\\f
+[PASS] Test <number> invalid value: E-\\f
+[PASS] Test <number> invalid value: -\\f
+[PASS] Test <number> invalid value: +\\f
+[PASS] Test <number> invalid value: -.\\f
+[PASS] Test <number> invalid value: .-\\f
+[PASS] Test <number> invalid value: .\\f
+[PASS] Test <number> invalid value: +.\\f
+[PASS] Test <number> invalid value: .E0\\f
+[PASS] Test <number> invalid value: e1\\f
 [PASS] Test <number> invalid value:  NaN
 [PASS] Test <number> invalid value:  Infinity
 [PASS] Test <number> invalid value:  -Infinity
@@ -1893,38 +1893,38 @@
 [PASS] Test <number> invalid value:  +.   
 [PASS] Test <number> invalid value:  .E0   
 [PASS] Test <number> invalid value:  e1   
-[PASS] Test <number> invalid value:  NaN\r\n\t 
-[PASS] Test <number> invalid value:  Infinity\r\n\t 
-[PASS] Test <number> invalid value:  -Infinity\r\n\t 
-[PASS] Test <number> invalid value:  fnord\r\n\t 
-[PASS] Test <number> invalid value:  E\r\n\t 
-[PASS] Test <number> invalid value:  e\r\n\t 
-[PASS] Test <number> invalid value:  e+\r\n\t 
-[PASS] Test <number> invalid value:  E-\r\n\t 
-[PASS] Test <number> invalid value:  -\r\n\t 
-[PASS] Test <number> invalid value:  +\r\n\t 
-[PASS] Test <number> invalid value:  -.\r\n\t 
-[PASS] Test <number> invalid value:  .-\r\n\t 
-[PASS] Test <number> invalid value:  .\r\n\t 
-[PASS] Test <number> invalid value:  +.\r\n\t 
-[PASS] Test <number> invalid value:  .E0\r\n\t 
-[PASS] Test <number> invalid value:  e1\r\n\t 
-[PASS] Test <number> invalid value:  NaN\f
-[PASS] Test <number> invalid value:  Infinity\f
-[PASS] Test <number> invalid value:  -Infinity\f
-[PASS] Test <number> invalid value:  fnord\f
-[PASS] Test <number> invalid value:  E\f
-[PASS] Test <number> invalid value:  e\f
-[PASS] Test <number> invalid value:  e+\f
-[PASS] Test <number> invalid value:  E-\f
-[PASS] Test <number> invalid value:  -\f
-[PASS] Test <number> invalid value:  +\f
-[PASS] Test <number> invalid value:  -.\f
-[PASS] Test <number> invalid value:  .-\f
-[PASS] Test <number> invalid value:  .\f
-[PASS] Test <number> invalid value:  +.\f
-[PASS] Test <number> invalid value:  .E0\f
-[PASS] Test <number> invalid value:  e1\f
+[PASS] Test <number> invalid value:  NaN\\r\\n\\t 
+[PASS] Test <number> invalid value:  Infinity\\r\\n\\t 
+[PASS] Test <number> invalid value:  -Infinity\\r\\n\\t 
+[PASS] Test <number> invalid value:  fnord\\r\\n\\t 
+[PASS] Test <number> invalid value:  E\\r\\n\\t 
+[PASS] Test <number> invalid value:  e\\r\\n\\t 
+[PASS] Test <number> invalid value:  e+\\r\\n\\t 
+[PASS] Test <number> invalid value:  E-\\r\\n\\t 
+[PASS] Test <number> invalid value:  -\\r\\n\\t 
+[PASS] Test <number> invalid value:  +\\r\\n\\t 
+[PASS] Test <number> invalid value:  -.\\r\\n\\t 
+[PASS] Test <number> invalid value:  .-\\r\\n\\t 
+[PASS] Test <number> invalid value:  .\\r\\n\\t 
+[PASS] Test <number> invalid value:  +.\\r\\n\\t 
+[PASS] Test <number> invalid value:  .E0\\r\\n\\t 
+[PASS] Test <number> invalid value:  e1\\r\\n\\t 
+[PASS] Test <number> invalid value:  NaN\\f
+[PASS] Test <number> invalid value:  Infinity\\f
+[PASS] Test <number> invalid value:  -Infinity\\f
+[PASS] Test <number> invalid value:  fnord\\f
+[PASS] Test <number> invalid value:  E\\f
+[PASS] Test <number> invalid value:  e\\f
+[PASS] Test <number> invalid value:  e+\\f
+[PASS] Test <number> invalid value:  E-\\f
+[PASS] Test <number> invalid value:  -\\f
+[PASS] Test <number> invalid value:  +\\f
+[PASS] Test <number> invalid value:  -.\\f
+[PASS] Test <number> invalid value:  .-\\f
+[PASS] Test <number> invalid value:  .\\f
+[PASS] Test <number> invalid value:  +.\\f
+[PASS] Test <number> invalid value:  .E0\\f
+[PASS] Test <number> invalid value:  e1\\f
 [PASS] Test <number> invalid value:    NaN
 [PASS] Test <number> invalid value:    Infinity
 [PASS] Test <number> invalid value:    -Infinity
@@ -1973,198 +1973,198 @@
 [PASS] Test <number> invalid value:    +.   
 [PASS] Test <number> invalid value:    .E0   
 [PASS] Test <number> invalid value:    e1   
-[PASS] Test <number> invalid value:    NaN\r\n\t 
-[PASS] Test <number> invalid value:    Infinity\r\n\t 
-[PASS] Test <number> invalid value:    -Infinity\r\n\t 
-[PASS] Test <number> invalid value:    fnord\r\n\t 
-[PASS] Test <number> invalid value:    E\r\n\t 
-[PASS] Test <number> invalid value:    e\r\n\t 
-[PASS] Test <number> invalid value:    e+\r\n\t 
-[PASS] Test <number> invalid value:    E-\r\n\t 
-[PASS] Test <number> invalid value:    -\r\n\t 
-[PASS] Test <number> invalid value:    +\r\n\t 
-[PASS] Test <number> invalid value:    -.\r\n\t 
-[PASS] Test <number> invalid value:    .-\r\n\t 
-[PASS] Test <number> invalid value:    .\r\n\t 
-[PASS] Test <number> invalid value:    +.\r\n\t 
-[PASS] Test <number> invalid value:    .E0\r\n\t 
-[PASS] Test <number> invalid value:    e1\r\n\t 
-[PASS] Test <number> invalid value:    NaN\f
-[PASS] Test <number> invalid value:    Infinity\f
-[PASS] Test <number> invalid value:    -Infinity\f
-[PASS] Test <number> invalid value:    fnord\f
-[PASS] Test <number> invalid value:    E\f
-[PASS] Test <number> invalid value:    e\f
-[PASS] Test <number> invalid value:    e+\f
-[PASS] Test <number> invalid value:    E-\f
-[PASS] Test <number> invalid value:    -\f
-[PASS] Test <number> invalid value:    +\f
-[PASS] Test <number> invalid value:    -.\f
-[PASS] Test <number> invalid value:    .-\f
-[PASS] Test <number> invalid value:    .\f
-[PASS] Test <number> invalid value:    +.\f
-[PASS] Test <number> invalid value:    .E0\f
-[PASS] Test <number> invalid value:    e1\f
-[PASS] Test <number> invalid value: \r\n\t NaN
-[PASS] Test <number> invalid value: \r\n\t Infinity
-[PASS] Test <number> invalid value: \r\n\t -Infinity
-[PASS] Test <number> invalid value: \r\n\t fnord
-[PASS] Test <number> invalid value: \r\n\t E
-[PASS] Test <number> invalid value: \r\n\t e
-[PASS] Test <number> invalid value: \r\n\t e+
-[PASS] Test <number> invalid value: \r\n\t E-
-[PASS] Test <number> invalid value: \r\n\t -
-[PASS] Test <number> invalid value: \r\n\t +
-[PASS] Test <number> invalid value: \r\n\t -.
-[PASS] Test <number> invalid value: \r\n\t .-
-[PASS] Test <number> invalid value: \r\n\t .
-[PASS] Test <number> invalid value: \r\n\t +.
-[PASS] Test <number> invalid value: \r\n\t .E0
-[PASS] Test <number> invalid value: \r\n\t e1
-[PASS] Test <number> invalid value: \r\n\t NaN 
-[PASS] Test <number> invalid value: \r\n\t Infinity 
-[PASS] Test <number> invalid value: \r\n\t -Infinity 
-[PASS] Test <number> invalid value: \r\n\t fnord 
-[PASS] Test <number> invalid value: \r\n\t E 
-[PASS] Test <number> invalid value: \r\n\t e 
-[PASS] Test <number> invalid value: \r\n\t e+ 
-[PASS] Test <number> invalid value: \r\n\t E- 
-[PASS] Test <number> invalid value: \r\n\t - 
-[PASS] Test <number> invalid value: \r\n\t + 
-[PASS] Test <number> invalid value: \r\n\t -. 
-[PASS] Test <number> invalid value: \r\n\t .- 
-[PASS] Test <number> invalid value: \r\n\t . 
-[PASS] Test <number> invalid value: \r\n\t +. 
-[PASS] Test <number> invalid value: \r\n\t .E0 
-[PASS] Test <number> invalid value: \r\n\t e1 
-[PASS] Test <number> invalid value: \r\n\t NaN   
-[PASS] Test <number> invalid value: \r\n\t Infinity   
-[PASS] Test <number> invalid value: \r\n\t -Infinity   
-[PASS] Test <number> invalid value: \r\n\t fnord   
-[PASS] Test <number> invalid value: \r\n\t E   
-[PASS] Test <number> invalid value: \r\n\t e   
-[PASS] Test <number> invalid value: \r\n\t e+   
-[PASS] Test <number> invalid value: \r\n\t E-   
-[PASS] Test <number> invalid value: \r\n\t -   
-[PASS] Test <number> invalid value: \r\n\t +   
-[PASS] Test <number> invalid value: \r\n\t -.   
-[PASS] Test <number> invalid value: \r\n\t .-   
-[PASS] Test <number> invalid value: \r\n\t .   
-[PASS] Test <number> invalid value: \r\n\t +.   
-[PASS] Test <number> invalid value: \r\n\t .E0   
-[PASS] Test <number> invalid value: \r\n\t e1   
-[PASS] Test <number> invalid value: \r\n\t NaN\r\n\t 
-[PASS] Test <number> invalid value: \r\n\t Infinity\r\n\t 
-[PASS] Test <number> invalid value: \r\n\t -Infinity\r\n\t 
-[PASS] Test <number> invalid value: \r\n\t fnord\r\n\t 
-[PASS] Test <number> invalid value: \r\n\t E\r\n\t 
-[PASS] Test <number> invalid value: \r\n\t e\r\n\t 
-[PASS] Test <number> invalid value: \r\n\t e+\r\n\t 
-[PASS] Test <number> invalid value: \r\n\t E-\r\n\t 
-[PASS] Test <number> invalid value: \r\n\t -\r\n\t 
-[PASS] Test <number> invalid value: \r\n\t +\r\n\t 
-[PASS] Test <number> invalid value: \r\n\t -.\r\n\t 
-[PASS] Test <number> invalid value: \r\n\t .-\r\n\t 
-[PASS] Test <number> invalid value: \r\n\t .\r\n\t 
-[PASS] Test <number> invalid value: \r\n\t +.\r\n\t 
-[PASS] Test <number> invalid value: \r\n\t .E0\r\n\t 
-[PASS] Test <number> invalid value: \r\n\t e1\r\n\t 
-[PASS] Test <number> invalid value: \r\n\t NaN\f
-[PASS] Test <number> invalid value: \r\n\t Infinity\f
-[PASS] Test <number> invalid value: \r\n\t -Infinity\f
-[PASS] Test <number> invalid value: \r\n\t fnord\f
-[PASS] Test <number> invalid value: \r\n\t E\f
-[PASS] Test <number> invalid value: \r\n\t e\f
-[PASS] Test <number> invalid value: \r\n\t e+\f
-[PASS] Test <number> invalid value: \r\n\t E-\f
-[PASS] Test <number> invalid value: \r\n\t -\f
-[PASS] Test <number> invalid value: \r\n\t +\f
-[PASS] Test <number> invalid value: \r\n\t -.\f
-[PASS] Test <number> invalid value: \r\n\t .-\f
-[PASS] Test <number> invalid value: \r\n\t .\f
-[PASS] Test <number> invalid value: \r\n\t +.\f
-[PASS] Test <number> invalid value: \r\n\t .E0\f
-[PASS] Test <number> invalid value: \r\n\t e1\f
-[PASS] Test <number> invalid value: \fNaN
-[PASS] Test <number> invalid value: \fInfinity
-[PASS] Test <number> invalid value: \f-Infinity
-[PASS] Test <number> invalid value: \ffnord
-[PASS] Test <number> invalid value: \fE
-[PASS] Test <number> invalid value: \fe
-[PASS] Test <number> invalid value: \fe+
-[PASS] Test <number> invalid value: \fE-
-[PASS] Test <number> invalid value: \f-
-[PASS] Test <number> invalid value: \f+
-[PASS] Test <number> invalid value: \f-.
-[PASS] Test <number> invalid value: \f.-
-[PASS] Test <number> invalid value: \f.
-[PASS] Test <number> invalid value: \f+.
-[PASS] Test <number> invalid value: \f.E0
-[PASS] Test <number> invalid value: \fe1
-[PASS] Test <number> invalid value: \fNaN 
-[PASS] Test <number> invalid value: \fInfinity 
-[PASS] Test <number> invalid value: \f-Infinity 
-[PASS] Test <number> invalid value: \ffnord 
-[PASS] Test <number> invalid value: \fE 
-[PASS] Test <number> invalid value: \fe 
-[PASS] Test <number> invalid value: \fe+ 
-[PASS] Test <number> invalid value: \fE- 
-[PASS] Test <number> invalid value: \f- 
-[PASS] Test <number> invalid value: \f+ 
-[PASS] Test <number> invalid value: \f-. 
-[PASS] Test <number> invalid value: \f.- 
-[PASS] Test <number> invalid value: \f. 
-[PASS] Test <number> invalid value: \f+. 
-[PASS] Test <number> invalid value: \f.E0 
-[PASS] Test <number> invalid value: \fe1 
-[PASS] Test <number> invalid value: \fNaN   
-[PASS] Test <number> invalid value: \fInfinity   
-[PASS] Test <number> invalid value: \f-Infinity   
-[PASS] Test <number> invalid value: \ffnord   
-[PASS] Test <number> invalid value: \fE   
-[PASS] Test <number> invalid value: \fe   
-[PASS] Test <number> invalid value: \fe+   
-[PASS] Test <number> invalid value: \fE-   
-[PASS] Test <number> invalid value: \f-   
-[PASS] Test <number> invalid value: \f+   
-[PASS] Test <number> invalid value: \f-.   
-[PASS] Test <number> invalid value: \f.-   
-[PASS] Test <number> invalid value: \f.   
-[PASS] Test <number> invalid value: \f+.   
-[PASS] Test <number> invalid value: \f.E0   
-[PASS] Test <number> invalid value: \fe1   
-[PASS] Test <number> invalid value: \fNaN\r\n\t 
-[PASS] Test <number> invalid value: \fInfinity\r\n\t 
-[PASS] Test <number> invalid value: \f-Infinity\r\n\t 
-[PASS] Test <number> invalid value: \ffnord\r\n\t 
-[PASS] Test <number> invalid value: \fE\r\n\t 
-[PASS] Test <number> invalid value: \fe\r\n\t 
-[PASS] Test <number> invalid value: \fe+\r\n\t 
-[PASS] Test <number> invalid value: \fE-\r\n\t 
-[PASS] Test <number> invalid value: \f-\r\n\t 
-[PASS] Test <number> invalid value: \f+\r\n\t 
-[PASS] Test <number> invalid value: \f-.\r\n\t 
-[PASS] Test <number> invalid value: \f.-\r\n\t 
-[PASS] Test <number> invalid value: \f.\r\n\t 
-[PASS] Test <number> invalid value: \f+.\r\n\t 
-[PASS] Test <number> invalid value: \f.E0\r\n\t 
-[PASS] Test <number> invalid value: \fe1\r\n\t 
-[PASS] Test <number> invalid value: \fNaN\f
-[PASS] Test <number> invalid value: \fInfinity\f
-[PASS] Test <number> invalid value: \f-Infinity\f
-[PASS] Test <number> invalid value: \ffnord\f
-[PASS] Test <number> invalid value: \fE\f
-[PASS] Test <number> invalid value: \fe\f
-[PASS] Test <number> invalid value: \fe+\f
-[PASS] Test <number> invalid value: \fE-\f
-[PASS] Test <number> invalid value: \f-\f
-[PASS] Test <number> invalid value: \f+\f
-[PASS] Test <number> invalid value: \f-.\f
-[PASS] Test <number> invalid value: \f.-\f
-[PASS] Test <number> invalid value: \f.\f
-[PASS] Test <number> invalid value: \f+.\f
-[PASS] Test <number> invalid value: \f.E0\f
-[PASS] Test <number> invalid value: \fe1\f
+[PASS] Test <number> invalid value:    NaN\\r\\n\\t 
+[PASS] Test <number> invalid value:    Infinity\\r\\n\\t 
+[PASS] Test <number> invalid value:    -Infinity\\r\\n\\t 
+[PASS] Test <number> invalid value:    fnord\\r\\n\\t 
+[PASS] Test <number> invalid value:    E\\r\\n\\t 
+[PASS] Test <number> invalid value:    e\\r\\n\\t 
+[PASS] Test <number> invalid value:    e+\\r\\n\\t 
+[PASS] Test <number> invalid value:    E-\\r\\n\\t 
+[PASS] Test <number> invalid value:    -\\r\\n\\t 
+[PASS] Test <number> invalid value:    +\\r\\n\\t 
+[PASS] Test <number> invalid value:    -.\\r\\n\\t 
+[PASS] Test <number> invalid value:    .-\\r\\n\\t 
+[PASS] Test <number> invalid value:    .\\r\\n\\t 
+[PASS] Test <number> invalid value:    +.\\r\\n\\t 
+[PASS] Test <number> invalid value:    .E0\\r\\n\\t 
+[PASS] Test <number> invalid value:    e1\\r\\n\\t 
+[PASS] Test <number> invalid value:    NaN\\f
+[PASS] Test <number> invalid value:    Infinity\\f
+[PASS] Test <number> invalid value:    -Infinity\\f
+[PASS] Test <number> invalid value:    fnord\\f
+[PASS] Test <number> invalid value:    E\\f
+[PASS] Test <number> invalid value:    e\\f
+[PASS] Test <number> invalid value:    e+\\f
+[PASS] Test <number> invalid value:    E-\\f
+[PASS] Test <number> invalid value:    -\\f
+[PASS] Test <number> invalid value:    +\\f
+[PASS] Test <number> invalid value:    -.\\f
+[PASS] Test <number> invalid value:    .-\\f
+[PASS] Test <number> invalid value:    .\\f
+[PASS] Test <number> invalid value:    +.\\f
+[PASS] Test <number> invalid value:    .E0\\f
+[PASS] Test <number> invalid value:    e1\\f
+[PASS] Test <number> invalid value: \\r\\n\\t NaN
+[PASS] Test <number> invalid value: \\r\\n\\t Infinity
+[PASS] Test <number> invalid value: \\r\\n\\t -Infinity
+[PASS] Test <number> invalid value: \\r\\n\\t fnord
+[PASS] Test <number> invalid value: \\r\\n\\t E
+[PASS] Test <number> invalid value: \\r\\n\\t e
+[PASS] Test <number> invalid value: \\r\\n\\t e+
+[PASS] Test <number> invalid value: \\r\\n\\t E-
+[PASS] Test <number> invalid value: \\r\\n\\t -
+[PASS] Test <number> invalid value: \\r\\n\\t +
+[PASS] Test <number> invalid value: \\r\\n\\t -.
+[PASS] Test <number> invalid value: \\r\\n\\t .-
+[PASS] Test <number> invalid value: \\r\\n\\t .
+[PASS] Test <number> invalid value: \\r\\n\\t +.
+[PASS] Test <number> invalid value: \\r\\n\\t .E0
+[PASS] Test <number> invalid value: \\r\\n\\t e1
+[PASS] Test <number> invalid value: \\r\\n\\t NaN 
+[PASS] Test <number> invalid value: \\r\\n\\t Infinity 
+[PASS] Test <number> invalid value: \\r\\n\\t -Infinity 
+[PASS] Test <number> invalid value: \\r\\n\\t fnord 
+[PASS] Test <number> invalid value: \\r\\n\\t E 
+[PASS] Test <number> invalid value: \\r\\n\\t e 
+[PASS] Test <number> invalid value: \\r\\n\\t e+ 
+[PASS] Test <number> invalid value: \\r\\n\\t E- 
+[PASS] Test <number> invalid value: \\r\\n\\t - 
+[PASS] Test <number> invalid value: \\r\\n\\t + 
+[PASS] Test <number> invalid value: \\r\\n\\t -. 
+[PASS] Test <number> invalid value: \\r\\n\\t .- 
+[PASS] Test <number> invalid value: \\r\\n\\t . 
+[PASS] Test <number> invalid value: \\r\\n\\t +. 
+[PASS] Test <number> invalid value: \\r\\n\\t .E0 
+[PASS] Test <number> invalid value: \\r\\n\\t e1 
+[PASS] Test <number> invalid value: \\r\\n\\t NaN   
+[PASS] Test <number> invalid value: \\r\\n\\t Infinity   
+[PASS] Test <number> invalid value: \\r\\n\\t -Infinity   
+[PASS] Test <number> invalid value: \\r\\n\\t fnord   
+[PASS] Test <number> invalid value: \\r\\n\\t E   
+[PASS] Test <number> invalid value: \\r\\n\\t e   
+[PASS] Test <number> invalid value: \\r\\n\\t e+   
+[PASS] Test <number> invalid value: \\r\\n\\t E-   
+[PASS] Test <number> invalid value: \\r\\n\\t -   
+[PASS] Test <number> invalid value: \\r\\n\\t +   
+[PASS] Test <number> invalid value: \\r\\n\\t -.   
+[PASS] Test <number> invalid value: \\r\\n\\t .-   
+[PASS] Test <number> invalid value: \\r\\n\\t .   
+[PASS] Test <number> invalid value: \\r\\n\\t +.   
+[PASS] Test <number> invalid value: \\r\\n\\t .E0   
+[PASS] Test <number> invalid value: \\r\\n\\t e1   
+[PASS] Test <number> invalid value: \\r\\n\\t NaN\\r\\n\\t 
+[PASS] Test <number> invalid value: \\r\\n\\t Infinity\\r\\n\\t 
+[PASS] Test <number> invalid value: \\r\\n\\t -Infinity\\r\\n\\t 
+[PASS] Test <number> invalid value: \\r\\n\\t fnord\\r\\n\\t 
+[PASS] Test <number> invalid value: \\r\\n\\t E\\r\\n\\t 
+[PASS] Test <number> invalid value: \\r\\n\\t e\\r\\n\\t 
+[PASS] Test <number> invalid value: \\r\\n\\t e+\\r\\n\\t 
+[PASS] Test <number> invalid value: \\r\\n\\t E-\\r\\n\\t 
+[PASS] Test <number> invalid value: \\r\\n\\t -\\r\\n\\t 
+[PASS] Test <number> invalid value: \\r\\n\\t +\\r\\n\\t 
+[PASS] Test <number> invalid value: \\r\\n\\t -.\\r\\n\\t 
+[PASS] Test <number> invalid value: \\r\\n\\t .-\\r\\n\\t 
+[PASS] Test <number> invalid value: \\r\\n\\t .\\r\\n\\t 
+[PASS] Test <number> invalid value: \\r\\n\\t +.\\r\\n\\t 
+[PASS] Test <number> invalid value: \\r\\n\\t .E0\\r\\n\\t 
+[PASS] Test <number> invalid value: \\r\\n\\t e1\\r\\n\\t 
+[PASS] Test <number> invalid value: \\r\\n\\t NaN\\f
+[PASS] Test <number> invalid value: \\r\\n\\t Infinity\\f
+[PASS] Test <number> invalid value: \\r\\n\\t -Infinity\\f
+[PASS] Test <number> invalid value: \\r\\n\\t fnord\\f
+[PASS] Test <number> invalid value: \\r\\n\\t E\\f
+[PASS] Test <number> invalid value: \\r\\n\\t e\\f
+[PASS] Test <number> invalid value: \\r\\n\\t e+\\f
+[PASS] Test <number> invalid value: \\r\\n\\t E-\\f
+[PASS] Test <number> invalid value: \\r\\n\\t -\\f
+[PASS] Test <number> invalid value: \\r\\n\\t +\\f
+[PASS] Test <number> invalid value: \\r\\n\\t -.\\f
+[PASS] Test <number> invalid value: \\r\\n\\t .-\\f
+[PASS] Test <number> invalid value: \\r\\n\\t .\\f
+[PASS] Test <number> invalid value: \\r\\n\\t +.\\f
+[PASS] Test <number> invalid value: \\r\\n\\t .E0\\f
+[PASS] Test <number> invalid value: \\r\\n\\t e1\\f
+[PASS] Test <number> invalid value: \\fNaN
+[PASS] Test <number> invalid value: \\fInfinity
+[PASS] Test <number> invalid value: \\f-Infinity
+[PASS] Test <number> invalid value: \\ffnord
+[PASS] Test <number> invalid value: \\fE
+[PASS] Test <number> invalid value: \\fe
+[PASS] Test <number> invalid value: \\fe+
+[PASS] Test <number> invalid value: \\fE-
+[PASS] Test <number> invalid value: \\f-
+[PASS] Test <number> invalid value: \\f+
+[PASS] Test <number> invalid value: \\f-.
+[PASS] Test <number> invalid value: \\f.-
+[PASS] Test <number> invalid value: \\f.
+[PASS] Test <number> invalid value: \\f+.
+[PASS] Test <number> invalid value: \\f.E0
+[PASS] Test <number> invalid value: \\fe1
+[PASS] Test <number> invalid value: \\fNaN 
+[PASS] Test <number> invalid value: \\fInfinity 
+[PASS] Test <number> invalid value: \\f-Infinity 
+[PASS] Test <number> invalid value: \\ffnord 
+[PASS] Test <number> invalid value: \\fE 
+[PASS] Test <number> invalid value: \\fe 
+[PASS] Test <number> invalid value: \\fe+ 
+[PASS] Test <number> invalid value: \\fE- 
+[PASS] Test <number> invalid value: \\f- 
+[PASS] Test <number> invalid value: \\f+ 
+[PASS] Test <number> invalid value: \\f-. 
+[PASS] Test <number> invalid value: \\f.- 
+[PASS] Test <number> invalid value: \\f. 
+[PASS] Test <number> invalid value: \\f+. 
+[PASS] Test <number> invalid value: \\f.E0 
+[PASS] Test <number> invalid value: \\fe1 
+[PASS] Test <number> invalid value: \\fNaN   
+[PASS] Test <number> invalid value: \\fInfinity   
+[PASS] Test <number> invalid value: \\f-Infinity   
+[PASS] Test <number> invalid value: \\ffnord   
+[PASS] Test <number> invalid value: \\fE   
+[PASS] Test <number> invalid value: \\fe   
+[PASS] Test <number> invalid value: \\fe+   
+[PASS] Test <number> invalid value: \\fE-   
+[PASS] Test <number> invalid value: \\f-   
+[PASS] Test <number> invalid value: \\f+   
+[PASS] Test <number> invalid value: \\f-.   
+[PASS] Test <number> invalid value: \\f.-   
+[PASS] Test <number> invalid value: \\f.   
+[PASS] Test <number> invalid value: \\f+.   
+[PASS] Test <number> invalid value: \\f.E0   
+[PASS] Test <number> invalid value: \\fe1   
+[PASS] Test <number> invalid value: \\fNaN\\r\\n\\t 
+[PASS] Test <number> invalid value: \\fInfinity\\r\\n\\t 
+[PASS] Test <number> invalid value: \\f-Infinity\\r\\n\\t 
+[PASS] Test <number> invalid value: \\ffnord\\r\\n\\t 
+[PASS] Test <number> invalid value: \\fE\\r\\n\\t 
+[PASS] Test <number> invalid value: \\fe\\r\\n\\t 
+[PASS] Test <number> invalid value: \\fe+\\r\\n\\t 
+[PASS] Test <number> invalid value: \\fE-\\r\\n\\t 
+[PASS] Test <number> invalid value: \\f-\\r\\n\\t 
+[PASS] Test <number> invalid value: \\f+\\r\\n\\t 
+[PASS] Test <number> invalid value: \\f-.\\r\\n\\t 
+[PASS] Test <number> invalid value: \\f.-\\r\\n\\t 
+[PASS] Test <number> invalid value: \\f.\\r\\n\\t 
+[PASS] Test <number> invalid value: \\f+.\\r\\n\\t 
+[PASS] Test <number> invalid value: \\f.E0\\r\\n\\t 
+[PASS] Test <number> invalid value: \\fe1\\r\\n\\t 
+[PASS] Test <number> invalid value: \\fNaN\\f
+[PASS] Test <number> invalid value: \\fInfinity\\f
+[PASS] Test <number> invalid value: \\f-Infinity\\f
+[PASS] Test <number> invalid value: \\ffnord\\f
+[PASS] Test <number> invalid value: \\fE\\f
+[PASS] Test <number> invalid value: \\fe\\f
+[PASS] Test <number> invalid value: \\fe+\\f
+[PASS] Test <number> invalid value: \\fE-\\f
+[PASS] Test <number> invalid value: \\f-\\f
+[PASS] Test <number> invalid value: \\f+\\f
+[PASS] Test <number> invalid value: \\f-.\\f
+[PASS] Test <number> invalid value: \\f.-\\f
+[PASS] Test <number> invalid value: \\f.\\f
+[PASS] Test <number> invalid value: \\f+.\\f
+[PASS] Test <number> invalid value: \\f.E0\\f
+[PASS] Test <number> invalid value: \\fe1\\f
 [PASS] Test <percentage> invalid value: NaN%
 [PASS] Test <percentage> invalid value: Infinity%
 [PASS] Test <percentage> invalid value: -Infinity%
@@ -2213,38 +2213,38 @@
 [PASS] Test <percentage> invalid value: +.%   
 [PASS] Test <percentage> invalid value: .E0%   
 [PASS] Test <percentage> invalid value: e1%   
-[PASS] Test <percentage> invalid value: NaN%\r\n\t 
-[PASS] Test <percentage> invalid value: Infinity%\r\n\t 
-[PASS] Test <percentage> invalid value: -Infinity%\r\n\t 
-[PASS] Test <percentage> invalid value: fnord%\r\n\t 
-[PASS] Test <percentage> invalid value: E%\r\n\t 
-[PASS] Test <percentage> invalid value: e%\r\n\t 
-[PASS] Test <percentage> invalid value: e+%\r\n\t 
-[PASS] Test <percentage> invalid value: E-%\r\n\t 
-[PASS] Test <percentage> invalid value: -%\r\n\t 
-[PASS] Test <percentage> invalid value: +%\r\n\t 
-[PASS] Test <percentage> invalid value: -.%\r\n\t 
-[PASS] Test <percentage> invalid value: .-%\r\n\t 
-[PASS] Test <percentage> invalid value: .%\r\n\t 
-[PASS] Test <percentage> invalid value: +.%\r\n\t 
-[PASS] Test <percentage> invalid value: .E0%\r\n\t 
-[PASS] Test <percentage> invalid value: e1%\r\n\t 
-[PASS] Test <percentage> invalid value: NaN%\f
-[PASS] Test <percentage> invalid value: Infinity%\f
-[PASS] Test <percentage> invalid value: -Infinity%\f
-[PASS] Test <percentage> invalid value: fnord%\f
-[PASS] Test <percentage> invalid value: E%\f
-[PASS] Test <percentage> invalid value: e%\f
-[PASS] Test <percentage> invalid value: e+%\f
-[PASS] Test <percentage> invalid value: E-%\f
-[PASS] Test <percentage> invalid value: -%\f
-[PASS] Test <percentage> invalid value: +%\f
-[PASS] Test <percentage> invalid value: -.%\f
-[PASS] Test <percentage> invalid value: .-%\f
-[PASS] Test <percentage> invalid value: .%\f
-[PASS] Test <percentage> invalid value: +.%\f
-[PASS] Test <percentage> invalid value: .E0%\f
-[PASS] Test <percentage> invalid value: e1%\f
+[PASS] Test <percentage> invalid value: NaN%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: Infinity%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: -Infinity%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: fnord%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: E%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: e%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: e+%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: E-%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: -%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: +%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: -.%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: .-%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: .%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: +.%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: .E0%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: e1%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: NaN%\\f
+[PASS] Test <percentage> invalid value: Infinity%\\f
+[PASS] Test <percentage> invalid value: -Infinity%\\f
+[PASS] Test <percentage> invalid value: fnord%\\f
+[PASS] Test <percentage> invalid value: E%\\f
+[PASS] Test <percentage> invalid value: e%\\f
+[PASS] Test <percentage> invalid value: e+%\\f
+[PASS] Test <percentage> invalid value: E-%\\f
+[PASS] Test <percentage> invalid value: -%\\f
+[PASS] Test <percentage> invalid value: +%\\f
+[PASS] Test <percentage> invalid value: -.%\\f
+[PASS] Test <percentage> invalid value: .-%\\f
+[PASS] Test <percentage> invalid value: .%\\f
+[PASS] Test <percentage> invalid value: +.%\\f
+[PASS] Test <percentage> invalid value: .E0%\\f
+[PASS] Test <percentage> invalid value: e1%\\f
 [PASS] Test <percentage> invalid value:  NaN%
 [PASS] Test <percentage> invalid value:  Infinity%
 [PASS] Test <percentage> invalid value:  -Infinity%
@@ -2293,38 +2293,38 @@
 [PASS] Test <percentage> invalid value:  +.%   
 [PASS] Test <percentage> invalid value:  .E0%   
 [PASS] Test <percentage> invalid value:  e1%   
-[PASS] Test <percentage> invalid value:  NaN%\r\n\t 
-[PASS] Test <percentage> invalid value:  Infinity%\r\n\t 
-[PASS] Test <percentage> invalid value:  -Infinity%\r\n\t 
-[PASS] Test <percentage> invalid value:  fnord%\r\n\t 
-[PASS] Test <percentage> invalid value:  E%\r\n\t 
-[PASS] Test <percentage> invalid value:  e%\r\n\t 
-[PASS] Test <percentage> invalid value:  e+%\r\n\t 
-[PASS] Test <percentage> invalid value:  E-%\r\n\t 
-[PASS] Test <percentage> invalid value:  -%\r\n\t 
-[PASS] Test <percentage> invalid value:  +%\r\n\t 
-[PASS] Test <percentage> invalid value:  -.%\r\n\t 
-[PASS] Test <percentage> invalid value:  .-%\r\n\t 
-[PASS] Test <percentage> invalid value:  .%\r\n\t 
-[PASS] Test <percentage> invalid value:  +.%\r\n\t 
-[PASS] Test <percentage> invalid value:  .E0%\r\n\t 
-[PASS] Test <percentage> invalid value:  e1%\r\n\t 
-[PASS] Test <percentage> invalid value:  NaN%\f
-[PASS] Test <percentage> invalid value:  Infinity%\f
-[PASS] Test <percentage> invalid value:  -Infinity%\f
-[PASS] Test <percentage> invalid value:  fnord%\f
-[PASS] Test <percentage> invalid value:  E%\f
-[PASS] Test <percentage> invalid value:  e%\f
-[PASS] Test <percentage> invalid value:  e+%\f
-[PASS] Test <percentage> invalid value:  E-%\f
-[PASS] Test <percentage> invalid value:  -%\f
-[PASS] Test <percentage> invalid value:  +%\f
-[PASS] Test <percentage> invalid value:  -.%\f
-[PASS] Test <percentage> invalid value:  .-%\f
-[PASS] Test <percentage> invalid value:  .%\f
-[PASS] Test <percentage> invalid value:  +.%\f
-[PASS] Test <percentage> invalid value:  .E0%\f
-[PASS] Test <percentage> invalid value:  e1%\f
+[PASS] Test <percentage> invalid value:  NaN%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:  Infinity%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:  -Infinity%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:  fnord%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:  E%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:  e%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:  e+%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:  E-%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:  -%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:  +%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:  -.%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:  .-%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:  .%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:  +.%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:  .E0%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:  e1%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:  NaN%\\f
+[PASS] Test <percentage> invalid value:  Infinity%\\f
+[PASS] Test <percentage> invalid value:  -Infinity%\\f
+[PASS] Test <percentage> invalid value:  fnord%\\f
+[PASS] Test <percentage> invalid value:  E%\\f
+[PASS] Test <percentage> invalid value:  e%\\f
+[PASS] Test <percentage> invalid value:  e+%\\f
+[PASS] Test <percentage> invalid value:  E-%\\f
+[PASS] Test <percentage> invalid value:  -%\\f
+[PASS] Test <percentage> invalid value:  +%\\f
+[PASS] Test <percentage> invalid value:  -.%\\f
+[PASS] Test <percentage> invalid value:  .-%\\f
+[PASS] Test <percentage> invalid value:  .%\\f
+[PASS] Test <percentage> invalid value:  +.%\\f
+[PASS] Test <percentage> invalid value:  .E0%\\f
+[PASS] Test <percentage> invalid value:  e1%\\f
 [PASS] Test <percentage> invalid value:    NaN%
 [PASS] Test <percentage> invalid value:    Infinity%
 [PASS] Test <percentage> invalid value:    -Infinity%
@@ -2373,197 +2373,197 @@
 [PASS] Test <percentage> invalid value:    +.%   
 [PASS] Test <percentage> invalid value:    .E0%   
 [PASS] Test <percentage> invalid value:    e1%   
-[PASS] Test <percentage> invalid value:    NaN%\r\n\t 
-[PASS] Test <percentage> invalid value:    Infinity%\r\n\t 
-[PASS] Test <percentage> invalid value:    -Infinity%\r\n\t 
-[PASS] Test <percentage> invalid value:    fnord%\r\n\t 
-[PASS] Test <percentage> invalid value:    E%\r\n\t 
-[PASS] Test <percentage> invalid value:    e%\r\n\t 
-[PASS] Test <percentage> invalid value:    e+%\r\n\t 
-[PASS] Test <percentage> invalid value:    E-%\r\n\t 
-[PASS] Test <percentage> invalid value:    -%\r\n\t 
-[PASS] Test <percentage> invalid value:    +%\r\n\t 
-[PASS] Test <percentage> invalid value:    -.%\r\n\t 
-[PASS] Test <percentage> invalid value:    .-%\r\n\t 
-[PASS] Test <percentage> invalid value:    .%\r\n\t 
-[PASS] Test <percentage> invalid value:    +.%\r\n\t 
-[PASS] Test <percentage> invalid value:    .E0%\r\n\t 
-[PASS] Test <percentage> invalid value:    e1%\r\n\t 
-[PASS] Test <percentage> invalid value:    NaN%\f
-[PASS] Test <percentage> invalid value:    Infinity%\f
-[PASS] Test <percentage> invalid value:    -Infinity%\f
-[PASS] Test <percentage> invalid value:    fnord%\f
-[PASS] Test <percentage> invalid value:    E%\f
-[PASS] Test <percentage> invalid value:    e%\f
-[PASS] Test <percentage> invalid value:    e+%\f
-[PASS] Test <percentage> invalid value:    E-%\f
-[PASS] Test <percentage> invalid value:    -%\f
-[PASS] Test <percentage> invalid value:    +%\f
-[PASS] Test <percentage> invalid value:    -.%\f
-[PASS] Test <percentage> invalid value:    .-%\f
-[PASS] Test <percentage> invalid value:    .%\f
-[PASS] Test <percentage> invalid value:    +.%\f
-[PASS] Test <percentage> invalid value:    .E0%\f
-[PASS] Test <percentage> invalid value:    e1%\f
-[PASS] Test <percentage> invalid value: \r\n\t NaN%
-[PASS] Test <percentage> invalid value: \r\n\t Infinity%
-[PASS] Test <percentage> invalid value: \r\n\t -Infinity%
-[PASS] Test <percentage> invalid value: \r\n\t fnord%
-[PASS] Test <percentage> invalid value: \r\n\t E%
-[PASS] Test <percentage> invalid value: \r\n\t e%
-[PASS] Test <percentage> invalid value: \r\n\t e+%
-[PASS] Test <percentage> invalid value: \r\n\t E-%
-[PASS] Test <percentage> invalid value: \r\n\t -%
-[PASS] Test <percentage> invalid value: \r\n\t +%
-[PASS] Test <percentage> invalid value: \r\n\t -.%
-[PASS] Test <percentage> invalid value: \r\n\t .-%
-[PASS] Test <percentage> invalid value: \r\n\t .%
-[PASS] Test <percentage> invalid value: \r\n\t +.%
-[PASS] Test <percentage> invalid value: \r\n\t .E0%
-[PASS] Test <percentage> invalid value: \r\n\t e1%
-[PASS] Test <percentage> invalid value: \r\n\t NaN% 
-[PASS] Test <percentage> invalid value: \r\n\t Infinity% 
-[PASS] Test <percentage> invalid value: \r\n\t -Infinity% 
-[PASS] Test <percentage> invalid value: \r\n\t fnord% 
-[PASS] Test <percentage> invalid value: \r\n\t E% 
-[PASS] Test <percentage> invalid value: \r\n\t e% 
-[PASS] Test <percentage> invalid value: \r\n\t e+% 
-[PASS] Test <percentage> invalid value: \r\n\t E-% 
-[PASS] Test <percentage> invalid value: \r\n\t -% 
-[PASS] Test <percentage> invalid value: \r\n\t +% 
-[PASS] Test <percentage> invalid value: \r\n\t -.% 
-[PASS] Test <percentage> invalid value: \r\n\t .-% 
-[PASS] Test <percentage> invalid value: \r\n\t .% 
-[PASS] Test <percentage> invalid value: \r\n\t +.% 
-[PASS] Test <percentage> invalid value: \r\n\t .E0% 
-[PASS] Test <percentage> invalid value: \r\n\t e1% 
-[PASS] Test <percentage> invalid value: \r\n\t NaN%   
-[PASS] Test <percentage> invalid value: \r\n\t Infinity%   
-[PASS] Test <percentage> invalid value: \r\n\t -Infinity%   
-[PASS] Test <percentage> invalid value: \r\n\t fnord%   
-[PASS] Test <percentage> invalid value: \r\n\t E%   
-[PASS] Test <percentage> invalid value: \r\n\t e%   
-[PASS] Test <percentage> invalid value: \r\n\t e+%   
-[PASS] Test <percentage> invalid value: \r\n\t E-%   
-[PASS] Test <percentage> invalid value: \r\n\t -%   
-[PASS] Test <percentage> invalid value: \r\n\t +%   
-[PASS] Test <percentage> invalid value: \r\n\t -.%   
-[PASS] Test <percentage> invalid value: \r\n\t .-%   
-[PASS] Test <percentage> invalid value: \r\n\t .%   
-[PASS] Test <percentage> invalid value: \r\n\t +.%   
-[PASS] Test <percentage> invalid value: \r\n\t .E0%   
-[PASS] Test <percentage> invalid value: \r\n\t e1%   
-[PASS] Test <percentage> invalid value: \r\n\t NaN%\r\n\t 
-[PASS] Test <percentage> invalid value: \r\n\t Infinity%\r\n\t 
-[PASS] Test <percentage> invalid value: \r\n\t -Infinity%\r\n\t 
-[PASS] Test <percentage> invalid value: \r\n\t fnord%\r\n\t 
-[PASS] Test <percentage> invalid value: \r\n\t E%\r\n\t 
-[PASS] Test <percentage> invalid value: \r\n\t e%\r\n\t 
-[PASS] Test <percentage> invalid value: \r\n\t e+%\r\n\t 
-[PASS] Test <percentage> invalid value: \r\n\t E-%\r\n\t 
-[PASS] Test <percentage> invalid value: \r\n\t -%\r\n\t 
-[PASS] Test <percentage> invalid value: \r\n\t +%\r\n\t 
-[PASS] Test <percentage> invalid value: \r\n\t -.%\r\n\t 
-[PASS] Test <percentage> invalid value: \r\n\t .-%\r\n\t 
-[PASS] Test <percentage> invalid value: \r\n\t .%\r\n\t 
-[PASS] Test <percentage> invalid value: \r\n\t +.%\r\n\t 
-[PASS] Test <percentage> invalid value: \r\n\t .E0%\r\n\t 
-[PASS] Test <percentage> invalid value: \r\n\t e1%\r\n\t 
-[PASS] Test <percentage> invalid value: \r\n\t NaN%\f
-[PASS] Test <percentage> invalid value: \r\n\t Infinity%\f
-[PASS] Test <percentage> invalid value: \r\n\t -Infinity%\f
-[PASS] Test <percentage> invalid value: \r\n\t fnord%\f
-[PASS] Test <percentage> invalid value: \r\n\t E%\f
-[PASS] Test <percentage> invalid value: \r\n\t e%\f
-[PASS] Test <percentage> invalid value: \r\n\t e+%\f
-[PASS] Test <percentage> invalid value: \r\n\t E-%\f
-[PASS] Test <percentage> invalid value: \r\n\t -%\f
-[PASS] Test <percentage> invalid value: \r\n\t +%\f
-[PASS] Test <percentage> invalid value: \r\n\t -.%\f
-[PASS] Test <percentage> invalid value: \r\n\t .-%\f
-[PASS] Test <percentage> invalid value: \r\n\t .%\f
-[PASS] Test <percentage> invalid value: \r\n\t +.%\f
-[PASS] Test <percentage> invalid value: \r\n\t .E0%\f
-[PASS] Test <percentage> invalid value: \r\n\t e1%\f
-[PASS] Test <percentage> invalid value: \fNaN%
-[PASS] Test <percentage> invalid value: \fInfinity%
-[PASS] Test <percentage> invalid value: \f-Infinity%
-[PASS] Test <percentage> invalid value: \ffnord%
-[PASS] Test <percentage> invalid value: \fE%
-[PASS] Test <percentage> invalid value: \fe%
-[PASS] Test <percentage> invalid value: \fe+%
-[PASS] Test <percentage> invalid value: \fE-%
-[PASS] Test <percentage> invalid value: \f-%
-[PASS] Test <percentage> invalid value: \f+%
-[PASS] Test <percentage> invalid value: \f-.%
-[PASS] Test <percentage> invalid value: \f.-%
-[PASS] Test <percentage> invalid value: \f.%
-[PASS] Test <percentage> invalid value: \f+.%
-[PASS] Test <percentage> invalid value: \f.E0%
-[PASS] Test <percentage> invalid value: \fe1%
-[PASS] Test <percentage> invalid value: \fNaN% 
-[PASS] Test <percentage> invalid value: \fInfinity% 
-[PASS] Test <percentage> invalid value: \f-Infinity% 
-[PASS] Test <percentage> invalid value: \ffnord% 
-[PASS] Test <percentage> invalid value: \fE% 
-[PASS] Test <percentage> invalid value: \fe% 
-[PASS] Test <percentage> invalid value: \fe+% 
-[PASS] Test <percentage> invalid value: \fE-% 
-[PASS] Test <percentage> invalid value: \f-% 
-[PASS] Test <percentage> invalid value: \f+% 
-[PASS] Test <percentage> invalid value: \f-.% 
-[PASS] Test <percentage> invalid value: \f.-% 
-[PASS] Test <percentage> invalid value: \f.% 
-[PASS] Test <percentage> invalid value: \f+.% 
-[PASS] Test <percentage> invalid value: \f.E0% 
-[PASS] Test <percentage> invalid value: \fe1% 
-[PASS] Test <percentage> invalid value: \fNaN%   
-[PASS] Test <percentage> invalid value: \fInfinity%   
-[PASS] Test <percentage> invalid value: \f-Infinity%   
-[PASS] Test <percentage> invalid value: \ffnord%   
-[PASS] Test <percentage> invalid value: \fE%   
-[PASS] Test <percentage> invalid value: \fe%   
-[PASS] Test <percentage> invalid value: \fe+%   
-[PASS] Test <percentage> invalid value: \fE-%   
-[PASS] Test <percentage> invalid value: \f-%   
-[PASS] Test <percentage> invalid value: \f+%   
-[PASS] Test <percentage> invalid value: \f-.%   
-[PASS] Test <percentage> invalid value: \f.-%   
-[PASS] Test <percentage> invalid value: \f.%   
-[PASS] Test <percentage> invalid value: \f+.%   
-[PASS] Test <percentage> invalid value: \f.E0%   
-[PASS] Test <percentage> invalid value: \fe1%   
-[PASS] Test <percentage> invalid value: \fNaN%\r\n\t 
-[PASS] Test <percentage> invalid value: \fInfinity%\r\n\t 
-[PASS] Test <percentage> invalid value: \f-Infinity%\r\n\t 
-[PASS] Test <percentage> invalid value: \ffnord%\r\n\t 
-[PASS] Test <percentage> invalid value: \fE%\r\n\t 
-[PASS] Test <percentage> invalid value: \fe%\r\n\t 
-[PASS] Test <percentage> invalid value: \fe+%\r\n\t 
-[PASS] Test <percentage> invalid value: \fE-%\r\n\t 
-[PASS] Test <percentage> invalid value: \f-%\r\n\t 
-[PASS] Test <percentage> invalid value: \f+%\r\n\t 
-[PASS] Test <percentage> invalid value: \f-.%\r\n\t 
-[PASS] Test <percentage> invalid value: \f.-%\r\n\t 
-[PASS] Test <percentage> invalid value: \f.%\r\n\t 
-[PASS] Test <percentage> invalid value: \f+.%\r\n\t 
-[PASS] Test <percentage> invalid value: \f.E0%\r\n\t 
-[PASS] Test <percentage> invalid value: \fe1%\r\n\t 
-[PASS] Test <percentage> invalid value: \fNaN%\f
-[PASS] Test <percentage> invalid value: \fInfinity%\f
-[PASS] Test <percentage> invalid value: \f-Infinity%\f
-[PASS] Test <percentage> invalid value: \ffnord%\f
-[PASS] Test <percentage> invalid value: \fE%\f
-[PASS] Test <percentage> invalid value: \fe%\f
-[PASS] Test <percentage> invalid value: \fe+%\f
-[PASS] Test <percentage> invalid value: \fE-%\f
-[PASS] Test <percentage> invalid value: \f-%\f
-[PASS] Test <percentage> invalid value: \f+%\f
-[PASS] Test <percentage> invalid value: \f-.%\f
-[PASS] Test <percentage> invalid value: \f.-%\f
-[PASS] Test <percentage> invalid value: \f.%\f
-[PASS] Test <percentage> invalid value: \f+.%\f
-[PASS] Test <percentage> invalid value: \f.E0%\f
-[PASS] Test <percentage> invalid value: \fe1%\f
+[PASS] Test <percentage> invalid value:    NaN%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:    Infinity%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:    -Infinity%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:    fnord%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:    E%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:    e%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:    e+%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:    E-%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:    -%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:    +%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:    -.%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:    .-%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:    .%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:    +.%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:    .E0%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:    e1%\\r\\n\\t 
+[PASS] Test <percentage> invalid value:    NaN%\\f
+[PASS] Test <percentage> invalid value:    Infinity%\\f
+[PASS] Test <percentage> invalid value:    -Infinity%\\f
+[PASS] Test <percentage> invalid value:    fnord%\\f
+[PASS] Test <percentage> invalid value:    E%\\f
+[PASS] Test <percentage> invalid value:    e%\\f
+[PASS] Test <percentage> invalid value:    e+%\\f
+[PASS] Test <percentage> invalid value:    E-%\\f
+[PASS] Test <percentage> invalid value:    -%\\f
+[PASS] Test <percentage> invalid value:    +%\\f
+[PASS] Test <percentage> invalid value:    -.%\\f
+[PASS] Test <percentage> invalid value:    .-%\\f
+[PASS] Test <percentage> invalid value:    .%\\f
+[PASS] Test <percentage> invalid value:    +.%\\f
+[PASS] Test <percentage> invalid value:    .E0%\\f
+[PASS] Test <percentage> invalid value:    e1%\\f
+[PASS] Test <percentage> invalid value: \\r\\n\\t NaN%
+[PASS] Test <percentage> invalid value: \\r\\n\\t Infinity%
+[PASS] Test <percentage> invalid value: \\r\\n\\t -Infinity%
+[PASS] Test <percentage> invalid value: \\r\\n\\t fnord%
+[PASS] Test <percentage> invalid value: \\r\\n\\t E%
+[PASS] Test <percentage> invalid value: \\r\\n\\t e%
+[PASS] Test <percentage> invalid value: \\r\\n\\t e+%
+[PASS] Test <percentage> invalid value: \\r\\n\\t E-%
+[PASS] Test <percentage> invalid value: \\r\\n\\t -%
+[PASS] Test <percentage> invalid value: \\r\\n\\t +%
+[PASS] Test <percentage> invalid value: \\r\\n\\t -.%
+[PASS] Test <percentage> invalid value: \\r\\n\\t .-%
+[PASS] Test <percentage> invalid value: \\r\\n\\t .%
+[PASS] Test <percentage> invalid value: \\r\\n\\t +.%
+[PASS] Test <percentage> invalid value: \\r\\n\\t .E0%
+[PASS] Test <percentage> invalid value: \\r\\n\\t e1%
+[PASS] Test <percentage> invalid value: \\r\\n\\t NaN% 
+[PASS] Test <percentage> invalid value: \\r\\n\\t Infinity% 
+[PASS] Test <percentage> invalid value: \\r\\n\\t -Infinity% 
+[PASS] Test <percentage> invalid value: \\r\\n\\t fnord% 
+[PASS] Test <percentage> invalid value: \\r\\n\\t E% 
+[PASS] Test <percentage> invalid value: \\r\\n\\t e% 
+[PASS] Test <percentage> invalid value: \\r\\n\\t e+% 
+[PASS] Test <percentage> invalid value: \\r\\n\\t E-% 
+[PASS] Test <percentage> invalid value: \\r\\n\\t -% 
+[PASS] Test <percentage> invalid value: \\r\\n\\t +% 
+[PASS] Test <percentage> invalid value: \\r\\n\\t -.% 
+[PASS] Test <percentage> invalid value: \\r\\n\\t .-% 
+[PASS] Test <percentage> invalid value: \\r\\n\\t .% 
+[PASS] Test <percentage> invalid value: \\r\\n\\t +.% 
+[PASS] Test <percentage> invalid value: \\r\\n\\t .E0% 
+[PASS] Test <percentage> invalid value: \\r\\n\\t e1% 
+[PASS] Test <percentage> invalid value: \\r\\n\\t NaN%   
+[PASS] Test <percentage> invalid value: \\r\\n\\t Infinity%   
+[PASS] Test <percentage> invalid value: \\r\\n\\t -Infinity%   
+[PASS] Test <percentage> invalid value: \\r\\n\\t fnord%   
+[PASS] Test <percentage> invalid value: \\r\\n\\t E%   
+[PASS] Test <percentage> invalid value: \\r\\n\\t e%   
+[PASS] Test <percentage> invalid value: \\r\\n\\t e+%   
+[PASS] Test <percentage> invalid value: \\r\\n\\t E-%   
+[PASS] Test <percentage> invalid value: \\r\\n\\t -%   
+[PASS] Test <percentage> invalid value: \\r\\n\\t +%   
+[PASS] Test <percentage> invalid value: \\r\\n\\t -.%   
+[PASS] Test <percentage> invalid value: \\r\\n\\t .-%   
+[PASS] Test <percentage> invalid value: \\r\\n\\t .%   
+[PASS] Test <percentage> invalid value: \\r\\n\\t +.%   
+[PASS] Test <percentage> invalid value: \\r\\n\\t .E0%   
+[PASS] Test <percentage> invalid value: \\r\\n\\t e1%   
+[PASS] Test <percentage> invalid value: \\r\\n\\t NaN%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\r\\n\\t Infinity%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\r\\n\\t -Infinity%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\r\\n\\t fnord%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\r\\n\\t E%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\r\\n\\t e%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\r\\n\\t e+%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\r\\n\\t E-%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\r\\n\\t -%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\r\\n\\t +%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\r\\n\\t -.%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\r\\n\\t .-%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\r\\n\\t .%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\r\\n\\t +.%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\r\\n\\t .E0%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\r\\n\\t e1%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\r\\n\\t NaN%\\f
+[PASS] Test <percentage> invalid value: \\r\\n\\t Infinity%\\f
+[PASS] Test <percentage> invalid value: \\r\\n\\t -Infinity%\\f
+[PASS] Test <percentage> invalid value: \\r\\n\\t fnord%\\f
+[PASS] Test <percentage> invalid value: \\r\\n\\t E%\\f
+[PASS] Test <percentage> invalid value: \\r\\n\\t e%\\f
+[PASS] Test <percentage> invalid value: \\r\\n\\t e+%\\f
+[PASS] Test <percentage> invalid value: \\r\\n\\t E-%\\f
+[PASS] Test <percentage> invalid value: \\r\\n\\t -%\\f
+[PASS] Test <percentage> invalid value: \\r\\n\\t +%\\f
+[PASS] Test <percentage> invalid value: \\r\\n\\t -.%\\f
+[PASS] Test <percentage> invalid value: \\r\\n\\t .-%\\f
+[PASS] Test <percentage> invalid value: \\r\\n\\t .%\\f
+[PASS] Test <percentage> invalid value: \\r\\n\\t +.%\\f
+[PASS] Test <percentage> invalid value: \\r\\n\\t .E0%\\f
+[PASS] Test <percentage> invalid value: \\r\\n\\t e1%\\f
+[PASS] Test <percentage> invalid value: \\fNaN%
+[PASS] Test <percentage> invalid value: \\fInfinity%
+[PASS] Test <percentage> invalid value: \\f-Infinity%
+[PASS] Test <percentage> invalid value: \\ffnord%
+[PASS] Test <percentage> invalid value: \\fE%
+[PASS] Test <percentage> invalid value: \\fe%
+[PASS] Test <percentage> invalid value: \\fe+%
+[PASS] Test <percentage> invalid value: \\fE-%
+[PASS] Test <percentage> invalid value: \\f-%
+[PASS] Test <percentage> invalid value: \\f+%
+[PASS] Test <percentage> invalid value: \\f-.%
+[PASS] Test <percentage> invalid value: \\f.-%
+[PASS] Test <percentage> invalid value: \\f.%
+[PASS] Test <percentage> invalid value: \\f+.%
+[PASS] Test <percentage> invalid value: \\f.E0%
+[PASS] Test <percentage> invalid value: \\fe1%
+[PASS] Test <percentage> invalid value: \\fNaN% 
+[PASS] Test <percentage> invalid value: \\fInfinity% 
+[PASS] Test <percentage> invalid value: \\f-Infinity% 
+[PASS] Test <percentage> invalid value: \\ffnord% 
+[PASS] Test <percentage> invalid value: \\fE% 
+[PASS] Test <percentage> invalid value: \\fe% 
+[PASS] Test <percentage> invalid value: \\fe+% 
+[PASS] Test <percentage> invalid value: \\fE-% 
+[PASS] Test <percentage> invalid value: \\f-% 
+[PASS] Test <percentage> invalid value: \\f+% 
+[PASS] Test <percentage> invalid value: \\f-.% 
+[PASS] Test <percentage> invalid value: \\f.-% 
+[PASS] Test <percentage> invalid value: \\f.% 
+[PASS] Test <percentage> invalid value: \\f+.% 
+[PASS] Test <percentage> invalid value: \\f.E0% 
+[PASS] Test <percentage> invalid value: \\fe1% 
+[PASS] Test <percentage> invalid value: \\fNaN%   
+[PASS] Test <percentage> invalid value: \\fInfinity%   
+[PASS] Test <percentage> invalid value: \\f-Infinity%   
+[PASS] Test <percentage> invalid value: \\ffnord%   
+[PASS] Test <percentage> invalid value: \\fE%   
+[PASS] Test <percentage> invalid value: \\fe%   
+[PASS] Test <percentage> invalid value: \\fe+%   
+[PASS] Test <percentage> invalid value: \\fE-%   
+[PASS] Test <percentage> invalid value: \\f-%   
+[PASS] Test <percentage> invalid value: \\f+%   
+[PASS] Test <percentage> invalid value: \\f-.%   
+[PASS] Test <percentage> invalid value: \\f.-%   
+[PASS] Test <percentage> invalid value: \\f.%   
+[PASS] Test <percentage> invalid value: \\f+.%   
+[PASS] Test <percentage> invalid value: \\f.E0%   
+[PASS] Test <percentage> invalid value: \\fe1%   
+[PASS] Test <percentage> invalid value: \\fNaN%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\fInfinity%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\f-Infinity%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\ffnord%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\fE%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\fe%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\fe+%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\fE-%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\f-%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\f+%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\f-.%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\f.-%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\f.%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\f+.%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\f.E0%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\fe1%\\r\\n\\t 
+[PASS] Test <percentage> invalid value: \\fNaN%\\f
+[PASS] Test <percentage> invalid value: \\fInfinity%\\f
+[PASS] Test <percentage> invalid value: \\f-Infinity%\\f
+[PASS] Test <percentage> invalid value: \\ffnord%\\f
+[PASS] Test <percentage> invalid value: \\fE%\\f
+[PASS] Test <percentage> invalid value: \\fe%\\f
+[PASS] Test <percentage> invalid value: \\fe+%\\f
+[PASS] Test <percentage> invalid value: \\fE-%\\f
+[PASS] Test <percentage> invalid value: \\f-%\\f
+[PASS] Test <percentage> invalid value: \\f+%\\f
+[PASS] Test <percentage> invalid value: \\f-.%\\f
+[PASS] Test <percentage> invalid value: \\f.-%\\f
+[PASS] Test <percentage> invalid value: \\f.%\\f
+[PASS] Test <percentage> invalid value: \\f+.%\\f
+[PASS] Test <percentage> invalid value: \\f.E0%\\f
+[PASS] Test <percentage> invalid value: \\fe1%\\f
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/virtual/css-masking-disabled/external/wpt/css/css-masking/parsing/mask-valid.sub-expected.txt b/third_party/blink/web_tests/virtual/css-masking-disabled/external/wpt/css/css-masking/parsing/mask-valid.sub-expected.txt
index 8f8fb83..0be53ef 100644
--- a/third_party/blink/web_tests/virtual/css-masking-disabled/external/wpt/css/css-masking/parsing/mask-valid.sub-expected.txt
+++ b/third_party/blink/web_tests/virtual/css-masking-disabled/external/wpt/css/css-masking/parsing/mask-valid.sub-expected.txt
@@ -5,10 +5,10 @@
   assert_not_equals: property should be set got disallowed value ""
 [FAIL] e.style['mask'] = "linear-gradient(to left bottom, red, blue) luminance" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[PASS] e.style['mask'] = "url(\"https://web-platform.test/\")" should set the property value
+[PASS] e.style['mask'] = "url(\\"https://web-platform.test/\\")" should set the property value
 [FAIL] e.style['mask'] = "linear-gradient(to left bottom, red, blue) 1px 2px" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['mask'] = "url(\"https://web-platform.test/\") 1px 2px / contain" should set the property value
+[FAIL] e.style['mask'] = "url(\\"https://web-platform.test/\\") 1px 2px / contain" should set the property value
   assert_not_equals: property should be set got disallowed value ""
 [FAIL] e.style['mask'] = "repeat-y" should set the property value
   assert_not_equals: property should be set got disallowed value ""
@@ -18,7 +18,7 @@
   assert_not_equals: property should be set got disallowed value ""
 [FAIL] e.style['mask'] = "content-box" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['mask'] = "url(\"https://web-platform.test/\") fill-box" should set the property value
+[FAIL] e.style['mask'] = "url(\\"https://web-platform.test/\\") fill-box" should set the property value
   assert_not_equals: property should be set got disallowed value ""
 [FAIL] e.style['mask'] = "linear-gradient(to left bottom, red, blue) stroke-box" should set the property value
   assert_not_equals: property should be set got disallowed value ""
@@ -26,17 +26,17 @@
   assert_not_equals: property should be set got disallowed value ""
 [FAIL] e.style['mask'] = "no-clip" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['mask'] = "url(\"https://web-platform.test/\") add" should set the property value
+[FAIL] e.style['mask'] = "url(\\"https://web-platform.test/\\") add" should set the property value
   assert_not_equals: property should be set got disallowed value ""
 [FAIL] e.style['mask'] = "subtract" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['mask'] = "url(\"https://web-platform.test/\") intersect" should set the property value
+[FAIL] e.style['mask'] = "url(\\"https://web-platform.test/\\") intersect" should set the property value
   assert_not_equals: property should be set got disallowed value ""
 [FAIL] e.style['mask'] = "linear-gradient(to left bottom, red, blue) exclude" should set the property value
   assert_not_equals: property should be set got disallowed value ""
 [FAIL] e.style['mask'] = "alpha" should set the property value
   assert_not_equals: property should be set got disallowed value ""
-[FAIL] e.style['mask'] = "url(\"https://web-platform.test/\") alpha" should set the property value
+[FAIL] e.style['mask'] = "url(\\"https://web-platform.test/\\") alpha" should set the property value
   assert_not_equals: property should be set got disallowed value ""
 [FAIL] e.style['mask'] = "border-box border-box" should set the property value
   assert_not_equals: property should be set got disallowed value ""
diff --git a/third_party/blink/web_tests/virtual/non-streaming-declarative-shadow-dom-enabled/non-streaming-tests/getinnerhtml.tentative-expected.txt b/third_party/blink/web_tests/virtual/non-streaming-declarative-shadow-dom-enabled/non-streaming-tests/getinnerhtml.tentative-expected.txt
index 1c07617..339da587 100644
--- a/third_party/blink/web_tests/virtual/non-streaming-declarative-shadow-dom-enabled/non-streaming-tests/getinnerhtml.tentative-expected.txt
+++ b/third_party/blink/web_tests/virtual/non-streaming-declarative-shadow-dom-enabled/non-streaming-tests/getinnerhtml.tentative-expected.txt
@@ -8,37 +8,37 @@
 [PASS] Element.getInnerHTML() on <area>
 [PASS] ShadowRoot.getInnerHTML() on <area>
 [FAIL] Element.getInnerHTML() on <article>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<article><template shadowroot=\"open\"><slot></slot></template></article>" but got "<article><template shadowrootmode=\"open\"><slot></slot></template></article>"
+  assert_equals: The default for includeShadowRoots should be true expected "<article><template shadowroot=\\"open\\"><slot></slot></template></article>" but got "<article><template shadowrootmode=\\"open\\"><slot></slot></template></article>"
 [FAIL] Element.getInnerHTML() on <article>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<article><template shadowroot=\"closed\"><slot></slot></template></article>" but got "<article><template shadowrootmode=\"closed\"><slot></slot></template></article>"
+  assert_equals: expected "<article><template shadowroot=\\"closed\\"><slot></slot></template></article>" but got "<article><template shadowrootmode=\\"closed\\"><slot></slot></template></article>"
 [FAIL] Element.getInnerHTML() on <article>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<article><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></article>" but got "<article><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></article>"
+  assert_equals: The default for includeShadowRoots should be true expected "<article><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></article>" but got "<article><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></article>"
 [FAIL] Element.getInnerHTML() on <article>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<article><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></article>" but got "<article><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></article>"
+  assert_equals: expected "<article><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></article>" but got "<article><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></article>"
 [FAIL] ShadowRoot.getInnerHTML() on <article>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<article><template shadowroot=\"open\"><slot></slot></template></article>" but got "<article><template shadowrootmode=\"open\"><slot></slot></template></article>"
+  assert_equals: The default for includeShadowRoots should be true expected "<article><template shadowroot=\\"open\\"><slot></slot></template></article>" but got "<article><template shadowrootmode=\\"open\\"><slot></slot></template></article>"
 [FAIL] ShadowRoot.getInnerHTML() on <article>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<article><template shadowroot=\"closed\"><slot></slot></template></article>" but got "<article><template shadowrootmode=\"closed\"><slot></slot></template></article>"
+  assert_equals: expected "<article><template shadowroot=\\"closed\\"><slot></slot></template></article>" but got "<article><template shadowrootmode=\\"closed\\"><slot></slot></template></article>"
 [FAIL] ShadowRoot.getInnerHTML() on <article>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<article><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></article>" but got "<article><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></article>"
+  assert_equals: The default for includeShadowRoots should be true expected "<article><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></article>" but got "<article><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></article>"
 [FAIL] ShadowRoot.getInnerHTML() on <article>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<article><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></article>" but got "<article><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></article>"
+  assert_equals: expected "<article><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></article>" but got "<article><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></article>"
 [FAIL] Element.getInnerHTML() on <aside>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<aside><template shadowroot=\"open\"><slot></slot></template></aside>" but got "<aside><template shadowrootmode=\"open\"><slot></slot></template></aside>"
+  assert_equals: The default for includeShadowRoots should be true expected "<aside><template shadowroot=\\"open\\"><slot></slot></template></aside>" but got "<aside><template shadowrootmode=\\"open\\"><slot></slot></template></aside>"
 [FAIL] Element.getInnerHTML() on <aside>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<aside><template shadowroot=\"closed\"><slot></slot></template></aside>" but got "<aside><template shadowrootmode=\"closed\"><slot></slot></template></aside>"
+  assert_equals: expected "<aside><template shadowroot=\\"closed\\"><slot></slot></template></aside>" but got "<aside><template shadowrootmode=\\"closed\\"><slot></slot></template></aside>"
 [FAIL] Element.getInnerHTML() on <aside>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<aside><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></aside>" but got "<aside><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></aside>"
+  assert_equals: The default for includeShadowRoots should be true expected "<aside><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></aside>" but got "<aside><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></aside>"
 [FAIL] Element.getInnerHTML() on <aside>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<aside><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></aside>" but got "<aside><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></aside>"
+  assert_equals: expected "<aside><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></aside>" but got "<aside><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></aside>"
 [FAIL] ShadowRoot.getInnerHTML() on <aside>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<aside><template shadowroot=\"open\"><slot></slot></template></aside>" but got "<aside><template shadowrootmode=\"open\"><slot></slot></template></aside>"
+  assert_equals: The default for includeShadowRoots should be true expected "<aside><template shadowroot=\\"open\\"><slot></slot></template></aside>" but got "<aside><template shadowrootmode=\\"open\\"><slot></slot></template></aside>"
 [FAIL] ShadowRoot.getInnerHTML() on <aside>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<aside><template shadowroot=\"closed\"><slot></slot></template></aside>" but got "<aside><template shadowrootmode=\"closed\"><slot></slot></template></aside>"
+  assert_equals: expected "<aside><template shadowroot=\\"closed\\"><slot></slot></template></aside>" but got "<aside><template shadowrootmode=\\"closed\\"><slot></slot></template></aside>"
 [FAIL] ShadowRoot.getInnerHTML() on <aside>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<aside><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></aside>" but got "<aside><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></aside>"
+  assert_equals: The default for includeShadowRoots should be true expected "<aside><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></aside>" but got "<aside><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></aside>"
 [FAIL] ShadowRoot.getInnerHTML() on <aside>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<aside><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></aside>" but got "<aside><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></aside>"
+  assert_equals: expected "<aside><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></aside>" but got "<aside><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></aside>"
 [PASS] Element.getInnerHTML() on <audio>
 [PASS] ShadowRoot.getInnerHTML() on <audio>
 [PASS] Element.getInnerHTML() on <b>
@@ -50,37 +50,37 @@
 [PASS] Element.getInnerHTML() on <bdo>
 [PASS] ShadowRoot.getInnerHTML() on <bdo>
 [FAIL] Element.getInnerHTML() on <blockquote>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<blockquote><template shadowroot=\"open\"><slot></slot></template></blockquote>" but got "<blockquote><template shadowrootmode=\"open\"><slot></slot></template></blockquote>"
+  assert_equals: The default for includeShadowRoots should be true expected "<blockquote><template shadowroot=\\"open\\"><slot></slot></template></blockquote>" but got "<blockquote><template shadowrootmode=\\"open\\"><slot></slot></template></blockquote>"
 [FAIL] Element.getInnerHTML() on <blockquote>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<blockquote><template shadowroot=\"closed\"><slot></slot></template></blockquote>" but got "<blockquote><template shadowrootmode=\"closed\"><slot></slot></template></blockquote>"
+  assert_equals: expected "<blockquote><template shadowroot=\\"closed\\"><slot></slot></template></blockquote>" but got "<blockquote><template shadowrootmode=\\"closed\\"><slot></slot></template></blockquote>"
 [FAIL] Element.getInnerHTML() on <blockquote>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<blockquote><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></blockquote>" but got "<blockquote><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></blockquote>"
+  assert_equals: The default for includeShadowRoots should be true expected "<blockquote><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></blockquote>" but got "<blockquote><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></blockquote>"
 [FAIL] Element.getInnerHTML() on <blockquote>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<blockquote><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></blockquote>" but got "<blockquote><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></blockquote>"
+  assert_equals: expected "<blockquote><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></blockquote>" but got "<blockquote><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></blockquote>"
 [FAIL] ShadowRoot.getInnerHTML() on <blockquote>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<blockquote><template shadowroot=\"open\"><slot></slot></template></blockquote>" but got "<blockquote><template shadowrootmode=\"open\"><slot></slot></template></blockquote>"
+  assert_equals: The default for includeShadowRoots should be true expected "<blockquote><template shadowroot=\\"open\\"><slot></slot></template></blockquote>" but got "<blockquote><template shadowrootmode=\\"open\\"><slot></slot></template></blockquote>"
 [FAIL] ShadowRoot.getInnerHTML() on <blockquote>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<blockquote><template shadowroot=\"closed\"><slot></slot></template></blockquote>" but got "<blockquote><template shadowrootmode=\"closed\"><slot></slot></template></blockquote>"
+  assert_equals: expected "<blockquote><template shadowroot=\\"closed\\"><slot></slot></template></blockquote>" but got "<blockquote><template shadowrootmode=\\"closed\\"><slot></slot></template></blockquote>"
 [FAIL] ShadowRoot.getInnerHTML() on <blockquote>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<blockquote><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></blockquote>" but got "<blockquote><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></blockquote>"
+  assert_equals: The default for includeShadowRoots should be true expected "<blockquote><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></blockquote>" but got "<blockquote><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></blockquote>"
 [FAIL] ShadowRoot.getInnerHTML() on <blockquote>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<blockquote><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></blockquote>" but got "<blockquote><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></blockquote>"
+  assert_equals: expected "<blockquote><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></blockquote>" but got "<blockquote><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></blockquote>"
 [FAIL] Element.getInnerHTML() on <body>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<body><template shadowroot=\"open\"><slot></slot></template></body>" but got "<body><template shadowrootmode=\"open\"><slot></slot></template></body>"
+  assert_equals: The default for includeShadowRoots should be true expected "<body><template shadowroot=\\"open\\"><slot></slot></template></body>" but got "<body><template shadowrootmode=\\"open\\"><slot></slot></template></body>"
 [FAIL] Element.getInnerHTML() on <body>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<body><template shadowroot=\"closed\"><slot></slot></template></body>" but got "<body><template shadowrootmode=\"closed\"><slot></slot></template></body>"
+  assert_equals: expected "<body><template shadowroot=\\"closed\\"><slot></slot></template></body>" but got "<body><template shadowrootmode=\\"closed\\"><slot></slot></template></body>"
 [FAIL] Element.getInnerHTML() on <body>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<body><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></body>" but got "<body><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></body>"
+  assert_equals: The default for includeShadowRoots should be true expected "<body><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></body>" but got "<body><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></body>"
 [FAIL] Element.getInnerHTML() on <body>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<body><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></body>" but got "<body><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></body>"
+  assert_equals: expected "<body><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></body>" but got "<body><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></body>"
 [FAIL] ShadowRoot.getInnerHTML() on <body>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<body><template shadowroot=\"open\"><slot></slot></template></body>" but got "<body><template shadowrootmode=\"open\"><slot></slot></template></body>"
+  assert_equals: The default for includeShadowRoots should be true expected "<body><template shadowroot=\\"open\\"><slot></slot></template></body>" but got "<body><template shadowrootmode=\\"open\\"><slot></slot></template></body>"
 [FAIL] ShadowRoot.getInnerHTML() on <body>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<body><template shadowroot=\"closed\"><slot></slot></template></body>" but got "<body><template shadowrootmode=\"closed\"><slot></slot></template></body>"
+  assert_equals: expected "<body><template shadowroot=\\"closed\\"><slot></slot></template></body>" but got "<body><template shadowrootmode=\\"closed\\"><slot></slot></template></body>"
 [FAIL] ShadowRoot.getInnerHTML() on <body>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<body><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></body>" but got "<body><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></body>"
+  assert_equals: The default for includeShadowRoots should be true expected "<body><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></body>" but got "<body><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></body>"
 [FAIL] ShadowRoot.getInnerHTML() on <body>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<body><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></body>" but got "<body><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></body>"
+  assert_equals: expected "<body><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></body>" but got "<body><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></body>"
 [PASS] Element.getInnerHTML() on <br>
 [PASS] ShadowRoot.getInnerHTML() on <br>
 [PASS] Element.getInnerHTML() on <button>
@@ -112,21 +112,21 @@
 [PASS] Element.getInnerHTML() on <dialog>
 [PASS] ShadowRoot.getInnerHTML() on <dialog>
 [FAIL] Element.getInnerHTML() on <div>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<div><template shadowroot=\"open\"><slot></slot></template></div>" but got "<div><template shadowrootmode=\"open\"><slot></slot></template></div>"
+  assert_equals: The default for includeShadowRoots should be true expected "<div><template shadowroot=\\"open\\"><slot></slot></template></div>" but got "<div><template shadowrootmode=\\"open\\"><slot></slot></template></div>"
 [FAIL] Element.getInnerHTML() on <div>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<div><template shadowroot=\"closed\"><slot></slot></template></div>" but got "<div><template shadowrootmode=\"closed\"><slot></slot></template></div>"
+  assert_equals: expected "<div><template shadowroot=\\"closed\\"><slot></slot></template></div>" but got "<div><template shadowrootmode=\\"closed\\"><slot></slot></template></div>"
 [FAIL] Element.getInnerHTML() on <div>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<div><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></div>" but got "<div><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></div>"
+  assert_equals: The default for includeShadowRoots should be true expected "<div><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></div>" but got "<div><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></div>"
 [FAIL] Element.getInnerHTML() on <div>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<div><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></div>" but got "<div><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></div>"
+  assert_equals: expected "<div><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></div>" but got "<div><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></div>"
 [FAIL] ShadowRoot.getInnerHTML() on <div>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<div><template shadowroot=\"open\"><slot></slot></template></div>" but got "<div><template shadowrootmode=\"open\"><slot></slot></template></div>"
+  assert_equals: The default for includeShadowRoots should be true expected "<div><template shadowroot=\\"open\\"><slot></slot></template></div>" but got "<div><template shadowrootmode=\\"open\\"><slot></slot></template></div>"
 [FAIL] ShadowRoot.getInnerHTML() on <div>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<div><template shadowroot=\"closed\"><slot></slot></template></div>" but got "<div><template shadowrootmode=\"closed\"><slot></slot></template></div>"
+  assert_equals: expected "<div><template shadowroot=\\"closed\\"><slot></slot></template></div>" but got "<div><template shadowrootmode=\\"closed\\"><slot></slot></template></div>"
 [FAIL] ShadowRoot.getInnerHTML() on <div>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<div><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></div>" but got "<div><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></div>"
+  assert_equals: The default for includeShadowRoots should be true expected "<div><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></div>" but got "<div><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></div>"
 [FAIL] ShadowRoot.getInnerHTML() on <div>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<div><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></div>" but got "<div><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></div>"
+  assert_equals: expected "<div><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></div>" but got "<div><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></div>"
 [PASS] Element.getInnerHTML() on <dl>
 [PASS] ShadowRoot.getInnerHTML() on <dl>
 [PASS] Element.getInnerHTML() on <dt>
@@ -142,137 +142,137 @@
 [PASS] Element.getInnerHTML() on <figure>
 [PASS] ShadowRoot.getInnerHTML() on <figure>
 [FAIL] Element.getInnerHTML() on <footer>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<footer><template shadowroot=\"open\"><slot></slot></template></footer>" but got "<footer><template shadowrootmode=\"open\"><slot></slot></template></footer>"
+  assert_equals: The default for includeShadowRoots should be true expected "<footer><template shadowroot=\\"open\\"><slot></slot></template></footer>" but got "<footer><template shadowrootmode=\\"open\\"><slot></slot></template></footer>"
 [FAIL] Element.getInnerHTML() on <footer>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<footer><template shadowroot=\"closed\"><slot></slot></template></footer>" but got "<footer><template shadowrootmode=\"closed\"><slot></slot></template></footer>"
+  assert_equals: expected "<footer><template shadowroot=\\"closed\\"><slot></slot></template></footer>" but got "<footer><template shadowrootmode=\\"closed\\"><slot></slot></template></footer>"
 [FAIL] Element.getInnerHTML() on <footer>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<footer><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></footer>" but got "<footer><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></footer>"
+  assert_equals: The default for includeShadowRoots should be true expected "<footer><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></footer>" but got "<footer><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></footer>"
 [FAIL] Element.getInnerHTML() on <footer>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<footer><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></footer>" but got "<footer><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></footer>"
+  assert_equals: expected "<footer><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></footer>" but got "<footer><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></footer>"
 [FAIL] ShadowRoot.getInnerHTML() on <footer>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<footer><template shadowroot=\"open\"><slot></slot></template></footer>" but got "<footer><template shadowrootmode=\"open\"><slot></slot></template></footer>"
+  assert_equals: The default for includeShadowRoots should be true expected "<footer><template shadowroot=\\"open\\"><slot></slot></template></footer>" but got "<footer><template shadowrootmode=\\"open\\"><slot></slot></template></footer>"
 [FAIL] ShadowRoot.getInnerHTML() on <footer>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<footer><template shadowroot=\"closed\"><slot></slot></template></footer>" but got "<footer><template shadowrootmode=\"closed\"><slot></slot></template></footer>"
+  assert_equals: expected "<footer><template shadowroot=\\"closed\\"><slot></slot></template></footer>" but got "<footer><template shadowrootmode=\\"closed\\"><slot></slot></template></footer>"
 [FAIL] ShadowRoot.getInnerHTML() on <footer>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<footer><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></footer>" but got "<footer><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></footer>"
+  assert_equals: The default for includeShadowRoots should be true expected "<footer><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></footer>" but got "<footer><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></footer>"
 [FAIL] ShadowRoot.getInnerHTML() on <footer>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<footer><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></footer>" but got "<footer><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></footer>"
+  assert_equals: expected "<footer><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></footer>" but got "<footer><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></footer>"
 [PASS] Element.getInnerHTML() on <form>
 [PASS] ShadowRoot.getInnerHTML() on <form>
 [FAIL] Element.getInnerHTML() on <h1>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<h1><template shadowroot=\"open\"><slot></slot></template></h1>" but got "<h1><template shadowrootmode=\"open\"><slot></slot></template></h1>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h1><template shadowroot=\\"open\\"><slot></slot></template></h1>" but got "<h1><template shadowrootmode=\\"open\\"><slot></slot></template></h1>"
 [FAIL] Element.getInnerHTML() on <h1>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<h1><template shadowroot=\"closed\"><slot></slot></template></h1>" but got "<h1><template shadowrootmode=\"closed\"><slot></slot></template></h1>"
+  assert_equals: expected "<h1><template shadowroot=\\"closed\\"><slot></slot></template></h1>" but got "<h1><template shadowrootmode=\\"closed\\"><slot></slot></template></h1>"
 [FAIL] Element.getInnerHTML() on <h1>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<h1><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h1>" but got "<h1><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h1>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h1><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h1>" but got "<h1><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h1>"
 [FAIL] Element.getInnerHTML() on <h1>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<h1><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h1>" but got "<h1><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h1>"
+  assert_equals: expected "<h1><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h1>" but got "<h1><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h1>"
 [FAIL] ShadowRoot.getInnerHTML() on <h1>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<h1><template shadowroot=\"open\"><slot></slot></template></h1>" but got "<h1><template shadowrootmode=\"open\"><slot></slot></template></h1>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h1><template shadowroot=\\"open\\"><slot></slot></template></h1>" but got "<h1><template shadowrootmode=\\"open\\"><slot></slot></template></h1>"
 [FAIL] ShadowRoot.getInnerHTML() on <h1>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<h1><template shadowroot=\"closed\"><slot></slot></template></h1>" but got "<h1><template shadowrootmode=\"closed\"><slot></slot></template></h1>"
+  assert_equals: expected "<h1><template shadowroot=\\"closed\\"><slot></slot></template></h1>" but got "<h1><template shadowrootmode=\\"closed\\"><slot></slot></template></h1>"
 [FAIL] ShadowRoot.getInnerHTML() on <h1>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<h1><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h1>" but got "<h1><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h1>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h1><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h1>" but got "<h1><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h1>"
 [FAIL] ShadowRoot.getInnerHTML() on <h1>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<h1><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h1>" but got "<h1><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h1>"
+  assert_equals: expected "<h1><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h1>" but got "<h1><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h1>"
 [FAIL] Element.getInnerHTML() on <h2>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<h2><template shadowroot=\"open\"><slot></slot></template></h2>" but got "<h2><template shadowrootmode=\"open\"><slot></slot></template></h2>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h2><template shadowroot=\\"open\\"><slot></slot></template></h2>" but got "<h2><template shadowrootmode=\\"open\\"><slot></slot></template></h2>"
 [FAIL] Element.getInnerHTML() on <h2>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<h2><template shadowroot=\"closed\"><slot></slot></template></h2>" but got "<h2><template shadowrootmode=\"closed\"><slot></slot></template></h2>"
+  assert_equals: expected "<h2><template shadowroot=\\"closed\\"><slot></slot></template></h2>" but got "<h2><template shadowrootmode=\\"closed\\"><slot></slot></template></h2>"
 [FAIL] Element.getInnerHTML() on <h2>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<h2><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h2>" but got "<h2><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h2>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h2><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h2>" but got "<h2><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h2>"
 [FAIL] Element.getInnerHTML() on <h2>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<h2><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h2>" but got "<h2><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h2>"
+  assert_equals: expected "<h2><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h2>" but got "<h2><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h2>"
 [FAIL] ShadowRoot.getInnerHTML() on <h2>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<h2><template shadowroot=\"open\"><slot></slot></template></h2>" but got "<h2><template shadowrootmode=\"open\"><slot></slot></template></h2>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h2><template shadowroot=\\"open\\"><slot></slot></template></h2>" but got "<h2><template shadowrootmode=\\"open\\"><slot></slot></template></h2>"
 [FAIL] ShadowRoot.getInnerHTML() on <h2>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<h2><template shadowroot=\"closed\"><slot></slot></template></h2>" but got "<h2><template shadowrootmode=\"closed\"><slot></slot></template></h2>"
+  assert_equals: expected "<h2><template shadowroot=\\"closed\\"><slot></slot></template></h2>" but got "<h2><template shadowrootmode=\\"closed\\"><slot></slot></template></h2>"
 [FAIL] ShadowRoot.getInnerHTML() on <h2>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<h2><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h2>" but got "<h2><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h2>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h2><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h2>" but got "<h2><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h2>"
 [FAIL] ShadowRoot.getInnerHTML() on <h2>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<h2><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h2>" but got "<h2><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h2>"
+  assert_equals: expected "<h2><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h2>" but got "<h2><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h2>"
 [FAIL] Element.getInnerHTML() on <h3>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<h3><template shadowroot=\"open\"><slot></slot></template></h3>" but got "<h3><template shadowrootmode=\"open\"><slot></slot></template></h3>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h3><template shadowroot=\\"open\\"><slot></slot></template></h3>" but got "<h3><template shadowrootmode=\\"open\\"><slot></slot></template></h3>"
 [FAIL] Element.getInnerHTML() on <h3>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<h3><template shadowroot=\"closed\"><slot></slot></template></h3>" but got "<h3><template shadowrootmode=\"closed\"><slot></slot></template></h3>"
+  assert_equals: expected "<h3><template shadowroot=\\"closed\\"><slot></slot></template></h3>" but got "<h3><template shadowrootmode=\\"closed\\"><slot></slot></template></h3>"
 [FAIL] Element.getInnerHTML() on <h3>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<h3><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h3>" but got "<h3><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h3>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h3><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h3>" but got "<h3><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h3>"
 [FAIL] Element.getInnerHTML() on <h3>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<h3><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h3>" but got "<h3><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h3>"
+  assert_equals: expected "<h3><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h3>" but got "<h3><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h3>"
 [FAIL] ShadowRoot.getInnerHTML() on <h3>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<h3><template shadowroot=\"open\"><slot></slot></template></h3>" but got "<h3><template shadowrootmode=\"open\"><slot></slot></template></h3>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h3><template shadowroot=\\"open\\"><slot></slot></template></h3>" but got "<h3><template shadowrootmode=\\"open\\"><slot></slot></template></h3>"
 [FAIL] ShadowRoot.getInnerHTML() on <h3>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<h3><template shadowroot=\"closed\"><slot></slot></template></h3>" but got "<h3><template shadowrootmode=\"closed\"><slot></slot></template></h3>"
+  assert_equals: expected "<h3><template shadowroot=\\"closed\\"><slot></slot></template></h3>" but got "<h3><template shadowrootmode=\\"closed\\"><slot></slot></template></h3>"
 [FAIL] ShadowRoot.getInnerHTML() on <h3>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<h3><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h3>" but got "<h3><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h3>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h3><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h3>" but got "<h3><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h3>"
 [FAIL] ShadowRoot.getInnerHTML() on <h3>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<h3><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h3>" but got "<h3><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h3>"
+  assert_equals: expected "<h3><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h3>" but got "<h3><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h3>"
 [FAIL] Element.getInnerHTML() on <h4>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<h4><template shadowroot=\"open\"><slot></slot></template></h4>" but got "<h4><template shadowrootmode=\"open\"><slot></slot></template></h4>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h4><template shadowroot=\\"open\\"><slot></slot></template></h4>" but got "<h4><template shadowrootmode=\\"open\\"><slot></slot></template></h4>"
 [FAIL] Element.getInnerHTML() on <h4>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<h4><template shadowroot=\"closed\"><slot></slot></template></h4>" but got "<h4><template shadowrootmode=\"closed\"><slot></slot></template></h4>"
+  assert_equals: expected "<h4><template shadowroot=\\"closed\\"><slot></slot></template></h4>" but got "<h4><template shadowrootmode=\\"closed\\"><slot></slot></template></h4>"
 [FAIL] Element.getInnerHTML() on <h4>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<h4><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h4>" but got "<h4><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h4>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h4><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h4>" but got "<h4><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h4>"
 [FAIL] Element.getInnerHTML() on <h4>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<h4><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h4>" but got "<h4><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h4>"
+  assert_equals: expected "<h4><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h4>" but got "<h4><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h4>"
 [FAIL] ShadowRoot.getInnerHTML() on <h4>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<h4><template shadowroot=\"open\"><slot></slot></template></h4>" but got "<h4><template shadowrootmode=\"open\"><slot></slot></template></h4>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h4><template shadowroot=\\"open\\"><slot></slot></template></h4>" but got "<h4><template shadowrootmode=\\"open\\"><slot></slot></template></h4>"
 [FAIL] ShadowRoot.getInnerHTML() on <h4>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<h4><template shadowroot=\"closed\"><slot></slot></template></h4>" but got "<h4><template shadowrootmode=\"closed\"><slot></slot></template></h4>"
+  assert_equals: expected "<h4><template shadowroot=\\"closed\\"><slot></slot></template></h4>" but got "<h4><template shadowrootmode=\\"closed\\"><slot></slot></template></h4>"
 [FAIL] ShadowRoot.getInnerHTML() on <h4>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<h4><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h4>" but got "<h4><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h4>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h4><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h4>" but got "<h4><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h4>"
 [FAIL] ShadowRoot.getInnerHTML() on <h4>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<h4><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h4>" but got "<h4><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h4>"
+  assert_equals: expected "<h4><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h4>" but got "<h4><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h4>"
 [FAIL] Element.getInnerHTML() on <h5>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<h5><template shadowroot=\"open\"><slot></slot></template></h5>" but got "<h5><template shadowrootmode=\"open\"><slot></slot></template></h5>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h5><template shadowroot=\\"open\\"><slot></slot></template></h5>" but got "<h5><template shadowrootmode=\\"open\\"><slot></slot></template></h5>"
 [FAIL] Element.getInnerHTML() on <h5>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<h5><template shadowroot=\"closed\"><slot></slot></template></h5>" but got "<h5><template shadowrootmode=\"closed\"><slot></slot></template></h5>"
+  assert_equals: expected "<h5><template shadowroot=\\"closed\\"><slot></slot></template></h5>" but got "<h5><template shadowrootmode=\\"closed\\"><slot></slot></template></h5>"
 [FAIL] Element.getInnerHTML() on <h5>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<h5><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h5>" but got "<h5><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h5>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h5><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h5>" but got "<h5><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h5>"
 [FAIL] Element.getInnerHTML() on <h5>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<h5><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h5>" but got "<h5><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h5>"
+  assert_equals: expected "<h5><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h5>" but got "<h5><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h5>"
 [FAIL] ShadowRoot.getInnerHTML() on <h5>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<h5><template shadowroot=\"open\"><slot></slot></template></h5>" but got "<h5><template shadowrootmode=\"open\"><slot></slot></template></h5>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h5><template shadowroot=\\"open\\"><slot></slot></template></h5>" but got "<h5><template shadowrootmode=\\"open\\"><slot></slot></template></h5>"
 [FAIL] ShadowRoot.getInnerHTML() on <h5>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<h5><template shadowroot=\"closed\"><slot></slot></template></h5>" but got "<h5><template shadowrootmode=\"closed\"><slot></slot></template></h5>"
+  assert_equals: expected "<h5><template shadowroot=\\"closed\\"><slot></slot></template></h5>" but got "<h5><template shadowrootmode=\\"closed\\"><slot></slot></template></h5>"
 [FAIL] ShadowRoot.getInnerHTML() on <h5>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<h5><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h5>" but got "<h5><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h5>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h5><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h5>" but got "<h5><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h5>"
 [FAIL] ShadowRoot.getInnerHTML() on <h5>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<h5><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h5>" but got "<h5><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h5>"
+  assert_equals: expected "<h5><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h5>" but got "<h5><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h5>"
 [FAIL] Element.getInnerHTML() on <h6>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<h6><template shadowroot=\"open\"><slot></slot></template></h6>" but got "<h6><template shadowrootmode=\"open\"><slot></slot></template></h6>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h6><template shadowroot=\\"open\\"><slot></slot></template></h6>" but got "<h6><template shadowrootmode=\\"open\\"><slot></slot></template></h6>"
 [FAIL] Element.getInnerHTML() on <h6>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<h6><template shadowroot=\"closed\"><slot></slot></template></h6>" but got "<h6><template shadowrootmode=\"closed\"><slot></slot></template></h6>"
+  assert_equals: expected "<h6><template shadowroot=\\"closed\\"><slot></slot></template></h6>" but got "<h6><template shadowrootmode=\\"closed\\"><slot></slot></template></h6>"
 [FAIL] Element.getInnerHTML() on <h6>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<h6><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h6>" but got "<h6><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h6>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h6><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h6>" but got "<h6><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h6>"
 [FAIL] Element.getInnerHTML() on <h6>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<h6><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h6>" but got "<h6><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h6>"
+  assert_equals: expected "<h6><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h6>" but got "<h6><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h6>"
 [FAIL] ShadowRoot.getInnerHTML() on <h6>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<h6><template shadowroot=\"open\"><slot></slot></template></h6>" but got "<h6><template shadowrootmode=\"open\"><slot></slot></template></h6>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h6><template shadowroot=\\"open\\"><slot></slot></template></h6>" but got "<h6><template shadowrootmode=\\"open\\"><slot></slot></template></h6>"
 [FAIL] ShadowRoot.getInnerHTML() on <h6>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<h6><template shadowroot=\"closed\"><slot></slot></template></h6>" but got "<h6><template shadowrootmode=\"closed\"><slot></slot></template></h6>"
+  assert_equals: expected "<h6><template shadowroot=\\"closed\\"><slot></slot></template></h6>" but got "<h6><template shadowrootmode=\\"closed\\"><slot></slot></template></h6>"
 [FAIL] ShadowRoot.getInnerHTML() on <h6>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<h6><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h6>" but got "<h6><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h6>"
+  assert_equals: The default for includeShadowRoots should be true expected "<h6><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h6>" but got "<h6><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h6>"
 [FAIL] ShadowRoot.getInnerHTML() on <h6>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<h6><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h6>" but got "<h6><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></h6>"
+  assert_equals: expected "<h6><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h6>" but got "<h6><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></h6>"
 [PASS] Element.getInnerHTML() on <head>
 [PASS] ShadowRoot.getInnerHTML() on <head>
 [FAIL] Element.getInnerHTML() on <header>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<header><template shadowroot=\"open\"><slot></slot></template></header>" but got "<header><template shadowrootmode=\"open\"><slot></slot></template></header>"
+  assert_equals: The default for includeShadowRoots should be true expected "<header><template shadowroot=\\"open\\"><slot></slot></template></header>" but got "<header><template shadowrootmode=\\"open\\"><slot></slot></template></header>"
 [FAIL] Element.getInnerHTML() on <header>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<header><template shadowroot=\"closed\"><slot></slot></template></header>" but got "<header><template shadowrootmode=\"closed\"><slot></slot></template></header>"
+  assert_equals: expected "<header><template shadowroot=\\"closed\\"><slot></slot></template></header>" but got "<header><template shadowrootmode=\\"closed\\"><slot></slot></template></header>"
 [FAIL] Element.getInnerHTML() on <header>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<header><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></header>" but got "<header><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></header>"
+  assert_equals: The default for includeShadowRoots should be true expected "<header><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></header>" but got "<header><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></header>"
 [FAIL] Element.getInnerHTML() on <header>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<header><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></header>" but got "<header><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></header>"
+  assert_equals: expected "<header><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></header>" but got "<header><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></header>"
 [FAIL] ShadowRoot.getInnerHTML() on <header>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<header><template shadowroot=\"open\"><slot></slot></template></header>" but got "<header><template shadowrootmode=\"open\"><slot></slot></template></header>"
+  assert_equals: The default for includeShadowRoots should be true expected "<header><template shadowroot=\\"open\\"><slot></slot></template></header>" but got "<header><template shadowrootmode=\\"open\\"><slot></slot></template></header>"
 [FAIL] ShadowRoot.getInnerHTML() on <header>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<header><template shadowroot=\"closed\"><slot></slot></template></header>" but got "<header><template shadowrootmode=\"closed\"><slot></slot></template></header>"
+  assert_equals: expected "<header><template shadowroot=\\"closed\\"><slot></slot></template></header>" but got "<header><template shadowrootmode=\\"closed\\"><slot></slot></template></header>"
 [FAIL] ShadowRoot.getInnerHTML() on <header>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<header><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></header>" but got "<header><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></header>"
+  assert_equals: The default for includeShadowRoots should be true expected "<header><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></header>" but got "<header><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></header>"
 [FAIL] ShadowRoot.getInnerHTML() on <header>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<header><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></header>" but got "<header><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></header>"
+  assert_equals: expected "<header><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></header>" but got "<header><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></header>"
 [PASS] Element.getInnerHTML() on <hr>
 [PASS] ShadowRoot.getInnerHTML() on <hr>
 [PASS] Element.getInnerHTML() on <html>
@@ -298,21 +298,21 @@
 [PASS] Element.getInnerHTML() on <link>
 [PASS] ShadowRoot.getInnerHTML() on <link>
 [FAIL] Element.getInnerHTML() on <main>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<main><template shadowroot=\"open\"><slot></slot></template></main>" but got "<main><template shadowrootmode=\"open\"><slot></slot></template></main>"
+  assert_equals: The default for includeShadowRoots should be true expected "<main><template shadowroot=\\"open\\"><slot></slot></template></main>" but got "<main><template shadowrootmode=\\"open\\"><slot></slot></template></main>"
 [FAIL] Element.getInnerHTML() on <main>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<main><template shadowroot=\"closed\"><slot></slot></template></main>" but got "<main><template shadowrootmode=\"closed\"><slot></slot></template></main>"
+  assert_equals: expected "<main><template shadowroot=\\"closed\\"><slot></slot></template></main>" but got "<main><template shadowrootmode=\\"closed\\"><slot></slot></template></main>"
 [FAIL] Element.getInnerHTML() on <main>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<main><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></main>" but got "<main><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></main>"
+  assert_equals: The default for includeShadowRoots should be true expected "<main><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></main>" but got "<main><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></main>"
 [FAIL] Element.getInnerHTML() on <main>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<main><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></main>" but got "<main><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></main>"
+  assert_equals: expected "<main><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></main>" but got "<main><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></main>"
 [FAIL] ShadowRoot.getInnerHTML() on <main>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<main><template shadowroot=\"open\"><slot></slot></template></main>" but got "<main><template shadowrootmode=\"open\"><slot></slot></template></main>"
+  assert_equals: The default for includeShadowRoots should be true expected "<main><template shadowroot=\\"open\\"><slot></slot></template></main>" but got "<main><template shadowrootmode=\\"open\\"><slot></slot></template></main>"
 [FAIL] ShadowRoot.getInnerHTML() on <main>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<main><template shadowroot=\"closed\"><slot></slot></template></main>" but got "<main><template shadowrootmode=\"closed\"><slot></slot></template></main>"
+  assert_equals: expected "<main><template shadowroot=\\"closed\\"><slot></slot></template></main>" but got "<main><template shadowrootmode=\\"closed\\"><slot></slot></template></main>"
 [FAIL] ShadowRoot.getInnerHTML() on <main>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<main><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></main>" but got "<main><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></main>"
+  assert_equals: The default for includeShadowRoots should be true expected "<main><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></main>" but got "<main><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></main>"
 [FAIL] ShadowRoot.getInnerHTML() on <main>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<main><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></main>" but got "<main><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></main>"
+  assert_equals: expected "<main><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></main>" but got "<main><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></main>"
 [PASS] Element.getInnerHTML() on <map>
 [PASS] ShadowRoot.getInnerHTML() on <map>
 [PASS] Element.getInnerHTML() on <mark>
@@ -324,21 +324,21 @@
 [PASS] Element.getInnerHTML() on <meter>
 [PASS] ShadowRoot.getInnerHTML() on <meter>
 [FAIL] Element.getInnerHTML() on <nav>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<nav><template shadowroot=\"open\"><slot></slot></template></nav>" but got "<nav><template shadowrootmode=\"open\"><slot></slot></template></nav>"
+  assert_equals: The default for includeShadowRoots should be true expected "<nav><template shadowroot=\\"open\\"><slot></slot></template></nav>" but got "<nav><template shadowrootmode=\\"open\\"><slot></slot></template></nav>"
 [FAIL] Element.getInnerHTML() on <nav>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<nav><template shadowroot=\"closed\"><slot></slot></template></nav>" but got "<nav><template shadowrootmode=\"closed\"><slot></slot></template></nav>"
+  assert_equals: expected "<nav><template shadowroot=\\"closed\\"><slot></slot></template></nav>" but got "<nav><template shadowrootmode=\\"closed\\"><slot></slot></template></nav>"
 [FAIL] Element.getInnerHTML() on <nav>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<nav><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></nav>" but got "<nav><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></nav>"
+  assert_equals: The default for includeShadowRoots should be true expected "<nav><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></nav>" but got "<nav><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></nav>"
 [FAIL] Element.getInnerHTML() on <nav>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<nav><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></nav>" but got "<nav><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></nav>"
+  assert_equals: expected "<nav><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></nav>" but got "<nav><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></nav>"
 [FAIL] ShadowRoot.getInnerHTML() on <nav>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<nav><template shadowroot=\"open\"><slot></slot></template></nav>" but got "<nav><template shadowrootmode=\"open\"><slot></slot></template></nav>"
+  assert_equals: The default for includeShadowRoots should be true expected "<nav><template shadowroot=\\"open\\"><slot></slot></template></nav>" but got "<nav><template shadowrootmode=\\"open\\"><slot></slot></template></nav>"
 [FAIL] ShadowRoot.getInnerHTML() on <nav>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<nav><template shadowroot=\"closed\"><slot></slot></template></nav>" but got "<nav><template shadowrootmode=\"closed\"><slot></slot></template></nav>"
+  assert_equals: expected "<nav><template shadowroot=\\"closed\\"><slot></slot></template></nav>" but got "<nav><template shadowrootmode=\\"closed\\"><slot></slot></template></nav>"
 [FAIL] ShadowRoot.getInnerHTML() on <nav>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<nav><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></nav>" but got "<nav><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></nav>"
+  assert_equals: The default for includeShadowRoots should be true expected "<nav><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></nav>" but got "<nav><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></nav>"
 [FAIL] ShadowRoot.getInnerHTML() on <nav>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<nav><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></nav>" but got "<nav><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></nav>"
+  assert_equals: expected "<nav><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></nav>" but got "<nav><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></nav>"
 [PASS] Element.getInnerHTML() on <noscript>
 [PASS] ShadowRoot.getInnerHTML() on <noscript>
 [PASS] Element.getInnerHTML() on <object>
@@ -352,21 +352,21 @@
 [PASS] Element.getInnerHTML() on <output>
 [PASS] ShadowRoot.getInnerHTML() on <output>
 [FAIL] Element.getInnerHTML() on <p>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<p><template shadowroot=\"open\"><slot></slot></template></p>" but got "<p><template shadowrootmode=\"open\"><slot></slot></template></p>"
+  assert_equals: The default for includeShadowRoots should be true expected "<p><template shadowroot=\\"open\\"><slot></slot></template></p>" but got "<p><template shadowrootmode=\\"open\\"><slot></slot></template></p>"
 [FAIL] Element.getInnerHTML() on <p>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<p><template shadowroot=\"closed\"><slot></slot></template></p>" but got "<p><template shadowrootmode=\"closed\"><slot></slot></template></p>"
+  assert_equals: expected "<p><template shadowroot=\\"closed\\"><slot></slot></template></p>" but got "<p><template shadowrootmode=\\"closed\\"><slot></slot></template></p>"
 [FAIL] Element.getInnerHTML() on <p>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<p><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></p>" but got "<p><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></p>"
+  assert_equals: The default for includeShadowRoots should be true expected "<p><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></p>" but got "<p><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></p>"
 [FAIL] Element.getInnerHTML() on <p>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<p><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></p>" but got "<p><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></p>"
+  assert_equals: expected "<p><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></p>" but got "<p><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></p>"
 [FAIL] ShadowRoot.getInnerHTML() on <p>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<p><template shadowroot=\"open\"><slot></slot></template></p>" but got "<p><template shadowrootmode=\"open\"><slot></slot></template></p>"
+  assert_equals: The default for includeShadowRoots should be true expected "<p><template shadowroot=\\"open\\"><slot></slot></template></p>" but got "<p><template shadowrootmode=\\"open\\"><slot></slot></template></p>"
 [FAIL] ShadowRoot.getInnerHTML() on <p>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<p><template shadowroot=\"closed\"><slot></slot></template></p>" but got "<p><template shadowrootmode=\"closed\"><slot></slot></template></p>"
+  assert_equals: expected "<p><template shadowroot=\\"closed\\"><slot></slot></template></p>" but got "<p><template shadowrootmode=\\"closed\\"><slot></slot></template></p>"
 [FAIL] ShadowRoot.getInnerHTML() on <p>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<p><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></p>" but got "<p><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></p>"
+  assert_equals: The default for includeShadowRoots should be true expected "<p><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></p>" but got "<p><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></p>"
 [FAIL] ShadowRoot.getInnerHTML() on <p>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<p><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></p>" but got "<p><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></p>"
+  assert_equals: expected "<p><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></p>" but got "<p><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></p>"
 [PASS] Element.getInnerHTML() on <param>
 [PASS] ShadowRoot.getInnerHTML() on <param>
 [PASS] Element.getInnerHTML() on <pre>
@@ -388,21 +388,21 @@
 [PASS] Element.getInnerHTML() on <script>
 [PASS] ShadowRoot.getInnerHTML() on <script>
 [FAIL] Element.getInnerHTML() on <section>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<section><template shadowroot=\"open\"><slot></slot></template></section>" but got "<section><template shadowrootmode=\"open\"><slot></slot></template></section>"
+  assert_equals: The default for includeShadowRoots should be true expected "<section><template shadowroot=\\"open\\"><slot></slot></template></section>" but got "<section><template shadowrootmode=\\"open\\"><slot></slot></template></section>"
 [FAIL] Element.getInnerHTML() on <section>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<section><template shadowroot=\"closed\"><slot></slot></template></section>" but got "<section><template shadowrootmode=\"closed\"><slot></slot></template></section>"
+  assert_equals: expected "<section><template shadowroot=\\"closed\\"><slot></slot></template></section>" but got "<section><template shadowrootmode=\\"closed\\"><slot></slot></template></section>"
 [FAIL] Element.getInnerHTML() on <section>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<section><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></section>" but got "<section><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></section>"
+  assert_equals: The default for includeShadowRoots should be true expected "<section><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></section>" but got "<section><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></section>"
 [FAIL] Element.getInnerHTML() on <section>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<section><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></section>" but got "<section><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></section>"
+  assert_equals: expected "<section><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></section>" but got "<section><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></section>"
 [FAIL] ShadowRoot.getInnerHTML() on <section>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<section><template shadowroot=\"open\"><slot></slot></template></section>" but got "<section><template shadowrootmode=\"open\"><slot></slot></template></section>"
+  assert_equals: The default for includeShadowRoots should be true expected "<section><template shadowroot=\\"open\\"><slot></slot></template></section>" but got "<section><template shadowrootmode=\\"open\\"><slot></slot></template></section>"
 [FAIL] ShadowRoot.getInnerHTML() on <section>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<section><template shadowroot=\"closed\"><slot></slot></template></section>" but got "<section><template shadowrootmode=\"closed\"><slot></slot></template></section>"
+  assert_equals: expected "<section><template shadowroot=\\"closed\\"><slot></slot></template></section>" but got "<section><template shadowrootmode=\\"closed\\"><slot></slot></template></section>"
 [FAIL] ShadowRoot.getInnerHTML() on <section>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<section><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></section>" but got "<section><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></section>"
+  assert_equals: The default for includeShadowRoots should be true expected "<section><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></section>" but got "<section><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></section>"
 [FAIL] ShadowRoot.getInnerHTML() on <section>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<section><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></section>" but got "<section><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></section>"
+  assert_equals: expected "<section><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></section>" but got "<section><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></section>"
 [PASS] Element.getInnerHTML() on <select>
 [PASS] ShadowRoot.getInnerHTML() on <select>
 [PASS] Element.getInnerHTML() on <slot>
@@ -412,21 +412,21 @@
 [PASS] Element.getInnerHTML() on <source>
 [PASS] ShadowRoot.getInnerHTML() on <source>
 [FAIL] Element.getInnerHTML() on <span>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<span><template shadowroot=\"open\"><slot></slot></template></span>" but got "<span><template shadowrootmode=\"open\"><slot></slot></template></span>"
+  assert_equals: The default for includeShadowRoots should be true expected "<span><template shadowroot=\\"open\\"><slot></slot></template></span>" but got "<span><template shadowrootmode=\\"open\\"><slot></slot></template></span>"
 [FAIL] Element.getInnerHTML() on <span>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<span><template shadowroot=\"closed\"><slot></slot></template></span>" but got "<span><template shadowrootmode=\"closed\"><slot></slot></template></span>"
+  assert_equals: expected "<span><template shadowroot=\\"closed\\"><slot></slot></template></span>" but got "<span><template shadowrootmode=\\"closed\\"><slot></slot></template></span>"
 [FAIL] Element.getInnerHTML() on <span>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<span><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></span>" but got "<span><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></span>"
+  assert_equals: The default for includeShadowRoots should be true expected "<span><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></span>" but got "<span><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></span>"
 [FAIL] Element.getInnerHTML() on <span>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<span><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></span>" but got "<span><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></span>"
+  assert_equals: expected "<span><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></span>" but got "<span><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></span>"
 [FAIL] ShadowRoot.getInnerHTML() on <span>, with mode=open, delegatesFocus=false.
-  assert_equals: The default for includeShadowRoots should be true expected "<span><template shadowroot=\"open\"><slot></slot></template></span>" but got "<span><template shadowrootmode=\"open\"><slot></slot></template></span>"
+  assert_equals: The default for includeShadowRoots should be true expected "<span><template shadowroot=\\"open\\"><slot></slot></template></span>" but got "<span><template shadowrootmode=\\"open\\"><slot></slot></template></span>"
 [FAIL] ShadowRoot.getInnerHTML() on <span>, with mode=closed, delegatesFocus=false.
-  assert_equals: expected "<span><template shadowroot=\"closed\"><slot></slot></template></span>" but got "<span><template shadowrootmode=\"closed\"><slot></slot></template></span>"
+  assert_equals: expected "<span><template shadowroot=\\"closed\\"><slot></slot></template></span>" but got "<span><template shadowrootmode=\\"closed\\"><slot></slot></template></span>"
 [FAIL] ShadowRoot.getInnerHTML() on <span>, with mode=open, delegatesFocus=true.
-  assert_equals: The default for includeShadowRoots should be true expected "<span><template shadowroot=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></span>" but got "<span><template shadowrootmode=\"open\" shadowrootdelegatesfocus=\"\"><slot></slot></template></span>"
+  assert_equals: The default for includeShadowRoots should be true expected "<span><template shadowroot=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></span>" but got "<span><template shadowrootmode=\\"open\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></span>"
 [FAIL] ShadowRoot.getInnerHTML() on <span>, with mode=closed, delegatesFocus=true.
-  assert_equals: expected "<span><template shadowroot=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></span>" but got "<span><template shadowrootmode=\"closed\" shadowrootdelegatesfocus=\"\"><slot></slot></template></span>"
+  assert_equals: expected "<span><template shadowroot=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></span>" but got "<span><template shadowrootmode=\\"closed\\" shadowrootdelegatesfocus=\\"\\"><slot></slot></template></span>"
 [PASS] Element.getInnerHTML() on <strong>
 [PASS] ShadowRoot.getInnerHTML() on <strong>
 [PASS] Element.getInnerHTML() on <style>
diff --git a/third_party/chromite b/third_party/chromite
index e2b86e4..eacd3aa 160000
--- a/third_party/chromite
+++ b/third_party/chromite
@@ -1 +1 @@
-Subproject commit e2b86e44a8f0dda3b5ef536950ebf2c0d2021680
+Subproject commit eacd3aac0c2cd69a4040c450f09a6d8133b38791
diff --git a/third_party/crashpad/README.chromium b/third_party/crashpad/README.chromium
index fff83d6..c8fb626f 100644
--- a/third_party/crashpad/README.chromium
+++ b/third_party/crashpad/README.chromium
@@ -2,7 +2,7 @@
 Short Name: crashpad
 URL: https://crashpad.chromium.org/
 Version: N/A
-Revision: 1675ce7c586c2a3ad3a03dd82e983fd6c188c7fc
+Revision: 573918571f30de8e58e2fbfa2ffbc809f116323c
 License: Apache 2.0
 License File: crashpad/LICENSE
 Security Critical: yes
diff --git a/third_party/crashpad/crashpad/DEPS b/third_party/crashpad/crashpad/DEPS
index aad7bbc..4b448d6 100644
--- a/third_party/crashpad/crashpad/DEPS
+++ b/third_party/crashpad/crashpad/DEPS
@@ -47,7 +47,7 @@
       '9719c1e1e676814c456b55f5f070eabad6709d31',
   'crashpad/third_party/mini_chromium/mini_chromium':
       Var('chromium_git') + '/chromium/mini_chromium@' +
-      'e508a6010e25ba2619317b45995a30f65d2af9b3',
+      '450b101187b5311317dec2981303f60a3a0760fb',
   'crashpad/third_party/libfuzzer/src':
       Var('chromium_git') + '/chromium/llvm-project/compiler-rt/lib/fuzzer.git@' +
       'fda403cf93ecb8792cb1d061564d89a6553ca020',
diff --git a/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.h b/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.h
index d355433..6e3bb45 100644
--- a/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.h
+++ b/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.h
@@ -145,7 +145,7 @@
 
 //! \brief Conversion functions from a native UTF16 C-string to a char16_t
 //!     C-string. No-op where the native UTF16 string is std::u16string.
-#if defined(WCHAR_T_IS_UTF16) || DOXYGEN
+#if defined(WCHAR_T_IS_16_BIT) || DOXYGEN
 inline const char16_t* AsU16CStr(const wchar_t* str) {
   return reinterpret_cast<const char16_t*>(str);
 }
diff --git a/third_party/crashpad/crashpad/snapshot/minidump/process_snapshot_minidump.cc b/third_party/crashpad/crashpad/snapshot/minidump/process_snapshot_minidump.cc
index e88a2646..03f3217 100644
--- a/third_party/crashpad/crashpad/snapshot/minidump/process_snapshot_minidump.cc
+++ b/third_party/crashpad/crashpad/snapshot/minidump/process_snapshot_minidump.cc
@@ -346,7 +346,7 @@
   switch (stream_it->second->DataSize) {
     case sizeof(MINIDUMP_MISC_INFO_5):
     case sizeof(MINIDUMP_MISC_INFO_4):
-#if defined(WCHAR_T_IS_UTF16)
+#if defined(WCHAR_T_IS_16_BIT)
       full_version_ = base::WideToUTF8(info.BuildString);
 #else
       full_version_ = base::UTF16ToUTF8(info.BuildString);
diff --git a/third_party/dawn b/third_party/dawn
index e9493e8..c77a135 160000
--- a/third_party/dawn
+++ b/third_party/dawn
@@ -1 +1 @@
-Subproject commit e9493e836fedc06290c333df9a17c0280d5b1475
+Subproject commit c77a135a468ff0d9baafa5f39a43731d8e6b2324
diff --git a/third_party/depot_tools b/third_party/depot_tools
index ccc34d2..e72395e 160000
--- a/third_party/depot_tools
+++ b/third_party/depot_tools
@@ -1 +1 @@
-Subproject commit ccc34d2b44d8520f9b4c2697001f36444c78cd66
+Subproject commit e72395e5f2b481bf91a444bc30c4dc732971ad78
diff --git a/third_party/devtools-frontend-internal b/third_party/devtools-frontend-internal
index cf91b12..a73d0db 160000
--- a/third_party/devtools-frontend-internal
+++ b/third_party/devtools-frontend-internal
@@ -1 +1 @@
-Subproject commit cf91b12b6ad5caa04d7c7eb818b6e5ac063118ed
+Subproject commit a73d0db98fe40725ba61520c25e04a7bfefc5646
diff --git a/third_party/devtools-frontend/src b/third_party/devtools-frontend/src
index 0aa77da..3561fee 160000
--- a/third_party/devtools-frontend/src
+++ b/third_party/devtools-frontend/src
@@ -1 +1 @@
-Subproject commit 0aa77da4b42c85eaed588ad00f3bb2a6b2e5d966
+Subproject commit 3561fee2b4ee353389e0060e384bdc218d3dd298
diff --git a/third_party/instrumented_libraries/binaries/msan-chained-origins-focal.tgz.sha1 b/third_party/instrumented_libraries/binaries/msan-chained-origins-focal.tgz.sha1
index 9064aa1..d6dc32f 100644
--- a/third_party/instrumented_libraries/binaries/msan-chained-origins-focal.tgz.sha1
+++ b/third_party/instrumented_libraries/binaries/msan-chained-origins-focal.tgz.sha1
@@ -1 +1 @@
-7d3c8d0964a152fc28aaaa84e8fea411e57cf87e
\ No newline at end of file
+613ca7186114dd13a0a52500bf780dfa65062827
\ No newline at end of file
diff --git a/third_party/instrumented_libraries/binaries/msan-no-origins-focal.tgz.sha1 b/third_party/instrumented_libraries/binaries/msan-no-origins-focal.tgz.sha1
index e989fea..f77d7c1 100644
--- a/third_party/instrumented_libraries/binaries/msan-no-origins-focal.tgz.sha1
+++ b/third_party/instrumented_libraries/binaries/msan-no-origins-focal.tgz.sha1
@@ -1 +1 @@
-1c1dc5a2f68921e58a8f5c531d6eed81373d9a82
\ No newline at end of file
+1b213c0576d6539d7b3293cdb46d828815cd7fd4
\ No newline at end of file
diff --git a/third_party/instrumented_libraries/focal/scripts/download_build_install.py b/third_party/instrumented_libraries/focal/scripts/download_build_install.py
index e1d8fdc4..945c367 100755
--- a/third_party/instrumented_libraries/focal/scripts/download_build_install.py
+++ b/third_party/instrumented_libraries/focal/scripts/download_build_install.py
@@ -281,18 +281,27 @@
         Builds the package with ./configure + make, installs it to a temporary
         location, then moves the relevant files to their permanent location.
         """
-        if os.path.exists(os.path.join(self._source_dir, "configure")):
+        configure = os.path.join(self._source_dir, "configure")
+        configure_exists = os.path.exists(configure)
+        if configure_exists:
             configure_cmd = [
-                "./configure",
+                configure,
                 "--libdir=/%s/" % self._libdir,
             ] + self._extra_configure_flags
             self.shell_call(configure_cmd,
                             env=self._build_env,
                             cwd=self._source_dir)
 
-        # Some makefiles use BUILDROOT or INSTALL_ROOT instead of DESTDIR.
-        args = ["DESTDIR", "BUILDROOT", "INSTALL_ROOT"]
-        make_args = ["%s=%s" % (name, self.temp_dir()) for name in args]
+        args = {
+            # Some makefiles use BUILDROOT or INSTALL_ROOT instead of DESTDIR.
+            "DESTDIR": self.temp_dir(),
+            "BUILDROOT": self.temp_dir(),
+            "INSTALL_ROOT": self.temp_dir(),
+        }
+        if not configure_exists:
+            # Specify LIBDIR in case ./configure isn't used for this package.
+            args['LIBDIR'] = '/%s/' % self._libdir
+        make_args = ["%s=%s" % item for item in args.items()]
         self.make(make_args + self._make_targets)
 
         self.make_install(make_args)
diff --git a/third_party/perfetto b/third_party/perfetto
index 72cd237..7e1ff25 160000
--- a/third_party/perfetto
+++ b/third_party/perfetto
@@ -1 +1 @@
-Subproject commit 72cd237dbedb3812a44305f923a1f149c108cf38
+Subproject commit 7e1ff250095383dbac1d56a8ed4f9e3c04e5dccd
diff --git a/third_party/protobuf/BUILD.gn b/third_party/protobuf/BUILD.gn
index 75edde1..77048b68 100644
--- a/third_party/protobuf/BUILD.gn
+++ b/third_party/protobuf/BUILD.gn
@@ -145,71 +145,66 @@
 # specify the LITE_RUNTIME option. The protocol compiler itself (protoc) falls
 # into that category. Do not use in Chrome code.
 static_library("protobuf_full") {
-  # Prevent people from depending on this outside our file.
-  visibility = [
-    ":*",
+  if (defined(build_with_chromium) && build_with_chromium) {
+    # Prevent people from depending on this outside our file.
+    visibility = [
+      ":*",
 
-    # Used for testing protobuf generation.
-    "//base/test:proto_test_support",
+      # Used for testing protobuf generation.
+      "//base/test:proto_test_support",
 
-    # requires descriptors & reflection; testonly.
-    "//third_party/libprotobuf-mutator:*",
+      # requires descriptors & reflection; testonly.
+      "//third_party/libprotobuf-mutator:*",
 
-    # Chromecast requires descriptors and reflection.
-    "//chromecast/*",
+      # Chromecast requires descriptors and reflection.
+      "//chromecast/*",
 
-    # libassistant requires descriptors and reflection for testing.
-    "//libassistant/*",
+      # libassistant requires descriptors and reflection for testing.
+      "//libassistant/*",
 
-    # Perfetto uses the full library for testing.
-    "//third_party/perfetto/gn:protobuf_full",
+      # Perfetto uses the full library for testing.
+      "//third_party/perfetto/gn:protobuf_full",
 
-    # Some tests inside ChromeOS need reflection to parse golden files.
-    # Not included in production code.
-    "//chrome/test:usage_time_limit_unittests",
+      # Some tests inside ChromeOS need reflection to parse golden files.
+      # Not included in production code.
+      "//chrome/test:usage_time_limit_unittests",
 
-    # The protobuf-based SQLite and GPU fuzzers need protobuf_full and are not
-    # included in Chrome.
-    "//gpu:gl_lpm_fuzzer_proto",
-    "//gpu:gl_lpm_fuzzer_proto_gen",
-    "//gpu:gl_lpm_shader_to_string_unittest",
-    "//testing/libfuzzer/fuzzers:command_buffer_lpm_fuzzer_proto",
-    "//testing/libfuzzer/fuzzers:command_buffer_lpm_fuzzer_proto_gen",
-    "//third_party/sqlite:sqlite3_lpm_corpus_gen",
+      # The protobuf-based SQLite and GPU fuzzers need protobuf_full and are not
+      # included in Chrome.
+      "//gpu:gl_lpm_fuzzer_proto",
+      "//gpu:gl_lpm_fuzzer_proto_gen",
+      "//gpu:gl_lpm_shader_to_string_unittest",
+      "//testing/libfuzzer/fuzzers:command_buffer_lpm_fuzzer_proto",
+      "//testing/libfuzzer/fuzzers:command_buffer_lpm_fuzzer_proto_gen",
+      "//third_party/sqlite:sqlite3_lpm_corpus_gen",
 
-    # The protobuf-based Mojo LPM fuzzer needs protobuf_full and is not included
-    # in Chrome.
-    "//mojo/public/tools/fuzzers:mojolpm",
+      # The protobuf-based Mojo LPM fuzzer needs protobuf_full and is not included
+      # in Chrome.
+      "//mojo/public/tools/fuzzers:mojolpm",
 
-    # The root store tool is not part of Chrome itself, and needs to parse
-    # human-readable protobufs. Protobuf is stored in //net/cert however as
-    # browser needs to be able to parse serialized protobuf (which is exposed
-    # as a separate lite BUILD rule).
-    "//net/cert:root_store_proto_full",
+      # The root store tool is not part of Chrome itself, and needs to parse
+      # human-readable protobufs. Protobuf is stored in //net/cert however as
+      # browser needs to be able to parse serialized protobuf (which is exposed
+      # as a separate lite BUILD rule).
+      "//net/cert:root_store_proto_full",
 
-    # The spirv-fuzz fuzzer tool needs protobuf_full and is not included in
-    # Chrome.
-    "//third_party/vulkan-deps/spirv-tools/src:spirv-fuzz",
-    "//third_party/vulkan-deps/spirv-tools/src:spvtools_fuzz",
-    "//third_party/vulkan-deps/spirv-tools/src:spvtools_fuzz_proto",
+      # The spirv-fuzz fuzzer tool needs protobuf_full and is not included in
+      # Chrome.
+      "//third_party/vulkan-deps/spirv-tools/src:spirv-fuzz",
+      "//third_party/vulkan-deps/spirv-tools/src:spvtools_fuzz",
+      "//third_party/vulkan-deps/spirv-tools/src:spvtools_fuzz_proto",
 
-    # Some fuzzers for tint need protobuf_full and are not included in Chrome.
-    # TODO(dawn:1339): Remove the *third_party/tint* entries once Tint
-    #                  is merged into Dawn
-    "//third_party/dawn/src/tint/fuzzers/tint_ast_fuzzer:tint_ast_fuzzer",
-    "//third_party/dawn/src/tint/fuzzers/tint_ast_fuzzer:tint_ast_fuzzer_proto",
-    "//third_party/dawn/src/tint/fuzzers/tint_spirv_tools_fuzzer:tint_spirv_tools_fuzzer",
-    "//third_party/dawn/third_party/tint/src/tint/fuzzers/tint_ast_fuzzer:tint_ast_fuzzer",
-    "//third_party/dawn/third_party/tint/src/tint/fuzzers/tint_ast_fuzzer:tint_ast_fuzzer_proto",
-    "//third_party/dawn/third_party/tint/src/tint/fuzzers/tint_spirv_tools_fuzzer:tint_spirv_tools_fuzzer",
+      # Some fuzzers for tint need protobuf_full and are not included in Chrome.
+      "//third_party/dawn/src/tint/*",
 
-    # Dawn LPM Fuzzers
-    "//third_party/dawn/src/dawn/fuzzers:dawn_lpm_proto",
-    "//third_party/dawn/src/dawn/fuzzers:dawn_lpm_proto_gen",
+      # Dawn LPM Fuzzers
+      "//third_party/dawn/src/dawn/fuzzers:dawn_lpm_proto",
+      "//third_party/dawn/src/dawn/fuzzers:dawn_lpm_proto_gen",
 
-    # The Cast Core gRPC generator tool.
-    "//third_party/cast_core/public/src/build/chromium:cast_core_grpc_generator",
-  ]
+      # The Cast Core gRPC generator tool.
+      "//third_party/cast_core/public/src/build/chromium:cast_core_grpc_generator",
+    ]
+  }
 
   deps = [ "//third_party/zlib" ]
 
diff --git a/third_party/skia b/third_party/skia
index 71d865c..51b8c1c 160000
--- a/third_party/skia
+++ b/third_party/skia
@@ -1 +1 @@
-Subproject commit 71d865c5211edc45e856f002b5fbbe562dadc91c
+Subproject commit 51b8c1cc715ab028802bbb739add0927235cf461
diff --git a/third_party/vulkan-deps b/third_party/vulkan-deps
index e55b4f7..04fa2390 160000
--- a/third_party/vulkan-deps
+++ b/third_party/vulkan-deps
@@ -1 +1 @@
-Subproject commit e55b4f78bcf354ebb7d6a4d48d4bd33713f3daba
+Subproject commit 04fa239099325005373f80c850175c958b01bdae
diff --git a/third_party/webrtc b/third_party/webrtc
index 03bc3a0..ad9c477 160000
--- a/third_party/webrtc
+++ b/third_party/webrtc
@@ -1 +1 @@
-Subproject commit 03bc3a0fa67e274efb4518da005f4c5b77c607e9
+Subproject commit ad9c4773f46a829945aa4a62d7621543ae0e7242
diff --git a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/testrunner.py b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/testrunner.py
index b84f1a52..a4f759c4 100644
--- a/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/testrunner.py
+++ b/third_party/wpt_tools/wpt/tools/wptrunner/wptrunner/testrunner.py
@@ -701,7 +701,7 @@
                 # change result to unexpected if expected_fail_message does not
                 # match
                 expected_fail_message = test.expected_fail_message(result.name)
-                if expected_fail_message is not None and result.message != expected_fail_message:
+                if expected_fail_message is not None and result.message.strip() != expected_fail_message:
                     is_unexpected = True
 
             if is_unexpected:
diff --git a/tools/json_schema_compiler/cc_generator.py b/tools/json_schema_compiler/cc_generator.py
index c54be555..6fce3ae84 100644
--- a/tools/json_schema_compiler/cc_generator.py
+++ b/tools/json_schema_compiler/cc_generator.py
@@ -47,6 +47,7 @@
                self._namespace.short_filename))
       .Append()
       .Append('#include <memory>')
+      .Append('#include <optional>')
       .Append('#include <ostream>')
       .Append('#include <string>')
       .Append('#include <utility>')
@@ -499,7 +500,7 @@
       c.Append('DCHECK(!error.empty());')
       c.Append('return base::unexpected(std::move(error));')
     else:
-      c.Append('return absl::nullopt;')
+      c.Append('return std::nullopt;')
     c.Eblock('}')
 
     c.Append('return out;')
@@ -1011,12 +1012,12 @@
     c = Code()
 
     (c.Append('// static')
-      .Sblock('absl::optional<Params> Params::Create(%s) {' %
+      .Sblock('std::optional<Params> Params::Create(%s) {' %
                   self._GenerateParams([
                       'const base::Value::List& args']))
     )
 
-    failure_value = 'absl::nullopt'
+    failure_value = 'std::nullopt'
     (c.Concat(self._GenerateParamsCheck(function, 'args', failure_value))
       .Append('Params params;')
     )
@@ -1132,14 +1133,14 @@
                 type_.name,
                 self._util_cc_helper.GetValueTypeString('%%(src_var)s')))))
       if is_ptr:
-        if cpp_util.ShouldUseAbslOptional(underlying_type):
-          c.Append('%(dst_var)s = absl::nullopt;')
+        if cpp_util.ShouldUseStdOptional(underlying_type):
+          c.Append('%(dst_var)s = std::nullopt;')
         else:
           c.Append('%(dst_var)s.reset();')
       c.Append('return %(failure_value)s;')
       (c.Eblock('}'))
       if is_ptr:
-        if cpp_util.ShouldUseAbslOptional(underlying_type):
+        if cpp_util.ShouldUseStdOptional(underlying_type):
           c.Append('%(dst_var)s = *temp;')
         elif is_string_or_function:
           c.Append('%(dst_var)s = std::make_unique<%(cpp_type)s>(*temp);')
diff --git a/tools/json_schema_compiler/cpp_type_generator.py b/tools/json_schema_compiler/cpp_type_generator.py
index 5328687..e29f782 100644
--- a/tools/json_schema_compiler/cpp_type_generator.py
+++ b/tools/json_schema_compiler/cpp_type_generator.py
@@ -41,7 +41,7 @@
     when it should support string errors.
     """
     return (('base::expected<{typename}, std::u16string>'
-        if support_errors else 'absl::optional<{typename}>')
+        if support_errors else 'std::optional<{typename}>')
           .format(typename=typename))
 
   def IsEnumModernised(self, type_):
@@ -225,8 +225,8 @@
     # TODO(kalman): change this - but it's an exceedingly far-reaching change.
     if not self.FollowRef(type_).property_type == PropertyType.ENUM:
       if is_optional:
-        if cpp_util.ShouldUseAbslOptional(self.FollowRef(type_)):
-          cpp_type = 'absl::optional<%s>' % cpp_type
+        if cpp_util.ShouldUseStdOptional(self.FollowRef(type_)):
+          cpp_type = 'std::optional<%s>' % cpp_type
         else:
           cpp_type = 'std::unique_ptr<%s>' % cpp_type
 
diff --git a/tools/json_schema_compiler/cpp_util.py b/tools/json_schema_compiler/cpp_util.py
index b2511e0..6f5437b 100644
--- a/tools/json_schema_compiler/cpp_util.py
+++ b/tools/json_schema_compiler/cpp_util.py
@@ -104,9 +104,9 @@
 
   raise ValueError('Invalid type: %s' % type_.name)
 
-def ShouldUseAbslOptional(type_):
+def ShouldUseStdOptional(type_):
   """Called to validate whether or not an optional value should be represented
-  with absl::optional. This function is a temporary utility, while optional
+  with std::optional. This function is a temporary utility, while optional
   fields are gradually migrated away from using std::unique_ptr.
   """
 
diff --git a/tools/json_schema_compiler/h_generator.py b/tools/json_schema_compiler/h_generator.py
index c161cd76..2d713757 100644
--- a/tools/json_schema_compiler/h_generator.py
+++ b/tools/json_schema_compiler/h_generator.py
@@ -57,6 +57,7 @@
       .Append()
       .Append('#include <map>')
       .Append('#include <memory>')
+      .Append('#include <optional>')
       .Append('#include <string>')
       .Append('#include <vector>')
       .Append()
@@ -412,7 +413,7 @@
           'returning errors with `base::expected`.')
       )
 
-    (c.Append('static absl::optional<Params> Create(%s);' %
+    (c.Append('static std::optional<Params> Create(%s);' %
                 self._GenerateParams(
                     ('const base::Value::List& args',)))
       .Append('Params(const Params&) = delete;')
diff --git a/tools/json_schema_compiler/manifest_parse_util.h b/tools/json_schema_compiler/manifest_parse_util.h
index 85f93c22..7001614 100644
--- a/tools/json_schema_compiler/manifest_parse_util.h
+++ b/tools/json_schema_compiler/manifest_parse_util.h
@@ -84,11 +84,11 @@
                          std::u16string& error,
                          std::vector<base::StringPiece>& error_path_reversed);
 
-// This overload is used for optional types wrapped as absl::optional<T>.
+// This overload is used for optional types wrapped as std::optional<T>.
 template <typename T>
 bool ParseFromDictionary(const base::Value::Dict& dict,
                          base::StringPiece key,
-                         absl::optional<T>& out_opt,
+                         std::optional<T>& out_opt,
                          std::u16string& error,
                          std::vector<base::StringPiece>& error_path_reversed);
 
@@ -147,7 +147,7 @@
 template <typename T>
 bool ParseFromDictionary(const base::Value::Dict& dict,
                          base::StringPiece key,
-                         absl::optional<T>& out_opt,
+                         std::optional<T>& out_opt,
                          std::u16string& error,
                          std::vector<base::StringPiece>& error_path_reversed) {
   // Ignore optional keys if they are not present without raising an error.
@@ -247,7 +247,7 @@
     base::StringPiece key,
     StringToEnumConverter<T> converter,
     T none_value,
-    absl::optional<std::vector<T>>& out,
+    std::optional<std::vector<T>>& out,
     std::u16string& error,
     std::vector<base::StringPiece>& error_path_reversed) {
   // Ignore optional keys if they are not present without raising an error.
diff --git a/tools/json_schema_compiler/test/additional_properties_unittest.cc b/tools/json_schema_compiler/test/additional_properties_unittest.cc
index dbab9d94..3db3984 100644
--- a/tools/json_schema_compiler/test/additional_properties_unittest.cc
+++ b/tools/json_schema_compiler/test/additional_properties_unittest.cc
@@ -42,7 +42,7 @@
   base::Value param_object_value(std::move(param_object_dict));
   base::Value::List params_value;
   params_value.Append(param_object_value.Clone());
-  absl::optional<ap::AdditionalProperties::Params> params(
+  std::optional<ap::AdditionalProperties::Params> params(
       ap::AdditionalProperties::Params::Create(params_value));
   EXPECT_TRUE(params.has_value());
   EXPECT_EQ(params->param_object.additional_properties, param_object_value);
diff --git a/tools/json_schema_compiler/test/any_unittest.cc b/tools/json_schema_compiler/test/any_unittest.cc
index d481795..296def5e 100644
--- a/tools/json_schema_compiler/test/any_unittest.cc
+++ b/tools/json_schema_compiler/test/any_unittest.cc
@@ -37,7 +37,7 @@
 TEST(JsonSchemaCompilerAnyTest, OptionalAnyParamsCreate) {
   {
     base::Value::List params_value;
-    absl::optional<test::api::any::OptionalAny::Params> params(
+    std::optional<test::api::any::OptionalAny::Params> params(
         test::api::any::OptionalAny::Params::Create(params_value));
     EXPECT_TRUE(params.has_value());
     EXPECT_FALSE(params->any_name);
@@ -46,7 +46,7 @@
     base::Value::List params_value;
     base::Value param("asdf");
     params_value.Append(param.Clone());
-    absl::optional<test::api::any::OptionalAny::Params> params(
+    std::optional<test::api::any::OptionalAny::Params> params(
         test::api::any::OptionalAny::Params::Create(params_value));
     ASSERT_TRUE(params);
     ASSERT_TRUE(params->any_name);
@@ -56,7 +56,7 @@
     base::Value::List params_value;
     base::Value param(true);
     params_value.Append(param.Clone());
-    absl::optional<test::api::any::OptionalAny::Params> params(
+    std::optional<test::api::any::OptionalAny::Params> params(
         test::api::any::OptionalAny::Params::Create(params_value));
     ASSERT_TRUE(params);
     ASSERT_TRUE(params->any_name);
diff --git a/tools/json_schema_compiler/test/arrays_unittest.cc b/tools/json_schema_compiler/test/arrays_unittest.cc
index c2503c89..26dac72 100644
--- a/tools/json_schema_compiler/test/arrays_unittest.cc
+++ b/tools/json_schema_compiler/test/arrays_unittest.cc
@@ -203,7 +203,7 @@
   integer_array.Append(4);
   integer_array.Append(8);
   params_value.Append(std::move(integer_array));
-  absl::optional<arrays::IntegerArray::Params> params(
+  std::optional<arrays::IntegerArray::Params> params(
       arrays::IntegerArray::Params::Create(params_value));
   EXPECT_TRUE(params.has_value());
   ASSERT_EQ(3u, params->nums.size());
@@ -219,7 +219,7 @@
   any_array.Append("test");
   any_array.Append(CreateItemValue(2));
   params_value.Append(std::move(any_array));
-  absl::optional<arrays::AnyArray::Params> params(
+  std::optional<arrays::AnyArray::Params> params(
       arrays::AnyArray::Params::Create(params_value));
   EXPECT_TRUE(params.has_value());
   ASSERT_EQ(3u, params->anys.size());
@@ -233,7 +233,7 @@
   item_array.Append(CreateItemValue(1));
   item_array.Append(CreateItemValue(2));
   params_value.Append(std::move(item_array));
-  absl::optional<arrays::ObjectArray::Params> params(
+  std::optional<arrays::ObjectArray::Params> params(
       arrays::ObjectArray::Params::Create(params_value));
   EXPECT_TRUE(params.has_value());
   ASSERT_EQ(2u, params->objects.size());
@@ -247,7 +247,7 @@
   item_array.Append(CreateItemValue(1));
   item_array.Append(CreateItemValue(2));
   params_value.Append(std::move(item_array));
-  absl::optional<arrays::RefArray::Params> params(
+  std::optional<arrays::RefArray::Params> params(
       arrays::RefArray::Params::Create(params_value));
   EXPECT_TRUE(params.has_value());
   ASSERT_EQ(2u, params->refs.size());
diff --git a/tools/json_schema_compiler/test/choices_unittest.cc b/tools/json_schema_compiler/test/choices_unittest.cc
index 9f882fc..fa5cfb7e 100644
--- a/tools/json_schema_compiler/test/choices_unittest.cc
+++ b/tools/json_schema_compiler/test/choices_unittest.cc
@@ -25,7 +25,7 @@
 
 TEST(JsonSchemaCompilerChoicesTest, TakesIntegersParamsCreate) {
   {
-    absl::optional<TakesIntegers::Params> params(
+    std::optional<TakesIntegers::Params> params(
         TakesIntegers::Params::Create(List(base::Value(true)).GetList()));
 
     static_assert(!std::is_copy_constructible_v<TakesIntegers::Params>);
@@ -36,7 +36,7 @@
     EXPECT_FALSE(params);
   }
   {
-    absl::optional<TakesIntegers::Params> params(
+    std::optional<TakesIntegers::Params> params(
         TakesIntegers::Params::Create(List(base::Value(6)).GetList()));
     ASSERT_TRUE(params);
     EXPECT_FALSE(params->nums.as_integers);
@@ -44,7 +44,7 @@
     EXPECT_EQ(6, *params->nums.Clone().as_integer);
   }
   {
-    absl::optional<TakesIntegers::Params> params(TakesIntegers::Params::Create(
+    std::optional<TakesIntegers::Params> params(TakesIntegers::Params::Create(
         List(List(base::Value(2), base::Value(6), base::Value(8))).GetList()));
     ASSERT_TRUE(params);
     ASSERT_TRUE(params->nums.as_integers);
@@ -55,7 +55,7 @@
 
 TEST(JsonSchemaCompilerChoicesTest, ObjectWithChoicesParamsCreate) {
   {
-    absl::optional<choices::ObjectWithChoices::Params> params(
+    std::optional<choices::ObjectWithChoices::Params> params(
         choices::ObjectWithChoices::Params::Create(
             List(Dictionary("strings", base::Value("asdf"))).GetList()));
     ASSERT_TRUE(params);
@@ -65,7 +65,7 @@
     EXPECT_FALSE(params->string_info.integers);
   }
   {
-    absl::optional<choices::ObjectWithChoices::Params> params(
+    std::optional<choices::ObjectWithChoices::Params> params(
         choices::ObjectWithChoices::Params::Create(
             List(Dictionary("strings", base::Value("asdf"), "integers",
                             base::Value(6)))
@@ -90,7 +90,7 @@
     object_param.Set("strings", 5);
     base::Value::List params_value;
     params_value.Append(std::move(object_param));
-    absl::optional<choices::ObjectWithChoices::Params> params(
+    std::optional<choices::ObjectWithChoices::Params> params(
         choices::ObjectWithChoices::Params::Create(
             base::Value(std::move(params_value)).GetList()));
     EXPECT_FALSE(params.has_value());
@@ -101,7 +101,7 @@
     object_param.Set("integers", "asdf");
     base::Value::List params_value;
     params_value.Append(std::move(object_param));
-    absl::optional<choices::ObjectWithChoices::Params> params(
+    std::optional<choices::ObjectWithChoices::Params> params(
         choices::ObjectWithChoices::Params::Create(
             base::Value(std::move(params_value)).GetList()));
     EXPECT_FALSE(params.has_value());
@@ -111,7 +111,7 @@
     object_param.Set("integers", 6);
     base::Value::List params_value;
     params_value.Append(std::move(object_param));
-    absl::optional<choices::ObjectWithChoices::Params> params(
+    std::optional<choices::ObjectWithChoices::Params> params(
         choices::ObjectWithChoices::Params::Create(
             base::Value(std::move(params_value)).GetList()));
     EXPECT_FALSE(params.has_value());
@@ -195,7 +195,7 @@
   {
     // The plain integer choice.
     base::Value value = ReadJson("42");
-    absl::optional<NestedChoice> obj = NestedChoice::FromValue(value);
+    std::optional<NestedChoice> obj = NestedChoice::FromValue(value);
 
     ASSERT_TRUE(obj);
     ASSERT_TRUE(obj->as_integer);
@@ -209,7 +209,7 @@
   {
     // The string choice within the first choice.
     base::Value value = ReadJson("\"foo\"");
-    absl::optional<NestedChoice> obj = NestedChoice::FromValue(value);
+    std::optional<NestedChoice> obj = NestedChoice::FromValue(value);
 
     ASSERT_TRUE(obj);
     EXPECT_FALSE(obj->as_integer);
@@ -225,7 +225,7 @@
   {
     // The boolean choice within the first choice.
     base::Value value = ReadJson("true");
-    absl::optional<NestedChoice> obj = NestedChoice::FromValue(value);
+    std::optional<NestedChoice> obj = NestedChoice::FromValue(value);
 
     ASSERT_TRUE(obj);
     EXPECT_FALSE(obj->as_integer);
@@ -241,7 +241,7 @@
   {
     // The double choice within the second choice.
     base::Value value = ReadJson("42.0");
-    absl::optional<NestedChoice> obj = NestedChoice::FromValue(value);
+    std::optional<NestedChoice> obj = NestedChoice::FromValue(value);
 
     ASSERT_TRUE(obj);
     EXPECT_FALSE(obj->as_integer);
@@ -259,7 +259,7 @@
     // The ChoiceType choice within the second choice.
     base::Value value =
         ReadJson("{\"integers\": [1, 2], \"strings\": \"foo\"}");
-    absl::optional<NestedChoice> obj = NestedChoice::FromValue(value);
+    std::optional<NestedChoice> obj = NestedChoice::FromValue(value);
 
     ASSERT_TRUE(obj);
     EXPECT_FALSE(obj->as_integer);
@@ -289,7 +289,7 @@
         "  {\"integers\": [1, 2], \"strings\": \"foo\"},"
         "  {\"integers\": 3, \"strings\": [\"bar\", \"baz\"]}"
         "]");
-    absl::optional<NestedChoice> obj = NestedChoice::FromValue(value);
+    std::optional<NestedChoice> obj = NestedChoice::FromValue(value);
 
     ASSERT_TRUE(obj);
     EXPECT_FALSE(obj->as_integer);
diff --git a/tools/json_schema_compiler/test/crossref_unittest.cc b/tools/json_schema_compiler/test/crossref_unittest.cc
index 9d3354e..f5ce447 100644
--- a/tools/json_schema_compiler/test/crossref_unittest.cc
+++ b/tools/json_schema_compiler/test/crossref_unittest.cc
@@ -55,7 +55,7 @@
 TEST(JsonSchemaCompilerCrossrefTest, TestTypeOptionalParamCreate) {
   base::Value::List params_value;
   params_value.Append(CreateTestTypeValue());
-  absl::optional<crossref::TestTypeOptionalParam::Params> params(
+  std::optional<crossref::TestTypeOptionalParam::Params> params(
       crossref::TestTypeOptionalParam::Params::Create(params_value));
   EXPECT_TRUE(params.has_value());
   EXPECT_TRUE(params->test_type);
@@ -67,7 +67,7 @@
   base::Value::Dict test_type_value = CreateTestTypeValue();
   test_type_value.Remove("number");
   params_value.Append(std::move(test_type_value));
-  absl::optional<crossref::TestTypeOptionalParam::Params> params(
+  std::optional<crossref::TestTypeOptionalParam::Params> params(
       crossref::TestTypeOptionalParam::Params::Create(params_value));
   EXPECT_FALSE(params.has_value());
 }
@@ -89,7 +89,7 @@
     param_object_value.Set("testType", CreateTestTypeValue());
     param_object_value.Set("boolean", true);
     params_value.Append(std::move(param_object_value));
-    absl::optional<crossref::TestTypeInObject::Params> params(
+    std::optional<crossref::TestTypeInObject::Params> params(
         crossref::TestTypeInObject::Params::Create(params_value));
     EXPECT_TRUE(params.has_value());
     EXPECT_TRUE(params->param_object.test_type);
@@ -101,7 +101,7 @@
     base::Value::Dict param_object_value;
     param_object_value.Set("boolean", true);
     params_value.Append(std::move(param_object_value));
-    absl::optional<crossref::TestTypeInObject::Params> params(
+    std::optional<crossref::TestTypeInObject::Params> params(
         crossref::TestTypeInObject::Params::Create(params_value));
     EXPECT_TRUE(params.has_value());
     EXPECT_FALSE(params->param_object.test_type);
@@ -113,7 +113,7 @@
     param_object_value.Set("testType", "invalid");
     param_object_value.Set("boolean", true);
     params_value.Append(std::move(param_object_value));
-    absl::optional<crossref::TestTypeInObject::Params> params(
+    std::optional<crossref::TestTypeInObject::Params> params(
         crossref::TestTypeInObject::Params::Create(params_value));
     EXPECT_FALSE(params.has_value());
   }
@@ -122,7 +122,7 @@
     base::Value::Dict param_object_value;
     param_object_value.Set("testType", CreateTestTypeValue());
     params_value.Append(std::move(param_object_value));
-    absl::optional<crossref::TestTypeInObject::Params> params(
+    std::optional<crossref::TestTypeInObject::Params> params(
         crossref::TestTypeInObject::Params::Create(params_value));
     EXPECT_FALSE(params.has_value());
   }
diff --git a/tools/json_schema_compiler/test/enums_unittest.cc b/tools/json_schema_compiler/test/enums_unittest.cc
index e293bbb..8ee0730 100644
--- a/tools/json_schema_compiler/test/enums_unittest.cc
+++ b/tools/json_schema_compiler/test/enums_unittest.cc
@@ -38,7 +38,7 @@
     base::Value::List args;
     args.Append("one");
 
-    absl::optional<enums::TakesEnumAsType::Params> params(
+    std::optional<enums::TakesEnumAsType::Params> params(
         enums::TakesEnumAsType::Params::Create(args));
     ASSERT_TRUE(params.has_value());
     EXPECT_EQ(enums::Enumeration::kOne, params->enumeration);
@@ -82,7 +82,7 @@
   {
     base::Value::List params_value;
     params_value.Append(List(base::Value("one"), base::Value("two")));
-    absl::optional<enums::TakesEnumArrayAsType::Params> params(
+    std::optional<enums::TakesEnumArrayAsType::Params> params(
         enums::TakesEnumArrayAsType::Params::Create(params_value));
     ASSERT_TRUE(params);
     EXPECT_EQ(2U, params->values.size());
@@ -92,7 +92,7 @@
   {
     base::Value::List params_value;
     params_value.Append(List(base::Value("invalid")));
-    absl::optional<enums::TakesEnumArrayAsType::Params> params(
+    std::optional<enums::TakesEnumArrayAsType::Params> params(
         enums::TakesEnumArrayAsType::Params::Create(params_value));
     EXPECT_FALSE(params);
   }
@@ -153,7 +153,7 @@
   {
     base::Value::List params_value;
     params_value.Append("two");
-    absl::optional<enums::TakesEnum::Params> params(
+    std::optional<enums::TakesEnum::Params> params(
         enums::TakesEnum::Params::Create(params_value));
     EXPECT_TRUE(params.has_value());
     EXPECT_EQ(enums::Enumeration::kTwo, params->state);
@@ -161,7 +161,7 @@
   {
     base::Value::List params_value;
     params_value.Append("invalid");
-    absl::optional<enums::TakesEnum::Params> params(
+    std::optional<enums::TakesEnum::Params> params(
         enums::TakesEnum::Params::Create(params_value));
     EXPECT_FALSE(params.has_value());
   }
@@ -171,7 +171,7 @@
   {
     base::Value::List params_value;
     params_value.Append(List(base::Value("one"), base::Value("two")));
-    absl::optional<enums::TakesEnumArray::Params> params(
+    std::optional<enums::TakesEnumArray::Params> params(
         enums::TakesEnumArray::Params::Create(params_value));
     ASSERT_TRUE(params);
     EXPECT_EQ(2U, params->values.size());
@@ -181,7 +181,7 @@
   {
     base::Value::List params_value;
     params_value.Append(List(base::Value("invalid")));
-    absl::optional<enums::TakesEnumArray::Params> params(
+    std::optional<enums::TakesEnumArray::Params> params(
         enums::TakesEnumArray::Params::Create(params_value));
     EXPECT_FALSE(params);
   }
@@ -191,14 +191,14 @@
   {
     base::Value::List params_value;
     params_value.Append("three");
-    absl::optional<enums::TakesOptionalEnum::Params> params(
+    std::optional<enums::TakesOptionalEnum::Params> params(
         enums::TakesOptionalEnum::Params::Create(params_value));
     EXPECT_TRUE(params.has_value());
     EXPECT_EQ(enums::Enumeration::kThree, params->state);
   }
   {
     base::Value::List params_value;
-    absl::optional<enums::TakesOptionalEnum::Params> params(
+    std::optional<enums::TakesOptionalEnum::Params> params(
         enums::TakesOptionalEnum::Params::Create(params_value));
     EXPECT_TRUE(params.has_value());
     EXPECT_EQ(enums::Enumeration::kNone, params->state);
@@ -206,7 +206,7 @@
   {
     base::Value::List params_value;
     params_value.Append("invalid");
-    absl::optional<enums::TakesOptionalEnum::Params> params(
+    std::optional<enums::TakesOptionalEnum::Params> params(
         enums::TakesOptionalEnum::Params::Create(params_value));
     EXPECT_FALSE(params.has_value());
   }
@@ -217,7 +217,7 @@
     base::Value::List params_value;
     params_value.Append("one");
     params_value.Append("ham");
-    absl::optional<enums::TakesMultipleOptionalEnums::Params> params(
+    std::optional<enums::TakesMultipleOptionalEnums::Params> params(
         enums::TakesMultipleOptionalEnums::Params::Create(params_value));
     EXPECT_TRUE(params.has_value());
     EXPECT_EQ(enums::Enumeration::kOne, params->state);
@@ -226,7 +226,7 @@
   {
     base::Value::List params_value;
     params_value.Append("one");
-    absl::optional<enums::TakesMultipleOptionalEnums::Params> params(
+    std::optional<enums::TakesMultipleOptionalEnums::Params> params(
         enums::TakesMultipleOptionalEnums::Params::Create(params_value));
     EXPECT_TRUE(params.has_value());
     EXPECT_EQ(enums::Enumeration::kOne, params->state);
@@ -234,7 +234,7 @@
   }
   {
     base::Value::List params_value;
-    absl::optional<enums::TakesMultipleOptionalEnums::Params> params(
+    std::optional<enums::TakesMultipleOptionalEnums::Params> params(
         enums::TakesMultipleOptionalEnums::Params::Create(params_value));
     EXPECT_TRUE(params.has_value());
     EXPECT_EQ(enums::Enumeration::kNone, params->state);
@@ -244,7 +244,7 @@
     base::Value::List params_value;
     params_value.Append("three");
     params_value.Append("invalid");
-    absl::optional<enums::TakesMultipleOptionalEnums::Params> params(
+    std::optional<enums::TakesMultipleOptionalEnums::Params> params(
         enums::TakesMultipleOptionalEnums::Params::Create(params_value));
     EXPECT_FALSE(params.has_value());
   }
diff --git a/tools/json_schema_compiler/test/features_generation_unittest.cc b/tools/json_schema_compiler/test/features_generation_unittest.cc
index b05fb4a3..1823397 100644
--- a/tools/json_schema_compiler/test/features_generation_unittest.cc
+++ b/tools/json_schema_compiler/test/features_generation_unittest.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <optional>
+
 #include "base/test/bind.h"
 #include "extensions/common/extensions_client.h"
 #include "extensions/common/features/complex_feature.h"
@@ -9,7 +11,6 @@
 #include "extensions/common/features/feature_provider.h"
 #include "extensions/common/features/simple_feature.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/abseil-cpp/absl/types/optional.h"
 #include "tools/json_schema_compiler/test/features_compiler_test.h"
 
 namespace extensions {
@@ -26,8 +27,8 @@
 }
 
 template <typename T>
-void ExpectOptionalVectorsEqual(const absl::optional<std::vector<T>>& expected,
-                                const absl::optional<std::vector<T>>& actual,
+void ExpectOptionalVectorsEqual(const std::optional<std::vector<T>>& expected,
+                                const std::optional<std::vector<T>>& actual,
                                 const std::string& name) {
   if (expected.has_value() != actual.has_value()) {
     ADD_FAILURE() << "Mismatched optional vectors for " << name << ": "
@@ -57,16 +58,16 @@
   std::vector<std::string> allowlist;
   std::vector<std::string> dependencies;
   std::vector<Manifest::Type> extension_types;
-  absl::optional<std::vector<Feature::Context>> contexts;
+  std::optional<std::vector<Feature::Context>> contexts;
   std::vector<Feature::Platform> platforms;
 
   URLPatternSet matches;
 
-  absl::optional<SimpleFeature::Location> location;
-  absl::optional<int> min_manifest_version;
-  absl::optional<int> max_manifest_version;
-  absl::optional<std::string> command_line_switch;
-  absl::optional<version_info::Channel> channel;
+  std::optional<SimpleFeature::Location> location;
+  std::optional<int> min_manifest_version;
+  std::optional<int> max_manifest_version;
+  std::optional<std::string> command_line_switch;
+  std::optional<version_info::Channel> channel;
 
   std::string alias;
   std::string source;
diff --git a/tools/json_schema_compiler/test/functions_on_types_unittest.cc b/tools/json_schema_compiler/test/functions_on_types_unittest.cc
index 238da0d6..69eb007b 100644
--- a/tools/json_schema_compiler/test/functions_on_types_unittest.cc
+++ b/tools/json_schema_compiler/test/functions_on_types_unittest.cc
@@ -15,7 +15,7 @@
 TEST(JsonSchemaCompilerFunctionsOnTypesTest, StorageAreaGetParamsCreate) {
   {
     base::Value::List params_value;
-    absl::optional<functions_on_types::StorageArea::Get::Params> params(
+    std::optional<functions_on_types::StorageArea::Get::Params> params(
         functions_on_types::StorageArea::Get::Params::Create(params_value));
     ASSERT_TRUE(params);
     EXPECT_FALSE(params->keys);
@@ -23,14 +23,14 @@
   {
     base::Value::List params_value;
     params_value.Append(9);
-    absl::optional<functions_on_types::StorageArea::Get::Params> params(
+    std::optional<functions_on_types::StorageArea::Get::Params> params(
         functions_on_types::StorageArea::Get::Params::Create(params_value));
     EXPECT_FALSE(params);
   }
   {
     base::Value::List params_value;
     params_value.Append("test");
-    absl::optional<functions_on_types::StorageArea::Get::Params> params(
+    std::optional<functions_on_types::StorageArea::Get::Params> params(
         functions_on_types::StorageArea::Get::Params::Create(params_value));
     ASSERT_TRUE(params);
     ASSERT_TRUE(params->keys);
@@ -42,7 +42,7 @@
     keys_object_value.Set("string", "string");
     base::Value::List params_value;
     params_value.Append(keys_object_value.Clone());
-    absl::optional<functions_on_types::StorageArea::Get::Params> params(
+    std::optional<functions_on_types::StorageArea::Get::Params> params(
         functions_on_types::StorageArea::Get::Params::Create(params_value));
     ASSERT_TRUE(params);
     ASSERT_TRUE(params->keys);
@@ -67,7 +67,7 @@
   details_value.Set("incognito", true);
   base::Value::List params_value;
   params_value.Append(std::move(details_value));
-  absl::optional<functions_on_types::ChromeSetting::Get::Params> params(
+  std::optional<functions_on_types::ChromeSetting::Get::Params> params(
       functions_on_types::ChromeSetting::Get::Params::Create(params_value));
   EXPECT_TRUE(params.has_value());
   EXPECT_TRUE(*params->details.incognito);
diff --git a/tools/json_schema_compiler/test/generated_schemas_unittest.cc b/tools/json_schema_compiler/test/generated_schemas_unittest.cc
index 259a7198..2c07e80 100644
--- a/tools/json_schema_compiler/test/generated_schemas_unittest.cc
+++ b/tools/json_schema_compiler/test/generated_schemas_unittest.cc
@@ -4,9 +4,10 @@
 
 #include "tools/json_schema_compiler/test/generated_schemas.h"
 
+#include <optional>
+
 #include "base/json/json_reader.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace {
 
@@ -18,7 +19,7 @@
   ASSERT_TRUE(GeneratedSchemas::IsGenerated(kApiName));
 
   // The schema string must be in json format.
-  absl::optional<base::Value::Dict> json_schema =
+  std::optional<base::Value::Dict> json_schema =
       base::JSONReader::ReadDict(GeneratedSchemas::Get(kApiName));
   ASSERT_TRUE(json_schema);
   EXPECT_FALSE(json_schema->Find("manifest_keys"));
diff --git a/tools/json_schema_compiler/test/idl_schemas_unittest.cc b/tools/json_schema_compiler/test/idl_schemas_unittest.cc
index 8cf6dae..4efd184d 100644
--- a/tools/json_schema_compiler/test/idl_schemas_unittest.cc
+++ b/tools/json_schema_compiler/test/idl_schemas_unittest.cc
@@ -48,7 +48,7 @@
   // Test Function2, which takes an integer parameter.
   base::Value::List list;
   list.Append(5);
-  absl::optional<Function2::Params> f2_params = Function2::Params::Create(list);
+  std::optional<Function2::Params> f2_params = Function2::Params::Create(list);
   EXPECT_EQ(5, f2_params->x);
 
   // Test Function3, which takes a MyType1 parameter.
@@ -61,7 +61,7 @@
   tmp.Set("b", "bstring");
   tmp.Set("c", "cstring");
   list.Append(base::Value(std::move(tmp)));
-  absl::optional<Function3::Params> f3_params = Function3::Params::Create(list);
+  std::optional<Function3::Params> f3_params = Function3::Params::Create(list);
   EXPECT_EQ(17, f3_params->arg.x);
   EXPECT_EQ("hello", f3_params->arg.y);
 
@@ -87,7 +87,7 @@
   // Test a function that takes one optional argument, both without and with
   // that argument.
   base::Value::List list;
-  absl::optional<Function7::Params> f7_params = Function7::Params::Create(list);
+  std::optional<Function7::Params> f7_params = Function7::Params::Create(list);
   EXPECT_FALSE(f7_params->arg.has_value());
   list.Append(7);
   f7_params = Function7::Params::Create(list);
@@ -97,7 +97,7 @@
   // argument.
   list.clear();
   list.Append(8);
-  absl::optional<Function8::Params> f8_params = Function8::Params::Create(list);
+  std::optional<Function8::Params> f8_params = Function8::Params::Create(list);
   EXPECT_EQ(8, f8_params->arg1);
   EXPECT_FALSE(f8_params->arg2.has_value());
   list.Append("foo");
@@ -107,7 +107,7 @@
 
   // Test a function with an optional argument of custom type.
   list.clear();
-  absl::optional<Function9::Params> f9_params = Function9::Params::Create(list);
+  std::optional<Function9::Params> f9_params = Function9::Params::Create(list);
   EXPECT_FALSE(f9_params->arg.has_value());
   list.clear();
   base::Value::Dict tmp;
@@ -131,9 +131,9 @@
   base::Value::List list;
   list.Append(33);
   list.Append(base::Value::List());
-  absl::optional<Function10::Params> f10_params =
+  std::optional<Function10::Params> f10_params =
       Function10::Params::Create(list);
-  ASSERT_TRUE(f10_params != absl::nullopt);
+  ASSERT_TRUE(f10_params != std::nullopt);
   EXPECT_EQ(33, f10_params->x);
   EXPECT_TRUE(f10_params->y.empty());
 
@@ -145,7 +145,7 @@
   sublist.Append(35);
   list.Append(std::move(sublist));
   f10_params = Function10::Params::Create(list);
-  ASSERT_TRUE(f10_params != absl::nullopt);
+  ASSERT_TRUE(f10_params != std::nullopt);
   EXPECT_EQ(33, f10_params->x);
   ASSERT_EQ(2u, f10_params->y.size());
   EXPECT_EQ(34, f10_params->y[0]);
@@ -163,9 +163,9 @@
   sublist2.Append(base::Value(a.ToValue()));
   sublist2.Append(base::Value(b.ToValue()));
   list.Append(std::move(sublist2));
-  absl::optional<Function11::Params> f11_params =
+  std::optional<Function11::Params> f11_params =
       Function11::Params::Create(list);
-  ASSERT_TRUE(f11_params != absl::nullopt);
+  ASSERT_TRUE(f11_params != std::nullopt);
   ASSERT_EQ(2u, f11_params->arg.size());
   EXPECT_EQ(5, f11_params->arg[0].x);
   EXPECT_EQ("foo", f11_params->arg[0].y);
@@ -197,9 +197,9 @@
   EXPECT_TRUE(ObjectFunction1::Params::Icon::Populate(icon_props, icon));
   base::Value::List list;
   list.Append(std::move(icon_props));
-  absl::optional<ObjectFunction1::Params> params =
+  std::optional<ObjectFunction1::Params> params =
       ObjectFunction1::Params::Create(list);
-  ASSERT_TRUE(params != absl::nullopt);
+  ASSERT_TRUE(params != std::nullopt);
   const std::string* tmp =
       params->icon.additional_properties.FindString("hello");
   ASSERT_TRUE(tmp);
diff --git a/tools/json_schema_compiler/test/objects_unittest.cc b/tools/json_schema_compiler/test/objects_unittest.cc
index 4d2f40c..4be80135 100644
--- a/tools/json_schema_compiler/test/objects_unittest.cc
+++ b/tools/json_schema_compiler/test/objects_unittest.cc
@@ -30,7 +30,7 @@
 
     base::Value::List params_value;
     params_value.Append(std::move(info_value));
-    absl::optional<test::api::objects::ObjectParam::Params> params(
+    std::optional<test::api::objects::ObjectParam::Params> params(
         test::api::objects::ObjectParam::Params::Create(params_value));
     EXPECT_TRUE(params.has_value());
     EXPECT_EQ((size_t) 2, params->info.strings.size());
@@ -49,7 +49,7 @@
 
     base::Value::List params_value;
     params_value.Append(std::move(info_value));
-    absl::optional<test::api::objects::ObjectParam::Params> params(
+    std::optional<test::api::objects::ObjectParam::Params> params(
         test::api::objects::ObjectParam::Params::Create(params_value));
     EXPECT_FALSE(params.has_value());
   }
diff --git a/tools/json_schema_compiler/test/simple_api_unittest.cc b/tools/json_schema_compiler/test/simple_api_unittest.cc
index 56ac060..a5dac6e 100644
--- a/tools/json_schema_compiler/test/simple_api_unittest.cc
+++ b/tools/json_schema_compiler/test/simple_api_unittest.cc
@@ -32,7 +32,7 @@
 
 void GetManifestParseError(base::StringPiece manifest_json,
                            std::string* error) {
-  absl::optional<base::Value> manifest = base::JSONReader::Read(manifest_json);
+  std::optional<base::Value> manifest = base::JSONReader::Read(manifest_json);
   ASSERT_TRUE(manifest) << "Invalid json \n" << manifest_json;
 
   simple_api::ManifestKeys manifest_keys;
@@ -46,7 +46,7 @@
 
 void PopulateManifestKeys(base::StringPiece manifest_json,
                           simple_api::ManifestKeys* manifest_keys) {
-  absl::optional<base::Value> manifest = base::JSONReader::Read(manifest_json);
+  std::optional<base::Value> manifest = base::JSONReader::Read(manifest_json);
   ASSERT_TRUE(manifest.has_value());
 
   std::u16string error_16;
@@ -69,7 +69,7 @@
 TEST(JsonSchemaCompilerSimpleTest, IncrementIntegerParamsCreate) {
   base::Value::List params_value;
   params_value.Append(6);
-  absl::optional<simple_api::IncrementInteger::Params> params(
+  std::optional<simple_api::IncrementInteger::Params> params(
       simple_api::IncrementInteger::Params::Create(params_value));
   EXPECT_TRUE(params.has_value());
   EXPECT_EQ(6, params->num);
@@ -80,13 +80,13 @@
     base::Value::List params_value;
     params_value.Append("text");
     params_value.Append("text");
-    absl::optional<simple_api::OptionalString::Params> params(
+    std::optional<simple_api::OptionalString::Params> params(
         simple_api::OptionalString::Params::Create(params_value));
     EXPECT_FALSE(params.has_value());
   }
   {
     base::Value::List params_value;
-    absl::optional<simple_api::IncrementInteger::Params> params(
+    std::optional<simple_api::IncrementInteger::Params> params(
         simple_api::IncrementInteger::Params::Create(params_value));
     EXPECT_FALSE(params.has_value());
   }
@@ -95,7 +95,7 @@
 TEST(JsonSchemaCompilerSimpleTest, OptionalStringParamsCreate) {
   {
     base::Value::List params_value;
-    absl::optional<simple_api::OptionalString::Params> params(
+    std::optional<simple_api::OptionalString::Params> params(
         simple_api::OptionalString::Params::Create(params_value));
     EXPECT_TRUE(params.has_value());
     EXPECT_FALSE(params->str);
@@ -103,7 +103,7 @@
   {
     base::Value::List params_value;
     params_value.Append("asdf");
-    absl::optional<simple_api::OptionalString::Params> params(
+    std::optional<simple_api::OptionalString::Params> params(
         simple_api::OptionalString::Params::Create(params_value));
     EXPECT_TRUE(params.has_value());
     EXPECT_TRUE(params->str);
@@ -115,7 +115,7 @@
   {
     base::Value::List params_value;
     params_value.Append(base::Value());
-    absl::optional<simple_api::OptionalString::Params> params(
+    std::optional<simple_api::OptionalString::Params> params(
         simple_api::OptionalString::Params::Create(params_value));
     EXPECT_TRUE(params.has_value());
     EXPECT_FALSE(params->str);
@@ -126,7 +126,7 @@
   {
     base::Value::List params_value;
     params_value.Append(5);
-    absl::optional<simple_api::OptionalString::Params> params(
+    std::optional<simple_api::OptionalString::Params> params(
         simple_api::OptionalString::Params::Create(params_value));
     EXPECT_FALSE(params.has_value());
   }
@@ -137,7 +137,7 @@
     base::Value::List params_value;
     params_value.Append(base::Value());
     params_value.Append("asdf");
-    absl::optional<simple_api::OptionalBeforeRequired::Params> params(
+    std::optional<simple_api::OptionalBeforeRequired::Params> params(
         simple_api::OptionalBeforeRequired::Params::Create(params_value));
     EXPECT_TRUE(params.has_value());
     EXPECT_FALSE(params->first);
@@ -205,7 +205,7 @@
     simple_api::TestType some_test_type;
     base::Value::Dict expected = CreateTestTypeDictionary();
 
-    absl::optional<double> number_value = expected.FindDouble("number");
+    std::optional<double> number_value = expected.FindDouble("number");
     ASSERT_TRUE(number_value);
     some_test_type.number = *number_value;
 
@@ -213,11 +213,11 @@
     ASSERT_TRUE(string_value);
     some_test_type.string = *string_value;
 
-    absl::optional<int> int_value = expected.FindInt("integer");
+    std::optional<int> int_value = expected.FindInt("integer");
     ASSERT_TRUE(int_value);
     some_test_type.integer = *int_value;
 
-    absl::optional<bool> boolean_value = expected.FindBool("boolean");
+    std::optional<bool> boolean_value = expected.FindBool("boolean");
     ASSERT_TRUE(boolean_value);
     some_test_type.boolean = *boolean_value;
 
diff --git a/tools/json_schema_compiler/util.h b/tools/json_schema_compiler/util.h
index 4816936..2bab21c8 100644
--- a/tools/json_schema_compiler/util.h
+++ b/tools/json_schema_compiler/util.h
@@ -112,7 +112,7 @@
 // if anything other than a list of |T| is at the specified key.
 template <class T>
 bool PopulateOptionalArrayFromList(const base::Value::List& list,
-                                   absl::optional<std::vector<T>>& out) {
+                                   std::optional<std::vector<T>>& out) {
   std::vector<T> populated;
   if (!PopulateArrayFromList(list, populated)) {
     return false;
@@ -123,7 +123,7 @@
 
 template <class T>
 bool PopulateOptionalArrayFromList(const base::Value::List& list,
-                                   absl::optional<std::vector<T>>& out,
+                                   std::optional<std::vector<T>>& out,
                                    std::u16string& error) {
   std::vector<T> populated;
   if (!PopulateArrayFromList(list, populated, error)) {
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index dc0acf2..555270f 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -7700,177 +7700,6 @@
   <int value="2" label="Missing serial number"/>
 </enum>
 
-<enum name="BluetoothAdapterConnectToServiceInsecurelyResult">
-  <int value="0" label="Success"/>
-  <int value="1" label="Error: Invalid arguments"/>
-  <int value="2" label="Error: Operation already in progress"/>
-  <int value="3" label="Error: Already exists"/>
-  <int value="4" label="Error: Operation is not supported"/>
-  <int value="5" label="Error: Not connected"/>
-  <int value="6" label="Error: Already connected"/>
-  <int value="7" label="Error: Operation currently not available"/>
-  <int value="8" label="Error: Does not exist"/>
-  <int value="9" label="Error: Operation not authorized"/>
-  <int value="10" label="Error: Not permitted"/>
-  <int value="11" label="Error: No such adapter"/>
-  <int value="12" label="Error: Agent not available"/>
-  <int value="13" label="Error: Resource not ready"/>
-  <int value="14" label="Error: Failed"/>
-  <int value="15" label="Error: Failed to create receiving Mojo pipe"/>
-  <int value="16" label="Error: Failed to create sending Mojo pipe"/>
-  <int value="17" label="Error: Could not connect to device"/>
-  <int value="18" label="Error: Unknown"/>
-</enum>
-
-<enum name="BluetoothConnectionFailureReason">
-  <int value="0" label="Unknown error"/>
-  <int value="1" label="System or Chrome runtime error"/>
-  <int value="2" label="Authentication failed"/>
-  <int value="3" label="Authentication timed out"/>
-  <int value="4" label="Connection failed"/>
-  <int value="5" label="Unknown connection error"/>
-  <int value="6" label="Unsupported device"/>
-  <int value="7" label="Not connectable"/>
-  <int value="8" label="Authentication canceled"/>
-  <int value="9" label="Authentication rejected"/>
-  <int value="10" label="Connection in progress"/>
-</enum>
-
-<enum name="BluetoothConnectToServiceError">
-  <int value="0" label="Unknown"/>
-  <int value="1" label="Failed to accept connection"/>
-  <int value="2" label="Invalid UUID"/>
-  <int value="3" label="Socket is not listening"/>
-</enum>
-
-<enum name="BluetoothDeviceConnectErrorCode">
-  <int value="0" label="Authorization Cancelled"/>
-  <int value="1" label="Authorization Failed"/>
-  <int value="2" label="Authorization Rejected"/>
-  <int value="3" label="Authorization Timeout"/>
-  <int value="4" label="Failed"/>
-  <int value="5" label="In Progress"/>
-  <int value="6" label="Unknown"/>
-  <int value="7" label="Unsupported Device"/>
-  <int value="8" label="Not Ready"/>
-  <int value="9" label="Already Connected"/>
-  <int value="10" label="Already Exists"/>
-  <int value="11" label="Not Connected"/>
-  <int value="12" label="Does Not Exist"/>
-  <int value="13" label="Invalid Arguments"/>
-</enum>
-
-<enum name="BluetoothDeviceConnectToServiceFailureReason">
-  <int value="0" label="Connection already connected"/>
-  <int value="1" label="Page timeout"/>
-  <int value="2" label="Profile unavailable"/>
-  <int value="3" label="SDP search"/>
-  <int value="4" label="Create socket"/>
-  <int value="5" label="Invalid argument"/>
-  <int value="6" label="Adapter not powered"/>
-  <int value="7" label="Not supported"/>
-  <int value="8" label="Bad socket"/>
-  <int value="9" label="Memory allocation"/>
-  <int value="10" label="Busy"/>
-  <int value="11" label="Concurrent connection limit"/>
-  <int value="12" label="Timeout"/>
-  <int value="13" label="Refused"/>
-  <int value="14" label="Aborted by remote"/>
-  <int value="15" label="Aborted by local"/>
-  <int value="16" label="LMP protocol error"/>
-  <int value="17" label="Canceled"/>
-  <int value="18" label="Unknown"/>
-</enum>
-
-<enum name="BluetoothDeviceType">
-  <int value="0" label="Unknown"/>
-  <int value="1" label="Computer"/>
-  <int value="2" label="Phone"/>
-  <int value="3" label="Modem"/>
-  <int value="4" label="Audio"/>
-  <int value="5" label="Car Audio"/>
-  <int value="6" label="Video"/>
-  <int value="7" label="Peripheral"/>
-  <int value="8" label="Joystick"/>
-  <int value="9" label="Gamepad"/>
-  <int value="10" label="Keyboard"/>
-  <int value="11" label="Mouse"/>
-  <int value="12" label="Tablet"/>
-  <int value="13" label="Keyboard Mouse Combo"/>
-</enum>
-
-<enum name="BluetoothDiscoveryOutcomes">
-  <int value="0" label="Success"/>
-  <int value="1"
-      label="Unknown error; used when we could add code to get more detail"/>
-  <int value="2" label="Function not implemented on this platform"/>
-  <int value="3" label="Adapter not present"/>
-  <int value="4" label="Adapter removed since call chain started"/>
-  <int value="5" label="Discovery session not active"/>
-  <int value="6"
-      label="Attempted to remove a discovery session with another pending
-             request"/>
-  <int value="7"
-      label="Active BluetoothDiscoverySession wasn't found in
-             BluetoothAdapter"/>
-  <int value="8" label="Failed without a more specific reason"/>
-  <int value="9" label="(BlueZ) DBus failed to find the adapter"/>
-  <int value="10" label="(BlueZ) DBus didn't return an error code"/>
-  <int value="11" label="(BlueZ) org.bluez.Error.InProgress"/>
-  <int value="12" label="(BlueZ) org.bluez.Error.NotReady"/>
-  <int value="13"
-      label="(BlueZ) org.bluez.Error.Failed inside SetDiscoveryFilter, maybe
-             indicating an unsupported transport"/>
-  <int value="14"
-      label="(BlueZ) org.bluez.Error.NotSupported inside SetDiscoverFilter,
-             indicating a kernel that does not support Start Service
-             Discovery."/>
-</enum>
-
-<enum name="BluetoothGattServiceGattErrorCode">
-  <int value="0" label="Unknown"/>
-  <int value="1" label="Failed"/>
-  <int value="2" label="In Progress"/>
-  <int value="3" label="Invalid Length"/>
-  <int value="4" label="Not Permitted"/>
-  <int value="5" label="Not Authorized"/>
-  <int value="6" label="Not Paired"/>
-  <int value="7" label="Not Supported"/>
-</enum>
-
-<enum name="BluetoothSocketErrorReason">
-  <int value="0" label="System Error"/>
-  <int value="1" label="IO Pending"/>
-  <int value="2" label="Disconnected"/>
-</enum>
-
-<enum name="BluetoothStackName">
-  <int value="0" label="BlueZ"/>
-  <int value="1" label="Floss"/>
-  <int value="2" label="Unknown"/>
-</enum>
-
-<enum name="BluetoothTransportType">
-  <int value="0" label="Unknown"/>
-  <int value="1" label="Classic"/>
-  <int value="2" label="Low Energy"/>
-  <int value="3" label="Dual"/>
-  <int value="4" label="Invalid"/>
-</enum>
-
-<enum name="BluetoothUiSurface">
-  <int value="0" label="Settings - device list subpage"/>
-  <int value="1" label="Settings - device detail subpage"/>
-  <int value="2" label="Settings - pairing dialog"/>
-  <int value="3" label="Bluetooth Quick Settings"/>
-  <int value="4" label="Standalone Pairing dialog"/>
-  <int value="5" label="Paired notification (obsolete)"/>
-  <int value="6" label="Connected toast"/>
-  <int value="7" label="Disconnected toast"/>
-  <int value="8" label="OOBE HID Detection"/>
-  <int value="9" label="Paired toast"/>
-</enum>
-
 <enum name="BlueZReasonOfDisconnection">
   <int value="1" label="Disconnected by local host"/>
   <int value="2" label="Disconnected by remote device"/>
@@ -8941,6 +8770,7 @@
 <enum name="BreakageIndicatorType">
   <int value="0" label="User Reload"/>
   <int value="1" label="HTTP Error"/>
+  <int value="2" label="Uncaught JS Error"/>
 </enum>
 
 <enum name="BrotliFilterDecodingStatus">
@@ -11718,21 +11548,6 @@
       label="Icons, Addresses, Names, Emails, and Telephone numbers"/>
 </enum>
 
-<enum name="ContentClassification">
-  <int value="0" label="Other"/>
-  <int value="1" label="Long article"/>
-</enum>
-
-<enum name="ContentClassificationOpenGraph">
-  <int value="0" label="Unknown"/>
-  <int value="1" label="Website"/>
-  <int value="2" label="Music"/>
-  <int value="3" label="Video"/>
-  <int value="4" label="Article"/>
-  <int value="5" label="Book"/>
-  <int value="6" label="Profile"/>
-</enum>
-
 <enum name="ContentEncoding">
   <int value="0" label="ISO_8859_1"/>
   <int value="1" label="ISO_8859_2"/>
@@ -11831,51 +11646,6 @@
   <int value="5" label="DETECT_IMPORTANT_CONTENT"/>
 </enum>
 
-<enum name="ContentSettingBubbleAction">
-  <int value="1" label="kOpened"/>
-  <int value="2" label="kPermissionAllowed"/>
-  <int value="3" label="kPermissionBlocked"/>
-  <int value="4" label="KManageButtonClicked"/>
-</enum>
-
-<enum name="ContentSettingImageType">
-  <int value="0" label="COOKIES"/>
-  <int value="1" label="IMAGES"/>
-  <int value="2" label="JAVASCRIPT"/>
-  <int value="3" label="PPAPI_BROKER"/>
-  <int value="4" label="PLUGINS"/>
-  <int value="5" label="POPUPS"/>
-  <int value="6" label="GEOLOCATION"/>
-  <int value="7" label="MIXEDSCRIPT"/>
-  <int value="8" label="PROTOCOL_HANDLERS"/>
-  <int value="9" label="MEDIASTREAM"/>
-  <int value="10" label="ADS"/>
-  <int value="11" label="AUTOMATIC_DOWNLOADS"/>
-  <int value="12" label="MIDI_SYSEX"/>
-  <int value="13" label="SOUND"/>
-  <int value="14" label="FRAMEBUST"/>
-  <int value="16" label="SENSORS"/>
-  <int value="18" label="CLIPBOARD_READ_WRITE"/>
-</enum>
-
-<enum name="ContentSettingPopupAction">
-  <int value="0" label="Displayed popup-blocked icon in Omnibox"/>
-  <int value="1" label="Displayed bubble"/>
-  <int value="2" label="Clicked 'Always allow pop-ups from'"/>
-  <int value="3" label="Clicked one of the list items"/>
-  <int value="4" label="Clicked 'Manage pop-up blocking'"/>
-  <int value="5" label="Displayed popup-blocked infobar on mobile"/>
-  <int value="6" label="Clicked 'Always show on mobile'"/>
-</enum>
-
-<enum name="ContentSuggestionsDisplayStatus">
-  <int value="0" label="Visible"/>
-  <int value="1" label="Collapsed"/>
-  <int value="2" label="Disabled by policy"/>
-  <int value="3" label="Disabled"/>
-  <int value="4" label="Disabled by default search engine"/>
-</enum>
-
 <enum name="ContentType">
   <int value="-1" label="Invalid setting"/>
   <int value="1" label="Images setting"/>
@@ -19215,11 +18985,6 @@
   <int value="1" label="WriteBooster enabled"/>
 </enum>
 
-<enum name="DisconnectResult">
-  <int value="0" label="Failure"/>
-  <int value="1" label="Success"/>
-</enum>
-
 <enum name="DiskCacheError">
   <summary>Error codes defined in net/disk_cache/errors.h</summary>
   <int value="0" label="OK"/>
@@ -24002,6 +23767,10 @@
   <int value="9" label="kPageAccessRunOnSite"/>
   <int value="10" label="kPageAccessRunOnAllSites"/>
   <int value="11" label="kPageAccessLearnMore"/>
+  <int value="12" label="kPageAccessPermissionsPage"/>
+  <int value="13" label="kViewWebPermissions"/>
+  <int value="14" label="kPolicyInstalled"/>
+  <int value="15" label="kToggleSidePanelVisibility"/>
 </enum>
 
 <enum name="ExtensionDisableReason">
@@ -25346,7 +25115,7 @@
   <int value="696" label="DELETED_WEBVIEW_CONTEXTMENUSUPDATE"/>
   <int value="697" label="DELETED_WEBVIEW_CONTEXTMENUSREMOVE"/>
   <int value="698" label="DELETED_WEBVIEW_CONTEXTMENUSREMOVEALL"/>
-  <int value="699" label="AUTOMATIONINTERNAL_ENABLETAB"/>
+  <int value="699" label="DELETED_AUTOMATIONINTERNAL_ENABLETAB"/>
   <int value="700" label="APP_CURRENTWINDOWINTERNAL_SETSIZECONSTRAINTS"/>
   <int value="701" label="BLUETOOTH_GETDEVICE"/>
   <int value="702" label="GCM_UNREGISTER"/>
@@ -26557,6 +26326,8 @@
   <int value="1838" label="USERSCRIPTS_CONFIGUREWORLD"/>
   <int value="1839" label="ENTERPRISE_KIOSKINPUT_SETCURRENTINPUTMETHOD"/>
   <int value="1840" label="AUTOFILLPRIVATE_BULKDELETEALLCVCS"/>
+  <int value="1841" label="PDFVIEWERPRIVATE_GETSTREAMINFO"/>
+  <int value="1842" label="PDFVIEWERPRIVATE_SETPDFPLUGINATTRIBUTES"/>
 </enum>
 
 <enum name="ExtensionInProgressRequestState">
@@ -27200,46 +26971,6 @@
   <int value="10" label="Failure: Unsuported country."/>
 </enum>
 
-<enum name="FastPairAccountKeyFailure">
-  <int value="0" label="Failed to find the Account Key GATT characteristic"/>
-  <int value="1"
-      label="[Deprecated] Failed to write to the Account Key GATT
-             characteristic"/>
-  <int value="2"
-      label="Timed out while writing to Account Key GATT characteristic"/>
-  <int value="3" label="GATT Error: Unknown"/>
-  <int value="4" label="GATT Error: Failed"/>
-  <int value="5" label="GATT Error: In Progress"/>
-  <int value="6" label="GATT Error: Invalid Length"/>
-  <int value="7" label="GATT Error: Not Permitted"/>
-  <int value="8" label="GATT Error: Not Authorized"/>
-  <int value="9" label="GATT Error: Not Paired"/>
-  <int value="10" label="GATT Error: Not Supported"/>
-</enum>
-
-<enum name="FastPairEngagementFlowEvent">
-  <int value="1" label="Discovery UI Shown"/>
-  <int value="11" label="Discovery UI Dismissed By OS"/>
-  <int value="12" label="Discovery UI: Connect Button Pressed"/>
-  <int value="13" label="Discovery UI Dismissed By User"/>
-  <int value="14" label="Discovery UI: Learn More Pressed"/>
-  <int value="15" label="Discovery UI Dismissed By Timeout"/>
-  <int value="121" label="Pairing Failed"/>
-  <int value="122" label="Pairing Succeeded"/>
-  <int value="141"
-      label="Discovery UI: Connect Button Pressed After Learn More Pressed"/>
-  <int value="142"
-      label="Discovery UI: Dismissed By User After Learn More Pressed"/>
-  <int value="143"
-      label="Discovery UI: Dismissed By OS After Learn More Pressed"/>
-  <int value="144"
-      label="Discovery UI: Dismissed By Timeout After Learn More Pressed"/>
-  <int value="1211" label="Pairing Failed: Error UI Dismissed By OS"/>
-  <int value="1212" label="Pairing Failed: Error UI Settings Button Pressed"/>
-  <int value="1213" label="Pairing Failed: Error UI Dismissed By User"/>
-  <int value="1221" label="Pairing Succeeded: Already Paired"/>
-</enum>
-
 <enum name="FastPairGattConnectionSteps">
   <int value="0" label="Connection started"/>
   <int value="1" label="Connection ready"/>
@@ -27249,26 +26980,6 @@
   <int value="4" label="Connection established"/>
 </enum>
 
-<enum name="FastPairHandshakeFailureReason">
-  <int value="0" label="Failed to initialize GATT connection"/>
-  <int value="1" label="Failed to create FastPairDataEncryptor"/>
-  <int value="2"
-      label="Failed to write to the Key-based Pairing Characteristic"/>
-  <int value="3"
-      label="Failed to decrypt the the Key-based Pairing Characteristic
-             response"/>
-  <int value="4"
-      label="Incorrect Key-based Pairing Characteristic response type"/>
-</enum>
-
-<enum name="FastPairHandshakeSteps">
-  <int value="0" label="Handshake started"/>
-  <int value="1" label="GATT initialized successfully"/>
-  <int value="2"
-      label="Recieved response bytes from Key-based pairing characteristic"/>
-  <int value="3" label="Handshake completed successfully"/>
-</enum>
-
 <enum name="FastPairInitializePairingProcessEvent">
   <int value="0" label="Initialization started"/>
   <int value="1" label="Already pairing failure"/>
@@ -27355,11 +27066,6 @@
       label="Timed out while writing to Additional Data characteristic."/>
 </enum>
 
-<enum name="FastPairPairingMethod">
-  <int value="0" label="Fast Pair Pairing"/>
-  <int value="1" label="System UI Pairing"/>
-</enum>
-
 <enum name="FastPairProtocolPairingSteps">
   <int value="0" label="Pairing started"/>
   <int value="1" label="Exhausted retries"/>
@@ -27372,23 +27078,6 @@
   <int value="8" label="Pairing complete"/>
 </enum>
 
-<enum name="FastPairRetroactiveEngagementFlowEvent">
-  <int value="1" label="Associate Account UI Shown"/>
-  <int value="11" label="Associate Account Dismissed By User"/>
-  <int value="12" label="Associate Account Dismissed By OS"/>
-  <int value="13" label="Associate Account: Learn More Button Pressed"/>
-  <int value="14" label="Associate Account: Save Button Pressed"/>
-  <int value="15" label="Associate Account Dismissed By Timeout"/>
-  <int value="131"
-      label="Associate Account: Save Button Pressed After Learn More Pressed"/>
-  <int value="132"
-      label="Associate Account Dismissed By User After Learn More Pressed"/>
-  <int value="133"
-      label="Associate Account Dismissed By OS After Learn More Pressed"/>
-  <int value="134"
-      label="Associate Account Dismissed By Timeout After Learn More Pressed"/>
-</enum>
-
 <enum name="FastPairRetroactiveSuccessFunnelEvent">
   <int value="0" label="Device detected"/>
   <int value="1" label="Initialization started"/>
@@ -27401,14 +27090,6 @@
   <int value="8" label="Save to Footprints complete"/>
 </enum>
 
-<enum name="FastPairSavedDevicesUiEvent">
-  <int value="0" label="Settings - saved device list subpage shown"/>
-  <int value="1" label="Settings - user has devices saved to their account"/>
-  <int value="2" label="Settings - remove saved device dialog"/>
-  <int value="3"
-      label="Settings - remove confirmed on remove saved device dialog"/>
-</enum>
-
 <enum name="FastPairSubsequentSuccessFunnelEvent">
   <int value="0" label="Notification clicked"/>
   <int value="1" label="Initialization started"/>
@@ -27416,11 +27097,6 @@
   <int value="3" label="Process complete"/>
 </enum>
 
-<enum name="FastPairVersion">
-  <int value="0" label="v1"/>
-  <int value="1" label="v2"/>
-</enum>
-
 <enum name="FCMInvalidationMessageStatus">
   <int value="0" label="Success"/>
   <int value="1" label="Public topic empty"/>
@@ -32489,6 +32165,7 @@
   <int value="4719" label="AdClickMainFrameNavigation"/>
   <int value="4720" label="LinkRelPrivacyPolicy"/>
   <int value="4721" label="LinkRelTermsOfService"/>
+  <int value="4722" label="WebAppManifestIdField"/>
 </enum>
 
 <enum name="FeaturePolicyFeature">
@@ -32907,21 +32584,6 @@
   <int value="5" label="kDbCleanOutdatedDataError"/>
 </enum>
 
-<enum name="FeedActivityBucket">
-  <int value="0" label="No Activity">
-    The user has no activity in the last 28 days.
-  </int>
-  <int value="1" label="Low Activity">
-    The user has 1-7 days of activity in the last 28 days.
-  </int>
-  <int value="2" label="Medium Activity">
-    The user has 8-15 days of activity in the last 28 days.
-  </int>
-  <int value="3" label="High Activity">
-    The user has 16+ days of activity in the last 28 days.
-  </int>
-</enum>
-
 <enum name="FeedbackAppContactUserConsentType">
   <int value="0" label="kNoEmail"/>
   <int value="1" label="kYes"/>
@@ -33005,375 +32667,16 @@
   <int value="36" label="OOBE or Login screen"/>
 </enum>
 
-<enum name="FeedContentOrder">
-  <int value="0" label="Unspecified"/>
-  <int value="1" label="Grouped"/>
-  <int value="2" label="Reverse Chronological"/>
-</enum>
-
-<enum name="FeedControlsActions">
-  <int value="0" label="Clicked on My activity"/>
-  <int value="1" label="Clicked on Manage interests"/>
-  <int value="2" label="Clicked on Learn more"/>
-  <int value="3" label="Toggled the feed"/>
-  <int value="4" label="Clicked on the feed menu button"/>
-  <int value="5" label="Clicked on autoplay"/>
-  <int value="6" label="Clicked on Manage"/>
-</enum>
-
-<enum name="FeedEngagementType">
-  <int value="0" label="Engaged">
-    Visit - user scrolled an inch or interacted
-  </int>
-  <int value="1" label="Engaged Simple">
-    Visit - user scrolled any amount or interacted&quot;
-  </int>
-  <int value="2" label="Interacted">
-    Interaction - Opening a page or using the menu&quot;
-  </int>
-<!-- <int value="3" label="Scrolled">Deprecated - formerly scrolled any amount</int> -->
-
-  <int value="4" label="Scrolled">Interaction - Scrolled any amount</int>
-  <int value="5" label="Good Visit">
-    Visit - user (a) had a good explicit interaction, (b) spent a minute in the
-    feed and scrolled, or (c) spent ten seconds viewing or opening a piece of
-    content.
-  </int>
-</enum>
-
-<enum name="FeedInfoCardType">
-  <int value="1" label="INFO_CARD_MAIN_PRIVACY_NOTICE"/>
-  <int value="2" label="INFO_CARD_YOUTUBE_PRIVACY_NOTICE"/>
-</enum>
-
 <!-- Keep elements in sync with components/feed/core/feed_logging_metrics.cc and
  third_party/feed_library/src/src/main/java/com/google/android/libraries/feed/api/host/logging/InternalFeedError.java
  -->
 
-<enum name="FeedLoadStreamStatus">
-  <int value="0" label="Loading wasn't attempted"/>
-  <int value="1" label="Success loading from persistent store"/>
-  <int value="2" label="Success loading from network"/>
-  <int value="3" label="Failed - store error"/>
-  <int value="4" label="Failed - no data in store"/>
-  <int value="5" label="Failed - model is already loaded"/>
-  <int value="6" label="Failed - network response has no body"/>
-  <int value="7" label="Failed - error translating to internal protos"/>
-  <int value="8" label="Failed - data in store is stale"/>
-  <int value="9" label="Failed - data in store has timestamp from the future"/>
-  <int value="10"
-      label="Failed - loading from network is suppressed due to recent
-             history deletion"/>
-  <int value="11" label="Failed - cannot load from network while offline"/>
-  <int value="12" label="Failed - network request throttled"/>
-  <int value="13" label="Failed - EULA not accepted"/>
-  <int value="14" label="Failed - articles list hidden"/>
-  <int value="15" label="Failed - cannot parse network response body"/>
-  <int value="16"
-      label="Failed - cannot load more content because the model is not yet
-             loaded"/>
-  <int value="17" label="Failed - feed is disabled by enterprise policy"/>
-  <int value="18"
-      label="Failed - network fetch failed or returned a non-200 status"/>
-  <int value="19" label="Failed - cannot load more, no next page token"/>
-  <int value="20" label="Failed - data in store is stale, last refresh missed"/>
-  <int value="21" label="Success loading stale data, after network failure"/>
-  <int value="22" label="Failed - data in store is expired"/>
-  <int value="23" label="Failed - data in store is for another user"/>
-  <int value="24" label="Failed - cannot load stream with pending clear all"/>
-  <int value="25" label="Failed - already has unread content available"/>
-  <int value="26" label="Failed - user does not follow any web feeds"/>
-  <int value="27"
-      label="Failed - account token fetch failed because it was for the wrong
-             account"/>
-  <int value="28" label="Failed - account token fetch timed out"/>
-  <int value="29" label="Failed - network fetch timed out"/>
-</enum>
-
-<enum name="FeedNoticeAcknowledgementPath">
-  <obsolete>
-    Deprecated in 05/2022 since we removed feed notice card related codes.
-  </obsolete>
-  <int value="0"
-      label="The acknowledgment is reached after the user views the notice
-             for a required number of times."/>
-  <int value="1"
-      label="The acknowledgment is reached after the user taps the notice to
-             perform an open action for a required number of times."/>
-  <int value="2"
-      label="The acknowledgment is reached after the user fter the user taps
-             X button to close the notice."/>
-</enum>
-
 <enum name="FeedPositionSegmentationResult">
   <int value="0" label="Uninitialized."/>
   <int value="1" label="Is a Feed active user."/>
   <int value="2" label="Is a non-Feed user."/>
 </enum>
 
-<enum name="FeedRefreshTrigger">
-  <int value="0" label="Other"/>
-  <int value="1" label="Background cold start"/>
-  <int value="2" label="Background warm start"/>
-  <int value="3" label="Foreground feed start"/>
-  <int value="4" label="Foreground account change"/>
-  <int value="5" label="Foreground user triggered"/>
-  <int value="6" label="Foreground feed visible other">
-    The feed is visible and trigger is not already one of the other foreground
-    visible triggers.
-  </int>
-  <int value="7" label="Foreground not forced">
-    A server request is only made if the feed model is considered stale.
-  </int>
-  <int value="8" label="Foreground but feed not visible">
-    The feed is not visible but the app is in the foreground (e.g., user is in
-    another tab).
-  </int>
-  <int value="9" label="Foreground new feed view controller">
-    A new feed view controller has been configured and has become visible to the
-    user.
-  </int>
-  <int value="10" label="Foreground app close">
-    The app is backgrounding from the foreground and the refresh is running on
-    an app extended execution time.
-  </int>
-  <int value="11" label="Background cold start app close">
-    Refresh is triggered in a background cold start with app close enabled.
-  </int>
-  <int value="12" label="Background warm start app close">
-    Refresh is triggered in a background warm start with app close enabled.
-  </int>
-</enum>
-
-<enum name="FeedSendFeedbackType">
-  <int value="0" label="Feedback tapped on card"/>
-  <int value="1" label="Feedback tapped on page from card"/>
-</enum>
-
-<enum name="FeedSignInUI">
-  <int value="0" label="Showing a sign-in half sheet triggered from feed."/>
-  <int value="1" label="Showing a sign-in only flow triggered from feed."/>
-  <int value="2"
-      label="Showing a sign-in disabled snackbar triggered from feed."/>
-</enum>
-
-<enum name="FeedSortType">
-  <int value="0" label="Unspecified"/>
-  <int value="1" label="Grouped by publisher"/>
-  <int value="2" label="Sorted by latest"/>
-</enum>
-
-<enum name="FeedSyncPromo">
-  <int value="0"
-      label="The sync flow was shown when the user tapped on the Feed sync
-             promo."/>
-  <int value="1"
-      label="The service disable message was shown when the user tapped on
-             the Feed sync promo."/>
-</enum>
-
-<enum name="FeedUploadActionsBatchStatus">
-  <int value="0" label="Actions batch store/upload not attempted"/>
-  <int value="1" label="Failed to update store"/>
-  <int value="2" label="Failed to upload (got empty response body)"/>
-  <int value="3" label="Failed to remove uploaded actions from store"/>
-  <int value="4" label="Ran out of actions upload quota"/>
-  <int value="5" label="All actions were stale"/>
-  <int value="6" label="Successfully uploaded batch"/>
-</enum>
-
-<enum name="FeedUploadActionsStatus">
-  <int value="0" label="Action store/upload task not attempted"/>
-  <int value="1" label="No pending actions to upload"/>
-  <int value="2" label="Failed to store pending action"/>
-  <int value="3" label="Pending action was stored for later upload"/>
-  <int value="4"
-      label="Successfully uploaded some actions and stored a new consistency
-             token"/>
-  <int value="5"
-      label="Updated and tried to upload all pending actions and finished
-             without receiving a new consistency token"/>
-  <int value="6"
-      label="Upload attempt was aborted because the account is now signed-out"/>
-  <int value="7" label="Could not upload because does not meet conditions"/>
-  <int value="8" label="Can not upload actions for another user"/>
-  <int value="9" label="Could not upload because pending clear all"/>
-</enum>
-
-<enum name="FeedUserActionType">
-  <int value="0" label="Tapped on card"/>
-  <int value="1" label="Shown card (REMOVED, never reported)"/>
-  <int value="2" label="Tapped Send Feedback"/>
-  <int value="3" label="Tapped Learn More"/>
-  <int value="4" label="Tapped Hide Story"/>
-  <int value="5" label="Tapped Not Interested In"/>
-  <int value="6" label="Tapped Manage Interests"/>
-  <int value="7" label="Tapped Download"/>
-  <int value="8" label="Tapped Open in New Tab"/>
-  <int value="9" label="Opened context menu"/>
-  <int value="10" label="Opened feed surface"/>
-  <int value="11" label="Tapped Open in Incognito tab"/>
-  <int value="12"
-      label="Ephemeral change, likely due to hide story or not interested in"/>
-  <int value="13"
-      label="Ephemeral change undone, likely due to pressing 'undo' on the
-             snackbar"/>
-  <int value="14" label="Turn on"/>
-  <int value="15" label="Turn off"/>
-  <int value="16" label="Tapped Manage Activity"/>
-  <int value="17" label="Added to Read Later"/>
-  <int value="18" label="Close context menu"/>
-  <int value="19"
-      label="Ephemeral change committed, likely due to dismissing the 'undo'
-             snackbar"/>
-  <int value="20" label="Open Dialog e.g. Report Content Dialog"/>
-  <int value="21" label="Close Dialog e.g. Report Content Dialog"/>
-  <int value="22" label="Show Snackbar"/>
-  <int value="23" label="Opened native back-of-card action sheet. (iOS Only)"/>
-  <int value="24" label="Opened native back-of-card context menu. (iOS Only)"/>
-  <int value="25" label="Closed native back-of-card context menu. (iOS Only)"/>
-  <int value="26" label="Opened native back-of-card pulldown menu. (iOS Only)"/>
-  <int value="27" label="Closed native back-of-card pulldown menu. (iOS Only)"/>
-  <int value="28" label="Tapped manage reactions"/>
-  <int value="29" label="Tapped on share for an article"/>
-  <int value="30"
-      label="Tapped the 'Following' option inside the Feed's 'Manage'
-             interstitial."/>
-  <int value="31"
-      label="User tapped to follow a web feed on the management surface."/>
-  <int value="32"
-      label="User tapped to unfollow a web feed on the management surface."/>
-  <int value="33" label="User tapped to follow using the follow accelerator."/>
-  <int value="34"
-      label="User tapped to follow using the snackbar 'try again' option."/>
-  <int value="35"
-      label="User tapped to follow using the snackbar, after successfully
-             unfollowing."/>
-  <int value="36"
-      label="User tapped to unfollow using the snackbar 'try again' option."/>
-  <int value="37"
-      label="After following an active web feed, the user tapped to go to
-             feed using the post-follow help dialog."/>
-  <int value="38"
-      label="After following an active web feed, the user tapped to dismiss
-             the post-follow help dialog."/>
-  <int value="39"
-      label="After long-pressing on the feed and seeing the preview, the user
-             tapped on the preview."/>
-  <int value="40"
-      label="User tapped Settings link to open feed autoplay settings."/>
-  <int value="41"
-      label="User tapped 'Add to Reading List' in the context menu."/>
-  <int value="42"
-      label="User tapped the Manage icon to visit the feed management
-             interstitial."/>
-  <int value="43"
-      label="User tapped 'Hidden' in the feed management interstitial."/>
-  <int value="44"
-      label="User tapped the Follow button on the page overflow menu."/>
-  <int value="45"
-      label="User selected the Discover feed from the feed header."/>
-  <int value="46"
-      label="User selected the Following feed from the feed header."/>
-  <int value="47"
-      label="User tapped the Unfollow button on the page overflow menu."/>
-  <int value="48" label="Show Follow Succeed Snackbar."/>
-  <int value="49" label="Show Follow Failed Snackbar."/>
-  <int value="50" label="Show Unfollow Succeed Snackbar."/>
-  <int value="51" label="Show Unfollow Failed Snackbar."/>
-  <int value="52"
-      label="User tapped to go to Following feed using the snackbar 'go to
-             Following' option."/>
-  <int value="53" label="User tapped the Crow button in the context menu."/>
-  <int value="54" label="Show First Follow Sheet."/>
-  <int value="55"
-      label="User tapped the 'Go To Feed' button on the first follow sheet."/>
-  <int value="56"
-      label="User tapped the 'Got It' button on the first follow sheet."/>
-  <int value="57"
-      label="Show Follow Recommendation IPH telling users that they are able
-             to follow a website."/>
-  <int value="58"
-      label="User opened the article in a new tab in group from the back of
-             card menu."/>
-  <int value="59"
-      label="User selected the 'Group by Publisher' Following feed sort type."/>
-  <int value="60"
-      label="User selected the 'Sort by Latest' Following feed sort type."/>
-  <int value="61"
-      label="After following an active web feed, the user tapped on 'got it'
-             to close the post-follow help dialog."/>
-  <int value="62"
-      label="User tapped the follow accelerator which is presented after a
-             user taps on a recommendation that is in the feed."/>
-  <int value="63"
-      label="User requested to refresh the Following feed using the
-             post-follow snackbar 'refresh' action."/>
-  <int value="64"
-      label="User tapped on the 'Continue' of the sign-in promo UI."/>
-  <int value="65" label="User tapped on the 'Cancel' of the sign-in promo UI."/>
-  <int value="66" label="User initiated a non-swipe manual refresh."/>
-</enum>
-
-<enum name="FeedUserCommandType">
-  <int value="0" label="Enum placerholder. See crbug/1179826"/>
-</enum>
-
-<enum name="FeedUserSettingsOnStart">
-  <int value="0" label="The Feed is disabled by enterprise policy"/>
-  <int value="1" label="The user is signed out, and has disabled the Feed."/>
-  <int value="2" label="The user is signed in, and has disabled the Feed."/>
-  <int value="3" label="Feed enabled, user signed out"/>
-  <int value="4"
-      label="Feed enabled, user signed in, WAA on, Discover Personalization
-             on"/>
-  <int value="5"
-      label="Feed enabled, user signed in, WAA on, Discover Personalization
-             off"/>
-  <int value="6"
-      label="Feed enabled, user signed in, WAA off, Discover Personalization
-             on"/>
-  <int value="7"
-      label="Feed enabled, user signed in, WAA off, Discover Personalization
-             off"/>
-  <int value="8" label="Feed enabled, user signed in, no recent Feed data"/>
-  <int value="9" label="The Feed is disabled by flag"/>
-</enum>
-
-<enum name="FeedVideoInitializationError">
-  <int value="0" label="Client library update required."/>
-  <int value="1" label="Developer key invalid."/>
-  <int value="2" label="Error connecting to service."/>
-  <int value="3" label="Internal error."/>
-  <int value="4" label="Invalid application signature."/>
-  <int value="5" label="Network error."/>
-  <int value="6" label="Service disabled."/>
-  <int value="7" label="Service invalid."/>
-  <int value="8" label="Service missing."/>
-  <int value="9" label="Service version update required."/>
-  <int value="10" label="Unknown error."/>
-</enum>
-
-<enum name="FeedVideoPlayError">
-  <int value="0" label="Not playable."/>
-  <int value="1" label="Unauthorized overlay."/>
-  <int value="2" label="Internal error."/>
-  <int value="3" label="Unknown error."/>
-  <int value="4" label="Autoplay disabled."/>
-  <int value="5" label="Unexpected service disconnection."/>
-  <int value="6" label="Not playable muted."/>
-  <int value="7" label="Network error."/>
-</enum>
-
-<enum name="FeedVideoPlayEvent">
-  <int value="0" label="Auto-play stops before reaching the end."/>
-  <int value="1" label="Auto-play reaches the end."/>
-  <int value="2" label="User clicks on the auto-play video."/>
-  <int value="3" label="Video playing is triggered, but not started yet."/>
-  <int value="4" label="The player starts to play the video."/>
-  <int value="5" label="An error occurs during the video playing."/>
-</enum>
-
 <enum name="FencedFrameCreationOutcome">
   <int value="0" label="Success (default mode)"/>
   <int value="1" label="Success (opaque ads mode)"/>
@@ -34185,11 +33488,6 @@
   <int value="5" label="Hit maximum number of template status"/>
 </enum>
 
-<enum name="ForgetResult">
-  <int value="0" label="Failure"/>
-  <int value="1" label="Success"/>
-</enum>
-
 <enum name="FormatPixmapSupport">
   <int value="0" label="No format with Native Pixmaps"/>
   <int value="1" label="NV12 format with Native Pixmaps"/>
@@ -34712,1062 +34010,6 @@
   <int value="25" label="kBackgroundAllocationFailure"/>
 </enum>
 
-<enum name="GATTCharacteristicHash">
-<!-- Hash values can be produced using tool: bluetooth_metrics_hash -->
-
-  <int value="1615384" label="alert_notification_control_point"/>
-  <int value="4531384" label="date_of_birth"/>
-  <int value="14295641"
-      label="PocketLab; f000aa1e-0452-4000-b000-000000000000"/>
-  <int value="22829753" label="barometric_pressure_trend"/>
-  <int value="25010789"
-      label="PocketLab (from service 11);
-             f000aa17-0452-4000-b000-000000000000"/>
-  <int value="33030714" label="scan_refresh"/>
-  <int value="36624371"
-      label="Anki OVERDRIVE cars; be15bee0-6186-407e-8381-0bd89c4d8df4"/>
-  <int value="40437408" label="gender"/>
-  <int value="42833873" label="42833873 (Unknown; not a 16bit UUID)"/>
-  <int value="46607535"
-      label="PocketLab 1; f000aa14-0451-4000-b000-000000000000"/>
-  <int value="61502349"
-      label="PocketLab; f000aa2c-0452-4000-b000-000000000000"/>
-  <int value="64893984" label="local_east_coordinate.xml"/>
-  <int value="67768539" label="alert_category_id_bit_mask"/>
-  <int value="79560451" label="sc_control_point"/>
-  <int value="81699382"
-      label="PocketLab; f000aa1d-0452-4000-b000-000000000000"/>
-  <int value="84948752"
-      label="Eddystone Config ADV Slot Data;
-             a3c8750a-8ed3-4bdf-8a39-a01bebede295"/>
-  <int value="87432554"
-      label="Parrot Drone; 9a66fd54-0800-9191-11e4-012d1540cb8e"/>
-  <int value="87889094"
-      label="PocketLab 1; f000aa21-0451-4000-b000-000000000000"/>
-  <int value="89070880" label="blood_pressure_measurement"/>
-  <int value="102699400" label="cycling_power_feature"/>
-  <int value="107355463"
-      label="konashi analogRead2; 229b300a-03fb-40da-98a7-b0def65c2d4b"/>
-  <int value="107684477"
-      label="PocketLab; f000aa2d-0452-4000-b000-000000000000"/>
-  <int value="111826224"
-      label="micro:bit client requirements;
-             e95d23c4-251d-470a-a062-fa1922dfa9a8"/>
-  <int value="121100653"
-      label="Parrot Drone; 9a66fd22-0800-9191-11e4-012d1540cb8e"/>
-  <int value="129263762"
-      label="PocketLab; f000aa04-0452-4000-b000-000000000000"/>
-  <int value="145478270" label="glucose_feature"/>
-  <int value="162705488" label="manufacturer_name_string"/>
-  <int value="164418508" label="weight_measurement"/>
-  <int value="177223896" label="report_map"/>
-  <int value="193202136"
-      label="Anki OVERDRIVE cars; be15bee1-6186-407e-8381-0bd89c4d8df4"/>
-  <int value="197745578"
-      label="PocketLab 1; f000aa13-0451-4000-b000-000000000000"/>
-  <int value="203698195"
-      label="micro:bit event; e95d9775-251d-470a-a062-fa1922dfa9a8"/>
-  <int value="203846063" label="ff0c"/>
-  <int value="205016416" label="body_composition_measurement"/>
-  <int value="235785246" label="irradiance"/>
-  <int value="241152428"
-      label="PocketLab; f000aa25-0452-4000-b000-000000000000"/>
-  <int value="244169154"
-      label="PocketLab (from service 31);
-             f000aa32-0452-4000-b000-000000000000"/>
-  <int value="248349383" label="csc_measurement"/>
-  <int value="254703207" label="true_wind_speed"/>
-  <int value="257107525" label="intermediate_temperature"/>
-  <int value="259169368" label="cgm_measurement"/>
-  <int value="261747886" label="battery_level"/>
-  <int value="282925453" label="time_with_dst"/>
-  <int value="289588334" label="supported_unread_alert_category"/>
-  <int value="294481931"
-      label="Wahoo Kickr trainer; a026e005-0a7d-4ab3-97fa-f1500f9feb8b"/>
-  <int value="296670902" label="heart_rate_control_point"/>
-  <int value="298186521" label="alert_category_id"/>
-  <int value="305375377"
-      label="PocketLab 1; f000aa62-0451-4000-b000-000000000000"/>
-  <int value="307449363" label="plx_features"/>
-  <int value="310983691" label="cycling_power_measurement"/>
-  <int value="312578485" label="navigation"/>
-  <int value="314022771"
-      label="Remote Lego; 8d8ba32b-96be-4590-910b-c756c5222c9f"/>
-  <int value="318124766"
-      label="Remote Lego; fa10e4de-259e-4d23-9f59-45a9c66802ca"/>
-  <int value="333947401" label="temperature_measurement"/>
-  <int value="338768495" label="ringer_setting"/>
-  <int value="339742946" label="hid_information"/>
-  <int value="358854697" label="bond_management_feature"/>
-  <int value="359765018"
-      label="micro:bit client event; e95d5404-251d-470a-a062-fa1922dfa9a8"/>
-  <int value="361317539" label="language"/>
-  <int value="363167947" label="blood_pressure_feature"/>
-  <int value="364021976"
-      label="nRF candy machine; b6c31338-6c07-453e-961a-d8a8a41bf368"/>
-  <int value="368068304"
-      label="MiP Robot; Magic Blue Bulb; 0000ffe9-0000-1000-8000-00805f9b34fb"/>
-  <int value="371778276"
-      label="micro:bit requirements; e95db84c-251d-470a-a062-fa1922dfa9a8"/>
-  <int value="372306057"
-      label="Bleno Pizza Example; 13333333-3333-3333-3333-333333330001"/>
-  <int value="384581502"
-      label="PocketLab; f000aa07-0452-4000-b000-000000000000"/>
-  <int value="404638811"
-      label="konashi pwmParameter; 229b3005-03fb-40da-98a7-b0def65c2d4b"/>
-  <int value="405569435" label="boot_keyboard_output_report"/>
-  <int value="409618715" label="cycling_power_vector"/>
-  <int value="416059854"
-      label="konashi uartRxNotification; 229b3013-03fb-40da-98a7-b0def65c2d4b"/>
-  <int value="416715482"
-      label="PocketLab (from service 11);
-             f000aa19-0452-4000-b000-000000000000"/>
-  <int value="419477741" label="body_composition_feature"/>
-  <int value="426120542"
-      label="PocketLab; f000aa3b-0452-4000-b000-000000000000"/>
-  <int value="440009071"
-      label="konashi pwmDuty; 229b3006-03fb-40da-98a7-b0def65c2d4b"/>
-  <int value="448606809" label="448606809 (Unknown; not a 16bit UUID)"/>
-  <int value="449334956"
-      label="PocketLab; f000aa3d-0452-4000-b000-000000000000"/>
-  <int value="450021248"
-      label="PocketLab 1; f000aa34-0451-4000-b000-000000000000"/>
-  <int value="469191968" label="Playbulb Candle Color; fffc"/>
-  <int value="473092981"
-      label="Eddystone Config Advertising Interval;
-             a3c87503-8ed3-4bdf-8a39-a01bebede295"/>
-  <int value="486368335" label="location_name"/>
-  <int value="501361244"
-      label="PocketLab; f000aa21-0452-4000-b000-000000000000"/>
-  <int value="508191605"
-      label="Parrot Drone; 9a66fb1b-0800-9191-11e4-012d1540cb8e"/>
-  <int value="511033835"
-      label="konashi hardwareLowBatteryNotification;
-             229b3015-03fb-40da-98a7-b0def65c2d4b"/>
-  <int value="512543326" label="date_of_threshold_assessment"/>
-  <int value="517791580"
-      label="Sphero Robot; 22bb746f-2bbf-7554-2d6f-726568705327"/>
-  <int value="531135021" label="cgm_specific_ops_control_point"/>
-  <int value="540054581" label="magnetic_declination"/>
-  <int value="546162499"
-      label="Eddystone Config EID Identity Key;
-             a3c87509-8ed3-4bdf-8a39-a01bebede295"/>
-  <int value="546355367" label="firmware_revision_string"/>
-  <int value="549702960" label="humidity"/>
-  <int value="557034058" label="cycling_power_control_point"/>
-  <int value="557040382" label="hardware_revision_string"/>
-  <int value="561260257" label="analog"/>
-  <int value="580555542"
-      label="Remote Lego; 2ac1fdb2-d971-4595-8e32-e8c5d80edf5f"/>
-  <int value="589575132"
-      label="Sphero Robot; 22bb746f-2bbd-7554-2d6f-726568705327"/>
-  <int value="589741087" label="model_number_string"/>
-  <int value="599786587"
-      label="PocketLab (from service 11);
-             f000aa1a-0452-4000-b000-000000000000"/>
-  <int value="602410094"
-      label="PocketLab; f000aa28-0452-4000-b000-000000000000"/>
-  <int value="625191771"
-      label="Parrot Drone; 9a66fa0a-0800-9191-11e4-012d1540cb8e"/>
-  <int value="628511213"
-      label="PocketLab; f000aa3a-0452-4000-b000-000000000000"/>
-  <int value="638602429" label="new_alert"/>
-  <int value="640013977"
-      label="konashi uartBaudRate; 229b3011-03fb-40da-98a7-b0def65c2d4b"/>
-  <int value="640611109"
-      label="PocketLab (from service 11);
-             f000aa14-0452-4000-b000-000000000000"/>
-  <int value="642925692" label="anaerobic_heart_rate_lower_limit"/>
-  <int value="645640295"
-      label="PocketLab (from service 11);
-             f000aa16-0452-4000-b000-000000000000"/>
-  <int value="650507215" label="aerobic_heart_rate_lower_limit"/>
-  <int value="653904148" label="cgm_session_run_time"/>
-  <int value="659248322"
-      label="PocketLab; f000aa29-0452-4000-b000-000000000000"/>
-  <int value="675543714" label="aerobic_threshold"/>
-  <int value="682327952"
-      label="Parrot Drone; 9a66fa0b-0800-9191-11e4-012d1540cb8e"/>
-  <int value="685669143"
-      label="Parrot Drone; 9a66fa0c-0800-9191-11e4-012d1540cb8e"/>
-  <int value="689682673" label="unread_alert_status"/>
-  <int value="710863194" label="dew_point"/>
-  <int value="713208266" label="apparent_wind_direction"/>
-  <int value="724409151"
-      label="PocketLab; f000aa1f-0452-4000-b000-000000000000"/>
-  <int value="724796397" label="weight"/>
-  <int value="725361228"
-      label="PocketLab; f000aa10-0452-4000-b000-000000000000"/>
-  <int value="735462059"
-      label="konashi uartConfig; 229b3010-03fb-40da-98a7-b0def65c2d4b"/>
-  <int value="747671909" label="reference_time_information"/>
-  <int value="747737913"
-      label="konashi pioOutput; 229b3002-03fb-40da-98a7-b0def65c2d4b"/>
-  <int value="752820597" label="boot_mouse_input_report"/>
-  <int value="753456499"
-      label="PocketLab; f000aa27-0452-4000-b000-000000000000"/>
-  <int value="762835818" label="tx_power_level"/>
-  <int value="765862810" label="cgm_session_start_time"/>
-  <int value="777276843"
-      label="Bleno Pizza Example; 13333333-3333-3333-3333-333333330003"/>
-  <int value="784175223"
-      label="PocketLab; f000aa39-0452-4000-b000-000000000000"/>
-  <int value="786588903"
-      label="Parrot Drone; 9a66fd53-0800-9191-11e4-012d1540cb8e"/>
-  <int value="788890283"
-      label="Eddystone Config Factory reset;
-             a3c8750b-8ed3-4bdf-8a39-a01bebede295"/>
-  <int value="797118889" label="time_source"/>
-  <int value="806223105"
-      label="PocketLab; f000aa1c-0452-4000-b000-000000000000"/>
-  <int value="827298832"
-      label="PocketLab 1; f000aa41-0451-4000-b000-000000000000"/>
-  <int value="827651216"
-      label="PocketLab; f000aa20-0452-4000-b000-000000000000"/>
-  <int value="837013645"
-      label="PocketLab 1; f000aa64-0451-4000-b000-000000000000"/>
-  <int value="839366223" label="user_index"/>
-  <int value="842908520" label="rsc_measurement"/>
-  <int value="845003775"
-      label="Remote Lego; aad03b81-f2ea-47db-ae1e-7c2f9e86e93e"/>
-  <int value="845212855"
-      label="Elite trainer; 347b0011-7635-408b-8918-8ff3949ce592"/>
-  <int value="851655329"
-      label="konashi analogRead0; 229b3008-03fb-40da-98a7-b0def65c2d4b"/>
-  <int value="853857776"
-      label="PocketLab; f000aa2a-0452-4000-b000-000000000000"/>
-  <int value="859809200" label="resting_heart_rate"/>
-  <int value="867296114" label="gust_factor"/>
-  <int value="868427891" label="local_north_coordinate"/>
-  <int value="868892960" label="heat_index"/>
-  <int value="873660243" label="body_sensor_location"/>
-  <int value="893588698" label="scan_interval_window"/>
-  <int value="893850387"
-      label="Parrot Drone; 9a66fd23-0800-9191-11e4-012d1540cb8e"/>
-  <int value="910416910"
-      label="nRF UART RX; nrf52-Quadcopter;
-             6e400003-b5a3-f393-e0a9-e50e24dcca9e"/>
-  <int value="912333311" label="912333311 (Unknown; not a 16bit UUID)"/>
-  <int value="917477908" label="software_revision_string"/>
-  <int value="918961501" label="plx_spot_check_measurement"/>
-  <int value="922434244" label="ln_feature"/>
-  <int value="928099812" label="system_id"/>
-  <int value="928491064" label="last_name"/>
-  <int value="936278868"
-      label="PocketLab 1; f000aa53-0451-4000-b000-000000000000"/>
-  <int value="941113050"
-      label="konashi i2cReadParameter; 229b300e-03fb-40da-98a7-b0def65c2d4b"/>
-  <int value="947971228" label="temperature_type"/>
-  <int value="951656105"
-      label="Eddystone Config Remain Connectable;
-             a3c8750c-8ed3-4bdf-8a39-a01bebede295"/>
-  <int value="962656991"
-      label="Eddystone Config Public ECDH Key;
-             a3c87508-8ed3-4bdf-8a39-a01bebede295"/>
-  <int value="976761505" label="local_time_information"/>
-  <int value="981442423"
-      label="PocketLab 1; f000aa63-0451-4000-b000-000000000000"/>
-  <int value="987658962" label="glucose_measurement"/>
-  <int value="1002619180" label="exact_time_256"/>
-  <int value="1005198408"
-      label="PocketLab 1; f000aa51-0451-4000-b000-000000000000"/>
-  <int value="1018346218"
-      label="PocketLab; f000aa03-0452-4000-b000-000000000000"/>
-  <int value="1025676359" label="dst_offset"/>
-  <int value="1049176129"
-      label="PocketLab (from service 11);
-             f000aa15-0452-4000-b000-000000000000"/>
-  <int value="1050948662"
-      label="nRF UART TX; nrf52-Quadcopter;
-             6e400002-b5a3-f393-e0a9-e50e24dcca9e"/>
-  <int value="1061486494" label="anaerobic_heart_rate_upper_limit"/>
-  <int value="1070539317"
-      label="konashi pioSetting; 229b3000-03fb-40da-98a7-b0def65c2d4b"/>
-  <int value="1072163984" label="gap.reconnection_address"/>
-  <int value="1077684177"
-      label="Parrot Drone; 9a66fd52-0800-9191-11e4-012d1540cb8e"/>
-  <int value="1097514018"
-      label="PocketLab; f000aa06-0452-4000-b000-000000000000"/>
-  <int value="1100640868" label="day_of_week"/>
-  <int value="1102386988"
-      label="PocketLab 1; f000aa42-0451-4000-b000-000000000000"/>
-  <int value="1108268178"
-      label="PocketLab 1; f000aa23-0451-4000-b000-000000000000"/>
-  <int value="1115558005"
-      label="konashi hardwareReset; 229b3014-03fb-40da-98a7-b0def65c2d4b"/>
-  <int value="1117053056"
-      label="Remote Lego; 7baf8dca-2bfc-47fb-af29-042fccc180eb"/>
-  <int value="1125104414" label="gap.central_address_resolution_support"/>
-  <int value="1125757823"
-      label="PocketLab (from service 31);
-             f000aa33-0452-4000-b000-000000000000"/>
-  <int value="1134538374" label="hip_circumference"/>
-  <int value="1136624215" label="maximum_recommended_heart_rate"/>
-  <int value="1136682523" label="date_time"/>
-  <int value="1142216738"
-      label="PocketLab 1; f000aa22-0451-4000-b000-000000000000"/>
-  <int value="1154699367"
-      label="konashi uartTx; 229b3012-03fb-40da-98a7-b0def65c2d4b"/>
-  <int value="1161713439" label="Playbulb Candle Effect; fffb"/>
-  <int value="1167525145" label="alert_status"/>
-  <int value="1167648736"
-      label="PocketLab (from service 11);
-             f000aa18-0452-4000-b000-000000000000"/>
-  <int value="1169219288" label="1169219288 (Unknown; not a 16bit UUID)"/>
-  <int value="1183399370" label="magnetic_flux_density_3D"/>
-  <int value="1186677690"
-      label="Eddystone Config Advertised Tx Power;
-             a3c87505-8ed3-4bdf-8a39-a01bebede295"/>
-  <int value="1193066711" label="uv_index"/>
-  <int value="1211834643"
-      label="PocketLab; f000aa02-0452-4000-b000-000000000000"/>
-  <int value="1212625023"
-      label="PocketLab 1; f000aa52-0451-4000-b000-000000000000"/>
-  <int value="1214133688" label="vo2_max"/>
-  <int value="1217613737" label="three_zone_heart_rate_limits"/>
-  <int value="1225369773"
-      label="DOTTI; Makeblock mBot; 0000fff3-0000-1000-8000-00805f9b34fb"/>
-  <int value="1227844535" label="floor_number"/>
-  <int value="1237083013" label="first_name"/>
-  <int value="1243630465"
-      label="Sphero Robot; 22bb746f-2ba1-7554-2d6f-726568705327"/>
-  <int value="1245615057" label="pnp_id"/>
-  <int value="1254514264"
-      label="PocketLab; f000aa05-0452-4000-b000-000000000000"/>
-  <int value="1254532025" label="user_control_point"/>
-  <int value="1266038031" label="1266038031 (Unknown; not a 16bit UUID)"/>
-  <int value="1288236137" label="hid_control_point"/>
-  <int value="1293962119"
-      label="PocketLab 1; f000aa61-0451-4000-b000-000000000000"/>
-  <int value="1307935876"
-      label="Tacx trainer; 6e40fec3-b5a3-f393-e0a9-e50e24dcca9e"/>
-  <int value="1320278204"
-      label="Eddystone Config Radio Tx Power;
-             a3c87504-8ed3-4bdf-8a39-a01bebede295"/>
-  <int value="1324040850"
-      label="PocketLab 1; f000aa11-0451-4000-b000-000000000000"/>
-  <int value="1329901812"
-      label="Eddystone Config Lock State;
-             a3c87506-8ed3-4bdf-8a39-a01bebede295"/>
-  <int value="1333242790" label="longitude"/>
-  <int value="1334750659"
-      label="konashi i2cWrite; 229b300d-03fb-40da-98a7-b0def65c2d4b"/>
-  <int value="1345855767"
-      label="PocketLab 1; f000aa24-0451-4000-b000-000000000000"/>
-  <int value="1352512695" label="1352512695 (Unknown; not a 16bit UUID)"/>
-  <int value="1358488787"
-      label="sport_type_for_aerobic_and_anaerobic_thresholds"/>
-  <int value="1359562687"
-      label="PowerUp RC plane; 75b64e51-f184-4ed1-921a-476090d80ba7"/>
-  <int value="1366194038"
-      label="PocketLab; f000aa22-0452-4000-b000-000000000000"/>
-  <int value="1370497910" label="position_quality"/>
-  <int value="1370779343" label="apparent_wind_speed"/>
-  <int value="1378697826"
-      label="PocketLab; f000aa2f-0452-4000-b000-000000000000"/>
-  <int value="1399905251" label="elevation"/>
-  <int value="1403230035"
-      label="konashi analogDrive; 229b3007-03fb-40da-98a7-b0def65c2d4b"/>
-  <int value="1403795440" label="time_update_control_point"/>
-  <int value="1407679683" label="location_and_speed"/>
-  <int value="1409077916"
-      label="ieee_11073-20601_regulatory_certification_data_list"/>
-  <int value="1418868404"
-      label="gap.peripheral_preferred_connection_parameters"/>
-  <int value="1419696114" label="record_access_control_point"/>
-  <int value="1423142122"
-      label="PocketLab; f000aa01-0452-4000-b000-000000000000"/>
-  <int value="1426243900" label="time_update_state"/>
-  <int value="1443769073"
-      label="Parrot Drone; 9a66fb0e-0800-9191-11e4-012d1540cb8e"/>
-  <int value="1445812935" label="current_time"/>
-  <int value="1448457670" label="cgm_feature"/>
-  <int value="1451886110"
-      label="PocketLab; f000aa38-0452-4000-b000-000000000000"/>
-  <int value="1463907405"
-      label="PocketLab; f000aa2b-0452-4000-b000-000000000000"/>
-  <int value="1477417345"
-      label="PocketLab; f000aa23-0452-4000-b000-000000000000"/>
-  <int value="1479031407" label="five_zone_heart_rate_limits"/>
-  <int value="1480262218" label="height"/>
-  <int value="1482584061"
-      label="konashi pioPullUp; 229b3001-03fb-40da-98a7-b0def65c2d4b"/>
-  <int value="1485392010" label="1485392010 (Unknown; not a 16bit UUID)"/>
-  <int value="1501299347"
-      label="nRF candy machine; a6c31338-6c07-453e-961a-d8a8a41bf368"/>
-  <int value="1502604093" label="serial_number_string"/>
-  <int value="1511396316" label="ln_control_point"/>
-  <int value="1511953014"
-      label="Eddystone Config Capabilities;
-             a3c87501-8ed3-4bdf-8a39-a01bebede295"/>
-  <int value="1521362289" label="indoor_positioning_configuration"/>
-  <int value="1536163565"
-      label="Remote Lego; e0af3340-022e-47e1-a263-d68887dc41d4"/>
-  <int value="1537284424"
-      label="Bleno Pizza Example; 13333333-3333-3333-3333-333333330002"/>
-  <int value="1541435682" label="fat_burn_heart_rate_upper_limit"/>
-  <int value="1542101224" label="plx_continuous_measurent"/>
-  <int value="1547112406"
-      label="Eddystone Config Active Slot;
-             a3c87502-8ed3-4bdf-8a39-a01bebede295"/>
-  <int value="1547439596"
-      label="PocketLab 1; f000aa31-0451-4000-b000-000000000000"/>
-  <int value="1548291582"
-      label="konashi analogRead1; 229b3009-03fb-40da-98a7-b0def65c2d4b"/>
-  <int value="1551090056"
-      label="PocketLab; f000aa35-0452-4000-b000-000000000000"/>
-  <int value="1556918420" label="supported_new_alert_category"/>
-  <int value="1562359952" label="bond_management_control_point"/>
-  <int value="1581120657"
-      label="Parrot Drone; 9a66fb1c-0800-9191-11e4-012d1540cb8e"/>
-  <int value="1588237112"
-      label="PocketLab; f000aa3f-0452-4000-b000-000000000000"/>
-  <int value="1594190447" label="anaerobic_threshold"/>
-  <int value="1594284383" label="time_accuracy"/>
-  <int value="1599786113" label="sensor_location"/>
-  <int value="1611458228"
-      label="PocketLab; f000aa34-0452-4000-b000-000000000000"/>
-  <int value="1620145835"
-      label="PocketLab 1; f000aa54-0451-4000-b000-000000000000"/>
-  <int value="1650767660" label="protocol_mode"/>
-  <int value="1655824245" label="pressure"/>
-  <int value="1658559118" label="digital"/>
-  <int value="1667674937"
-      label="PocketLab 1; f000aa33-0451-4000-b000-000000000000"/>
-  <int value="1669829174"
-      label="Purple Eye; 00005200-0000-1000-8000-00805f9b34fb"/>
-  <int value="1676607014"
-      label="konashi i2cConfig; 229b300b-03fb-40da-98a7-b0def65c2d4b"/>
-  <int value="1704141710" label="true_wind_direction"/>
-  <int value="1717192545"
-      label="PocketLab 1; f000aa12-0451-4000-b000-000000000000"/>
-  <int value="1719495127"
-      label="PocketLab; f000aa00-0452-4000-b000-000000000000"/>
-  <int value="1732815395" label="alert_level"/>
-  <int value="1735563923" label="rsc_feature"/>
-  <int value="1748731133" label="intermediate_blood_pressure"/>
-  <int value="1774994865" label="day_date_time"/>
-  <int value="1777827929" label="heart_rate_measurement"/>
-  <int value="1778752264" label="magnetic_flux_density_2D"/>
-  <int value="1786548534"
-      label="Parrot Flypad; 9e35fa00-4344-44d4-a2e2-0c7f6046878b"/>
-  <int value="1794935269"
-      label="Sphero Robot; 22bb746f-2bb2-7554-2d6f-726568705327"/>
-  <int value="1807818076" label="rainfall"/>
-  <int value="1811011331" label="report"/>
-  <int value="1813165113" label="fat_burn_heart_rate_lower_limit"/>
-  <int value="1814120610"
-      label="Elgato Avea Bulb; f815e811-456c-6761-746f-4d756e696368"/>
-  <int value="1822663159" label="altitude"/>
-  <int value="1826219951" label="measurement_interval"/>
-  <int value="1834634616"
-      label="konashi i2cStartStop; 229b300c-03fb-40da-98a7-b0def65c2d4b"/>
-  <int value="1844236489"
-      label="Elite trainer; 347b0010-7635-408b-8918-8ff3949ce592"/>
-  <int value="1847017753"
-      label="konashi pwmConfig; 229b3004-03fb-40da-98a7-b0def65c2d4b"/>
-  <int value="1853459100" label="1853459100 (Unknown; not a 16bit UUID)"/>
-  <int value="1855704654" label="latitude"/>
-  <int value="1863022784"
-      label="Parrot Drone; 9a66fd24-0800-9191-11e4-012d1540cb8e"/>
-  <int value="1865494132"
-      label="konashi i2cRead; 229b300f-03fb-40da-98a7-b0def65c2d4b"/>
-  <int value="1866335371"
-      label="PocketLab; f000aa36-0452-4000-b000-000000000000"/>
-  <int value="1873367042"
-      label="PocketLab; f000aa3c-0452-4000-b000-000000000000"/>
-  <int value="1875571028"
-      label="PowerUp RC plane; 75b64e51-f185-4ed1-921a-476090d80ba7"/>
-  <int value="1881531610" label="descriptor_value_changed"/>
-  <int value="1899652799" label="pollen_concentration"/>
-  <int value="1904364134" label="aerobic_heart_rate_upper_limit"/>
-  <int value="1934342765"
-      label="PocketLab; f000aa30-0452-4000-b000-000000000000"/>
-  <int value="1936155204" label="gap.device_name"/>
-  <int value="1940300093"
-      label="Tacx trainer; 6e40fec2-b5a3-f393-e0a9-e50e24dcca9e"/>
-  <int value="1941001682"
-      label="LEGO Hub Boot Loader Characteristic;
-             00001626-1212-efde-1623-785feabcd123"/>
-  <int value="1945497075"
-      label="PocketLab; f000aa24-0452-4000-b000-000000000000"/>
-  <int value="1954594648" label="temperature"/>
-  <int value="1970019437" label="gap.peripheral_privacy_flag"/>
-  <int value="1974805193"
-      label="PocketLab; f000aa26-0452-4000-b000-000000000000"/>
-  <int value="1981651466" label="wind_chill"/>
-  <int value="1984759904" label="1984759904 (Unknown; not a 16bit UUID)"/>
-  <int value="1995515788"
-      label="PocketLab (from service 11);
-             f000aa1b-0452-4000-b000-000000000000"/>
-  <int value="1995890588"
-      label="PocketLab 1; f000aa43-0451-4000-b000-000000000000"/>
-  <int value="1999174392" label="glucose_measurement_context"/>
-  <int value="2000824522" label="waist_circumference"/>
-  <int value="2010182602" label="csc_feature"/>
-  <int value="2010559917"
-      label="PocketLab; f000aa2e-0452-4000-b000-000000000000"/>
-  <int value="2020665772"
-      label="PocketLab; f000aa3e-0452-4000-b000-000000000000"/>
-  <int value="2022949018" label="cgm_status"/>
-  <int value="2025615830" label="aggregate"/>
-  <int value="2025816471"
-      label="Eddystone Config Unlock; a3c87507-8ed3-4bdf-8a39-a01bebede295"/>
-  <int value="2031294873" label="uncertainty"/>
-  <int value="2040106786"
-      label="PocketLab 1; f000aa44-0451-4000-b000-000000000000"/>
-  <int value="2041423305" label="email_address"/>
-  <int value="2042267197" label="age"/>
-  <int value="2047173546" label="boot_keyboard_input_report"/>
-  <int value="2049531548"
-      label="nrf52-Quadcopter; 6e400004-b5a3-f393-e0a9-e50e24dcca9e"/>
-  <int value="2055293976"
-      label="Remote Lego; b394673e-dea0-4044-a189-86f1c85ce22e"/>
-  <int value="2066621778"
-      label="PocketLab; f000aa37-0452-4000-b000-000000000000"/>
-  <int value="2083994430" label="two_zone_heart_rate_limit"/>
-  <int value="2084445069" label="ringer_control_point"/>
-  <int value="2088370773"
-      label="PocketLab (from service 11);
-             f000aa13-0452-4000-b000-000000000000"/>
-  <int value="2091220203"
-      label="konashi pioInputNotification;
-             229b3003-03fb-40da-98a7-b0def65c2d4b"/>
-  <int value="2091531878" label="weight_scale_feature"/>
-  <int value="2093050338"
-      label="PocketLab; f000aa08-0452-4000-b000-000000000000"/>
-  <int value="2100140560" label="2100140560 (Unknown; not a 16bit UUID)"/>
-  <int value="2101185135" label="time_zone"/>
-  <int value="2103247472"
-      label="PocketLab; f000aa09-0452-4000-b000-000000000000"/>
-  <int value="2105952193" label="heart_rate_max"/>
-  <int value="2110830087"
-      label="Printer; 00002af1-0000-1000-8000-00805f9b34fb"/>
-  <int value="2118241351"
-      label="PocketLab 1; f000aa32-0451-4000-b000-000000000000"/>
-  <int value="2118566262" label="database_change_increment"/>
-  <int value="2122016879"
-      label="PocketLab (from service 11);
-             f000aa12-0452-4000-b000-000000000000"/>
-  <int value="2125906618" label="gap.appearance"/>
-  <int value="2129421706"
-      label="LEGO Hub Characteristic; 00001624-1212-efde-1623-785feabcd123"/>
-  <int value="2140490935" label="gatt.service_changed"/>
-</enum>
-
-<enum name="GattErrorCode">
-  <int value="0" label="Unknown"/>
-  <int value="1" label="Failed"/>
-  <int value="2" label="In Progress"/>
-  <int value="3" label="Invalid Length"/>
-  <int value="4" label="Not Permitted"/>
-  <int value="5" label="Not Authorized"/>
-  <int value="6" label="Not Paired"/>
-  <int value="7" label="Not Supported"/>
-</enum>
-
-<enum name="GATTServiceHash">
-<!-- Hash values can be produced using tool: bluetooth_metrics_hash -->
-
-  <int value="7464675" label="pulse_oximeter"/>
-  <int value="13977722"
-      label="Vernier Sensors; d91714ef-28b9-4f91-ba16-f0d9a604f112"/>
-  <int value="14295641"
-      label="PocketLab; f000aa1e-0452-4000-b000-000000000000"/>
-  <int value="26695985" label="fe20"/>
-  <int value="35226455" label="fe44"/>
-  <int value="35347197" label="fe26"/>
-  <int value="41430862" label="fea8"/>
-  <int value="44208286" label="fe29"/>
-  <int value="46512116" label="fe03"/>
-  <int value="47251880" label="fe8c"/>
-  <int value="48328546" label="febf"/>
-  <int value="48912332"
-      label="micro:bit Events; e95d93af-251d-470a-a062-fa1922dfa9a8"/>
-  <int value="56938056" label="feb9"/>
-  <int value="61502349"
-      label="PocketLab; f000aa2c-0452-4000-b000-000000000000"/>
-  <int value="62669585" label="feff"/>
-  <int value="70653353" label="fe37"/>
-  <int value="81094401" label="link_loss"/>
-  <int value="81699382"
-      label="PocketLab; f000aa1d-0452-4000-b000-000000000000"/>
-  <int value="85709298" label="fe38"/>
-  <int value="87242598"
-      label="PocketLab 1; f000aa40-0451-4000-b000-000000000000"/>
-  <int value="91953454" label="fe7b"/>
-  <int value="107684477"
-      label="PocketLab; f000aa2d-0452-4000-b000-000000000000"/>
-  <int value="108999394"
-      label="LEGO Hub Boot Loader Service;
-             00001625-1212-efde-1623-785feabcd123"/>
-  <int value="109066436" label="Printer; 18f0"/>
-  <int value="117033282" label="fe1e"/>
-  <int value="119232939" label="fe16"/>
-  <int value="124193922"
-      label="nrf52-Quadcopter; 6e400020-b5a3-f393-e0a9-e50e24dcca9e"/>
-  <int value="126220948" label="fec4"/>
-  <int value="129263762"
-      label="PocketLab; f000aa04-0452-4000-b000-000000000000"/>
-  <int value="129862977"
-      label="micro:bit LEDs; e95dd91d-251d-470a-a062-fa1922dfa9a8"/>
-  <int value="130754956" label="fe0d"/>
-  <int value="134110769" label="fecf"/>
-  <int value="141942246" label="fe1d"/>
-  <int value="150370668" label="150370668 (Unknown; not a 16bit UUID)"/>
-  <int value="152492105" label="fe5f"/>
-  <int value="169501939" label="fe4d"/>
-  <int value="199936534" label="fe3c"/>
-  <int value="214038522" label="fed3"/>
-  <int value="217781951" label="human_interface_device"/>
-  <int value="219286671" label="fe04"/>
-  <int value="221983129" label="fe66"/>
-  <int value="228594985" label="fe21"/>
-  <int value="229725863"
-      label="Juggglow; 624e957f-cb42-4cd6-bacc-84aeb898f69b"/>
-  <int value="239513635"
-      label="micro:bit Buttons; e95d9882-251d-470a-a062-fa1922dfa9a8"/>
-  <int value="239745754" label="fe22"/>
-  <int value="241152428"
-      label="PocketLab; f000aa25-0452-4000-b000-000000000000"/>
-  <int value="244169154"
-      label="PocketLab; f000aa32-0452-4000-b000-000000000000"/>
-  <int value="252638028" label="fe9c"/>
-  <int value="253001319" label="fe84"/>
-  <int value="265147461"
-      label="Root Robot; 48c5d828-ac2a-442d-97a3-0c9822b04979"/>
-  <int value="267848299" label="fe3e"/>
-  <int value="270670950" label="fe62"/>
-  <int value="272049750"
-      label="PocketLab 1; f000aa30-0451-4000-b000-000000000000"/>
-  <int value="272218751" label="automation_io"/>
-  <int value="273356483" label="fe68"/>
-  <int value="278860884" label="fe5c"/>
-  <int value="289754407" label="fe01"/>
-  <int value="291870040" label="fe6d"/>
-  <int value="295205583" label="fe27"/>
-  <int value="298938019"
-      label="PocketLab 1; f000aa20-0451-4000-b000-000000000000"/>
-  <int value="310654399" label="fe54"/>
-  <int value="314884784" label="fe65"/>
-  <int value="315044617" label="fea9"/>
-  <int value="321399472" label="fe86"/>
-  <int value="335078161"
-      label="Dotti; MiP Robot; 0000fff0-0000-1000-8000-00805f9b34fb"/>
-  <int value="336095190" label="fe1c"/>
-  <int value="337129282" label="fe73"/>
-  <int value="347254994" label="feb6"/>
-  <int value="350589357" label="fe8e"/>
-  <int value="353919198" label="fe41"/>
-  <int value="367801999" label="fe19"/>
-  <int value="381944619" label="continuous_glucose_monitoring"/>
-  <int value="384581502"
-      label="PocketLab; f000aa07-0452-4000-b000-000000000000"/>
-  <int value="393442080" label="fe47"/>
-  <int value="404751265" label="fe34"/>
-  <int value="406443827" label="fe08"/>
-  <int value="406667138" label="fe1b"/>
-  <int value="408422717" label="fe12"/>
-  <int value="411422080" label="feaf"/>
-  <int value="426120542"
-      label="PocketLab; f000aa3b-0452-4000-b000-000000000000"/>
-  <int value="428955508" label="fed8"/>
-  <int value="436040838" label="fe49"/>
-  <int value="442258066" label="fec6"/>
-  <int value="448479874" label="fe13"/>
-  <int value="449334956"
-      label="PocketLab; f000aa3d-0452-4000-b000-000000000000"/>
-  <int value="452749537" label="fe6f"/>
-  <int value="482634289"
-      label="SAM Labs Blocks; 3b989460-975f-11e4-a9fb-0002a5d5c51b"/>
-  <int value="486403409" label="fe7e"/>
-  <int value="493187195"
-      label="Insight cards; 13630000-aeb9-10cf-ef69-81e145a91113"/>
-  <int value="499379297" label="fe0c"/>
-  <int value="501361244"
-      label="PocketLab; f000aa21-0452-4000-b000-000000000000"/>
-  <int value="517314925" label="fe0e"/>
-  <int value="525609715"
-      label="PocketLab 1; f000aa10-0451-4000-b000-000000000000"/>
-  <int value="534472233" label="feea"/>
-  <int value="535574137" label="feb1"/>
-  <int value="539310529"
-      label="micro:bit DFU Control; e95d93b0-251d-470a-a062-fa1922dfa9a8"/>
-  <int value="540487861"
-      label="Parrot Drone; 9a66fd21-0800-9191-11e4-012d1540cb8e"/>
-  <int value="547028880" label="fed0"/>
-  <int value="547268186"
-      label="Parrot Drone; 9a66fb00-0800-9191-11e4-012d1540cb8e"/>
-  <int value="547391938" label="feee"/>
-  <int value="563178896" label="fec8"/>
-  <int value="572734315"
-      label="Sphero Robot; 22bb746f-2bb0-7554-2d6f-726568705327"/>
-  <int value="587509991" label="feba"/>
-  <int value="593291030" label="fe80"/>
-  <int value="593725623" label="fef8"/>
-  <int value="594122172" label="health_thermometer"/>
-  <int value="598801180" label="fe64"/>
-  <int value="599398840" label="feb4"/>
-  <int value="601952480"
-      label="PowerUp RC plane; 75b64e51-f181-4ed1-921a-476090d80ba7"/>
-  <int value="602410094"
-      label="PocketLab; f000aa28-0452-4000-b000-000000000000"/>
-  <int value="603143198" label="fef5"/>
-  <int value="604112254" label="fee4"/>
-  <int value="612248808" label="612248808 (Unknown; not a 16bit UUID)"/>
-  <int value="617434027" label="fe59"/>
-  <int value="621358948" label="fec7"/>
-  <int value="626013607" label="FIDO authentication service (fffd)"/>
-  <int value="628511213"
-      label="PocketLab; f000aa3a-0452-4000-b000-000000000000"/>
-  <int value="633977000" label="fedf"/>
-  <int value="634740644"
-      label="Purple Eye; 00005100-0000-1000-8000-00805f9b34fb"/>
-  <int value="642914459" label="fe3d"/>
-  <int value="643543662" label="fefe"/>
-  <int value="659248322"
-      label="PocketLab; f000aa29-0452-4000-b000-000000000000"/>
-  <int value="661885353"
-      label="Remote Lego; 40480f29-7bad-4ea5-8bf8-499405c9b324"/>
-  <int value="675211143" label="fe4a"/>
-  <int value="677930586" label="fe11"/>
-  <int value="683753134" label="fe82"/>
-  <int value="684646659" label="febb"/>
-  <int value="687580695" label="fe7a"/>
-  <int value="687720133" label="fe91"/>
-  <int value="688383299" label="fe1f"/>
-  <int value="690691504" label="bond_management"/>
-  <int value="695100933" label="fed4"/>
-  <int value="702341883" label="fed5"/>
-  <int value="703883979" label="fe87"/>
-  <int value="706159123" label="fe32"/>
-  <int value="712814660"
-      label="Eddystone-URL Beacon Configuration;
-             ee0c2080-8786-40ba-ab96-99b91ac981d8"/>
-  <int value="724409151"
-      label="PocketLab; f000aa1f-0452-4000-b000-000000000000"/>
-  <int value="725361228"
-      label="PocketLab; f000aa10-0452-4000-b000-000000000000"/>
-  <int value="739317418" label="fe05"/>
-  <int value="741183887" label="fe78"/>
-  <int value="749323131" label="fece"/>
-  <int value="753456499"
-      label="PocketLab; f000aa27-0452-4000-b000-000000000000"/>
-  <int value="762562796" label="fe5e"/>
-  <int value="775377708" label="fe2b"/>
-  <int value="780195705" label="fead"/>
-  <int value="784175223"
-      label="PocketLab; f000aa39-0452-4000-b000-000000000000"/>
-  <int value="786171562" label="fe0a"/>
-  <int value="803680658" label="fea3"/>
-  <int value="805645044" label="glucose"/>
-  <int value="806223105"
-      label="PocketLab; f000aa1c-0452-4000-b000-000000000000"/>
-  <int value="807272540" label="fe1a"/>
-  <int value="817497010" label="fe18"/>
-  <int value="827651216"
-      label="PocketLab; f000aa20-0452-4000-b000-000000000000"/>
-  <int value="836214784" label="cycling_power"/>
-  <int value="841972234" label="feeb"/>
-  <int value="853857776"
-      label="PocketLab; f000aa2a-0452-4000-b000-000000000000"/>
-  <int value="869059214" label="next_dst_change"/>
-  <int value="869682406" label="fe60"/>
-  <int value="873412183"
-      label="LEGO Hub Service; 00001623-1212-efde-1623-785feabcd123"/>
-  <int value="876407493" label="location_and_navigation"/>
-  <int value="878416856" label="fe85"/>
-  <int value="879242624"
-      label="nRF candy machine; a6c31337-6c07-453e-961a-d8a8a41bf368"/>
-  <int value="882315332" label="fe55"/>
-  <int value="889111031" label="fecd"/>
-  <int value="890629650" label="running_speed_and_cadence"/>
-  <int value="901700952" label="fedd"/>
-  <int value="902817086" label="fea2"/>
-  <int value="918911989" label="fed1"/>
-  <int value="931929648" label="Mi Band; fee0"/>
-  <int value="935427983" label="fed7"/>
-  <int value="936179325" label="feb5"/>
-  <int value="939739701" label="fe8f"/>
-  <int value="939958322" label="febc"/>
-  <int value="940942235" label="feef"/>
-  <int value="953202155" label="fe8d"/>
-  <int value="959163825"
-      label="Elgato Avea Bulb; f815e810-456c-6761-746f-4d756e696368"/>
-  <int value="960854785" label="fe53"/>
-  <int value="961193127" label="feb8"/>
-  <int value="963656436" label="fe77"/>
-  <int value="978815669"
-      label="CoolBeans Serial; a495ff10-c5b1-4b44-b512-1370f02d74de"/>
-  <int value="988476177"
-      label="PocketLab 1; f000aa50-0451-4000-b000-000000000000"/>
-  <int value="993332700"
-      label="micro:bit Temperature; e95d6100-251d-470a-a062-fa1922dfa9a8"/>
-  <int value="1001310815" label="fe75"/>
-  <int value="1018346218"
-      label="PocketLab; f000aa03-0452-4000-b000-000000000000"/>
-  <int value="1024550252" label="feda"/>
-  <int value="1029767622" label="internet_protocol_support"/>
-  <int value="1035129135" label="fe74"/>
-  <int value="1044298649" label="fe99"/>
-  <int value="1045265631"
-      label="Elite trainer; 347b0001-7635-408b-8918-8ff3949ce592"/>
-  <int value="1047979067" label="fe17"/>
-  <int value="1054370387" label="fef9"/>
-  <int value="1061554458" label="feaa"/>
-  <int value="1067649821" label="fe3f"/>
-  <int value="1079263879" label="fe06"/>
-  <int value="1085187782" label="feae"/>
-  <int value="1088150526" label="feb2"/>
-  <int value="1091337779" label="fefb"/>
-  <int value="1096286291" label="fed6"/>
-  <int value="1097514018"
-      label="PocketLab; f000aa06-0452-4000-b000-000000000000"/>
-  <int value="1102290958" label="fe56"/>
-  <int value="1103440256" label="fee9"/>
-  <int value="1107293675" label="cycling_speed_and_cadence"/>
-  <int value="1107743017" label="fe00"/>
-  <int value="1108163795" label="fec0"/>
-  <int value="1108885324" label="fe48"/>
-  <int value="1122138707" label="fed2"/>
-  <int value="1122276223" label="fe67"/>
-  <int value="1122861451" label="Playbulb Candle; ff02"/>
-  <int value="1125757823"
-      label="PocketLab; f000aa33-0452-4000-b000-000000000000"/>
-  <int value="1132318862" label="fe6a"/>
-  <int value="1133574029" label="fede"/>
-  <int value="1134418737" label="fed9"/>
-  <int value="1146291045" label="fe2e"/>
-  <int value="1155522736" label="fea0"/>
-  <int value="1181418959" label="feca"/>
-  <int value="1185484517" label="fe02"/>
-  <int value="1188875912" label="phone_alert_status"/>
-  <int value="1204532270" label="fea1"/>
-  <int value="1205730714" label="fe81"/>
-  <int value="1211834643"
-      label="PocketLab; f000aa02-0452-4000-b000-000000000000"/>
-  <int value="1213218283" label="feb7"/>
-  <int value="1219993345" label="device_information"/>
-  <int value="1225001939" label="fe6c"/>
-  <int value="1235220658" label="fe6e"/>
-  <int value="1236903028" label="fe9d"/>
-  <int value="1239202871" label="generic_attribute"/>
-  <int value="1244946418" label="fe61"/>
-  <int value="1250531601" label="fe15"/>
-  <int value="1254514264"
-      label="PocketLab; f000aa05-0452-4000-b000-000000000000"/>
-  <int value="1257014053" label="fe33"/>
-  <int value="1262008705" label="fef2"/>
-  <int value="1265172773" label="indoor_positioning"/>
-  <int value="1265779630" label="fe7d"/>
-  <int value="1275725183" label="febe"/>
-  <int value="1276692887" label="fe09"/>
-  <int value="1280998251" label="blood_pressure"/>
-  <int value="1289827687" label="fe7c"/>
-  <int value="1291799273"
-      label="littleBits; ded1c5a0-536c-11e6-beb8-9e71128cae77"/>
-  <int value="1293391247" label="fea4"/>
-  <int value="1295501517" label="fef3"/>
-  <int value="1300474367" label="fe70"/>
-  <int value="1300496660" label="fe23"/>
-  <int value="1324131957" label="ff08; 0000ff08-0000-1000-8000-00805f9b34fb"/>
-  <int value="1327498374"
-      label="nRF UART; 6e400001-b5a3-f393-e0a9-e50e24dcca9e"/>
-  <int value="1328850331"
-      label="micro:bit Accelerometer; e95d0753-251d-470a-a062-fa1922dfa9a8"/>
-  <int value="1344502489" label="fe92"/>
-  <int value="1352591424" label="fe2d"/>
-  <int value="1357782294" label="fe90"/>
-  <int value="1357850359" label="fefc"/>
-  <int value="1359442507"
-      label="Physical Web Light Switch; ba42561b-b1d2-440a-8d04-0cefb43faece"/>
-  <int value="1362860533" label="fe9a"/>
-  <int value="1366014117" label="fe2c"/>
-  <int value="1366194038"
-      label="PocketLab; f000aa22-0452-4000-b000-000000000000"/>
-  <int value="1369789354" label="current_time"/>
-  <int value="1376579922" label="fef0"/>
-  <int value="1377872916" label="fe51"/>
-  <int value="1378697826"
-      label="PocketLab; f000aa2f-0452-4000-b000-000000000000"/>
-  <int value="1380007534" label="fe96"/>
-  <int value="1382767841" label="fe93"/>
-  <int value="1394327958" label="fe24"/>
-  <int value="1398099241" label="user_data"/>
-  <int value="1402127045" label="fef4"/>
-  <int value="1415105941" label="scan_parameters"/>
-  <int value="1416866355" label="fe3b"/>
-  <int value="1422100109"
-      label="Sphero Robot; 22bb746f-2ba0-7554-2d6f-726568705327"/>
-  <int value="1423142122"
-      label="PocketLab; f000aa01-0452-4000-b000-000000000000"/>
-  <int value="1424865940" label="alert_notification"/>
-  <int value="1432421356" label="fe14"/>
-  <int value="1433847022" label="fefa"/>
-  <int value="1451886110"
-      label="PocketLab; f000aa38-0452-4000-b000-000000000000"/>
-  <int value="1463907405"
-      label="PocketLab; f000aa2b-0452-4000-b000-000000000000"/>
-  <int value="1465794357" label="feb0"/>
-  <int value="1477417345"
-      label="PocketLab; f000aa23-0452-4000-b000-000000000000"/>
-  <int value="1482395712"
-      label="Bleno Pizza Example; 13333333-3333-3333-3333-333333333337"/>
-  <int value="1484296385" label="fe30"/>
-  <int value="1486406094" label="1486406094 (Unknown; not a 16bit UUID)"/>
-  <int value="1513113754" label="fe39"/>
-  <int value="1515793787" label="fef1"/>
-  <int value="1545945606"
-      label="Parrot Drone; 9a66fa00-0800-9191-11e4-012d1540cb8e"/>
-  <int value="1548928839" label="fec5"/>
-  <int value="1549672811"
-      label="nRF candy machine; b6c31337-6c07-453e-961a-d8a8a41bf368"/>
-  <int value="1551090056"
-      label="PocketLab; f000aa35-0452-4000-b000-000000000000"/>
-  <int value="1553614739" label="fe6b"/>
-  <int value="1563543855" label="fe72"/>
-  <int value="1569655226" label="generic_access"/>
-  <int value="1573199922" label="fe71"/>
-  <int value="1578535968"
-      label="Makeblock mBot; 0000ffe1-0000-1000-8000-00805f9b34fb"/>
-  <int value="1588237112"
-      label="PocketLab; f000aa3f-0452-4000-b000-000000000000"/>
-  <int value="1594426590" label="fe4e"/>
-  <int value="1600490722" label="fe46"/>
-  <int value="1604724337" label="fe88"/>
-  <int value="1606985074" label="feed"/>
-  <int value="1607594729" label="fe0f"/>
-  <int value="1611458228"
-      label="PocketLab; f000aa34-0452-4000-b000-000000000000"/>
-  <int value="1618872680" label="fe9b"/>
-  <int value="1631386264" label="fefd"/>
-  <int value="1635890706" label="fe9e"/>
-  <int value="1637021391" label="fe95"/>
-  <int value="1638012344" label="fe97"/>
-  <int value="1648320092" label="fe7f"/>
-  <int value="1651126525" label="fe25"/>
-  <int value="1651610232" label="fe52"/>
-  <int value="1655806770"
-      label="PocketLab Voyager; f000aa11-0452-4000-b000-000000000000"/>
-  <int value="1660904097" label="immediate_alert"/>
-  <int value="1663141542" label="battery_service"/>
-  <int value="1671670551" label="fe5a"/>
-  <int value="1673238799" label="fee3"/>
-  <int value="1680929515" label="fe79"/>
-  <int value="1681595304" label="fe4b"/>
-  <int value="1682716946" label="fe45"/>
-  <int value="1694516494" label="fe31"/>
-  <int value="1696287138" label="weight_scale"/>
-  <int value="1697181639" label="1697181639 (Unknown; not a 16bit UUID)"/>
-  <int value="1701893879" label="feac"/>
-  <int value="1704852137" label="1704852137 (Unknown; not a 16bit UUID)"/>
-  <int value="1706666451" label="fea7"/>
-  <int value="1708135819" label="1708135819 (Unknown; not a 16bit UUID)"/>
-  <int value="1712085581"
-      label="MiP Robot; Magic Blue Bulb; 0000ffe5-0000-1000-8000-00805f9b34fb"/>
-  <int value="1714031075" label="fe10"/>
-  <int value="1719495127"
-      label="PocketLab; f000aa00-0452-4000-b000-000000000000"/>
-  <int value="1724509641" label="fe8b"/>
-  <int value="1729966097"
-      label="Anki OVERDRIVE cars; be15beef-6186-407e-8381-0bd89c4d8df4"/>
-  <int value="1753170093" label="environmental_sensing"/>
-  <int value="1763555668" label="fe76"/>
-  <int value="1779377938" label="fe5d"/>
-  <int value="1784351685" label="feab"/>
-  <int value="1788143374" label="feb3"/>
-  <int value="1788905945" label="fedb"/>
-  <int value="1789684919" label="fe36"/>
-  <int value="1801426861"
-      label="micro:bit Magnetometer; e95df2d8-251d-470a-a062-fa1922dfa9a8"/>
-  <int value="1805849785" label="fe98"/>
-  <int value="1808789304" label="fe3a"/>
-  <int value="1821803686" label="TI SensorTag Simple Keys; ffe0"/>
-  <int value="1823176820" label="body_composition"/>
-  <int value="1826466999" label="fee1"/>
-  <int value="1829698279" label="fe0b"/>
-  <int value="1833458622" label="fe42"/>
-  <int value="1844072312" label="fe40"/>
-  <int value="1849709266" label="fec3"/>
-  <int value="1852765173" label="1852765173 (Unknown; not a 16bit UUID)"/>
-  <int value="1855849484"
-      label="iHealth Edge; 636f6d2e-6a69-7561-6e2e-414d56313100"/>
-  <int value="1866335371"
-      label="PocketLab; f000aa36-0452-4000-b000-000000000000"/>
-  <int value="1873367042"
-      label="PocketLab; f000aa3c-0452-4000-b000-000000000000"/>
-  <int value="1891274929" label="fee2"/>
-  <int value="1891804450" label="fe58"/>
-  <int value="1905398969" label="fee6"/>
-  <int value="1915568448" label="fe89"/>
-  <int value="1922068523" label="fef6"/>
-  <int value="1922152740" label="fe8a"/>
-  <int value="1922853101" label="fe28"/>
-  <int value="1925022679" label="fe57"/>
-  <int value="1934342765"
-      label="PocketLab; f000aa30-0452-4000-b000-000000000000"/>
-  <int value="1940012814" label="fe2a"/>
-  <int value="1942373991"
-      label="Eddystone-URL Beacon Configuration v2;
-             a3c87500-8ed3-4bdf-8a39-a01bebede295"/>
-  <int value="1945497075"
-      label="PocketLab; f000aa24-0452-4000-b000-000000000000"/>
-  <int value="1946977319" label="fec1"/>
-  <int value="1953707948" label="fe9f"/>
-  <int value="1960388103" label="fecb"/>
-  <int value="1969478137" label="fe63"/>
-  <int value="1970234661" label="reference_time_update"/>
-  <int value="1971997463" label="fe07"/>
-  <int value="1974805193"
-      label="PocketLab; f000aa26-0452-4000-b000-000000000000"/>
-  <int value="1976176123" label="fe4c"/>
-  <int value="1983035069" label="fec9"/>
-  <int value="1984351068" label="fea6"/>
-  <int value="2010559917"
-      label="PocketLab; f000aa2e-0452-4000-b000-000000000000"/>
-  <int value="2016025023" label="febd"/>
-  <int value="2017827114" label="fe4f"/>
-  <int value="2018026941"
-      label="konashi; 229bff00-03fb-40da-98a7-b0def65c2d4b"/>
-  <int value="2020665772"
-      label="PocketLab; f000aa3e-0452-4000-b000-000000000000"/>
-  <int value="2021054861"
-      label="Tacx trainer; 6e40fec1-b5a3-f393-e0a9-e50e24dcca9e"/>
-  <int value="2022676622" label="fe35"/>
-  <int value="2051635436" label="fe50"/>
-  <int value="2055825405" label="fedc"/>
-  <int value="2058080782" label="fecc"/>
-  <int value="2061595680" label="fea5"/>
-  <int value="2066621778"
-      label="PocketLab; f000aa37-0452-4000-b000-000000000000"/>
-  <int value="2069612985" label="fee5"/>
-  <int value="2070392722" label="fec2"/>
-  <int value="2075745564" label="heart_rate"/>
-  <int value="2081202638"
-      label="PocketLab 1; f000aa60-0451-4000-b000-000000000000"/>
-  <int value="2081534039" label="fe83"/>
-  <int value="2083938968"
-      label="micro:bit IO PINs; e95d127b-251d-470a-a062-fa1922dfa9a8"/>
-  <int value="2086529225" label="tx_power"/>
-  <int value="2093050338"
-      label="PocketLab; f000aa08-0452-4000-b000-000000000000"/>
-  <int value="2095670709"
-      label="PocketLab Voyager; f000aa31-0452-4000-b000-000000000000"/>
-  <int value="2097896377" label="fee8"/>
-  <int value="2100033855" label="fef7"/>
-  <int value="2103247472"
-      label="PocketLab; f000aa09-0452-4000-b000-000000000000"/>
-  <int value="2107223399" label="fee7"/>
-  <int value="2108894990" label="fe2f"/>
-  <int value="2110412550" label="fe43"/>
-  <int value="2113887919" label="fe5b"/>
-  <int value="2115271248" label="fe94"/>
-  <int value="2124678180"
-      label="Parrot Drone; 9a66fd51-0800-9191-11e4-012d1540cb8e"/>
-  <int value="2132514937" label="feec"/>
-  <int value="2136716957" label="fe69"/>
-</enum>
-
 <enum name="GCMCheckinRequestStatus">
   <int value="0" label="Success"/>
   <int value="1" label="URL fetching failed (until M82)"/>
@@ -40364,6 +38606,13 @@
   <int value="2" label="Feed collapsed"/>
 </enum>
 
+<enum name="IOSNTPNewBadgeShownResult">
+  <int value="0" label="Shown"/>
+  <int value="1" label="Not shown due to limit reached"/>
+  <int value="2"
+      label="Not shown due to the button already having been pressed"/>
+</enum>
+
 <enum name="IOSNTPOverscrollAction">
   <int value="0" label="Open New Tab"/>
   <int value="1" label="Pull to Refresh"/>
@@ -44755,6 +43004,8 @@
       label="RTCDisallowPlanBOutsideDeprecationTrial:disabled"/>
   <int value="-1641384018" label="SideSearchClearCacheWhenClosed:enabled"/>
   <int value="-1640944841" label="HardwareSecureDecryption:disabled"/>
+  <int value="-1640077990"
+      label="AutofillEnableVcnEnrollLoadingAndConfirmation:disabled"/>
   <int value="-1639631778"
       label="EnableWebHidOnExtensionServiceWorker:enabled"/>
   <int value="-1639534120" label="VaapiVp9kSVCHWEncoding:enabled"/>
@@ -44880,6 +43131,8 @@
   <int value="-1588702520" label="WebOTPCrossDevice:disabled"/>
   <int value="-1588221814" label="NtpReducedLogoSpace:disabled"/>
   <int value="-1588015999" label="ParcelTrackingTestData:disabled"/>
+  <int value="-1587103154"
+      label="AutofillEnableVcnEnrollLoadingAndConfirmation:enabled"/>
   <int value="-1586642651" label="MaterialDesignExtensions:disabled"/>
   <int value="-1586295595" label="SidePanelWebView:disabled"/>
   <int value="-1585733447" label="ContextualSearchUnityIntegration:disabled"/>
@@ -57425,16 +55678,6 @@
   <int value="4" label="Uploaded image"/>
 </enum>
 
-<enum name="NTPBrokenViewHierarchyRelationship">
-  <int value="0" label="ELM collection containing Content Suggestions fixed"/>
-  <int value="1" label="Discover feed containing ELM collection fixed"/>
-  <int value="2" label="Discover feed wrapper containing Discover feed fixed"/>
-  <int value="3" label="NTP containing Discover feed wrapper fixed"/>
-  <int value="4"
-      label="Content suggestions view controller not cleaned up on restart"/>
-  <int value="5" label="ELM collection view containing feed header fixed"/>
-</enum>
-
 <enum name="NTPChromeWebStoreOpen">
   <int value="0" label="Appearance section"/>
   <int value="1" label="Theme collections page"/>
@@ -61535,13 +59778,6 @@
   <int value="123" label="ENOMEDIUM">No medium found</int>
 </enum>
 
-<enum name="PopupBlockerAction">
-  <int value="0" label="Popup initiated"/>
-  <int value="1" label="Popup blocked"/>
-  <int value="2" label="Popup clicked through (no gesture)"/>
-  <int value="3" label="Popup clicked through (abusive)"/>
-</enum>
-
 <enum name="PopupProvider">
 <!--
       Privacy Team wants to monitor additions to this enum.
@@ -63628,6 +61864,13 @@
   <int value="1" label="Product is Untracked"/>
 </enum>
 
+<enum name="PriceTrackingIconInteractionState">
+  <int value="0" label="Clicked (not expanded)"/>
+  <int value="1" label="Clicked (after expansion)"/>
+  <int value="2" label="Not clicked (not expanded)"/>
+  <int value="3" label="Not clicked (after expansion)"/>
+</enum>
+
 <enum name="PrimaryCpuAbiBitness">
   <int value="0" label="Unknown"/>
   <int value="1" label="32-bit"/>
@@ -68336,13 +66579,6 @@
   <int value="9" label="Web App Kiosk"/>
 </enum>
 
-<enum name="SetNicknameResult">
-  <int value="0" label="Invalid nickname format"/>
-  <int value="1" label="Device not found"/>
-  <int value="2" label="Prefs unavailable"/>
-  <int value="3" label="Success"/>
-</enum>
-
 <enum name="SettingId">
   <int value="1" label="Wifi"/>
   <int value="2" label="Cellular"/>
@@ -69878,14 +68114,6 @@
   <int value="3" label="Fresh index with cache updated since backend start"/>
 </enum>
 
-<enum name="SingleWebFeedEntryPoint">
-  <int value="0" label="Menu"/>
-  <int value="1" label="Attribtuion"/>
-  <int value="2" label="Recommendation"/>
-  <int value="3" label="Group Header"/>
-  <int value="4" label="Other"/>
-</enum>
-
 <enum name="SiteEngagementHeuristicState">
   <int value="0"
       label="HTTPS-First Mode got enabled on this site because its HTTPS
@@ -71024,14 +69252,6 @@
   <int value="3" label="Video streaming is stopped"/>
 </enum>
 
-<enum name="StrongPopupBlockerAction">
-  <int value="0" label="Navigation commit"/>
-  <int value="1" label="Commit warn site"/>
-  <int value="2" label="Commit enforced site"/>
-  <int value="3" label="Popup considered"/>
-  <int value="4" label="Popup blocked"/>
-</enum>
-
 <enum name="StylusHandwritingApi">
   <int value="0" label="Android API"/>
   <int value="1" label="DirectWriting API"/>
@@ -76435,52 +74655,6 @@
   <int value="6" label="User already opted into FIDO auth, no need to offer"/>
 </enum>
 
-<enum name="WebBluetoothConnectGATTOutcome">
-  <int value="0" label="Success"/>
-  <int value="1" label="Device no longer in range"/>
-  <int value="2" label="Unknown Error"/>
-  <int value="3" label="In Progress"/>
-  <int value="4" label="Failed"/>
-  <int value="5" label="Auth Failed"/>
-  <int value="6" label="Auth Canceled"/>
-  <int value="7" label="Auth Rejected"/>
-  <int value="8" label="Auth Timeout"/>
-  <int value="9" label="Unsupported Device"/>
-  <int value="10" label="Not Ready"/>
-  <int value="11" label="Already Connected"/>
-  <int value="12" label="Already Exists"/>
-  <int value="13" label="Not Connected"/>
-  <int value="14" label="Does Not Exist"/>
-  <int value="15" label="Invalid Arguments"/>
-</enum>
-
-<enum name="WebBluetoothGATTOperationOutcome">
-  <int value="0" label="Success"/>
-  <int value="1" label="No Device"/>
-  <int value="2" label="No Service"/>
-  <int value="3" label="No Characteristic"/>
-  <int value="4" label="No Descriptor"/>
-  <int value="5" label="Unknown"/>
-  <int value="6" label="Failed"/>
-  <int value="7" label="In Progress"/>
-  <int value="8" label="Invalid Length"/>
-  <int value="9" label="Not Permitted"/>
-  <int value="10" label="Not Authorized"/>
-  <int value="11" label="Not Paired"/>
-  <int value="12" label="Not Supported"/>
-  <int value="13" label="Blocklisted"/>
-</enum>
-
-<enum name="WebBluetoothRSSISignalStrengthLevel">
-  <int value="0" label="&lt;= minimum RSSI; displayed as level 0"/>
-  <int value="1" label="RSSI displayed as level 0"/>
-  <int value="2" label="RSSI displayed as level 1"/>
-  <int value="3" label="RSSI displayed as level 2"/>
-  <int value="4" label="RSSI displayed as level 3"/>
-  <int value="5" label="RSSI displayed as level 4"/>
-  <int value="6" label="&gt;= maximium RSSI; displayed as level 4"/>
-</enum>
-
 <!--
 This must be kept in sync with services/network/public/mojom/web_client_hints_types.mojom
 DO NOT REMOVE TYPES THAT MADE IT TO STABLE AT ANY POINT!
@@ -76538,78 +74712,6 @@
   <int value="9" label="kFailedToCommitInitTransaction"/>
 </enum>
 
-<enum name="WebFeedChangeReason">
-  <int value="0" label="Unspecified">Unknown change reason</int>
-  <int value="1" label="Web page menu">
-    The user tapped the Follow/Unfollow option from the three dot menu while on
-    a web page.
-  </int>
-  <int value="2" label="Web page accelerator">
-    The user tapped the Follow accelerator while visiting a site.
-  </int>
-  <int value="3" label="Management page">
-    The user tapped to Follow/Unfollow on the Follow Management page.
-  </int>
-  <int value="4" label="In feed recommendation">
-    The user tapped to Follow/Unfollow a recommendation embedded in feed
-    content.
-  </int>
-  <int value="5" label="Back of card unfollow">
-    The user tapped 'Unfollow' on the back of card menu.
-  </int>
-  <int value="6" label="Recommendation web page accelerator">
-    The user tapped a web page on a recommendation card.
-  </int>
-</enum>
-
-<enum name="WebFeedPageInformationRequestReason">
-  <int value="0" label="User Requested Follow">
-    The user requested to Follow the current web page.
-  </int>
-  <int value="1" label="Follow Recommendation">
-    A Follow recommendation is being considered the current web page.
-  </int>
-  <int value="2" label="Menu Item Presentation">
-    The Follow menu item state needs to reflect the current web page.
-  </int>
-</enum>
-
-<enum name="WebFeedPostFollowDialogPresentation">
-  <int value="0"
-      label="Available - Post-follow dialog for an available web feed"/>
-  <int value="1"
-      label="Unavailable - Post-follow dialog for an unavailable web feed"/>
-</enum>
-
-<enum name="WebFeedQueryRequestStatus">
-  <int value="0" label="Unknown status"/>
-  <int value="1" label="Success. The query succeeded."/>
-  <int value="2" label="Failed because the device is offline"/>
-  <int value="3" label="Failed for an unknown reason"/>
-  <int value="4" label="Failed due to pending ClearAll action"/>
-</enum>
-
-<enum name="WebFeedRefreshStatus">
-  <int value="0" label="Unknown status"/>
-  <int value="1" label="Success"/>
-  <int value="2" label="Failed due to a network error"/>
-  <int value="3" label="Failed because the request was throttled client-side"/>
-  <int value="4" label="Failed because there is a pending ClearAll operation"/>
-</enum>
-
-<enum name="WebFeedSubscriptionRequestStatus">
-  <int value="0" label="Unknown status"/>
-  <int value="1"
-      label="Success. The follow/unfollow succeeded. Also reported when
-             following an already-followed web feed, or unfollowing a web
-             feed which is not followed."/>
-  <int value="2" label="Failed because the device is offline"/>
-  <int value="3"
-      label="Failed because the user has reached the subscription limit"/>
-  <int value="4" label="Failed for an unknown reason"/>
-  <int value="5" label="Failed due to pending ClearAll action"/>
-</enum>
-
 <enum name="WebFontCacheHit">
   <int value="0" label="Miss"/>
   <int value="1" label="Hit disk cache"/>
diff --git a/tools/metrics/histograms/histograms_index.txt b/tools/metrics/histograms/histograms_index.txt
index f2d495c..34edc87 100644
--- a/tools/metrics/histograms/histograms_index.txt
+++ b/tools/metrics/histograms/histograms_index.txt
@@ -17,6 +17,7 @@
 tools/metrics/histograms/metadata/autofill/histograms.xml
 tools/metrics/histograms/metadata/background/histograms.xml
 tools/metrics/histograms/metadata/blink/histograms.xml
+tools/metrics/histograms/metadata/bluetooth/enums.xml
 tools/metrics/histograms/metadata/bluetooth/histograms.xml
 tools/metrics/histograms/metadata/bookmarks/enums.xml
 tools/metrics/histograms/metadata/bookmarks/histograms.xml
@@ -35,6 +36,7 @@
 tools/metrics/histograms/metadata/compose/enums.xml
 tools/metrics/histograms/metadata/compose/histograms.xml
 tools/metrics/histograms/metadata/compositing/histograms.xml
+tools/metrics/histograms/metadata/content/enums.xml
 tools/metrics/histograms/metadata/content/histograms.xml
 tools/metrics/histograms/metadata/content_creation/histograms.xml
 tools/metrics/histograms/metadata/cookie/histograms.xml
diff --git a/tools/metrics/histograms/metadata/METRIC_REVIEWER_OWNERS b/tools/metrics/histograms/metadata/METRIC_REVIEWER_OWNERS
index b6b90b68..009a140 100644
--- a/tools/metrics/histograms/metadata/METRIC_REVIEWER_OWNERS
+++ b/tools/metrics/histograms/metadata/METRIC_REVIEWER_OWNERS
@@ -420,7 +420,6 @@
 # web_apk
 eirage@chromium.org
 hartmanng@chromium.org
-rayankans@chromium.org
 # webapps
 alancutter@chromium.org
 dmurph@chromium.org
diff --git a/tools/metrics/histograms/metadata/ash/histograms.xml b/tools/metrics/histograms/metadata/ash/histograms.xml
index 4710582..0acd8cb 100644
--- a/tools/metrics/histograms/metadata/ash/histograms.xml
+++ b/tools/metrics/histograms/metadata/ash/histograms.xml
@@ -6278,7 +6278,10 @@
 </histogram>
 
 <histogram name="Ash.SplitView.SwapWindowSource"
-    enum="SplitViewSwapWindowsSource" expires_after="2024-04-10">
+    enum="SplitViewSwapWindowsSource" expires_after="2023-12-10">
+  <obsolete>
+    Deprecated Nov 2023 as the swap entry point is deprecated.
+  </obsolete>
   <owner>michelefan@chromium.org</owner>
   <owner>xdai@chromium.org</owner>
   <summary>
diff --git a/tools/metrics/histograms/metadata/bluetooth/enums.xml b/tools/metrics/histograms/metadata/bluetooth/enums.xml
new file mode 100644
index 0000000..6e79913
--- /dev/null
+++ b/tools/metrics/histograms/metadata/bluetooth/enums.xml
@@ -0,0 +1,1416 @@
+<!--
+Copyright 2023 The Chromium Authors
+Use of this source code is governed by a BSD-style license that can be
+found in the LICENSE file.
+-->
+
+<!--
+
+This file describes the enumerations referenced by entries in histograms.xml for
+this directory. Some enums may instead be listed in the central enums.xml file
+at src/tools/metrics/histograms/enums.xml when multiple files use them.
+
+For best practices on writing enumerations descriptions, see
+https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md#Enum-Histograms
+
+Please follow the instructions in the OWNERS file in this directory to find a
+reviewer. If no OWNERS file exists, please consider signing up at
+go/reviewing-metrics (Googlers only), as all subdirectories are expected to
+have an OWNERS file. As a last resort you can send the CL to
+chromium-metrics-reviews@google.com.
+-->
+
+<histogram-configuration>
+
+<!-- Enum types -->
+
+<enums>
+
+<enum name="BluetoothAdapterConnectToServiceInsecurelyResult">
+  <int value="0" label="Success"/>
+  <int value="1" label="Error: Invalid arguments"/>
+  <int value="2" label="Error: Operation already in progress"/>
+  <int value="3" label="Error: Already exists"/>
+  <int value="4" label="Error: Operation is not supported"/>
+  <int value="5" label="Error: Not connected"/>
+  <int value="6" label="Error: Already connected"/>
+  <int value="7" label="Error: Operation currently not available"/>
+  <int value="8" label="Error: Does not exist"/>
+  <int value="9" label="Error: Operation not authorized"/>
+  <int value="10" label="Error: Not permitted"/>
+  <int value="11" label="Error: No such adapter"/>
+  <int value="12" label="Error: Agent not available"/>
+  <int value="13" label="Error: Resource not ready"/>
+  <int value="14" label="Error: Failed"/>
+  <int value="15" label="Error: Failed to create receiving Mojo pipe"/>
+  <int value="16" label="Error: Failed to create sending Mojo pipe"/>
+  <int value="17" label="Error: Could not connect to device"/>
+  <int value="18" label="Error: Unknown"/>
+</enum>
+
+<enum name="BluetoothConnectionFailureReason">
+  <int value="0" label="Unknown error"/>
+  <int value="1" label="System or Chrome runtime error"/>
+  <int value="2" label="Authentication failed"/>
+  <int value="3" label="Authentication timed out"/>
+  <int value="4" label="Connection failed"/>
+  <int value="5" label="Unknown connection error"/>
+  <int value="6" label="Unsupported device"/>
+  <int value="7" label="Not connectable"/>
+  <int value="8" label="Authentication canceled"/>
+  <int value="9" label="Authentication rejected"/>
+  <int value="10" label="Connection in progress"/>
+</enum>
+
+<enum name="BluetoothConnectToServiceError">
+  <int value="0" label="Unknown"/>
+  <int value="1" label="Failed to accept connection"/>
+  <int value="2" label="Invalid UUID"/>
+  <int value="3" label="Socket is not listening"/>
+</enum>
+
+<enum name="BluetoothDeviceConnectErrorCode">
+  <int value="0" label="Authorization Cancelled"/>
+  <int value="1" label="Authorization Failed"/>
+  <int value="2" label="Authorization Rejected"/>
+  <int value="3" label="Authorization Timeout"/>
+  <int value="4" label="Failed"/>
+  <int value="5" label="In Progress"/>
+  <int value="6" label="Unknown"/>
+  <int value="7" label="Unsupported Device"/>
+  <int value="8" label="Not Ready"/>
+  <int value="9" label="Already Connected"/>
+  <int value="10" label="Already Exists"/>
+  <int value="11" label="Not Connected"/>
+  <int value="12" label="Does Not Exist"/>
+  <int value="13" label="Invalid Arguments"/>
+</enum>
+
+<enum name="BluetoothDeviceConnectToServiceFailureReason">
+  <int value="0" label="Connection already connected"/>
+  <int value="1" label="Page timeout"/>
+  <int value="2" label="Profile unavailable"/>
+  <int value="3" label="SDP search"/>
+  <int value="4" label="Create socket"/>
+  <int value="5" label="Invalid argument"/>
+  <int value="6" label="Adapter not powered"/>
+  <int value="7" label="Not supported"/>
+  <int value="8" label="Bad socket"/>
+  <int value="9" label="Memory allocation"/>
+  <int value="10" label="Busy"/>
+  <int value="11" label="Concurrent connection limit"/>
+  <int value="12" label="Timeout"/>
+  <int value="13" label="Refused"/>
+  <int value="14" label="Aborted by remote"/>
+  <int value="15" label="Aborted by local"/>
+  <int value="16" label="LMP protocol error"/>
+  <int value="17" label="Canceled"/>
+  <int value="18" label="Unknown"/>
+</enum>
+
+<enum name="BluetoothDeviceType">
+  <int value="0" label="Unknown"/>
+  <int value="1" label="Computer"/>
+  <int value="2" label="Phone"/>
+  <int value="3" label="Modem"/>
+  <int value="4" label="Audio"/>
+  <int value="5" label="Car Audio"/>
+  <int value="6" label="Video"/>
+  <int value="7" label="Peripheral"/>
+  <int value="8" label="Joystick"/>
+  <int value="9" label="Gamepad"/>
+  <int value="10" label="Keyboard"/>
+  <int value="11" label="Mouse"/>
+  <int value="12" label="Tablet"/>
+  <int value="13" label="Keyboard Mouse Combo"/>
+</enum>
+
+<enum name="BluetoothDiscoveryOutcomes">
+  <int value="0" label="Success"/>
+  <int value="1"
+      label="Unknown error; used when we could add code to get more detail"/>
+  <int value="2" label="Function not implemented on this platform"/>
+  <int value="3" label="Adapter not present"/>
+  <int value="4" label="Adapter removed since call chain started"/>
+  <int value="5" label="Discovery session not active"/>
+  <int value="6"
+      label="Attempted to remove a discovery session with another pending
+             request"/>
+  <int value="7"
+      label="Active BluetoothDiscoverySession wasn't found in
+             BluetoothAdapter"/>
+  <int value="8" label="Failed without a more specific reason"/>
+  <int value="9" label="(BlueZ) DBus failed to find the adapter"/>
+  <int value="10" label="(BlueZ) DBus didn't return an error code"/>
+  <int value="11" label="(BlueZ) org.bluez.Error.InProgress"/>
+  <int value="12" label="(BlueZ) org.bluez.Error.NotReady"/>
+  <int value="13"
+      label="(BlueZ) org.bluez.Error.Failed inside SetDiscoveryFilter, maybe
+             indicating an unsupported transport"/>
+  <int value="14"
+      label="(BlueZ) org.bluez.Error.NotSupported inside SetDiscoverFilter,
+             indicating a kernel that does not support Start Service
+             Discovery."/>
+</enum>
+
+<enum name="BluetoothGattServiceGattErrorCode">
+  <int value="0" label="Unknown"/>
+  <int value="1" label="Failed"/>
+  <int value="2" label="In Progress"/>
+  <int value="3" label="Invalid Length"/>
+  <int value="4" label="Not Permitted"/>
+  <int value="5" label="Not Authorized"/>
+  <int value="6" label="Not Paired"/>
+  <int value="7" label="Not Supported"/>
+</enum>
+
+<enum name="BluetoothSocketErrorReason">
+  <int value="0" label="System Error"/>
+  <int value="1" label="IO Pending"/>
+  <int value="2" label="Disconnected"/>
+</enum>
+
+<enum name="BluetoothStackName">
+  <int value="0" label="BlueZ"/>
+  <int value="1" label="Floss"/>
+  <int value="2" label="Unknown"/>
+</enum>
+
+<enum name="BluetoothTransportType">
+  <int value="0" label="Unknown"/>
+  <int value="1" label="Classic"/>
+  <int value="2" label="Low Energy"/>
+  <int value="3" label="Dual"/>
+  <int value="4" label="Invalid"/>
+</enum>
+
+<enum name="BluetoothUiSurface">
+  <int value="0" label="Settings - device list subpage"/>
+  <int value="1" label="Settings - device detail subpage"/>
+  <int value="2" label="Settings - pairing dialog"/>
+  <int value="3" label="Bluetooth Quick Settings"/>
+  <int value="4" label="Standalone Pairing dialog"/>
+  <int value="5" label="Paired notification (obsolete)"/>
+  <int value="6" label="Connected toast"/>
+  <int value="7" label="Disconnected toast"/>
+  <int value="8" label="OOBE HID Detection"/>
+  <int value="9" label="Paired toast"/>
+</enum>
+
+<enum name="DisconnectResult">
+  <int value="0" label="Failure"/>
+  <int value="1" label="Success"/>
+</enum>
+
+<enum name="FastPairAccountKeyFailure">
+  <int value="0" label="Failed to find the Account Key GATT characteristic"/>
+  <int value="1"
+      label="[Deprecated] Failed to write to the Account Key GATT
+             characteristic"/>
+  <int value="2"
+      label="Timed out while writing to Account Key GATT characteristic"/>
+  <int value="3" label="GATT Error: Unknown"/>
+  <int value="4" label="GATT Error: Failed"/>
+  <int value="5" label="GATT Error: In Progress"/>
+  <int value="6" label="GATT Error: Invalid Length"/>
+  <int value="7" label="GATT Error: Not Permitted"/>
+  <int value="8" label="GATT Error: Not Authorized"/>
+  <int value="9" label="GATT Error: Not Paired"/>
+  <int value="10" label="GATT Error: Not Supported"/>
+</enum>
+
+<enum name="FastPairEngagementFlowEvent">
+  <int value="1" label="Discovery UI Shown"/>
+  <int value="11" label="Discovery UI Dismissed By OS"/>
+  <int value="12" label="Discovery UI: Connect Button Pressed"/>
+  <int value="13" label="Discovery UI Dismissed By User"/>
+  <int value="14" label="Discovery UI: Learn More Pressed"/>
+  <int value="15" label="Discovery UI Dismissed By Timeout"/>
+  <int value="121" label="Pairing Failed"/>
+  <int value="122" label="Pairing Succeeded"/>
+  <int value="141"
+      label="Discovery UI: Connect Button Pressed After Learn More Pressed"/>
+  <int value="142"
+      label="Discovery UI: Dismissed By User After Learn More Pressed"/>
+  <int value="143"
+      label="Discovery UI: Dismissed By OS After Learn More Pressed"/>
+  <int value="144"
+      label="Discovery UI: Dismissed By Timeout After Learn More Pressed"/>
+  <int value="1211" label="Pairing Failed: Error UI Dismissed By OS"/>
+  <int value="1212" label="Pairing Failed: Error UI Settings Button Pressed"/>
+  <int value="1213" label="Pairing Failed: Error UI Dismissed By User"/>
+  <int value="1221" label="Pairing Succeeded: Already Paired"/>
+</enum>
+
+<enum name="FastPairHandshakeFailureReason">
+  <int value="0" label="Failed to initialize GATT connection"/>
+  <int value="1" label="Failed to create FastPairDataEncryptor"/>
+  <int value="2"
+      label="Failed to write to the Key-based Pairing Characteristic"/>
+  <int value="3"
+      label="Failed to decrypt the the Key-based Pairing Characteristic
+             response"/>
+  <int value="4"
+      label="Incorrect Key-based Pairing Characteristic response type"/>
+</enum>
+
+<enum name="FastPairHandshakeSteps">
+  <int value="0" label="Handshake started"/>
+  <int value="1" label="GATT initialized successfully"/>
+  <int value="2"
+      label="Recieved response bytes from Key-based pairing characteristic"/>
+  <int value="3" label="Handshake completed successfully"/>
+</enum>
+
+<enum name="FastPairPairingMethod">
+  <int value="0" label="Fast Pair Pairing"/>
+  <int value="1" label="System UI Pairing"/>
+</enum>
+
+<enum name="FastPairRetroactiveEngagementFlowEvent">
+  <int value="1" label="Associate Account UI Shown"/>
+  <int value="11" label="Associate Account Dismissed By User"/>
+  <int value="12" label="Associate Account Dismissed By OS"/>
+  <int value="13" label="Associate Account: Learn More Button Pressed"/>
+  <int value="14" label="Associate Account: Save Button Pressed"/>
+  <int value="15" label="Associate Account Dismissed By Timeout"/>
+  <int value="131"
+      label="Associate Account: Save Button Pressed After Learn More Pressed"/>
+  <int value="132"
+      label="Associate Account Dismissed By User After Learn More Pressed"/>
+  <int value="133"
+      label="Associate Account Dismissed By OS After Learn More Pressed"/>
+  <int value="134"
+      label="Associate Account Dismissed By Timeout After Learn More Pressed"/>
+</enum>
+
+<enum name="FastPairSavedDevicesUiEvent">
+  <int value="0" label="Settings - saved device list subpage shown"/>
+  <int value="1" label="Settings - user has devices saved to their account"/>
+  <int value="2" label="Settings - remove saved device dialog"/>
+  <int value="3"
+      label="Settings - remove confirmed on remove saved device dialog"/>
+</enum>
+
+<enum name="FastPairVersion">
+  <int value="0" label="v1"/>
+  <int value="1" label="v2"/>
+</enum>
+
+<enum name="ForgetResult">
+  <int value="0" label="Failure"/>
+  <int value="1" label="Success"/>
+</enum>
+
+<enum name="GATTCharacteristicHash">
+<!-- Hash values can be produced using tool: bluetooth_metrics_hash -->
+
+  <int value="1615384" label="alert_notification_control_point"/>
+  <int value="4531384" label="date_of_birth"/>
+  <int value="14295641"
+      label="PocketLab; f000aa1e-0452-4000-b000-000000000000"/>
+  <int value="22829753" label="barometric_pressure_trend"/>
+  <int value="25010789"
+      label="PocketLab (from service 11);
+             f000aa17-0452-4000-b000-000000000000"/>
+  <int value="33030714" label="scan_refresh"/>
+  <int value="36624371"
+      label="Anki OVERDRIVE cars; be15bee0-6186-407e-8381-0bd89c4d8df4"/>
+  <int value="40437408" label="gender"/>
+  <int value="42833873" label="42833873 (Unknown; not a 16bit UUID)"/>
+  <int value="46607535"
+      label="PocketLab 1; f000aa14-0451-4000-b000-000000000000"/>
+  <int value="61502349"
+      label="PocketLab; f000aa2c-0452-4000-b000-000000000000"/>
+  <int value="64893984" label="local_east_coordinate.xml"/>
+  <int value="67768539" label="alert_category_id_bit_mask"/>
+  <int value="79560451" label="sc_control_point"/>
+  <int value="81699382"
+      label="PocketLab; f000aa1d-0452-4000-b000-000000000000"/>
+  <int value="84948752"
+      label="Eddystone Config ADV Slot Data;
+             a3c8750a-8ed3-4bdf-8a39-a01bebede295"/>
+  <int value="87432554"
+      label="Parrot Drone; 9a66fd54-0800-9191-11e4-012d1540cb8e"/>
+  <int value="87889094"
+      label="PocketLab 1; f000aa21-0451-4000-b000-000000000000"/>
+  <int value="89070880" label="blood_pressure_measurement"/>
+  <int value="102699400" label="cycling_power_feature"/>
+  <int value="107355463"
+      label="konashi analogRead2; 229b300a-03fb-40da-98a7-b0def65c2d4b"/>
+  <int value="107684477"
+      label="PocketLab; f000aa2d-0452-4000-b000-000000000000"/>
+  <int value="111826224"
+      label="micro:bit client requirements;
+             e95d23c4-251d-470a-a062-fa1922dfa9a8"/>
+  <int value="121100653"
+      label="Parrot Drone; 9a66fd22-0800-9191-11e4-012d1540cb8e"/>
+  <int value="129263762"
+      label="PocketLab; f000aa04-0452-4000-b000-000000000000"/>
+  <int value="145478270" label="glucose_feature"/>
+  <int value="162705488" label="manufacturer_name_string"/>
+  <int value="164418508" label="weight_measurement"/>
+  <int value="177223896" label="report_map"/>
+  <int value="193202136"
+      label="Anki OVERDRIVE cars; be15bee1-6186-407e-8381-0bd89c4d8df4"/>
+  <int value="197745578"
+      label="PocketLab 1; f000aa13-0451-4000-b000-000000000000"/>
+  <int value="203698195"
+      label="micro:bit event; e95d9775-251d-470a-a062-fa1922dfa9a8"/>
+  <int value="203846063" label="ff0c"/>
+  <int value="205016416" label="body_composition_measurement"/>
+  <int value="235785246" label="irradiance"/>
+  <int value="241152428"
+      label="PocketLab; f000aa25-0452-4000-b000-000000000000"/>
+  <int value="244169154"
+      label="PocketLab (from service 31);
+             f000aa32-0452-4000-b000-000000000000"/>
+  <int value="248349383" label="csc_measurement"/>
+  <int value="254703207" label="true_wind_speed"/>
+  <int value="257107525" label="intermediate_temperature"/>
+  <int value="259169368" label="cgm_measurement"/>
+  <int value="261747886" label="battery_level"/>
+  <int value="282925453" label="time_with_dst"/>
+  <int value="289588334" label="supported_unread_alert_category"/>
+  <int value="294481931"
+      label="Wahoo Kickr trainer; a026e005-0a7d-4ab3-97fa-f1500f9feb8b"/>
+  <int value="296670902" label="heart_rate_control_point"/>
+  <int value="298186521" label="alert_category_id"/>
+  <int value="305375377"
+      label="PocketLab 1; f000aa62-0451-4000-b000-000000000000"/>
+  <int value="307449363" label="plx_features"/>
+  <int value="310983691" label="cycling_power_measurement"/>
+  <int value="312578485" label="navigation"/>
+  <int value="314022771"
+      label="Remote Lego; 8d8ba32b-96be-4590-910b-c756c5222c9f"/>
+  <int value="318124766"
+      label="Remote Lego; fa10e4de-259e-4d23-9f59-45a9c66802ca"/>
+  <int value="333947401" label="temperature_measurement"/>
+  <int value="338768495" label="ringer_setting"/>
+  <int value="339742946" label="hid_information"/>
+  <int value="358854697" label="bond_management_feature"/>
+  <int value="359765018"
+      label="micro:bit client event; e95d5404-251d-470a-a062-fa1922dfa9a8"/>
+  <int value="361317539" label="language"/>
+  <int value="363167947" label="blood_pressure_feature"/>
+  <int value="364021976"
+      label="nRF candy machine; b6c31338-6c07-453e-961a-d8a8a41bf368"/>
+  <int value="368068304"
+      label="MiP Robot; Magic Blue Bulb; 0000ffe9-0000-1000-8000-00805f9b34fb"/>
+  <int value="371778276"
+      label="micro:bit requirements; e95db84c-251d-470a-a062-fa1922dfa9a8"/>
+  <int value="372306057"
+      label="Bleno Pizza Example; 13333333-3333-3333-3333-333333330001"/>
+  <int value="384581502"
+      label="PocketLab; f000aa07-0452-4000-b000-000000000000"/>
+  <int value="404638811"
+      label="konashi pwmParameter; 229b3005-03fb-40da-98a7-b0def65c2d4b"/>
+  <int value="405569435" label="boot_keyboard_output_report"/>
+  <int value="409618715" label="cycling_power_vector"/>
+  <int value="416059854"
+      label="konashi uartRxNotification; 229b3013-03fb-40da-98a7-b0def65c2d4b"/>
+  <int value="416715482"
+      label="PocketLab (from service 11);
+             f000aa19-0452-4000-b000-000000000000"/>
+  <int value="419477741" label="body_composition_feature"/>
+  <int value="426120542"
+      label="PocketLab; f000aa3b-0452-4000-b000-000000000000"/>
+  <int value="440009071"
+      label="konashi pwmDuty; 229b3006-03fb-40da-98a7-b0def65c2d4b"/>
+  <int value="448606809" label="448606809 (Unknown; not a 16bit UUID)"/>
+  <int value="449334956"
+      label="PocketLab; f000aa3d-0452-4000-b000-000000000000"/>
+  <int value="450021248"
+      label="PocketLab 1; f000aa34-0451-4000-b000-000000000000"/>
+  <int value="469191968" label="Playbulb Candle Color; fffc"/>
+  <int value="473092981"
+      label="Eddystone Config Advertising Interval;
+             a3c87503-8ed3-4bdf-8a39-a01bebede295"/>
+  <int value="486368335" label="location_name"/>
+  <int value="501361244"
+      label="PocketLab; f000aa21-0452-4000-b000-000000000000"/>
+  <int value="508191605"
+      label="Parrot Drone; 9a66fb1b-0800-9191-11e4-012d1540cb8e"/>
+  <int value="511033835"
+      label="konashi hardwareLowBatteryNotification;
+             229b3015-03fb-40da-98a7-b0def65c2d4b"/>
+  <int value="512543326" label="date_of_threshold_assessment"/>
+  <int value="517791580"
+      label="Sphero Robot; 22bb746f-2bbf-7554-2d6f-726568705327"/>
+  <int value="531135021" label="cgm_specific_ops_control_point"/>
+  <int value="540054581" label="magnetic_declination"/>
+  <int value="546162499"
+      label="Eddystone Config EID Identity Key;
+             a3c87509-8ed3-4bdf-8a39-a01bebede295"/>
+  <int value="546355367" label="firmware_revision_string"/>
+  <int value="549702960" label="humidity"/>
+  <int value="557034058" label="cycling_power_control_point"/>
+  <int value="557040382" label="hardware_revision_string"/>
+  <int value="561260257" label="analog"/>
+  <int value="580555542"
+      label="Remote Lego; 2ac1fdb2-d971-4595-8e32-e8c5d80edf5f"/>
+  <int value="589575132"
+      label="Sphero Robot; 22bb746f-2bbd-7554-2d6f-726568705327"/>
+  <int value="589741087" label="model_number_string"/>
+  <int value="599786587"
+      label="PocketLab (from service 11);
+             f000aa1a-0452-4000-b000-000000000000"/>
+  <int value="602410094"
+      label="PocketLab; f000aa28-0452-4000-b000-000000000000"/>
+  <int value="625191771"
+      label="Parrot Drone; 9a66fa0a-0800-9191-11e4-012d1540cb8e"/>
+  <int value="628511213"
+      label="PocketLab; f000aa3a-0452-4000-b000-000000000000"/>
+  <int value="638602429" label="new_alert"/>
+  <int value="640013977"
+      label="konashi uartBaudRate; 229b3011-03fb-40da-98a7-b0def65c2d4b"/>
+  <int value="640611109"
+      label="PocketLab (from service 11);
+             f000aa14-0452-4000-b000-000000000000"/>
+  <int value="642925692" label="anaerobic_heart_rate_lower_limit"/>
+  <int value="645640295"
+      label="PocketLab (from service 11);
+             f000aa16-0452-4000-b000-000000000000"/>
+  <int value="650507215" label="aerobic_heart_rate_lower_limit"/>
+  <int value="653904148" label="cgm_session_run_time"/>
+  <int value="659248322"
+      label="PocketLab; f000aa29-0452-4000-b000-000000000000"/>
+  <int value="675543714" label="aerobic_threshold"/>
+  <int value="682327952"
+      label="Parrot Drone; 9a66fa0b-0800-9191-11e4-012d1540cb8e"/>
+  <int value="685669143"
+      label="Parrot Drone; 9a66fa0c-0800-9191-11e4-012d1540cb8e"/>
+  <int value="689682673" label="unread_alert_status"/>
+  <int value="710863194" label="dew_point"/>
+  <int value="713208266" label="apparent_wind_direction"/>
+  <int value="724409151"
+      label="PocketLab; f000aa1f-0452-4000-b000-000000000000"/>
+  <int value="724796397" label="weight"/>
+  <int value="725361228"
+      label="PocketLab; f000aa10-0452-4000-b000-000000000000"/>
+  <int value="735462059"
+      label="konashi uartConfig; 229b3010-03fb-40da-98a7-b0def65c2d4b"/>
+  <int value="747671909" label="reference_time_information"/>
+  <int value="747737913"
+      label="konashi pioOutput; 229b3002-03fb-40da-98a7-b0def65c2d4b"/>
+  <int value="752820597" label="boot_mouse_input_report"/>
+  <int value="753456499"
+      label="PocketLab; f000aa27-0452-4000-b000-000000000000"/>
+  <int value="762835818" label="tx_power_level"/>
+  <int value="765862810" label="cgm_session_start_time"/>
+  <int value="777276843"
+      label="Bleno Pizza Example; 13333333-3333-3333-3333-333333330003"/>
+  <int value="784175223"
+      label="PocketLab; f000aa39-0452-4000-b000-000000000000"/>
+  <int value="786588903"
+      label="Parrot Drone; 9a66fd53-0800-9191-11e4-012d1540cb8e"/>
+  <int value="788890283"
+      label="Eddystone Config Factory reset;
+             a3c8750b-8ed3-4bdf-8a39-a01bebede295"/>
+  <int value="797118889" label="time_source"/>
+  <int value="806223105"
+      label="PocketLab; f000aa1c-0452-4000-b000-000000000000"/>
+  <int value="827298832"
+      label="PocketLab 1; f000aa41-0451-4000-b000-000000000000"/>
+  <int value="827651216"
+      label="PocketLab; f000aa20-0452-4000-b000-000000000000"/>
+  <int value="837013645"
+      label="PocketLab 1; f000aa64-0451-4000-b000-000000000000"/>
+  <int value="839366223" label="user_index"/>
+  <int value="842908520" label="rsc_measurement"/>
+  <int value="845003775"
+      label="Remote Lego; aad03b81-f2ea-47db-ae1e-7c2f9e86e93e"/>
+  <int value="845212855"
+      label="Elite trainer; 347b0011-7635-408b-8918-8ff3949ce592"/>
+  <int value="851655329"
+      label="konashi analogRead0; 229b3008-03fb-40da-98a7-b0def65c2d4b"/>
+  <int value="853857776"
+      label="PocketLab; f000aa2a-0452-4000-b000-000000000000"/>
+  <int value="859809200" label="resting_heart_rate"/>
+  <int value="867296114" label="gust_factor"/>
+  <int value="868427891" label="local_north_coordinate"/>
+  <int value="868892960" label="heat_index"/>
+  <int value="873660243" label="body_sensor_location"/>
+  <int value="893588698" label="scan_interval_window"/>
+  <int value="893850387"
+      label="Parrot Drone; 9a66fd23-0800-9191-11e4-012d1540cb8e"/>
+  <int value="910416910"
+      label="nRF UART RX; nrf52-Quadcopter;
+             6e400003-b5a3-f393-e0a9-e50e24dcca9e"/>
+  <int value="912333311" label="912333311 (Unknown; not a 16bit UUID)"/>
+  <int value="917477908" label="software_revision_string"/>
+  <int value="918961501" label="plx_spot_check_measurement"/>
+  <int value="922434244" label="ln_feature"/>
+  <int value="928099812" label="system_id"/>
+  <int value="928491064" label="last_name"/>
+  <int value="936278868"
+      label="PocketLab 1; f000aa53-0451-4000-b000-000000000000"/>
+  <int value="941113050"
+      label="konashi i2cReadParameter; 229b300e-03fb-40da-98a7-b0def65c2d4b"/>
+  <int value="947971228" label="temperature_type"/>
+  <int value="951656105"
+      label="Eddystone Config Remain Connectable;
+             a3c8750c-8ed3-4bdf-8a39-a01bebede295"/>
+  <int value="962656991"
+      label="Eddystone Config Public ECDH Key;
+             a3c87508-8ed3-4bdf-8a39-a01bebede295"/>
+  <int value="976761505" label="local_time_information"/>
+  <int value="981442423"
+      label="PocketLab 1; f000aa63-0451-4000-b000-000000000000"/>
+  <int value="987658962" label="glucose_measurement"/>
+  <int value="1002619180" label="exact_time_256"/>
+  <int value="1005198408"
+      label="PocketLab 1; f000aa51-0451-4000-b000-000000000000"/>
+  <int value="1018346218"
+      label="PocketLab; f000aa03-0452-4000-b000-000000000000"/>
+  <int value="1025676359" label="dst_offset"/>
+  <int value="1049176129"
+      label="PocketLab (from service 11);
+             f000aa15-0452-4000-b000-000000000000"/>
+  <int value="1050948662"
+      label="nRF UART TX; nrf52-Quadcopter;
+             6e400002-b5a3-f393-e0a9-e50e24dcca9e"/>
+  <int value="1061486494" label="anaerobic_heart_rate_upper_limit"/>
+  <int value="1070539317"
+      label="konashi pioSetting; 229b3000-03fb-40da-98a7-b0def65c2d4b"/>
+  <int value="1072163984" label="gap.reconnection_address"/>
+  <int value="1077684177"
+      label="Parrot Drone; 9a66fd52-0800-9191-11e4-012d1540cb8e"/>
+  <int value="1097514018"
+      label="PocketLab; f000aa06-0452-4000-b000-000000000000"/>
+  <int value="1100640868" label="day_of_week"/>
+  <int value="1102386988"
+      label="PocketLab 1; f000aa42-0451-4000-b000-000000000000"/>
+  <int value="1108268178"
+      label="PocketLab 1; f000aa23-0451-4000-b000-000000000000"/>
+  <int value="1115558005"
+      label="konashi hardwareReset; 229b3014-03fb-40da-98a7-b0def65c2d4b"/>
+  <int value="1117053056"
+      label="Remote Lego; 7baf8dca-2bfc-47fb-af29-042fccc180eb"/>
+  <int value="1125104414" label="gap.central_address_resolution_support"/>
+  <int value="1125757823"
+      label="PocketLab (from service 31);
+             f000aa33-0452-4000-b000-000000000000"/>
+  <int value="1134538374" label="hip_circumference"/>
+  <int value="1136624215" label="maximum_recommended_heart_rate"/>
+  <int value="1136682523" label="date_time"/>
+  <int value="1142216738"
+      label="PocketLab 1; f000aa22-0451-4000-b000-000000000000"/>
+  <int value="1154699367"
+      label="konashi uartTx; 229b3012-03fb-40da-98a7-b0def65c2d4b"/>
+  <int value="1161713439" label="Playbulb Candle Effect; fffb"/>
+  <int value="1167525145" label="alert_status"/>
+  <int value="1167648736"
+      label="PocketLab (from service 11);
+             f000aa18-0452-4000-b000-000000000000"/>
+  <int value="1169219288" label="1169219288 (Unknown; not a 16bit UUID)"/>
+  <int value="1183399370" label="magnetic_flux_density_3D"/>
+  <int value="1186677690"
+      label="Eddystone Config Advertised Tx Power;
+             a3c87505-8ed3-4bdf-8a39-a01bebede295"/>
+  <int value="1193066711" label="uv_index"/>
+  <int value="1211834643"
+      label="PocketLab; f000aa02-0452-4000-b000-000000000000"/>
+  <int value="1212625023"
+      label="PocketLab 1; f000aa52-0451-4000-b000-000000000000"/>
+  <int value="1214133688" label="vo2_max"/>
+  <int value="1217613737" label="three_zone_heart_rate_limits"/>
+  <int value="1225369773"
+      label="DOTTI; Makeblock mBot; 0000fff3-0000-1000-8000-00805f9b34fb"/>
+  <int value="1227844535" label="floor_number"/>
+  <int value="1237083013" label="first_name"/>
+  <int value="1243630465"
+      label="Sphero Robot; 22bb746f-2ba1-7554-2d6f-726568705327"/>
+  <int value="1245615057" label="pnp_id"/>
+  <int value="1254514264"
+      label="PocketLab; f000aa05-0452-4000-b000-000000000000"/>
+  <int value="1254532025" label="user_control_point"/>
+  <int value="1266038031" label="1266038031 (Unknown; not a 16bit UUID)"/>
+  <int value="1288236137" label="hid_control_point"/>
+  <int value="1293962119"
+      label="PocketLab 1; f000aa61-0451-4000-b000-000000000000"/>
+  <int value="1307935876"
+      label="Tacx trainer; 6e40fec3-b5a3-f393-e0a9-e50e24dcca9e"/>
+  <int value="1320278204"
+      label="Eddystone Config Radio Tx Power;
+             a3c87504-8ed3-4bdf-8a39-a01bebede295"/>
+  <int value="1324040850"
+      label="PocketLab 1; f000aa11-0451-4000-b000-000000000000"/>
+  <int value="1329901812"
+      label="Eddystone Config Lock State;
+             a3c87506-8ed3-4bdf-8a39-a01bebede295"/>
+  <int value="1333242790" label="longitude"/>
+  <int value="1334750659"
+      label="konashi i2cWrite; 229b300d-03fb-40da-98a7-b0def65c2d4b"/>
+  <int value="1345855767"
+      label="PocketLab 1; f000aa24-0451-4000-b000-000000000000"/>
+  <int value="1352512695" label="1352512695 (Unknown; not a 16bit UUID)"/>
+  <int value="1358488787"
+      label="sport_type_for_aerobic_and_anaerobic_thresholds"/>
+  <int value="1359562687"
+      label="PowerUp RC plane; 75b64e51-f184-4ed1-921a-476090d80ba7"/>
+  <int value="1366194038"
+      label="PocketLab; f000aa22-0452-4000-b000-000000000000"/>
+  <int value="1370497910" label="position_quality"/>
+  <int value="1370779343" label="apparent_wind_speed"/>
+  <int value="1378697826"
+      label="PocketLab; f000aa2f-0452-4000-b000-000000000000"/>
+  <int value="1399905251" label="elevation"/>
+  <int value="1403230035"
+      label="konashi analogDrive; 229b3007-03fb-40da-98a7-b0def65c2d4b"/>
+  <int value="1403795440" label="time_update_control_point"/>
+  <int value="1407679683" label="location_and_speed"/>
+  <int value="1409077916"
+      label="ieee_11073-20601_regulatory_certification_data_list"/>
+  <int value="1418868404"
+      label="gap.peripheral_preferred_connection_parameters"/>
+  <int value="1419696114" label="record_access_control_point"/>
+  <int value="1423142122"
+      label="PocketLab; f000aa01-0452-4000-b000-000000000000"/>
+  <int value="1426243900" label="time_update_state"/>
+  <int value="1443769073"
+      label="Parrot Drone; 9a66fb0e-0800-9191-11e4-012d1540cb8e"/>
+  <int value="1445812935" label="current_time"/>
+  <int value="1448457670" label="cgm_feature"/>
+  <int value="1451886110"
+      label="PocketLab; f000aa38-0452-4000-b000-000000000000"/>
+  <int value="1463907405"
+      label="PocketLab; f000aa2b-0452-4000-b000-000000000000"/>
+  <int value="1477417345"
+      label="PocketLab; f000aa23-0452-4000-b000-000000000000"/>
+  <int value="1479031407" label="five_zone_heart_rate_limits"/>
+  <int value="1480262218" label="height"/>
+  <int value="1482584061"
+      label="konashi pioPullUp; 229b3001-03fb-40da-98a7-b0def65c2d4b"/>
+  <int value="1485392010" label="1485392010 (Unknown; not a 16bit UUID)"/>
+  <int value="1501299347"
+      label="nRF candy machine; a6c31338-6c07-453e-961a-d8a8a41bf368"/>
+  <int value="1502604093" label="serial_number_string"/>
+  <int value="1511396316" label="ln_control_point"/>
+  <int value="1511953014"
+      label="Eddystone Config Capabilities;
+             a3c87501-8ed3-4bdf-8a39-a01bebede295"/>
+  <int value="1521362289" label="indoor_positioning_configuration"/>
+  <int value="1536163565"
+      label="Remote Lego; e0af3340-022e-47e1-a263-d68887dc41d4"/>
+  <int value="1537284424"
+      label="Bleno Pizza Example; 13333333-3333-3333-3333-333333330002"/>
+  <int value="1541435682" label="fat_burn_heart_rate_upper_limit"/>
+  <int value="1542101224" label="plx_continuous_measurent"/>
+  <int value="1547112406"
+      label="Eddystone Config Active Slot;
+             a3c87502-8ed3-4bdf-8a39-a01bebede295"/>
+  <int value="1547439596"
+      label="PocketLab 1; f000aa31-0451-4000-b000-000000000000"/>
+  <int value="1548291582"
+      label="konashi analogRead1; 229b3009-03fb-40da-98a7-b0def65c2d4b"/>
+  <int value="1551090056"
+      label="PocketLab; f000aa35-0452-4000-b000-000000000000"/>
+  <int value="1556918420" label="supported_new_alert_category"/>
+  <int value="1562359952" label="bond_management_control_point"/>
+  <int value="1581120657"
+      label="Parrot Drone; 9a66fb1c-0800-9191-11e4-012d1540cb8e"/>
+  <int value="1588237112"
+      label="PocketLab; f000aa3f-0452-4000-b000-000000000000"/>
+  <int value="1594190447" label="anaerobic_threshold"/>
+  <int value="1594284383" label="time_accuracy"/>
+  <int value="1599786113" label="sensor_location"/>
+  <int value="1611458228"
+      label="PocketLab; f000aa34-0452-4000-b000-000000000000"/>
+  <int value="1620145835"
+      label="PocketLab 1; f000aa54-0451-4000-b000-000000000000"/>
+  <int value="1650767660" label="protocol_mode"/>
+  <int value="1655824245" label="pressure"/>
+  <int value="1658559118" label="digital"/>
+  <int value="1667674937"
+      label="PocketLab 1; f000aa33-0451-4000-b000-000000000000"/>
+  <int value="1669829174"
+      label="Purple Eye; 00005200-0000-1000-8000-00805f9b34fb"/>
+  <int value="1676607014"
+      label="konashi i2cConfig; 229b300b-03fb-40da-98a7-b0def65c2d4b"/>
+  <int value="1704141710" label="true_wind_direction"/>
+  <int value="1717192545"
+      label="PocketLab 1; f000aa12-0451-4000-b000-000000000000"/>
+  <int value="1719495127"
+      label="PocketLab; f000aa00-0452-4000-b000-000000000000"/>
+  <int value="1732815395" label="alert_level"/>
+  <int value="1735563923" label="rsc_feature"/>
+  <int value="1748731133" label="intermediate_blood_pressure"/>
+  <int value="1774994865" label="day_date_time"/>
+  <int value="1777827929" label="heart_rate_measurement"/>
+  <int value="1778752264" label="magnetic_flux_density_2D"/>
+  <int value="1786548534"
+      label="Parrot Flypad; 9e35fa00-4344-44d4-a2e2-0c7f6046878b"/>
+  <int value="1794935269"
+      label="Sphero Robot; 22bb746f-2bb2-7554-2d6f-726568705327"/>
+  <int value="1807818076" label="rainfall"/>
+  <int value="1811011331" label="report"/>
+  <int value="1813165113" label="fat_burn_heart_rate_lower_limit"/>
+  <int value="1814120610"
+      label="Elgato Avea Bulb; f815e811-456c-6761-746f-4d756e696368"/>
+  <int value="1822663159" label="altitude"/>
+  <int value="1826219951" label="measurement_interval"/>
+  <int value="1834634616"
+      label="konashi i2cStartStop; 229b300c-03fb-40da-98a7-b0def65c2d4b"/>
+  <int value="1844236489"
+      label="Elite trainer; 347b0010-7635-408b-8918-8ff3949ce592"/>
+  <int value="1847017753"
+      label="konashi pwmConfig; 229b3004-03fb-40da-98a7-b0def65c2d4b"/>
+  <int value="1853459100" label="1853459100 (Unknown; not a 16bit UUID)"/>
+  <int value="1855704654" label="latitude"/>
+  <int value="1863022784"
+      label="Parrot Drone; 9a66fd24-0800-9191-11e4-012d1540cb8e"/>
+  <int value="1865494132"
+      label="konashi i2cRead; 229b300f-03fb-40da-98a7-b0def65c2d4b"/>
+  <int value="1866335371"
+      label="PocketLab; f000aa36-0452-4000-b000-000000000000"/>
+  <int value="1873367042"
+      label="PocketLab; f000aa3c-0452-4000-b000-000000000000"/>
+  <int value="1875571028"
+      label="PowerUp RC plane; 75b64e51-f185-4ed1-921a-476090d80ba7"/>
+  <int value="1881531610" label="descriptor_value_changed"/>
+  <int value="1899652799" label="pollen_concentration"/>
+  <int value="1904364134" label="aerobic_heart_rate_upper_limit"/>
+  <int value="1934342765"
+      label="PocketLab; f000aa30-0452-4000-b000-000000000000"/>
+  <int value="1936155204" label="gap.device_name"/>
+  <int value="1940300093"
+      label="Tacx trainer; 6e40fec2-b5a3-f393-e0a9-e50e24dcca9e"/>
+  <int value="1941001682"
+      label="LEGO Hub Boot Loader Characteristic;
+             00001626-1212-efde-1623-785feabcd123"/>
+  <int value="1945497075"
+      label="PocketLab; f000aa24-0452-4000-b000-000000000000"/>
+  <int value="1954594648" label="temperature"/>
+  <int value="1970019437" label="gap.peripheral_privacy_flag"/>
+  <int value="1974805193"
+      label="PocketLab; f000aa26-0452-4000-b000-000000000000"/>
+  <int value="1981651466" label="wind_chill"/>
+  <int value="1984759904" label="1984759904 (Unknown; not a 16bit UUID)"/>
+  <int value="1995515788"
+      label="PocketLab (from service 11);
+             f000aa1b-0452-4000-b000-000000000000"/>
+  <int value="1995890588"
+      label="PocketLab 1; f000aa43-0451-4000-b000-000000000000"/>
+  <int value="1999174392" label="glucose_measurement_context"/>
+  <int value="2000824522" label="waist_circumference"/>
+  <int value="2010182602" label="csc_feature"/>
+  <int value="2010559917"
+      label="PocketLab; f000aa2e-0452-4000-b000-000000000000"/>
+  <int value="2020665772"
+      label="PocketLab; f000aa3e-0452-4000-b000-000000000000"/>
+  <int value="2022949018" label="cgm_status"/>
+  <int value="2025615830" label="aggregate"/>
+  <int value="2025816471"
+      label="Eddystone Config Unlock; a3c87507-8ed3-4bdf-8a39-a01bebede295"/>
+  <int value="2031294873" label="uncertainty"/>
+  <int value="2040106786"
+      label="PocketLab 1; f000aa44-0451-4000-b000-000000000000"/>
+  <int value="2041423305" label="email_address"/>
+  <int value="2042267197" label="age"/>
+  <int value="2047173546" label="boot_keyboard_input_report"/>
+  <int value="2049531548"
+      label="nrf52-Quadcopter; 6e400004-b5a3-f393-e0a9-e50e24dcca9e"/>
+  <int value="2055293976"
+      label="Remote Lego; b394673e-dea0-4044-a189-86f1c85ce22e"/>
+  <int value="2066621778"
+      label="PocketLab; f000aa37-0452-4000-b000-000000000000"/>
+  <int value="2083994430" label="two_zone_heart_rate_limit"/>
+  <int value="2084445069" label="ringer_control_point"/>
+  <int value="2088370773"
+      label="PocketLab (from service 11);
+             f000aa13-0452-4000-b000-000000000000"/>
+  <int value="2091220203"
+      label="konashi pioInputNotification;
+             229b3003-03fb-40da-98a7-b0def65c2d4b"/>
+  <int value="2091531878" label="weight_scale_feature"/>
+  <int value="2093050338"
+      label="PocketLab; f000aa08-0452-4000-b000-000000000000"/>
+  <int value="2100140560" label="2100140560 (Unknown; not a 16bit UUID)"/>
+  <int value="2101185135" label="time_zone"/>
+  <int value="2103247472"
+      label="PocketLab; f000aa09-0452-4000-b000-000000000000"/>
+  <int value="2105952193" label="heart_rate_max"/>
+  <int value="2110830087"
+      label="Printer; 00002af1-0000-1000-8000-00805f9b34fb"/>
+  <int value="2118241351"
+      label="PocketLab 1; f000aa32-0451-4000-b000-000000000000"/>
+  <int value="2118566262" label="database_change_increment"/>
+  <int value="2122016879"
+      label="PocketLab (from service 11);
+             f000aa12-0452-4000-b000-000000000000"/>
+  <int value="2125906618" label="gap.appearance"/>
+  <int value="2129421706"
+      label="LEGO Hub Characteristic; 00001624-1212-efde-1623-785feabcd123"/>
+  <int value="2140490935" label="gatt.service_changed"/>
+</enum>
+
+<enum name="GattErrorCode">
+  <int value="0" label="Unknown"/>
+  <int value="1" label="Failed"/>
+  <int value="2" label="In Progress"/>
+  <int value="3" label="Invalid Length"/>
+  <int value="4" label="Not Permitted"/>
+  <int value="5" label="Not Authorized"/>
+  <int value="6" label="Not Paired"/>
+  <int value="7" label="Not Supported"/>
+</enum>
+
+<enum name="GATTServiceHash">
+<!-- Hash values can be produced using tool: bluetooth_metrics_hash -->
+
+  <int value="7464675" label="pulse_oximeter"/>
+  <int value="13977722"
+      label="Vernier Sensors; d91714ef-28b9-4f91-ba16-f0d9a604f112"/>
+  <int value="14295641"
+      label="PocketLab; f000aa1e-0452-4000-b000-000000000000"/>
+  <int value="26695985" label="fe20"/>
+  <int value="35226455" label="fe44"/>
+  <int value="35347197" label="fe26"/>
+  <int value="41430862" label="fea8"/>
+  <int value="44208286" label="fe29"/>
+  <int value="46512116" label="fe03"/>
+  <int value="47251880" label="fe8c"/>
+  <int value="48328546" label="febf"/>
+  <int value="48912332"
+      label="micro:bit Events; e95d93af-251d-470a-a062-fa1922dfa9a8"/>
+  <int value="56938056" label="feb9"/>
+  <int value="61502349"
+      label="PocketLab; f000aa2c-0452-4000-b000-000000000000"/>
+  <int value="62669585" label="feff"/>
+  <int value="70653353" label="fe37"/>
+  <int value="81094401" label="link_loss"/>
+  <int value="81699382"
+      label="PocketLab; f000aa1d-0452-4000-b000-000000000000"/>
+  <int value="85709298" label="fe38"/>
+  <int value="87242598"
+      label="PocketLab 1; f000aa40-0451-4000-b000-000000000000"/>
+  <int value="91953454" label="fe7b"/>
+  <int value="107684477"
+      label="PocketLab; f000aa2d-0452-4000-b000-000000000000"/>
+  <int value="108999394"
+      label="LEGO Hub Boot Loader Service;
+             00001625-1212-efde-1623-785feabcd123"/>
+  <int value="109066436" label="Printer; 18f0"/>
+  <int value="117033282" label="fe1e"/>
+  <int value="119232939" label="fe16"/>
+  <int value="124193922"
+      label="nrf52-Quadcopter; 6e400020-b5a3-f393-e0a9-e50e24dcca9e"/>
+  <int value="126220948" label="fec4"/>
+  <int value="129263762"
+      label="PocketLab; f000aa04-0452-4000-b000-000000000000"/>
+  <int value="129862977"
+      label="micro:bit LEDs; e95dd91d-251d-470a-a062-fa1922dfa9a8"/>
+  <int value="130754956" label="fe0d"/>
+  <int value="134110769" label="fecf"/>
+  <int value="141942246" label="fe1d"/>
+  <int value="150370668" label="150370668 (Unknown; not a 16bit UUID)"/>
+  <int value="152492105" label="fe5f"/>
+  <int value="169501939" label="fe4d"/>
+  <int value="199936534" label="fe3c"/>
+  <int value="214038522" label="fed3"/>
+  <int value="217781951" label="human_interface_device"/>
+  <int value="219286671" label="fe04"/>
+  <int value="221983129" label="fe66"/>
+  <int value="228594985" label="fe21"/>
+  <int value="229725863"
+      label="Juggglow; 624e957f-cb42-4cd6-bacc-84aeb898f69b"/>
+  <int value="239513635"
+      label="micro:bit Buttons; e95d9882-251d-470a-a062-fa1922dfa9a8"/>
+  <int value="239745754" label="fe22"/>
+  <int value="241152428"
+      label="PocketLab; f000aa25-0452-4000-b000-000000000000"/>
+  <int value="244169154"
+      label="PocketLab; f000aa32-0452-4000-b000-000000000000"/>
+  <int value="252638028" label="fe9c"/>
+  <int value="253001319" label="fe84"/>
+  <int value="265147461"
+      label="Root Robot; 48c5d828-ac2a-442d-97a3-0c9822b04979"/>
+  <int value="267848299" label="fe3e"/>
+  <int value="270670950" label="fe62"/>
+  <int value="272049750"
+      label="PocketLab 1; f000aa30-0451-4000-b000-000000000000"/>
+  <int value="272218751" label="automation_io"/>
+  <int value="273356483" label="fe68"/>
+  <int value="278860884" label="fe5c"/>
+  <int value="289754407" label="fe01"/>
+  <int value="291870040" label="fe6d"/>
+  <int value="295205583" label="fe27"/>
+  <int value="298938019"
+      label="PocketLab 1; f000aa20-0451-4000-b000-000000000000"/>
+  <int value="310654399" label="fe54"/>
+  <int value="314884784" label="fe65"/>
+  <int value="315044617" label="fea9"/>
+  <int value="321399472" label="fe86"/>
+  <int value="335078161"
+      label="Dotti; MiP Robot; 0000fff0-0000-1000-8000-00805f9b34fb"/>
+  <int value="336095190" label="fe1c"/>
+  <int value="337129282" label="fe73"/>
+  <int value="347254994" label="feb6"/>
+  <int value="350589357" label="fe8e"/>
+  <int value="353919198" label="fe41"/>
+  <int value="367801999" label="fe19"/>
+  <int value="381944619" label="continuous_glucose_monitoring"/>
+  <int value="384581502"
+      label="PocketLab; f000aa07-0452-4000-b000-000000000000"/>
+  <int value="393442080" label="fe47"/>
+  <int value="404751265" label="fe34"/>
+  <int value="406443827" label="fe08"/>
+  <int value="406667138" label="fe1b"/>
+  <int value="408422717" label="fe12"/>
+  <int value="411422080" label="feaf"/>
+  <int value="426120542"
+      label="PocketLab; f000aa3b-0452-4000-b000-000000000000"/>
+  <int value="428955508" label="fed8"/>
+  <int value="436040838" label="fe49"/>
+  <int value="442258066" label="fec6"/>
+  <int value="448479874" label="fe13"/>
+  <int value="449334956"
+      label="PocketLab; f000aa3d-0452-4000-b000-000000000000"/>
+  <int value="452749537" label="fe6f"/>
+  <int value="482634289"
+      label="SAM Labs Blocks; 3b989460-975f-11e4-a9fb-0002a5d5c51b"/>
+  <int value="486403409" label="fe7e"/>
+  <int value="493187195"
+      label="Insight cards; 13630000-aeb9-10cf-ef69-81e145a91113"/>
+  <int value="499379297" label="fe0c"/>
+  <int value="501361244"
+      label="PocketLab; f000aa21-0452-4000-b000-000000000000"/>
+  <int value="517314925" label="fe0e"/>
+  <int value="525609715"
+      label="PocketLab 1; f000aa10-0451-4000-b000-000000000000"/>
+  <int value="534472233" label="feea"/>
+  <int value="535574137" label="feb1"/>
+  <int value="539310529"
+      label="micro:bit DFU Control; e95d93b0-251d-470a-a062-fa1922dfa9a8"/>
+  <int value="540487861"
+      label="Parrot Drone; 9a66fd21-0800-9191-11e4-012d1540cb8e"/>
+  <int value="547028880" label="fed0"/>
+  <int value="547268186"
+      label="Parrot Drone; 9a66fb00-0800-9191-11e4-012d1540cb8e"/>
+  <int value="547391938" label="feee"/>
+  <int value="563178896" label="fec8"/>
+  <int value="572734315"
+      label="Sphero Robot; 22bb746f-2bb0-7554-2d6f-726568705327"/>
+  <int value="587509991" label="feba"/>
+  <int value="593291030" label="fe80"/>
+  <int value="593725623" label="fef8"/>
+  <int value="594122172" label="health_thermometer"/>
+  <int value="598801180" label="fe64"/>
+  <int value="599398840" label="feb4"/>
+  <int value="601952480"
+      label="PowerUp RC plane; 75b64e51-f181-4ed1-921a-476090d80ba7"/>
+  <int value="602410094"
+      label="PocketLab; f000aa28-0452-4000-b000-000000000000"/>
+  <int value="603143198" label="fef5"/>
+  <int value="604112254" label="fee4"/>
+  <int value="612248808" label="612248808 (Unknown; not a 16bit UUID)"/>
+  <int value="617434027" label="fe59"/>
+  <int value="621358948" label="fec7"/>
+  <int value="626013607" label="FIDO authentication service (fffd)"/>
+  <int value="628511213"
+      label="PocketLab; f000aa3a-0452-4000-b000-000000000000"/>
+  <int value="633977000" label="fedf"/>
+  <int value="634740644"
+      label="Purple Eye; 00005100-0000-1000-8000-00805f9b34fb"/>
+  <int value="642914459" label="fe3d"/>
+  <int value="643543662" label="fefe"/>
+  <int value="659248322"
+      label="PocketLab; f000aa29-0452-4000-b000-000000000000"/>
+  <int value="661885353"
+      label="Remote Lego; 40480f29-7bad-4ea5-8bf8-499405c9b324"/>
+  <int value="675211143" label="fe4a"/>
+  <int value="677930586" label="fe11"/>
+  <int value="683753134" label="fe82"/>
+  <int value="684646659" label="febb"/>
+  <int value="687580695" label="fe7a"/>
+  <int value="687720133" label="fe91"/>
+  <int value="688383299" label="fe1f"/>
+  <int value="690691504" label="bond_management"/>
+  <int value="695100933" label="fed4"/>
+  <int value="702341883" label="fed5"/>
+  <int value="703883979" label="fe87"/>
+  <int value="706159123" label="fe32"/>
+  <int value="712814660"
+      label="Eddystone-URL Beacon Configuration;
+             ee0c2080-8786-40ba-ab96-99b91ac981d8"/>
+  <int value="724409151"
+      label="PocketLab; f000aa1f-0452-4000-b000-000000000000"/>
+  <int value="725361228"
+      label="PocketLab; f000aa10-0452-4000-b000-000000000000"/>
+  <int value="739317418" label="fe05"/>
+  <int value="741183887" label="fe78"/>
+  <int value="749323131" label="fece"/>
+  <int value="753456499"
+      label="PocketLab; f000aa27-0452-4000-b000-000000000000"/>
+  <int value="762562796" label="fe5e"/>
+  <int value="775377708" label="fe2b"/>
+  <int value="780195705" label="fead"/>
+  <int value="784175223"
+      label="PocketLab; f000aa39-0452-4000-b000-000000000000"/>
+  <int value="786171562" label="fe0a"/>
+  <int value="803680658" label="fea3"/>
+  <int value="805645044" label="glucose"/>
+  <int value="806223105"
+      label="PocketLab; f000aa1c-0452-4000-b000-000000000000"/>
+  <int value="807272540" label="fe1a"/>
+  <int value="817497010" label="fe18"/>
+  <int value="827651216"
+      label="PocketLab; f000aa20-0452-4000-b000-000000000000"/>
+  <int value="836214784" label="cycling_power"/>
+  <int value="841972234" label="feeb"/>
+  <int value="853857776"
+      label="PocketLab; f000aa2a-0452-4000-b000-000000000000"/>
+  <int value="869059214" label="next_dst_change"/>
+  <int value="869682406" label="fe60"/>
+  <int value="873412183"
+      label="LEGO Hub Service; 00001623-1212-efde-1623-785feabcd123"/>
+  <int value="876407493" label="location_and_navigation"/>
+  <int value="878416856" label="fe85"/>
+  <int value="879242624"
+      label="nRF candy machine; a6c31337-6c07-453e-961a-d8a8a41bf368"/>
+  <int value="882315332" label="fe55"/>
+  <int value="889111031" label="fecd"/>
+  <int value="890629650" label="running_speed_and_cadence"/>
+  <int value="901700952" label="fedd"/>
+  <int value="902817086" label="fea2"/>
+  <int value="918911989" label="fed1"/>
+  <int value="931929648" label="Mi Band; fee0"/>
+  <int value="935427983" label="fed7"/>
+  <int value="936179325" label="feb5"/>
+  <int value="939739701" label="fe8f"/>
+  <int value="939958322" label="febc"/>
+  <int value="940942235" label="feef"/>
+  <int value="953202155" label="fe8d"/>
+  <int value="959163825"
+      label="Elgato Avea Bulb; f815e810-456c-6761-746f-4d756e696368"/>
+  <int value="960854785" label="fe53"/>
+  <int value="961193127" label="feb8"/>
+  <int value="963656436" label="fe77"/>
+  <int value="978815669"
+      label="CoolBeans Serial; a495ff10-c5b1-4b44-b512-1370f02d74de"/>
+  <int value="988476177"
+      label="PocketLab 1; f000aa50-0451-4000-b000-000000000000"/>
+  <int value="993332700"
+      label="micro:bit Temperature; e95d6100-251d-470a-a062-fa1922dfa9a8"/>
+  <int value="1001310815" label="fe75"/>
+  <int value="1018346218"
+      label="PocketLab; f000aa03-0452-4000-b000-000000000000"/>
+  <int value="1024550252" label="feda"/>
+  <int value="1029767622" label="internet_protocol_support"/>
+  <int value="1035129135" label="fe74"/>
+  <int value="1044298649" label="fe99"/>
+  <int value="1045265631"
+      label="Elite trainer; 347b0001-7635-408b-8918-8ff3949ce592"/>
+  <int value="1047979067" label="fe17"/>
+  <int value="1054370387" label="fef9"/>
+  <int value="1061554458" label="feaa"/>
+  <int value="1067649821" label="fe3f"/>
+  <int value="1079263879" label="fe06"/>
+  <int value="1085187782" label="feae"/>
+  <int value="1088150526" label="feb2"/>
+  <int value="1091337779" label="fefb"/>
+  <int value="1096286291" label="fed6"/>
+  <int value="1097514018"
+      label="PocketLab; f000aa06-0452-4000-b000-000000000000"/>
+  <int value="1102290958" label="fe56"/>
+  <int value="1103440256" label="fee9"/>
+  <int value="1107293675" label="cycling_speed_and_cadence"/>
+  <int value="1107743017" label="fe00"/>
+  <int value="1108163795" label="fec0"/>
+  <int value="1108885324" label="fe48"/>
+  <int value="1122138707" label="fed2"/>
+  <int value="1122276223" label="fe67"/>
+  <int value="1122861451" label="Playbulb Candle; ff02"/>
+  <int value="1125757823"
+      label="PocketLab; f000aa33-0452-4000-b000-000000000000"/>
+  <int value="1132318862" label="fe6a"/>
+  <int value="1133574029" label="fede"/>
+  <int value="1134418737" label="fed9"/>
+  <int value="1146291045" label="fe2e"/>
+  <int value="1155522736" label="fea0"/>
+  <int value="1181418959" label="feca"/>
+  <int value="1185484517" label="fe02"/>
+  <int value="1188875912" label="phone_alert_status"/>
+  <int value="1204532270" label="fea1"/>
+  <int value="1205730714" label="fe81"/>
+  <int value="1211834643"
+      label="PocketLab; f000aa02-0452-4000-b000-000000000000"/>
+  <int value="1213218283" label="feb7"/>
+  <int value="1219993345" label="device_information"/>
+  <int value="1225001939" label="fe6c"/>
+  <int value="1235220658" label="fe6e"/>
+  <int value="1236903028" label="fe9d"/>
+  <int value="1239202871" label="generic_attribute"/>
+  <int value="1244946418" label="fe61"/>
+  <int value="1250531601" label="fe15"/>
+  <int value="1254514264"
+      label="PocketLab; f000aa05-0452-4000-b000-000000000000"/>
+  <int value="1257014053" label="fe33"/>
+  <int value="1262008705" label="fef2"/>
+  <int value="1265172773" label="indoor_positioning"/>
+  <int value="1265779630" label="fe7d"/>
+  <int value="1275725183" label="febe"/>
+  <int value="1276692887" label="fe09"/>
+  <int value="1280998251" label="blood_pressure"/>
+  <int value="1289827687" label="fe7c"/>
+  <int value="1291799273"
+      label="littleBits; ded1c5a0-536c-11e6-beb8-9e71128cae77"/>
+  <int value="1293391247" label="fea4"/>
+  <int value="1295501517" label="fef3"/>
+  <int value="1300474367" label="fe70"/>
+  <int value="1300496660" label="fe23"/>
+  <int value="1324131957" label="ff08; 0000ff08-0000-1000-8000-00805f9b34fb"/>
+  <int value="1327498374"
+      label="nRF UART; 6e400001-b5a3-f393-e0a9-e50e24dcca9e"/>
+  <int value="1328850331"
+      label="micro:bit Accelerometer; e95d0753-251d-470a-a062-fa1922dfa9a8"/>
+  <int value="1344502489" label="fe92"/>
+  <int value="1352591424" label="fe2d"/>
+  <int value="1357782294" label="fe90"/>
+  <int value="1357850359" label="fefc"/>
+  <int value="1359442507"
+      label="Physical Web Light Switch; ba42561b-b1d2-440a-8d04-0cefb43faece"/>
+  <int value="1362860533" label="fe9a"/>
+  <int value="1366014117" label="fe2c"/>
+  <int value="1366194038"
+      label="PocketLab; f000aa22-0452-4000-b000-000000000000"/>
+  <int value="1369789354" label="current_time"/>
+  <int value="1376579922" label="fef0"/>
+  <int value="1377872916" label="fe51"/>
+  <int value="1378697826"
+      label="PocketLab; f000aa2f-0452-4000-b000-000000000000"/>
+  <int value="1380007534" label="fe96"/>
+  <int value="1382767841" label="fe93"/>
+  <int value="1394327958" label="fe24"/>
+  <int value="1398099241" label="user_data"/>
+  <int value="1402127045" label="fef4"/>
+  <int value="1415105941" label="scan_parameters"/>
+  <int value="1416866355" label="fe3b"/>
+  <int value="1422100109"
+      label="Sphero Robot; 22bb746f-2ba0-7554-2d6f-726568705327"/>
+  <int value="1423142122"
+      label="PocketLab; f000aa01-0452-4000-b000-000000000000"/>
+  <int value="1424865940" label="alert_notification"/>
+  <int value="1432421356" label="fe14"/>
+  <int value="1433847022" label="fefa"/>
+  <int value="1451886110"
+      label="PocketLab; f000aa38-0452-4000-b000-000000000000"/>
+  <int value="1463907405"
+      label="PocketLab; f000aa2b-0452-4000-b000-000000000000"/>
+  <int value="1465794357" label="feb0"/>
+  <int value="1477417345"
+      label="PocketLab; f000aa23-0452-4000-b000-000000000000"/>
+  <int value="1482395712"
+      label="Bleno Pizza Example; 13333333-3333-3333-3333-333333333337"/>
+  <int value="1484296385" label="fe30"/>
+  <int value="1486406094" label="1486406094 (Unknown; not a 16bit UUID)"/>
+  <int value="1513113754" label="fe39"/>
+  <int value="1515793787" label="fef1"/>
+  <int value="1545945606"
+      label="Parrot Drone; 9a66fa00-0800-9191-11e4-012d1540cb8e"/>
+  <int value="1548928839" label="fec5"/>
+  <int value="1549672811"
+      label="nRF candy machine; b6c31337-6c07-453e-961a-d8a8a41bf368"/>
+  <int value="1551090056"
+      label="PocketLab; f000aa35-0452-4000-b000-000000000000"/>
+  <int value="1553614739" label="fe6b"/>
+  <int value="1563543855" label="fe72"/>
+  <int value="1569655226" label="generic_access"/>
+  <int value="1573199922" label="fe71"/>
+  <int value="1578535968"
+      label="Makeblock mBot; 0000ffe1-0000-1000-8000-00805f9b34fb"/>
+  <int value="1588237112"
+      label="PocketLab; f000aa3f-0452-4000-b000-000000000000"/>
+  <int value="1594426590" label="fe4e"/>
+  <int value="1600490722" label="fe46"/>
+  <int value="1604724337" label="fe88"/>
+  <int value="1606985074" label="feed"/>
+  <int value="1607594729" label="fe0f"/>
+  <int value="1611458228"
+      label="PocketLab; f000aa34-0452-4000-b000-000000000000"/>
+  <int value="1618872680" label="fe9b"/>
+  <int value="1631386264" label="fefd"/>
+  <int value="1635890706" label="fe9e"/>
+  <int value="1637021391" label="fe95"/>
+  <int value="1638012344" label="fe97"/>
+  <int value="1648320092" label="fe7f"/>
+  <int value="1651126525" label="fe25"/>
+  <int value="1651610232" label="fe52"/>
+  <int value="1655806770"
+      label="PocketLab Voyager; f000aa11-0452-4000-b000-000000000000"/>
+  <int value="1660904097" label="immediate_alert"/>
+  <int value="1663141542" label="battery_service"/>
+  <int value="1671670551" label="fe5a"/>
+  <int value="1673238799" label="fee3"/>
+  <int value="1680929515" label="fe79"/>
+  <int value="1681595304" label="fe4b"/>
+  <int value="1682716946" label="fe45"/>
+  <int value="1694516494" label="fe31"/>
+  <int value="1696287138" label="weight_scale"/>
+  <int value="1697181639" label="1697181639 (Unknown; not a 16bit UUID)"/>
+  <int value="1701893879" label="feac"/>
+  <int value="1704852137" label="1704852137 (Unknown; not a 16bit UUID)"/>
+  <int value="1706666451" label="fea7"/>
+  <int value="1708135819" label="1708135819 (Unknown; not a 16bit UUID)"/>
+  <int value="1712085581"
+      label="MiP Robot; Magic Blue Bulb; 0000ffe5-0000-1000-8000-00805f9b34fb"/>
+  <int value="1714031075" label="fe10"/>
+  <int value="1719495127"
+      label="PocketLab; f000aa00-0452-4000-b000-000000000000"/>
+  <int value="1724509641" label="fe8b"/>
+  <int value="1729966097"
+      label="Anki OVERDRIVE cars; be15beef-6186-407e-8381-0bd89c4d8df4"/>
+  <int value="1753170093" label="environmental_sensing"/>
+  <int value="1763555668" label="fe76"/>
+  <int value="1779377938" label="fe5d"/>
+  <int value="1784351685" label="feab"/>
+  <int value="1788143374" label="feb3"/>
+  <int value="1788905945" label="fedb"/>
+  <int value="1789684919" label="fe36"/>
+  <int value="1801426861"
+      label="micro:bit Magnetometer; e95df2d8-251d-470a-a062-fa1922dfa9a8"/>
+  <int value="1805849785" label="fe98"/>
+  <int value="1808789304" label="fe3a"/>
+  <int value="1821803686" label="TI SensorTag Simple Keys; ffe0"/>
+  <int value="1823176820" label="body_composition"/>
+  <int value="1826466999" label="fee1"/>
+  <int value="1829698279" label="fe0b"/>
+  <int value="1833458622" label="fe42"/>
+  <int value="1844072312" label="fe40"/>
+  <int value="1849709266" label="fec3"/>
+  <int value="1852765173" label="1852765173 (Unknown; not a 16bit UUID)"/>
+  <int value="1855849484"
+      label="iHealth Edge; 636f6d2e-6a69-7561-6e2e-414d56313100"/>
+  <int value="1866335371"
+      label="PocketLab; f000aa36-0452-4000-b000-000000000000"/>
+  <int value="1873367042"
+      label="PocketLab; f000aa3c-0452-4000-b000-000000000000"/>
+  <int value="1891274929" label="fee2"/>
+  <int value="1891804450" label="fe58"/>
+  <int value="1905398969" label="fee6"/>
+  <int value="1915568448" label="fe89"/>
+  <int value="1922068523" label="fef6"/>
+  <int value="1922152740" label="fe8a"/>
+  <int value="1922853101" label="fe28"/>
+  <int value="1925022679" label="fe57"/>
+  <int value="1934342765"
+      label="PocketLab; f000aa30-0452-4000-b000-000000000000"/>
+  <int value="1940012814" label="fe2a"/>
+  <int value="1942373991"
+      label="Eddystone-URL Beacon Configuration v2;
+             a3c87500-8ed3-4bdf-8a39-a01bebede295"/>
+  <int value="1945497075"
+      label="PocketLab; f000aa24-0452-4000-b000-000000000000"/>
+  <int value="1946977319" label="fec1"/>
+  <int value="1953707948" label="fe9f"/>
+  <int value="1960388103" label="fecb"/>
+  <int value="1969478137" label="fe63"/>
+  <int value="1970234661" label="reference_time_update"/>
+  <int value="1971997463" label="fe07"/>
+  <int value="1974805193"
+      label="PocketLab; f000aa26-0452-4000-b000-000000000000"/>
+  <int value="1976176123" label="fe4c"/>
+  <int value="1983035069" label="fec9"/>
+  <int value="1984351068" label="fea6"/>
+  <int value="2010559917"
+      label="PocketLab; f000aa2e-0452-4000-b000-000000000000"/>
+  <int value="2016025023" label="febd"/>
+  <int value="2017827114" label="fe4f"/>
+  <int value="2018026941"
+      label="konashi; 229bff00-03fb-40da-98a7-b0def65c2d4b"/>
+  <int value="2020665772"
+      label="PocketLab; f000aa3e-0452-4000-b000-000000000000"/>
+  <int value="2021054861"
+      label="Tacx trainer; 6e40fec1-b5a3-f393-e0a9-e50e24dcca9e"/>
+  <int value="2022676622" label="fe35"/>
+  <int value="2051635436" label="fe50"/>
+  <int value="2055825405" label="fedc"/>
+  <int value="2058080782" label="fecc"/>
+  <int value="2061595680" label="fea5"/>
+  <int value="2066621778"
+      label="PocketLab; f000aa37-0452-4000-b000-000000000000"/>
+  <int value="2069612985" label="fee5"/>
+  <int value="2070392722" label="fec2"/>
+  <int value="2075745564" label="heart_rate"/>
+  <int value="2081202638"
+      label="PocketLab 1; f000aa60-0451-4000-b000-000000000000"/>
+  <int value="2081534039" label="fe83"/>
+  <int value="2083938968"
+      label="micro:bit IO PINs; e95d127b-251d-470a-a062-fa1922dfa9a8"/>
+  <int value="2086529225" label="tx_power"/>
+  <int value="2093050338"
+      label="PocketLab; f000aa08-0452-4000-b000-000000000000"/>
+  <int value="2095670709"
+      label="PocketLab Voyager; f000aa31-0452-4000-b000-000000000000"/>
+  <int value="2097896377" label="fee8"/>
+  <int value="2100033855" label="fef7"/>
+  <int value="2103247472"
+      label="PocketLab; f000aa09-0452-4000-b000-000000000000"/>
+  <int value="2107223399" label="fee7"/>
+  <int value="2108894990" label="fe2f"/>
+  <int value="2110412550" label="fe43"/>
+  <int value="2113887919" label="fe5b"/>
+  <int value="2115271248" label="fe94"/>
+  <int value="2124678180"
+      label="Parrot Drone; 9a66fd51-0800-9191-11e4-012d1540cb8e"/>
+  <int value="2132514937" label="feec"/>
+  <int value="2136716957" label="fe69"/>
+</enum>
+
+<enum name="SetNicknameResult">
+  <int value="0" label="Invalid nickname format"/>
+  <int value="1" label="Device not found"/>
+  <int value="2" label="Prefs unavailable"/>
+  <int value="3" label="Success"/>
+</enum>
+
+<enum name="WebBluetoothConnectGATTOutcome">
+  <int value="0" label="Success"/>
+  <int value="1" label="Device no longer in range"/>
+  <int value="2" label="Unknown Error"/>
+  <int value="3" label="In Progress"/>
+  <int value="4" label="Failed"/>
+  <int value="5" label="Auth Failed"/>
+  <int value="6" label="Auth Canceled"/>
+  <int value="7" label="Auth Rejected"/>
+  <int value="8" label="Auth Timeout"/>
+  <int value="9" label="Unsupported Device"/>
+  <int value="10" label="Not Ready"/>
+  <int value="11" label="Already Connected"/>
+  <int value="12" label="Already Exists"/>
+  <int value="13" label="Not Connected"/>
+  <int value="14" label="Does Not Exist"/>
+  <int value="15" label="Invalid Arguments"/>
+</enum>
+
+<enum name="WebBluetoothGATTOperationOutcome">
+  <int value="0" label="Success"/>
+  <int value="1" label="No Device"/>
+  <int value="2" label="No Service"/>
+  <int value="3" label="No Characteristic"/>
+  <int value="4" label="No Descriptor"/>
+  <int value="5" label="Unknown"/>
+  <int value="6" label="Failed"/>
+  <int value="7" label="In Progress"/>
+  <int value="8" label="Invalid Length"/>
+  <int value="9" label="Not Permitted"/>
+  <int value="10" label="Not Authorized"/>
+  <int value="11" label="Not Paired"/>
+  <int value="12" label="Not Supported"/>
+  <int value="13" label="Blocklisted"/>
+</enum>
+
+<enum name="WebBluetoothRSSISignalStrengthLevel">
+  <int value="0" label="&lt;= minimum RSSI; displayed as level 0"/>
+  <int value="1" label="RSSI displayed as level 0"/>
+  <int value="2" label="RSSI displayed as level 1"/>
+  <int value="3" label="RSSI displayed as level 2"/>
+  <int value="4" label="RSSI displayed as level 3"/>
+  <int value="5" label="RSSI displayed as level 4"/>
+  <int value="6" label="&gt;= maximium RSSI; displayed as level 4"/>
+</enum>
+
+</enums>
+
+</histogram-configuration>
diff --git a/tools/metrics/histograms/metadata/bookmarks/histograms.xml b/tools/metrics/histograms/metadata/bookmarks/histograms.xml
index f8eaec5..0744306 100644
--- a/tools/metrics/histograms/metadata/bookmarks/histograms.xml
+++ b/tools/metrics/histograms/metadata/bookmarks/histograms.xml
@@ -774,7 +774,10 @@
   <owner>mdjones@chromium.org</owner>
   <owner>chrome-shopping@google.com</owner>
   <summary>
-    Records how a suggested save location is handled for a new bookmark.
+    Records how a suggested save location provider was used when creating a new
+    bookmark. This will give us an idea of the overlap of different suggestion
+    providers and whether they are being blocked from previous rejections from
+    the user.
   </summary>
   <token key="FeatureName">
     <variant name="ShoppingCollection"/>
diff --git a/tools/metrics/histograms/metadata/commerce/histograms.xml b/tools/metrics/histograms/metadata/commerce/histograms.xml
index d2ee889..0a09f603 100644
--- a/tools/metrics/histograms/metadata/commerce/histograms.xml
+++ b/tools/metrics/histograms/metadata/commerce/histograms.xml
@@ -504,6 +504,20 @@
   </summary>
 </histogram>
 
+<histogram name="Commerce.PriceTracking.IconInteractionState"
+    enum="PriceTrackingIconInteractionState" expires_after="2024-06-01">
+  <owner>mdjones@chromium.org</owner>
+  <owner>chrome-shopping@google.com</owner>
+  <summary>
+    Records the state the price tracking page action icon was in and whether it
+    was interacted with. This only records clicks that would result in tracking
+    the product, excludes cases where the icon was not shown, and is only
+    recorded the first time the event happens for a page load. This will give us
+    a clear picture of the effect that expanding the action to show the label
+    has on click-through.
+  </summary>
+</histogram>
+
 <histogram name="Commerce.PriceTracking.IOS.ProductStatus"
     enum="PriceNotificationProductStatus" expires_after="2024-07-21">
   <owner>danieltwhite@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/content/enums.xml b/tools/metrics/histograms/metadata/content/enums.xml
new file mode 100644
index 0000000..dbab431
--- /dev/null
+++ b/tools/metrics/histograms/metadata/content/enums.xml
@@ -0,0 +1,570 @@
+<!--
+Copyright 2023 The Chromium Authors
+Use of this source code is governed by a BSD-style license that can be
+found in the LICENSE file.
+-->
+
+<!--
+
+This file describes the enumerations referenced by entries in histograms.xml for
+this directory. Some enums may instead be listed in the central enums.xml file
+at src/tools/metrics/histograms/enums.xml when multiple files use them.
+
+For best practices on writing enumerations descriptions, see
+https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md#Enum-Histograms
+
+Please follow the instructions in the OWNERS file in this directory to find a
+reviewer. If no OWNERS file exists, please consider signing up at
+go/reviewing-metrics (Googlers only), as all subdirectories are expected to
+have an OWNERS file. As a last resort you can send the CL to
+chromium-metrics-reviews@google.com.
+-->
+
+<histogram-configuration>
+
+<!-- Enum types -->
+
+<enums>
+
+<enum name="ContentClassification">
+  <int value="0" label="Other"/>
+  <int value="1" label="Long article"/>
+</enum>
+
+<enum name="ContentClassificationOpenGraph">
+  <int value="0" label="Unknown"/>
+  <int value="1" label="Website"/>
+  <int value="2" label="Music"/>
+  <int value="3" label="Video"/>
+  <int value="4" label="Article"/>
+  <int value="5" label="Book"/>
+  <int value="6" label="Profile"/>
+</enum>
+
+<enum name="ContentSettingBubbleAction">
+  <int value="1" label="kOpened"/>
+  <int value="2" label="kPermissionAllowed"/>
+  <int value="3" label="kPermissionBlocked"/>
+  <int value="4" label="KManageButtonClicked"/>
+</enum>
+
+<enum name="ContentSettingImageType">
+  <int value="0" label="COOKIES"/>
+  <int value="1" label="IMAGES"/>
+  <int value="2" label="JAVASCRIPT"/>
+  <int value="3" label="PPAPI_BROKER"/>
+  <int value="4" label="PLUGINS"/>
+  <int value="5" label="POPUPS"/>
+  <int value="6" label="GEOLOCATION"/>
+  <int value="7" label="MIXEDSCRIPT"/>
+  <int value="8" label="PROTOCOL_HANDLERS"/>
+  <int value="9" label="MEDIASTREAM"/>
+  <int value="10" label="ADS"/>
+  <int value="11" label="AUTOMATIC_DOWNLOADS"/>
+  <int value="12" label="MIDI_SYSEX"/>
+  <int value="13" label="SOUND"/>
+  <int value="14" label="FRAMEBUST"/>
+  <int value="16" label="SENSORS"/>
+  <int value="18" label="CLIPBOARD_READ_WRITE"/>
+</enum>
+
+<enum name="ContentSettingPopupAction">
+  <int value="0" label="Displayed popup-blocked icon in Omnibox"/>
+  <int value="1" label="Displayed bubble"/>
+  <int value="2" label="Clicked 'Always allow pop-ups from'"/>
+  <int value="3" label="Clicked one of the list items"/>
+  <int value="4" label="Clicked 'Manage pop-up blocking'"/>
+  <int value="5" label="Displayed popup-blocked infobar on mobile"/>
+  <int value="6" label="Clicked 'Always show on mobile'"/>
+</enum>
+
+<enum name="ContentSuggestionsDisplayStatus">
+  <int value="0" label="Visible"/>
+  <int value="1" label="Collapsed"/>
+  <int value="2" label="Disabled by policy"/>
+  <int value="3" label="Disabled"/>
+  <int value="4" label="Disabled by default search engine"/>
+</enum>
+
+<enum name="FeedActivityBucket">
+  <int value="0" label="No Activity">
+    The user has no activity in the last 28 days.
+  </int>
+  <int value="1" label="Low Activity">
+    The user has 1-7 days of activity in the last 28 days.
+  </int>
+  <int value="2" label="Medium Activity">
+    The user has 8-15 days of activity in the last 28 days.
+  </int>
+  <int value="3" label="High Activity">
+    The user has 16+ days of activity in the last 28 days.
+  </int>
+</enum>
+
+<enum name="FeedContentOrder">
+  <int value="0" label="Unspecified"/>
+  <int value="1" label="Grouped"/>
+  <int value="2" label="Reverse Chronological"/>
+</enum>
+
+<enum name="FeedControlsActions">
+  <int value="0" label="Clicked on My activity"/>
+  <int value="1" label="Clicked on Manage interests"/>
+  <int value="2" label="Clicked on Learn more"/>
+  <int value="3" label="Toggled the feed"/>
+  <int value="4" label="Clicked on the feed menu button"/>
+  <int value="5" label="Clicked on autoplay"/>
+  <int value="6" label="Clicked on Manage"/>
+</enum>
+
+<enum name="FeedEngagementType">
+  <int value="0" label="Engaged">
+    Visit - user scrolled an inch or interacted
+  </int>
+  <int value="1" label="Engaged Simple">
+    Visit - user scrolled any amount or interacted&quot;
+  </int>
+  <int value="2" label="Interacted">
+    Interaction - Opening a page or using the menu&quot;
+  </int>
+<!-- <int value="3" label="Scrolled">Deprecated - formerly scrolled any amount</int> -->
+
+  <int value="4" label="Scrolled">Interaction - Scrolled any amount</int>
+  <int value="5" label="Good Visit">
+    Visit - user (a) had a good explicit interaction, (b) spent a minute in the
+    feed and scrolled, or (c) spent ten seconds viewing or opening a piece of
+    content.
+  </int>
+</enum>
+
+<enum name="FeedInfoCardType">
+  <int value="1" label="INFO_CARD_MAIN_PRIVACY_NOTICE"/>
+  <int value="2" label="INFO_CARD_YOUTUBE_PRIVACY_NOTICE"/>
+</enum>
+
+<enum name="FeedLoadStreamStatus">
+  <int value="0" label="Loading wasn't attempted"/>
+  <int value="1" label="Success loading from persistent store"/>
+  <int value="2" label="Success loading from network"/>
+  <int value="3" label="Failed - store error"/>
+  <int value="4" label="Failed - no data in store"/>
+  <int value="5" label="Failed - model is already loaded"/>
+  <int value="6" label="Failed - network response has no body"/>
+  <int value="7" label="Failed - error translating to internal protos"/>
+  <int value="8" label="Failed - data in store is stale"/>
+  <int value="9" label="Failed - data in store has timestamp from the future"/>
+  <int value="10"
+      label="Failed - loading from network is suppressed due to recent
+             history deletion"/>
+  <int value="11" label="Failed - cannot load from network while offline"/>
+  <int value="12" label="Failed - network request throttled"/>
+  <int value="13" label="Failed - EULA not accepted"/>
+  <int value="14" label="Failed - articles list hidden"/>
+  <int value="15" label="Failed - cannot parse network response body"/>
+  <int value="16"
+      label="Failed - cannot load more content because the model is not yet
+             loaded"/>
+  <int value="17" label="Failed - feed is disabled by enterprise policy"/>
+  <int value="18"
+      label="Failed - network fetch failed or returned a non-200 status"/>
+  <int value="19" label="Failed - cannot load more, no next page token"/>
+  <int value="20" label="Failed - data in store is stale, last refresh missed"/>
+  <int value="21" label="Success loading stale data, after network failure"/>
+  <int value="22" label="Failed - data in store is expired"/>
+  <int value="23" label="Failed - data in store is for another user"/>
+  <int value="24" label="Failed - cannot load stream with pending clear all"/>
+  <int value="25" label="Failed - already has unread content available"/>
+  <int value="26" label="Failed - user does not follow any web feeds"/>
+  <int value="27"
+      label="Failed - account token fetch failed because it was for the wrong
+             account"/>
+  <int value="28" label="Failed - account token fetch timed out"/>
+  <int value="29" label="Failed - network fetch timed out"/>
+</enum>
+
+<enum name="FeedNoticeAcknowledgementPath">
+  <obsolete>
+    Deprecated in 05/2022 since we removed feed notice card related codes.
+  </obsolete>
+  <int value="0"
+      label="The acknowledgment is reached after the user views the notice
+             for a required number of times."/>
+  <int value="1"
+      label="The acknowledgment is reached after the user taps the notice to
+             perform an open action for a required number of times."/>
+  <int value="2"
+      label="The acknowledgment is reached after the user fter the user taps
+             X button to close the notice."/>
+</enum>
+
+<enum name="FeedRefreshTrigger">
+  <int value="0" label="Other"/>
+  <int value="1" label="Background cold start"/>
+  <int value="2" label="Background warm start"/>
+  <int value="3" label="Foreground feed start"/>
+  <int value="4" label="Foreground account change"/>
+  <int value="5" label="Foreground user triggered"/>
+  <int value="6" label="Foreground feed visible other">
+    The feed is visible and trigger is not already one of the other foreground
+    visible triggers.
+  </int>
+  <int value="7" label="Foreground not forced">
+    A server request is only made if the feed model is considered stale.
+  </int>
+  <int value="8" label="Foreground but feed not visible">
+    The feed is not visible but the app is in the foreground (e.g., user is in
+    another tab).
+  </int>
+  <int value="9" label="Foreground new feed view controller">
+    A new feed view controller has been configured and has become visible to the
+    user.
+  </int>
+  <int value="10" label="Foreground app close">
+    The app is backgrounding from the foreground and the refresh is running on
+    an app extended execution time.
+  </int>
+  <int value="11" label="Background cold start app close">
+    Refresh is triggered in a background cold start with app close enabled.
+  </int>
+  <int value="12" label="Background warm start app close">
+    Refresh is triggered in a background warm start with app close enabled.
+  </int>
+</enum>
+
+<enum name="FeedSendFeedbackType">
+  <int value="0" label="Feedback tapped on card"/>
+  <int value="1" label="Feedback tapped on page from card"/>
+</enum>
+
+<enum name="FeedSignInUI">
+  <int value="0" label="Showing a sign-in half sheet triggered from feed."/>
+  <int value="1" label="Showing a sign-in only flow triggered from feed."/>
+  <int value="2"
+      label="Showing a sign-in disabled snackbar triggered from feed."/>
+</enum>
+
+<enum name="FeedSortType">
+  <int value="0" label="Unspecified"/>
+  <int value="1" label="Grouped by publisher"/>
+  <int value="2" label="Sorted by latest"/>
+</enum>
+
+<enum name="FeedSyncPromo">
+  <int value="0"
+      label="The sync flow was shown when the user tapped on the Feed sync
+             promo."/>
+  <int value="1"
+      label="The service disable message was shown when the user tapped on
+             the Feed sync promo."/>
+</enum>
+
+<enum name="FeedUploadActionsBatchStatus">
+  <int value="0" label="Actions batch store/upload not attempted"/>
+  <int value="1" label="Failed to update store"/>
+  <int value="2" label="Failed to upload (got empty response body)"/>
+  <int value="3" label="Failed to remove uploaded actions from store"/>
+  <int value="4" label="Ran out of actions upload quota"/>
+  <int value="5" label="All actions were stale"/>
+  <int value="6" label="Successfully uploaded batch"/>
+</enum>
+
+<enum name="FeedUploadActionsStatus">
+  <int value="0" label="Action store/upload task not attempted"/>
+  <int value="1" label="No pending actions to upload"/>
+  <int value="2" label="Failed to store pending action"/>
+  <int value="3" label="Pending action was stored for later upload"/>
+  <int value="4"
+      label="Successfully uploaded some actions and stored a new consistency
+             token"/>
+  <int value="5"
+      label="Updated and tried to upload all pending actions and finished
+             without receiving a new consistency token"/>
+  <int value="6"
+      label="Upload attempt was aborted because the account is now signed-out"/>
+  <int value="7" label="Could not upload because does not meet conditions"/>
+  <int value="8" label="Can not upload actions for another user"/>
+  <int value="9" label="Could not upload because pending clear all"/>
+</enum>
+
+<enum name="FeedUserActionType">
+  <int value="0" label="Tapped on card"/>
+  <int value="1" label="Shown card (REMOVED, never reported)"/>
+  <int value="2" label="Tapped Send Feedback"/>
+  <int value="3" label="Tapped Learn More"/>
+  <int value="4" label="Tapped Hide Story"/>
+  <int value="5" label="Tapped Not Interested In"/>
+  <int value="6" label="Tapped Manage Interests"/>
+  <int value="7" label="Tapped Download"/>
+  <int value="8" label="Tapped Open in New Tab"/>
+  <int value="9" label="Opened context menu"/>
+  <int value="10" label="Opened feed surface"/>
+  <int value="11" label="Tapped Open in Incognito tab"/>
+  <int value="12"
+      label="Ephemeral change, likely due to hide story or not interested in"/>
+  <int value="13"
+      label="Ephemeral change undone, likely due to pressing 'undo' on the
+             snackbar"/>
+  <int value="14" label="Turn on"/>
+  <int value="15" label="Turn off"/>
+  <int value="16" label="Tapped Manage Activity"/>
+  <int value="17" label="Added to Read Later"/>
+  <int value="18" label="Close context menu"/>
+  <int value="19"
+      label="Ephemeral change committed, likely due to dismissing the 'undo'
+             snackbar"/>
+  <int value="20" label="Open Dialog e.g. Report Content Dialog"/>
+  <int value="21" label="Close Dialog e.g. Report Content Dialog"/>
+  <int value="22" label="Show Snackbar"/>
+  <int value="23" label="Opened native back-of-card action sheet. (iOS Only)"/>
+  <int value="24" label="Opened native back-of-card context menu. (iOS Only)"/>
+  <int value="25" label="Closed native back-of-card context menu. (iOS Only)"/>
+  <int value="26" label="Opened native back-of-card pulldown menu. (iOS Only)"/>
+  <int value="27" label="Closed native back-of-card pulldown menu. (iOS Only)"/>
+  <int value="28" label="Tapped manage reactions"/>
+  <int value="29" label="Tapped on share for an article"/>
+  <int value="30"
+      label="Tapped the 'Following' option inside the Feed's 'Manage'
+             interstitial."/>
+  <int value="31"
+      label="User tapped to follow a web feed on the management surface."/>
+  <int value="32"
+      label="User tapped to unfollow a web feed on the management surface."/>
+  <int value="33" label="User tapped to follow using the follow accelerator."/>
+  <int value="34"
+      label="User tapped to follow using the snackbar 'try again' option."/>
+  <int value="35"
+      label="User tapped to follow using the snackbar, after successfully
+             unfollowing."/>
+  <int value="36"
+      label="User tapped to unfollow using the snackbar 'try again' option."/>
+  <int value="37"
+      label="After following an active web feed, the user tapped to go to
+             feed using the post-follow help dialog."/>
+  <int value="38"
+      label="After following an active web feed, the user tapped to dismiss
+             the post-follow help dialog."/>
+  <int value="39"
+      label="After long-pressing on the feed and seeing the preview, the user
+             tapped on the preview."/>
+  <int value="40"
+      label="User tapped Settings link to open feed autoplay settings."/>
+  <int value="41"
+      label="User tapped 'Add to Reading List' in the context menu."/>
+  <int value="42"
+      label="User tapped the Manage icon to visit the feed management
+             interstitial."/>
+  <int value="43"
+      label="User tapped 'Hidden' in the feed management interstitial."/>
+  <int value="44"
+      label="User tapped the Follow button on the page overflow menu."/>
+  <int value="45"
+      label="User selected the Discover feed from the feed header."/>
+  <int value="46"
+      label="User selected the Following feed from the feed header."/>
+  <int value="47"
+      label="User tapped the Unfollow button on the page overflow menu."/>
+  <int value="48" label="Show Follow Succeed Snackbar."/>
+  <int value="49" label="Show Follow Failed Snackbar."/>
+  <int value="50" label="Show Unfollow Succeed Snackbar."/>
+  <int value="51" label="Show Unfollow Failed Snackbar."/>
+  <int value="52"
+      label="User tapped to go to Following feed using the snackbar 'go to
+             Following' option."/>
+  <int value="53" label="User tapped the Crow button in the context menu."/>
+  <int value="54" label="Show First Follow Sheet."/>
+  <int value="55"
+      label="User tapped the 'Go To Feed' button on the first follow sheet."/>
+  <int value="56"
+      label="User tapped the 'Got It' button on the first follow sheet."/>
+  <int value="57"
+      label="Show Follow Recommendation IPH telling users that they are able
+             to follow a website."/>
+  <int value="58"
+      label="User opened the article in a new tab in group from the back of
+             card menu."/>
+  <int value="59"
+      label="User selected the 'Group by Publisher' Following feed sort type."/>
+  <int value="60"
+      label="User selected the 'Sort by Latest' Following feed sort type."/>
+  <int value="61"
+      label="After following an active web feed, the user tapped on 'got it'
+             to close the post-follow help dialog."/>
+  <int value="62"
+      label="User tapped the follow accelerator which is presented after a
+             user taps on a recommendation that is in the feed."/>
+  <int value="63"
+      label="User requested to refresh the Following feed using the
+             post-follow snackbar 'refresh' action."/>
+  <int value="64"
+      label="User tapped on the 'Continue' of the sign-in promo UI."/>
+  <int value="65" label="User tapped on the 'Cancel' of the sign-in promo UI."/>
+  <int value="66" label="User initiated a non-swipe manual refresh."/>
+</enum>
+
+<enum name="FeedUserCommandType">
+  <int value="0" label="Enum placerholder. See crbug/1179826"/>
+</enum>
+
+<enum name="FeedUserSettingsOnStart">
+  <int value="0" label="The Feed is disabled by enterprise policy"/>
+  <int value="1" label="The user is signed out, and has disabled the Feed."/>
+  <int value="2" label="The user is signed in, and has disabled the Feed."/>
+  <int value="3" label="Feed enabled, user signed out"/>
+  <int value="4"
+      label="Feed enabled, user signed in, WAA on, Discover Personalization
+             on"/>
+  <int value="5"
+      label="Feed enabled, user signed in, WAA on, Discover Personalization
+             off"/>
+  <int value="6"
+      label="Feed enabled, user signed in, WAA off, Discover Personalization
+             on"/>
+  <int value="7"
+      label="Feed enabled, user signed in, WAA off, Discover Personalization
+             off"/>
+  <int value="8" label="Feed enabled, user signed in, no recent Feed data"/>
+  <int value="9" label="The Feed is disabled by flag"/>
+</enum>
+
+<enum name="FeedVideoInitializationError">
+  <int value="0" label="Client library update required."/>
+  <int value="1" label="Developer key invalid."/>
+  <int value="2" label="Error connecting to service."/>
+  <int value="3" label="Internal error."/>
+  <int value="4" label="Invalid application signature."/>
+  <int value="5" label="Network error."/>
+  <int value="6" label="Service disabled."/>
+  <int value="7" label="Service invalid."/>
+  <int value="8" label="Service missing."/>
+  <int value="9" label="Service version update required."/>
+  <int value="10" label="Unknown error."/>
+</enum>
+
+<enum name="FeedVideoPlayError">
+  <int value="0" label="Not playable."/>
+  <int value="1" label="Unauthorized overlay."/>
+  <int value="2" label="Internal error."/>
+  <int value="3" label="Unknown error."/>
+  <int value="4" label="Autoplay disabled."/>
+  <int value="5" label="Unexpected service disconnection."/>
+  <int value="6" label="Not playable muted."/>
+  <int value="7" label="Network error."/>
+</enum>
+
+<enum name="FeedVideoPlayEvent">
+  <int value="0" label="Auto-play stops before reaching the end."/>
+  <int value="1" label="Auto-play reaches the end."/>
+  <int value="2" label="User clicks on the auto-play video."/>
+  <int value="3" label="Video playing is triggered, but not started yet."/>
+  <int value="4" label="The player starts to play the video."/>
+  <int value="5" label="An error occurs during the video playing."/>
+</enum>
+
+<enum name="NTPBrokenViewHierarchyRelationship">
+  <int value="0" label="ELM collection containing Content Suggestions fixed"/>
+  <int value="1" label="Discover feed containing ELM collection fixed"/>
+  <int value="2" label="Discover feed wrapper containing Discover feed fixed"/>
+  <int value="3" label="NTP containing Discover feed wrapper fixed"/>
+  <int value="4"
+      label="Content suggestions view controller not cleaned up on restart"/>
+  <int value="5" label="ELM collection view containing feed header fixed"/>
+</enum>
+
+<enum name="PopupBlockerAction">
+  <int value="0" label="Popup initiated"/>
+  <int value="1" label="Popup blocked"/>
+  <int value="2" label="Popup clicked through (no gesture)"/>
+  <int value="3" label="Popup clicked through (abusive)"/>
+</enum>
+
+<enum name="SingleWebFeedEntryPoint">
+  <int value="0" label="Menu"/>
+  <int value="1" label="Attribtuion"/>
+  <int value="2" label="Recommendation"/>
+  <int value="3" label="Group Header"/>
+  <int value="4" label="Other"/>
+</enum>
+
+<enum name="StrongPopupBlockerAction">
+  <int value="0" label="Navigation commit"/>
+  <int value="1" label="Commit warn site"/>
+  <int value="2" label="Commit enforced site"/>
+  <int value="3" label="Popup considered"/>
+  <int value="4" label="Popup blocked"/>
+</enum>
+
+<enum name="WebFeedChangeReason">
+  <int value="0" label="Unspecified">Unknown change reason</int>
+  <int value="1" label="Web page menu">
+    The user tapped the Follow/Unfollow option from the three dot menu while on
+    a web page.
+  </int>
+  <int value="2" label="Web page accelerator">
+    The user tapped the Follow accelerator while visiting a site.
+  </int>
+  <int value="3" label="Management page">
+    The user tapped to Follow/Unfollow on the Follow Management page.
+  </int>
+  <int value="4" label="In feed recommendation">
+    The user tapped to Follow/Unfollow a recommendation embedded in feed
+    content.
+  </int>
+  <int value="5" label="Back of card unfollow">
+    The user tapped 'Unfollow' on the back of card menu.
+  </int>
+  <int value="6" label="Recommendation web page accelerator">
+    The user tapped a web page on a recommendation card.
+  </int>
+</enum>
+
+<enum name="WebFeedPageInformationRequestReason">
+  <int value="0" label="User Requested Follow">
+    The user requested to Follow the current web page.
+  </int>
+  <int value="1" label="Follow Recommendation">
+    A Follow recommendation is being considered the current web page.
+  </int>
+  <int value="2" label="Menu Item Presentation">
+    The Follow menu item state needs to reflect the current web page.
+  </int>
+</enum>
+
+<enum name="WebFeedPostFollowDialogPresentation">
+  <int value="0"
+      label="Available - Post-follow dialog for an available web feed"/>
+  <int value="1"
+      label="Unavailable - Post-follow dialog for an unavailable web feed"/>
+</enum>
+
+<enum name="WebFeedQueryRequestStatus">
+  <int value="0" label="Unknown status"/>
+  <int value="1" label="Success. The query succeeded."/>
+  <int value="2" label="Failed because the device is offline"/>
+  <int value="3" label="Failed for an unknown reason"/>
+  <int value="4" label="Failed due to pending ClearAll action"/>
+</enum>
+
+<enum name="WebFeedRefreshStatus">
+  <int value="0" label="Unknown status"/>
+  <int value="1" label="Success"/>
+  <int value="2" label="Failed due to a network error"/>
+  <int value="3" label="Failed because the request was throttled client-side"/>
+  <int value="4" label="Failed because there is a pending ClearAll operation"/>
+</enum>
+
+<enum name="WebFeedSubscriptionRequestStatus">
+  <int value="0" label="Unknown status"/>
+  <int value="1"
+      label="Success. The follow/unfollow succeeded. Also reported when
+             following an already-followed web feed, or unfollowing a web
+             feed which is not followed."/>
+  <int value="2" label="Failed because the device is offline"/>
+  <int value="3"
+      label="Failed because the user has reached the subscription limit"/>
+  <int value="4" label="Failed for an unknown reason"/>
+  <int value="5" label="Failed due to pending ClearAll action"/>
+</enum>
+
+</enums>
+
+</histogram-configuration>
diff --git a/tools/metrics/histograms/metadata/geolocation/histograms.xml b/tools/metrics/histograms/metadata/geolocation/histograms.xml
index 313b3c6..8586e5c 100644
--- a/tools/metrics/histograms/metadata/geolocation/histograms.xml
+++ b/tools/metrics/histograms/metadata/geolocation/histograms.xml
@@ -42,15 +42,6 @@
   </summary>
 </histogram>
 
-<histogram name="Geolocation.NetworkLocationRequest.AccessPoints" units="units"
-    expires_after="M85">
-  <owner>mattreynolds@chromium.org</owner>
-  <owner>device-dev@chromium.org</owner>
-  <summary>
-    The number of WiFi access points used to determine geolocation.
-  </summary>
-</histogram>
-
 <histogram name="Geolocation.NetworkLocationRequest.Event"
     enum="NetworkLocationRequestEvent" expires_after="2024-04-28">
   <owner>mattreynolds@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/ios/histograms.xml b/tools/metrics/histograms/metadata/ios/histograms.xml
index 7862bec..0d95679 100644
--- a/tools/metrics/histograms/metadata/ios/histograms.xml
+++ b/tools/metrics/histograms/metadata/ios/histograms.xml
@@ -1676,6 +1676,16 @@
   </summary>
 </histogram>
 
+<histogram name="IOS.NTP.LensButtonNewBadgeShown"
+    enum="IOSNTPNewBadgeShownResult" expires_after="2024-05-02">
+  <owner>hujasonx@google.com</owner>
+  <owner>lens-in-bling-team@google.com</owner>
+  <summary>
+    The result of an attempt to show the New Feature badge on the Lens button in
+    the NTP on iOS. Logged when the NTP view is created.
+  </summary>
+</histogram>
+
 <histogram name="IOS.NTP.OverscrollAction" enum="IOSNTPOverscrollAction"
     expires_after="2024-04-28">
   <owner>guiperez@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/web_apk/OWNERS b/tools/metrics/histograms/metadata/web_apk/OWNERS
index c24d884b..05d16a0 100644
--- a/tools/metrics/histograms/metadata/web_apk/OWNERS
+++ b/tools/metrics/histograms/metadata/web_apk/OWNERS
@@ -4,4 +4,3 @@
 # Use chromium-metrics-reviews@google.com as a backup.
 eirage@chromium.org
 hartmanng@chromium.org
-rayankans@chromium.org
diff --git a/tools/metrics/histograms/metadata/web_apk/histograms.xml b/tools/metrics/histograms/metadata/web_apk/histograms.xml
index 45a669f5..5e8db68 100644
--- a/tools/metrics/histograms/metadata/web_apk/histograms.xml
+++ b/tools/metrics/histograms/metadata/web_apk/histograms.xml
@@ -166,7 +166,6 @@
 <histogram name="WebApk.Install.RequestTokenDurationV2" units="ms"
     expires_after="2024-05-05">
   <owner>hartmanng@chromium.org</owner>
-  <owner>rayankans@chromium.org</owner>
   <owner>src/chrome/android/webapk/OWNERS</owner>
   <summary>
     Records the amount of time which has elapsed from the &quot;install infobar
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json
index 7abaf7e0..525e231 100644
--- a/tools/perf/core/perfetto_binary_roller/binary_deps.json
+++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -6,23 +6,23 @@
         },
         "win": {
             "hash": "3278660bc464fdcf9996fea926382e9c3428758b",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/6f755e28a296d022cb03c3843ea6cc2c45176778/trace_processor_shell.exe"
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/72cd237dbedb3812a44305f923a1f149c108cf38/trace_processor_shell.exe"
         },
         "linux_arm": {
             "hash": "a6d798c6ea35705f2ab9ace2b224c32e376eb0ce",
             "full_remote_path": "perfetto-luci-artifacts/3f522a981c45dc5d735a5e5d775c70188adff93c/linux-arm/trace_processor_shell"
         },
         "mac": {
-            "hash": "9122544de3a0edc98ff7797b9bc92284b2cee62a",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/mac/30b806a3c043c94724c7bfe42063da4707d8f065/trace_processor_shell"
+            "hash": "1c705b9cfdd0ff4190d1fa8beff955d57e55575a",
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/mac/dde07b7899f1ab725df391faae30ca613ac675e0/trace_processor_shell"
         },
         "mac_arm64": {
             "hash": "cc287491e9ff9fe2c4866e5574eaea04134895a0",
             "full_remote_path": "perfetto-luci-artifacts/v38.0/mac-arm64/trace_processor_shell"
         },
         "linux": {
-            "hash": "16be72bc446472b29de4833ad7eed076a5fe5954",
-            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/30b806a3c043c94724c7bfe42063da4707d8f065/trace_processor_shell"
+            "hash": "37309fa676913ff65bbc90f0c6d6507deee275f2",
+            "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/7e1ff250095383dbac1d56a8ed4f9e3c04e5dccd/trace_processor_shell"
         }
     },
     "power_profile.sql": {
diff --git a/tools/typescript/definitions/pdf_viewer_private.d.ts b/tools/typescript/definitions/pdf_viewer_private.d.ts
index 0f0668c..1b9a73c 100644
--- a/tools/typescript/definitions/pdf_viewer_private.d.ts
+++ b/tools/typescript/definitions/pdf_viewer_private.d.ts
@@ -10,13 +10,33 @@
 declare global {
   export namespace chrome {
     export namespace pdfViewerPrivate {
+      // `mimeType` and `responseHeaders` are unused fields, but they are
+      // necessary to be able to cast to chrome.mimeHandlerPrivate.StreamInfo.
+      // TODO(crbug.com/1445746): Remove `mimeType` and `responseHeaders` after
+      // PDF viewer no longer uses chrome.mimeHandlerPrivate.
+      export interface StreamInfo {
+        mimeType: string;
+        originalUrl: string;
+        streamUrl: string;
+        tabId: number;
+        responseHeaders: Record<string, string>;
+        embedded: boolean;
+      }
 
+      export interface PdfPluginAttributes {
+        backgroundColor: number;
+        allowJavascript: boolean;
+      }
+
+      export function getStreamInfo(callback: (info: StreamInfo) => void): void;
       export function isAllowedLocalFileAccess(
           url: string, callback: (isAllowed: boolean) => void): void;
       export function isPdfOcrAlwaysActive(
           callback: (isAlwaysActive: boolean) => void): void;
       export function setPdfOcrPref(
           isAlwaysActive: boolean, callback: (isSet: boolean) => void): void;
+      export function setPdfPluginAttributes(attributes: PdfPluginAttributes):
+          void;
 
       type PdfOcrPrefCallback = ((isPdfOcrAlwaysActive: boolean) => void)|null;
       export const onPdfOcrPrefChanged: ChromeEvent<PdfOcrPrefCallback>;
diff --git a/ui/color/BUILD.gn b/ui/color/BUILD.gn
index 4442e0f..da2dee7 100644
--- a/ui/color/BUILD.gn
+++ b/ui/color/BUILD.gn
@@ -193,6 +193,7 @@
 }
 
 mojom("mojom") {
+  generate_java = true
   sources = [
     "color_id.mojom",
     "scheme_variant.mojom",
diff --git a/ui/color/color_provider_source.h b/ui/color/color_provider_source.h
index 05c8efd7..b7a7629 100644
--- a/ui/color/color_provider_source.h
+++ b/ui/color/color_provider_source.h
@@ -10,6 +10,7 @@
 #include "base/observer_list_types.h"
 #include "ui/color/color_provider.h"
 #include "ui/color/color_provider_key.h"
+#include "ui/color/color_provider_utils.h"
 
 namespace ui {
 
@@ -41,6 +42,12 @@
   // Gets the ColorMode currently associated with this source.
   ColorProviderKey::ColorMode GetColorMode() const;
 
+  // Gets the RendererColorMap corresponding to the ColorProvider for the
+  // `color_mode` and `forced_colors`.
+  virtual const RendererColorMap GetRendererColorMap(
+      ColorProviderKey::ColorMode color_mode,
+      ColorProviderKey::ForcedColors forced_colors) const = 0;
+
   base::ObserverList<ColorProviderSourceObserver>& observers_for_testing() {
     return observers_;
   }
diff --git a/ui/color/color_provider_source_observer.cc b/ui/color/color_provider_source_observer.cc
index f6a8c35..cb1f995 100644
--- a/ui/color/color_provider_source_observer.cc
+++ b/ui/color/color_provider_source_observer.cc
@@ -6,7 +6,13 @@
 
 namespace ui {
 
-ColorProviderSourceObserver::ColorProviderSourceObserver() = default;
+ColorProviderSourceObserver::ColorProviderSourceObserver(
+    ColorProviderSource* source)
+    : source_(source) {
+  if (source) {
+    color_provider_source_observation_.Observe(source);
+  }
+}
 
 ColorProviderSourceObserver::~ColorProviderSourceObserver() = default;
 
diff --git a/ui/color/color_provider_source_observer.h b/ui/color/color_provider_source_observer.h
index babdf2df..93dfdc8 100644
--- a/ui/color/color_provider_source_observer.h
+++ b/ui/color/color_provider_source_observer.h
@@ -18,7 +18,7 @@
 class COMPONENT_EXPORT(COLOR) ColorProviderSourceObserver
     : public base::CheckedObserver {
  public:
-  ColorProviderSourceObserver();
+  explicit ColorProviderSourceObserver(ColorProviderSource* source = nullptr);
   ~ColorProviderSourceObserver() override;
 
   // Called when the source's ColorProvider instance has changed.
diff --git a/ui/color/color_provider_source_observer_unittest.cc b/ui/color/color_provider_source_observer_unittest.cc
index 31360997..f7e4306 100644
--- a/ui/color/color_provider_source_observer_unittest.cc
+++ b/ui/color/color_provider_source_observer_unittest.cc
@@ -19,6 +19,10 @@
  public:
   MOCK_METHOD(ColorProviderKey, GetColorProviderKey, (), (const, override));
   MOCK_METHOD(const ColorProvider*, GetColorProvider, (), (const, override));
+  MOCK_METHOD(const RendererColorMap,
+              GetRendererColorMap,
+              (ColorProviderKey::ColorMode, ColorProviderKey::ForcedColors),
+              (const, override));
 };
 
 class MockColorProviderSourceObserver : public ColorProviderSourceObserver {
diff --git a/ui/views/widget/widget.cc b/ui/views/widget/widget.cc
index 4f7fe0ed1..c6d8f2b5 100644
--- a/ui/views/widget/widget.cc
+++ b/ui/views/widget/widget.cc
@@ -2032,6 +2032,18 @@
       GetColorProviderKey());
 }
 
+const ui::RendererColorMap Widget::GetRendererColorMap(
+    ui::ColorProviderKey::ColorMode color_mode,
+    ui::ColorProviderKey::ForcedColors forced_colors) const {
+  auto key = GetColorProviderKey();
+  key.color_mode = color_mode;
+  key.forced_colors = forced_colors;
+  ui::ColorProvider* color_provider =
+      ui::ColorProviderManager::Get().GetColorProviderFor(key);
+  CHECK(color_provider);
+  return ui::CreateRendererColorMap(*color_provider);
+}
+
 ui::ColorProviderKey Widget::GetColorProviderKeyForTesting() const {
   return GetColorProviderKey();
 }
diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h
index 419b75d..aa10cfe6 100644
--- a/ui/views/widget/widget.h
+++ b/ui/views/widget/widget.h
@@ -24,6 +24,7 @@
 #include "ui/base/ui_base_types.h"
 #include "ui/color/color_provider_key.h"
 #include "ui/color/color_provider_source.h"
+#include "ui/color/color_provider_utils.h"
 #include "ui/display/types/display_constants.h"
 #include "ui/events/event_source.h"
 #include "ui/gfx/geometry/rect.h"
@@ -1158,6 +1159,9 @@
 
   // ui::ColorProviderSource:
   const ui::ColorProvider* GetColorProvider() const override;
+  const ui::RendererColorMap GetRendererColorMap(
+      ui::ColorProviderKey::ColorMode color_mode,
+      ui::ColorProviderKey::ForcedColors forced_colors) const override;
 
   // Set the native theme from which this widget gets color from for testing.
   void SetNativeThemeForTest(ui::NativeTheme* native_theme) {
diff --git a/ui/views/win/hwnd_message_handler_headless.cc b/ui/views/win/hwnd_message_handler_headless.cc
index 9608e8d..a127e4f 100644
--- a/ui/views/win/hwnd_message_handler_headless.cc
+++ b/ui/views/win/hwnd_message_handler_headless.cc
@@ -238,8 +238,8 @@
     return;
   }
 
-  window_state_ = WindowState::kMaximized;
   restored_bounds_ = bounds_;
+  window_state_ = WindowState::kMaximized;
 
   gfx::Rect bounds = GetZoomedWindowBounds(bounds_);
   SetBoundsInternal(bounds, /*force_size_changed=*/false);
@@ -266,11 +266,7 @@
   auto prev_state = window_state_;
   window_state_ = WindowState::kNormal;
 
-  if (restored_bounds_) {
-    gfx::Rect bounds = restored_bounds_.value();
-    restored_bounds_.reset();
-    SetBoundsInternal(bounds, /*force_size_changed=*/false);
-  }
+  RestoreBounds();
 
   if (prev_state == WindowState::kMinimized) {
     delegate_->HandleWindowMinimizedOrRestored(/*restored=*/true);
@@ -340,14 +336,35 @@
 }
 
 FullscreenHandler* HWNDMessageHandlerHeadless::fullscreen_handler() {
-  // TODO(kvitekp): headless windows don't go fullscreen yet.
+  // Headless windows don't use the fullscreen handler.
   return nullptr;
 }
 
 void HWNDMessageHandlerHeadless::SetFullscreen(bool fullscreen,
                                                int64_t target_display_id) {
-  // Just track the requested state, but don't change window size for now.
-  window_state_ = fullscreen ? WindowState::kFullscreen : WindowState::kNormal;
+  if (fullscreen) {
+    if (window_state_ == WindowState::kFullscreen) {
+      return;
+    }
+
+    if (window_state_ != WindowState::kMaximized) {
+      restored_bounds_ = bounds_;
+    }
+
+    window_state_ = WindowState::kFullscreen;
+
+    gfx::Rect bounds = GetZoomedWindowBounds(bounds_);
+    SetBoundsInternal(bounds, /*force_size_changed=*/false);
+
+  } else {
+    if (window_state_ != WindowState::kFullscreen) {
+      return;
+    }
+
+    window_state_ = WindowState::kNormal;
+
+    RestoreBounds();
+  }
 }
 
 void HWNDMessageHandlerHeadless::SizeConstraintsChanged() {
@@ -376,4 +393,12 @@
   }
 }
 
+void HWNDMessageHandlerHeadless::RestoreBounds() {
+  if (restored_bounds_) {
+    gfx::Rect bounds = restored_bounds_.value();
+    restored_bounds_.reset();
+    SetBoundsInternal(bounds, /*force_size_changed=*/false);
+  }
+}
+
 }  // namespace views
diff --git a/ui/views/win/hwnd_message_handler_headless.h b/ui/views/win/hwnd_message_handler_headless.h
index 90cfdd34..cd070861 100644
--- a/ui/views/win/hwnd_message_handler_headless.h
+++ b/ui/views/win/hwnd_message_handler_headless.h
@@ -95,6 +95,8 @@
   void SetBoundsInternal(const gfx::Rect& bounds_in_pixels,
                          bool force_size_changed) override;
 
+  void RestoreBounds();
+
  private:
   // Sets headless window bounds which may be different from the platform window
   // bounds and updates Aura window property that stores headless window bounds
diff --git a/ui/webui/resources/js/BUILD.gn b/ui/webui/resources/js/BUILD.gn
index 2811858..1812464d 100644
--- a/ui/webui/resources/js/BUILD.gn
+++ b/ui/webui/resources/js/BUILD.gn
@@ -39,7 +39,6 @@
     "test_loader.ts",
     "test_loader_util.ts",
     "util.ts",
-    "util_ts.ts",
   ]
 
   if (is_chromeos) {
diff --git a/ui/webui/resources/js/util_ts.ts b/ui/webui/resources/js/util_ts.ts
deleted file mode 100644
index a302613..0000000
--- a/ui/webui/resources/js/util_ts.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-// Copyright 2022 The Chromium Authors
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// TODO(crbug.com/1497028): Delete this file once all references have been
-// updated to use util.ts directly.
-export {$, appendParam, getDeepActiveElement, getRequiredElement, hasKeyModifiers, htmlEscape, isRTL, isUndoKeyboardEvent, listenOnce, quoteString} from './util.js';
diff --git a/url/android/origin_android.cc b/url/android/origin_android.cc
index b44125a..645ea8d 100644
--- a/url/android/origin_android.cc
+++ b/url/android/origin_android.cc
@@ -67,7 +67,7 @@
 
   Origin origin;
   if (is_opaque) {
-    absl::optional<base::UnguessableToken> nonce_token =
+    std::optional<base::UnguessableToken> nonce_token =
         base::UnguessableToken::Deserialize(token_high_bits, token_low_bits);
     origin =
         CreateOpaqueOriginForAndroid(scheme, host, port, nonce_token.value());
diff --git a/url/mojom/origin_mojom_traits.cc b/url/mojom/origin_mojom_traits.cc
index 5b728b46..5ecca98 100644
--- a/url/mojom/origin_mojom_traits.cc
+++ b/url/mojom/origin_mojom_traits.cc
@@ -13,12 +13,12 @@
     url::mojom::OriginDataView data,
     url::Origin* out) {
   std::string_view scheme, host;
-  absl::optional<base::UnguessableToken> nonce_if_opaque;
+  std::optional<base::UnguessableToken> nonce_if_opaque;
   if (!data.ReadScheme(&scheme) || !data.ReadHost(&host) ||
       !data.ReadNonceIfOpaque(&nonce_if_opaque))
     return false;
 
-  absl::optional<url::Origin> creation_result =
+  std::optional<url::Origin> creation_result =
       nonce_if_opaque
           ? url::Origin::UnsafelyCreateOpaqueOriginWithoutNormalization(
                 scheme, host, data.port(), url::Origin::Nonce(*nonce_if_opaque))
diff --git a/url/mojom/origin_mojom_traits.h b/url/mojom/origin_mojom_traits.h
index 0d3cbb2..7d1832c 100644
--- a/url/mojom/origin_mojom_traits.h
+++ b/url/mojom/origin_mojom_traits.h
@@ -5,11 +5,11 @@
 #ifndef URL_MOJOM_ORIGIN_MOJOM_TRAITS_H_
 #define URL_MOJOM_ORIGIN_MOJOM_TRAITS_H_
 
+#include <optional>
 #include "base/component_export.h"
 #include "base/unguessable_token.h"
 #include "mojo/public/cpp/base/unguessable_token_mojom_traits.h"
 #include "mojo/public/cpp/bindings/optional_as_pointer.h"
-#include "third_party/abseil-cpp/absl/types/optional.h"
 #include "url/mojom/origin.mojom-shared.h"
 #include "url/origin.h"
 
diff --git a/url/origin.cc b/url/origin.cc
index ce3e080..6650e42 100644
--- a/url/origin.cc
+++ b/url/origin.cc
@@ -78,19 +78,19 @@
 Origin::~Origin() = default;
 
 // static
-absl::optional<Origin> Origin::UnsafelyCreateTupleOriginWithoutNormalization(
+std::optional<Origin> Origin::UnsafelyCreateTupleOriginWithoutNormalization(
     std::string_view scheme,
     std::string_view host,
     uint16_t port) {
   SchemeHostPort tuple(std::string(scheme), std::string(host), port,
                        SchemeHostPort::CHECK_CANONICALIZATION);
   if (!tuple.IsValid())
-    return absl::nullopt;
+    return std::nullopt;
   return Origin(std::move(tuple));
 }
 
 // static
-absl::optional<Origin> Origin::UnsafelyCreateOpaqueOriginWithoutNormalization(
+std::optional<Origin> Origin::UnsafelyCreateOpaqueOriginWithoutNormalization(
     std::string_view precursor_scheme,
     std::string_view precursor_host,
     uint16_t precursor_port,
@@ -104,7 +104,7 @@
   if (!precursor.IsValid() &&
       !(precursor_scheme.empty() && precursor_host.empty() &&
         precursor_port == 0)) {
-    return absl::nullopt;
+    return std::nullopt;
   }
   return Origin(std::move(nonce), std::move(precursor));
 }
@@ -304,11 +304,11 @@
   DCHECK_EQ(0U, port());
 }
 
-absl::optional<std::string> Origin::SerializeWithNonce() const {
+std::optional<std::string> Origin::SerializeWithNonce() const {
   return SerializeWithNonceImpl();
 }
 
-absl::optional<std::string> Origin::SerializeWithNonceAndInitIfNeeded() {
+std::optional<std::string> Origin::SerializeWithNonceAndInitIfNeeded() {
   GetNonceForSerialization();
   return SerializeWithNonceImpl();
 }
@@ -317,9 +317,9 @@
 // string - tuple_.GetURL().spec().
 // uint64_t (if opaque) - high bits of nonce if opaque. 0 if not initialized.
 // uint64_t (if opaque) - low bits of nonce if opaque. 0 if not initialized.
-absl::optional<std::string> Origin::SerializeWithNonceImpl() const {
+std::optional<std::string> Origin::SerializeWithNonceImpl() const {
   if (!opaque() && !tuple_.IsValid())
-    return absl::nullopt;
+    return std::nullopt;
 
   base::Pickle pickle;
   pickle.WriteString(tuple_.Serialize());
@@ -339,16 +339,16 @@
 }
 
 // static
-absl::optional<Origin> Origin::Deserialize(const std::string& value) {
+std::optional<Origin> Origin::Deserialize(const std::string& value) {
   std::string data;
   if (!base::Base64Decode(value, &data))
-    return absl::nullopt;
+    return std::nullopt;
   base::Pickle pickle(reinterpret_cast<char*>(&data[0]), data.size());
   base::PickleIterator reader(pickle);
 
   std::string pickled_url;
   if (!reader.ReadString(&pickled_url))
-    return absl::nullopt;
+    return std::nullopt;
   GURL url(pickled_url);
 
   // If only a tuple was serialized, then this origin is not opaque. For opaque
@@ -357,26 +357,26 @@
 
   // Opaque origins without a tuple are ok.
   if (!is_opaque && !url.is_valid())
-    return absl::nullopt;
+    return std::nullopt;
   SchemeHostPort tuple(url);
 
   // Possible successful early return if the pickled Origin was not opaque.
   if (!is_opaque) {
     Origin origin(tuple);
     if (origin.opaque())
-      return absl::nullopt;  // Something went horribly wrong.
+      return std::nullopt;  // Something went horribly wrong.
     return origin;
   }
 
   uint64_t nonce_high = 0;
   if (!reader.ReadUInt64(&nonce_high))
-    return absl::nullopt;
+    return std::nullopt;
 
   uint64_t nonce_low = 0;
   if (!reader.ReadUInt64(&nonce_low))
-    return absl::nullopt;
+    return std::nullopt;
 
-  absl::optional<base::UnguessableToken> nonce_token =
+  std::optional<base::UnguessableToken> nonce_token =
       base::UnguessableToken::Deserialize(nonce_high, nonce_low);
 
   Origin::Nonce nonce;
diff --git a/url/origin.h b/url/origin.h
index eaf109c..01cd57f 100644
--- a/url/origin.h
+++ b/url/origin.h
@@ -11,6 +11,7 @@
 #include <string>
 #include <string_view>
 
+#include <optional>
 #include "base/component_export.h"
 #include "base/debug/alias.h"
 #include "base/debug/crash_logging.h"
@@ -21,7 +22,6 @@
 #include "build/build_config.h"
 #include "build/buildflag.h"
 #include "build/robolectric_buildflags.h"
-#include "third_party/abseil-cpp/absl/types/optional.h"
 #include "url/scheme_host_port.h"
 
 #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_ROBOLECTRIC)
@@ -190,7 +190,7 @@
   // forth over IPC (as transitioning through GURL would risk potentially
   // dangerous recanonicalization); other potential callers should prefer the
   // 'GURL'-based constructor.
-  static absl::optional<Origin> UnsafelyCreateTupleOriginWithoutNormalization(
+  static std::optional<Origin> UnsafelyCreateTupleOriginWithoutNormalization(
       std::string_view scheme,
       std::string_view host,
       uint16_t port);
@@ -417,7 +417,7 @@
   // This factory method should be used in order to pass opaque Origin objects
   // back and forth over IPC (as transitioning through GURL would risk
   // potentially dangerous recanonicalization).
-  static absl::optional<Origin> UnsafelyCreateOpaqueOriginWithoutNormalization(
+  static std::optional<Origin> UnsafelyCreateOpaqueOriginWithoutNormalization(
       std::string_view precursor_scheme,
       std::string_view precursor_host,
       uint16_t precursor_port,
@@ -439,17 +439,17 @@
   // origin's |tuple_| is invalid nullopt is returned. If the nonce is not
   // initialized, a nonce of 0 is used. Use of this method should be limited as
   // an opaque origin will never be matchable in future browser sessions.
-  absl::optional<std::string> SerializeWithNonce() const;
+  std::optional<std::string> SerializeWithNonce() const;
 
   // Like SerializeWithNonce(), but forces |nonce_| to be initialized prior to
   // serializing.
-  absl::optional<std::string> SerializeWithNonceAndInitIfNeeded();
+  std::optional<std::string> SerializeWithNonceAndInitIfNeeded();
 
-  absl::optional<std::string> SerializeWithNonceImpl() const;
+  std::optional<std::string> SerializeWithNonceImpl() const;
 
   // Deserializes an origin from |ToValueWithNonce|. Returns nullopt if the
   // value was invalid in any way.
-  static absl::optional<Origin> Deserialize(const std::string& value);
+  static std::optional<Origin> Deserialize(const std::string& value);
 
   // The tuple is used for both tuple origins (e.g. https://example.com:80), as
   // well as for opaque origins, where it tracks the tuple origin from which
@@ -460,7 +460,7 @@
   // The nonce is used for maintaining identity of an opaque origin. This
   // nonce is preserved when an opaque origin is copied or moved. An Origin
   // is considered opaque if and only if |nonce_| holds a value.
-  absl::optional<Nonce> nonce_;
+  std::optional<Nonce> nonce_;
 };
 
 // Pretty-printers for logging. These expose the internal state of the nonce.
diff --git a/url/origin_unittest.cc b/url/origin_unittest.cc
index 5bca576..6f812fc 100644
--- a/url/origin_unittest.cc
+++ b/url/origin_unittest.cc
@@ -75,7 +75,7 @@
 
   // Wrappers around url::Origin methods to expose it to tests.
 
-  absl::optional<Origin> UnsafelyCreateOpaqueOriginWithoutNormalization(
+  std::optional<Origin> UnsafelyCreateOpaqueOriginWithoutNormalization(
       std::string_view precursor_scheme,
       std::string_view precursor_host,
       uint16_t precursor_port,
@@ -84,16 +84,15 @@
         precursor_scheme, precursor_host, precursor_port, nonce);
   }
 
-  absl::optional<std::string> SerializeWithNonce(const Origin& origin) {
+  std::optional<std::string> SerializeWithNonce(const Origin& origin) {
     return origin.SerializeWithNonce();
   }
 
-  absl::optional<std::string> SerializeWithNonceAndInitIfNeeded(
-      Origin& origin) {
+  std::optional<std::string> SerializeWithNonceAndInitIfNeeded(Origin& origin) {
     return origin.SerializeWithNonceAndInitIfNeeded();
   }
 
-  absl::optional<Origin> Deserialize(const std::string& value) {
+  std::optional<Origin> Deserialize(const std::string& value) {
     return Origin::Deserialize(value);
   }
 
@@ -287,7 +286,7 @@
   for (const auto& test : cases) {
     SCOPED_TRACE(testing::Message()
                  << test.scheme << "://" << test.host << ":" << test.port);
-    absl::optional<url::Origin> origin =
+    std::optional<url::Origin> origin =
         url::Origin::UnsafelyCreateTupleOriginWithoutNormalization(
             test.scheme, test.host, test.port);
     ASSERT_TRUE(origin);
@@ -300,7 +299,7 @@
     ExpectParsedUrlsEqual(GURL(origin->Serialize()), origin->GetURL());
 
     base::UnguessableToken nonce = base::UnguessableToken::Create();
-    absl::optional<url::Origin> opaque_origin =
+    std::optional<url::Origin> opaque_origin =
         UnsafelyCreateOpaqueOriginWithoutNormalization(
             test.scheme, test.host, test.port, CreateNonce(nonce));
     ASSERT_TRUE(opaque_origin);
@@ -356,7 +355,7 @@
 
   // Opaque origins with unknown precursors are allowed.
   base::UnguessableToken token = base::UnguessableToken::Create();
-  absl::optional<url::Origin> anonymous_opaque =
+  std::optional<url::Origin> anonymous_opaque =
       UnsafelyCreateOpaqueOriginWithoutNormalization("", "", 0,
                                                      CreateNonce(token));
   ASSERT_TRUE(anonymous_opaque)
@@ -668,10 +667,10 @@
   for (const GURL& url : valid_urls) {
     SCOPED_TRACE(url.spec());
     Origin origin = Origin::Create(url);
-    absl::optional<std::string> serialized = SerializeWithNonce(origin);
+    std::optional<std::string> serialized = SerializeWithNonce(origin);
     ASSERT_TRUE(serialized);
 
-    absl::optional<Origin> deserialized = Deserialize(std::move(*serialized));
+    std::optional<Origin> deserialized = Deserialize(std::move(*serialized));
     ASSERT_TRUE(deserialized.has_value());
 
     EXPECT_TRUE(DoEqualityComparisons(origin, deserialized.value(), true));
@@ -680,11 +679,11 @@
 }
 
 TEST_F(OriginTest, DeserializeInvalid) {
-  EXPECT_EQ(absl::nullopt, Deserialize(std::string()));
-  EXPECT_EQ(absl::nullopt, Deserialize("deadbeef"));
-  EXPECT_EQ(absl::nullopt, Deserialize("0123456789"));
-  EXPECT_EQ(absl::nullopt, Deserialize("https://a.com"));
-  EXPECT_EQ(absl::nullopt, Deserialize("https://192.168.1.1"));
+  EXPECT_EQ(std::nullopt, Deserialize(std::string()));
+  EXPECT_EQ(std::nullopt, Deserialize("deadbeef"));
+  EXPECT_EQ(std::nullopt, Deserialize("0123456789"));
+  EXPECT_EQ(std::nullopt, Deserialize("https://a.com"));
+  EXPECT_EQ(std::nullopt, Deserialize("https://192.168.1.1"));
 }
 
 TEST_F(OriginTest, SerializeTBDNonce) {
@@ -696,8 +695,8 @@
   for (const GURL& url : invalid_urls) {
     SCOPED_TRACE(url.spec());
     Origin origin = Origin::Create(url);
-    absl::optional<std::string> serialized = SerializeWithNonce(origin);
-    absl::optional<Origin> deserialized = Deserialize(std::move(*serialized));
+    std::optional<std::string> serialized = SerializeWithNonce(origin);
+    std::optional<Origin> deserialized = Deserialize(std::move(*serialized));
     ASSERT_TRUE(deserialized.has_value());
 
     // Can't use DoEqualityComparisons here since empty nonces are never ==
@@ -708,10 +707,10 @@
   {
     // Same basic test as above, but without a GURL to create tuple_.
     Origin opaque;
-    absl::optional<std::string> serialized = SerializeWithNonce(opaque);
+    std::optional<std::string> serialized = SerializeWithNonce(opaque);
     ASSERT_TRUE(serialized);
 
-    absl::optional<Origin> deserialized = Deserialize(std::move(*serialized));
+    std::optional<Origin> deserialized = Deserialize(std::move(*serialized));
     ASSERT_TRUE(deserialized.has_value());
 
     // Can't use DoEqualityComparisons here since empty nonces are never ==
@@ -723,9 +722,9 @@
   for (const GURL& url : invalid_urls) {
     SCOPED_TRACE(url.spec());
     Origin origin = Origin::Create(url);
-    absl::optional<std::string> serialized =
+    std::optional<std::string> serialized =
         SerializeWithNonceAndInitIfNeeded(origin);
-    absl::optional<Origin> deserialized = Deserialize(std::move(*serialized));
+    std::optional<Origin> deserialized = Deserialize(std::move(*serialized));
     ASSERT_TRUE(deserialized.has_value());
 
     // The nonce should have been initialized prior to Serialization().
@@ -737,10 +736,10 @@
   Origin opaque;
   GetNonce(opaque);
 
-  absl::optional<std::string> serialized = SerializeWithNonce(opaque);
+  std::optional<std::string> serialized = SerializeWithNonce(opaque);
   ASSERT_TRUE(serialized);
 
-  absl::optional<Origin> deserialized = Deserialize(std::move(*serialized));
+  std::optional<Origin> deserialized = Deserialize(std::move(*serialized));
   ASSERT_TRUE(deserialized.has_value());
 
   EXPECT_TRUE(DoEqualityComparisons(opaque, deserialized.value(), true));
diff --git a/url/url_canon_path.cc b/url/url_canon_path.cc
index a2add63..df0663f 100644
--- a/url/url_canon_path.cc
+++ b/url/url_canon_path.cc
@@ -4,9 +4,9 @@
 
 #include <limits.h>
 
+#include <optional>
 #include "base/check.h"
 #include "base/check_op.h"
-#include "third_party/abseil-cpp/absl/types/optional.h"
 #include "url/url_canon.h"
 #include "url/url_canon_internal.h"
 #include "url/url_features.h"
diff --git a/url/url_util_unittest.cc b/url/url_util_unittest.cc
index 300887a0..99736a3a 100644
--- a/url/url_util_unittest.cc
+++ b/url/url_util_unittest.cc
@@ -8,10 +8,10 @@
 
 #include <string_view>
 
+#include <optional>
 #include "build/build_config.h"
 #include "testing/gtest/include/gtest/gtest-message.h"
 #include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/abseil-cpp/absl/types/optional.h"
 #include "url/third_party/mozilla/url_parse.h"
 #include "url/url_canon.h"
 #include "url/url_canon_stdstring.h"
@@ -589,8 +589,8 @@
 }
 
 namespace {
-absl::optional<std::string> CanonicalizeSpec(std::string_view spec,
-                                             bool trim_path_end) {
+std::optional<std::string> CanonicalizeSpec(std::string_view spec,
+                                            bool trim_path_end) {
   std::string canonicalized;
   StdStringCanonOutput output(&canonicalized);
   Parsed parsed;
@@ -608,10 +608,10 @@
 TEST_F(URLUtilTest, TestCanonicalizeWindowsPathWithLeadingNUL) {
   auto PrefixWithNUL = [](std::string&& s) -> std::string { return '\0' + s; };
   EXPECT_EQ(CanonicalizeSpec(PrefixWithNUL("w:"), /*trim_path_end=*/false),
-            absl::make_optional("file:///W:"));
+            std::make_optional("file:///W:"));
   EXPECT_EQ(CanonicalizeSpec(PrefixWithNUL("\\\\server\\share"),
                              /*trim_path_end=*/false),
-            absl::make_optional("file://server/share"));
+            std::make_optional("file://server/share"));
 }
 #endif
 
@@ -628,7 +628,7 @@
     for (bool trim_path_end : {false, true}) {
       SCOPED_TRACE(testing::Message() << "trim_path_end: " << trim_path_end);
 
-      absl::optional<std::string> canonicalized =
+      std::optional<std::string> canonicalized =
           CanonicalizeSpec(spec, trim_path_end);
       ASSERT_TRUE(canonicalized);
       EXPECT_EQ(canonicalized, CanonicalizeSpec(*canonicalized, trim_path_end));
diff --git a/v8 b/v8
index b9064e7..3bd53fa 160000
--- a/v8
+++ b/v8
@@ -1 +1 @@
-Subproject commit b9064e7bb2f9169485b10997c4b0ce0ed63979e0
+Subproject commit 3bd53fa98e3db67d83a448339a56ee2ee7bf4af0